Yesterday, I found a very interesting post about someone who is going to talk in the next JavaOne 2010 event. His topic is: "Next Big JVM language" and he was/is asking for poeple to give their opinion on the subject by giving some questions/points that you can find here: http://www.jroller.com/scolebourne/entry/the_next_big_jvm_language. Of course I left my comments there, but then I thought that it is a very interesting point which is really related to the topics I would like to share in this blog, so I'm doing my own post about it here.
What makes a language BIG?
Let's start by getting on the same context. To me, BIG means that the Programming Language is widely used (and popular); widely used by professionals (at enterprises), students (at universities) and hobbyists (at home).
1. Syntax matters. Most of the modern languages running on the CLR and/or JVM support almost the same number of features. The only difference between them is really the syntax you need to accomplish the same stuff. Programmers will say: that language is C-Like syntax? Then I will give it a try (C++, Java, C#, D and then Go).
2. It COULD be Multi-Paradigm, but to be BIG, it MUST support OOP, which is in fact, the most widely used paradigm out there. Again, nowadays, most of the languages support OOP, even if they were conceived to be Scripting or Functional. Why? Because to be big it needs to support what all kind of programmers (professionals, students, hobbyists) are familiar with.
3. Is not only the language, but the IDE support as well that makes a language popular (widely used).
- First, because “Syntax Matters”, it needs to support: syntax highlight, intellisense, auto-competition, code generation, etc.
- Second, it should allow you to build several types of applications such as: web, desktop, scripts, console, services, etc.
- Support debugging.
4. It needs to be FREE to use. Not necessarily Open Source, but just FREE, so anyone can use it, build stuff with it and enjoy it.
5. Interoperability with other Languages. This is accomplished by languages implemented on top of the JVM or CLR. That’s one reason why a big JVM/CLR language is better than a native mono-language environment. Another benefit is that if your favorite language does not support a feature you want/need you can do it in a different language and mix it nicely.
6. Libraries/Frameworks support. Languages running on top of the JVM/CLR runtimes get the benefit of using several existing stable libraries that allows the programmer to build almost anything they want.
What do you think is most important to make a language big and popular?