User login

Why Dynamic Languages are a Hot Topic

I've been seeing a lot of activity in the blogosphere about dynamic languages lately. It has been a steady rise as opposed to a sharp spike.

Although there have been many recent technical achievements in the dynamic language domain, that doesn't explain the buzz.

So why would anyone blog about dynamic languages? What makes them remarkable enough to talk about?

If other programmers are anything like me, they love learning new programming languages. A new language lets you think in a new way. Alan Perlis's famous quote confirms this:

A language that doesn't affect the way you think about programming, is not worth knowing.

Programmers love to learn new ways to solve problems. To tinker with ideas. The novelty of new languages opens worlds of new powers and ways to recombine ideas. A new way to see the world.

So let me propose a story as an explanation for why dynamic languages get so much attention. A programmer learns a new language because it's fun. He sees all sorts of new ways to solve his problem. He gets excited about it and tells his friends. Some of them try it out, too. And one of those people is a popular blogger. Now there are thousands of people talking about it.

So there's a story being told about how easy it is to do X, and how easy it is to do Y. And how more productive you are writing in the language.

A buzz of controversy sends thousands of people to the home page of the scripting language. Some people claim the way it works can't possibly be fast enough. Others point to its lack of one feature or another. Still others deride it for being a toy. Maybe it doesn't have enough libraries. But people are learning about it, downloading it, and talking about it publicly. Buzz buzz.

Well, well, well. That's what we've got! A lot of buzz about a new language. And people trying it. But notice that it only works for the languages that have something new to offer. A new way of doing things. A new idea. A new way to see the world. Does your language really offer something new? Something remarkable? Can your language turn heads?

Old features are old news. Nobody cares that C has a conditional! Or that Lisp has a garbage collector! What can your language give me?

In short: can you say what makes your language different from all of the thousands of other languages in a sentence? in a blog post? in a book? Because if you can't convince me it's worth my time, you'll be recorded on this page. Somewhere between Afnix and ZOPL. And no one will talk about you.

And it better be something new. All languages promise more productivity, more cross-platformability, more safety. What does your language do? Why should I download it? Why should I put in the time to learn a new language?

And it better be something only slightly believable. Something weird enough to turn heads. It doesn't have to be perfect. It has to be remarkable. The language needs to stir controversy.

Because if it's not breaking new conceptual ground---challenging beliefs---it's not important. People don't care. It needs to get you money or fame or sex. People won't talk about it unless important people are talking about it. And important people in the programming world hold strong beliefs about their programming languages. If no Java-phile has anything to say about your language, it doesn't do anything interesting. If there aren't any C guys saying how slow it is, what the hell does it do? If neither the dynamic nor the static typists complain about your language's safety vs. expressivity, does the language even exist?

So you've got people talking. Then the newbies will come. And you need to be there, waiting to accept all the newbies. Remember--you were a noob once, too. And those new guys have energy! Their fresh faces are still alight with great ideas and possibilities. Put their enthusiasm to good use! Be nice to them and they do stuff for you. Apprenticing a programmer on an open source project can create a powerful advocate for life.

Teach them all the things they need to learn to excel in the language. Focus especially on those things that you advertised. If you said it's great for web programming, you had better make people believe it. If you said it's the best thing for distributed systems, make people good at it. Don't let people disbelieve what they came to your language to find. They'll tell their friends the language sucks. And that's the worst thing they can say, because it doesn't have any content. There's nothing to debate about. Just fighting.

In conclusion: make your language special (not perfect). Embrace the press (good and bad). Engage the community.

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.