goplexian.com | animation, modeling, scripting - 2010-02-16 23:45:00
This is a follow up to an article I wrote titled
"Why nobody talks about Lua" it's funny how sometimes little questions like that can turn into big discussions, because its not even a week later and that post has had over 10,000 views and generated something over 200 comments through various forums.
So I wanted to
capitalize on my success do a
brief review today of how the various communities viewed the question and what their answers were, especially the responses from the Lua community itself through the Lua-list.
The highest voted comment on reddit with actual content was from
munificent and he wrote:
1. It's small. You can learn everything there is to know about Lua pretty quickly.
2. It moves slowly. There isn't a lot of hot new Lua tricks to blog about.
3. The existing documentation is fantastic.
4. Because it's embedded in other apps, there isn't a lot of "here's something useful" stuff that applies to all Lua users.
No one talks about screwdrivers either.
Interesting comment, but I dont entirely agree that these are the main reasons we don't hear much about Lua because there are other small, slow moving, excellently documented, embeddable type of applications which are popularly talked about online. For example sqlite satisfy's most of those criteria.
The highest voted response on HN was by
Chipsy, who said:
I have trouble finding a use for Lua, even though I like it better as a language than most.
The problem is that it isn't a good "starting place" for an app. Instead you write something in C/C++ and say "oh, I wish I had a dynamic language for this part" and then you add Lua on top. And this is part of why Lua is such a compelling language now - by being extension-focused it's been able to iterate the entire language many times over and make basic semantic changes without worrying about backwards-compatibility.
But if I start writing an app and want something Lua-like....it ends up being easier to start in Python. There are some good projects out there to address this but it's a question of maturity - as of right now Lua still doesn't really satisfy as a "batteries-included" platform.
This is a great description of how Lua is used I think, but I do not agree that this is the main reason why people do not talk about Lua because just like before I can think of other examples which also fit this general description yet get a lot of attention online.
A commenter on this blog,
Steven, wrote:
"I think it's in part because Lua first became big in the game industry, which is not known for its openness and is still dominated by the large players. Many game companies guard their IP religiously, and often the developers are under NDAs. You won't see them organize a friendly neighbourhood somethingCamp to share and learn.
This is certainly true, yet I'm sure there are a number of popular bloggers who work for large company's and somehow manage to blog about tech which excites them without disclosing company Intellectual Property, so again I don't see this as being the main reason why Lua discussion isn't more popular online.
After having read the comments and thought about this matter for a couple days I decided that I would bring this question to the Lua-list and see what the actual Lua community had to say about the matter.
The difficulty though with mailing lists is that they lack the voting mechanism so you have no real way to determine if a given comment is relflective of a single individual or the community as a whole
The first reply I got on the list made me laugh though,
dcharno wrote:
"I didn't understand the article. Lots of people use and talk about Lua. It serves a specific niche in application development. The Lua team is happy with the language. What is the issue?"
If you are jaded skeptic like me you might at first think this person is just being oblivious, or doesn't want to show weakness or something else similarly cynical, but it is my opinion now that this general sentiment is shared by a fairly large segment of the Lua community and that when they say things like this they are speaking sincerely.
After thinking about the responses I got on the Lua-list for a while I was lead back to ask a more general question: "
Why do people talk about programming?".
I can think of at least 5 reasons why people talk about programming languages, and I think the answer to the question of "why nobody talks about Lua" can be found when we look at the major reasons why people talk about programming in general.
1. Perceived online popularity will increase adoption percentage for new programming projects (say that fast five times). For those projects struggling for mind share and trying to break into the big leagues lots of online discussion is rightly seen as an essential for growth and success.
Lua though has no confidence issues, it has already been used in more video games than all of the other major scripting languages combined, and nobody needs to see crowds of happy bloggers in order to be convinced of this fact. So Lua developers see little need to proselytize about the language in the same way other projects attempt to do.
2. Talking and writing is a means of reinforcing learning. After delving into something interesting and emerging from the other side victorious it is natural to want to do a bit of a victory dance, and for a certain segment of people this mean writing about it on our blogs.
Lua though is small, simple, easy to learn, with great documentation. This makes those types of victory dances much less frequent.
3. People
like love to complain. I'm Canadian, so I find complaining a bit difficult, but I do think it is an entirely valid reason to communicate. If you don't like the way a certain something works then why not discuss it? I think most everyone agree's that the best thing to do is to fix it yourself, but that isn't always possible or practical even in the world of open-source.
I know the Lua community is probably not going to thank me for this, but I think complaining is probably an area where Lua discussion could be dialed up a few notches. Again and again a common complaint made in the comments was that Lua's standard library isn't that great, and that it is one of Lua's major hurdles. Lua doesn't come with batteries included, etc etc. If you take a look at the list of
Lua's standard libraries, and compare that with the
Go's standard libraries, you'll see what people are talking about. This is the major reason why people say that Lua, despite being a great language, isn't so great for stand-alone development.
It has been this way for years though, and the developers aren't likely to fix this any time in the immediate future but hopefully improvements will continue to be addressed.
4. Genuine passion. If you really love something you can't help but talk about it, and as crazy as it sounds there are people out there who actually love programming languages and code. Personally I don't understand how anyone can have emotional feelings about code, but then again it is psychologically well documented that people grow in affinity as they grow in familiarity, the better you know something the closer you feel to it.
But people don't often discuss a screwdriver, they just use it. Mind you though there is a big difference between leaning how to programming and learning how to use a language. It takes a lot longer to learn to program than it does to learn a language. If you haven't gained proficiency in Lua in a couple weeks then you are probably lacking some fundamental programming knowledge, in which case Lua can be a great teacher and something worth writing online about, but you wouldn't really be talking about Lua you'd more be talking about learning to program and just happen to be using Lua.
5. The final reason why people write about programming is because of the internet driven childish hype culture. Reaching for a 'whats hot' tag, looking for their 2 minutes of fame.
In many of the comments on the Lua-list there was a
strong resentment to this type of hype culture which is so dominant on the internet today, it almost seemed to border on unwritten internal policy that hype for the sake of hype was completely unacceptable and actually attracts the wrong crowd.
So as funny as it sounds it seems "The first rule of Lua is you do not hype about Lua, Lua doesn't need you to hype it, and Lua doesn't want the sort of people who are attracted by hype."
For what its worth I think that's a good enough answer, funny though that I would get this answer from a community made up largely of game developers, an industry where hype is usually the order of the day. ;)
This little foray into the world of Lua has opened my eyes quite a bit, Lua is certainly an interesting language, and an even more interesting community, and I think that if you're getting your feet wet in programming, or you are a seasoned developer contemplating adding scripting to your project, then Lua has a lot to offer you not least of which is a great and down to earth community. Wait, is this hype?