For the last several years, when asked about what programming language that I thought people should jump into, I would automatically make Java my first choice - things are changing now.
There is growing appreciation for flexible dynamic scripting languages (like PHP, Python) over strongly-typed compiled languages like Java.
Why?
I see two big reasons why people are looking to the scripting languages as a viable alternative to Java:
- Speed of development.
- Ease of use.
There is no argument (among sane people,) that you can build applications in a scripting language in a fraction of the time that it takes to build the same application in Java.
The Java zealots would argue:
- Scripting code will not be maintainable.
- Scripting code will run too slow
About code maintainability:
The reality is that code maintainability has as much to-do with the programmer as it does with the language - you can write crappy Java that is not easy to maintain or extend … I’ve seen it more than once - maybe even 3 times!
The same thing can be said of scripting languages …
Another interesting point, is that you can usually write an application with far less code than you would in Java - many times we are talking 1/4 to 1/5 the code! A thousand lines of code is much easier to maintain than 5000!
About speed of code execution:
Again, many times that comes down to the programmers skill. Having said that, the evidence shows that for many applications, the scripting languages out there run more than fast enough.
Anecdote: PHP seems to be fast enough for Yahoo.
The old argument that Java people used when defending Java’s speed (relative to C++ ) can be applied to scripting languages: computers are really fast these days … as such the difference in execution speed (most of the time) is negligible.
Java’s ever increasing complexity- benefits the few at the expense of the many:
It seems to me that the Java community has made the platform more and more complex (in favor of huge projects,) at the expense of productivity of small to medium sized projects. The problem is, that the vast majority of the projects out there are small and medium sized.
Conclusion
I’ve written most of my software in Java over the last several years, I like Java. But these days I don’t look to Java anymore because it just takes too much time to get anything done. Even small Java applications have a lot of overhead in just setting up - xml descriptors, frameworks etc. I’m not even going to get into the verbosity of the code itself …
These days I look to PHP to write my web apps - it’s just too easy and fast to ignore. PHP has got some baggage from its’ roots of being a ‘web designers language’ but it is fast, has support from big players like IBM and most important , it’s everywhere!
What about Ruby?
Looks very cool, but it is a marginal language - nobody uses it these days. Last I checked, in comes in as the 28th most used language - below COBOL, Python, VB … you get the idea.

Well, i am currently learning Computer Science in my university. They start by teaching JAVA…that’s the first programming course. I have a friend who has started with C, and says it is better to start with C. JAVA is object oriented unlike other languages, specially C which will be the main language in CMPS. Here, they don’t even teach VB, maybe since it is easy…but as i see it, VB will be the most important language to use when a person needs to do projects for companies (insurance…), since it is very easy compared to others…
So what do you think?
Thanks.
@Sebouh,
“says it is better to start with C”
Procedural languages will probably always be around, but I think learning object oriented languages is the way to go given that is the trend this last many years.
Choose your language based on the type of programming you want to do and based on what the market demands. That being said, any time you learn a new language, you expand your knowledge and perspective. So it is never a waste of time to learn a language … even you never use it!
Check out this report on programming language popularity:
http://www.killersites.com/mvnforum/mvnforum/viewthread?thread=2995
About VB:
You can see in the list that VB is still very popular and probably stay in the top 20 for the next few years.
Well, what do you think of ActionScripting in Macromedia? Isn’t it a major part of the future generation websites?
Regading ActionScripting:
I don’t think it will be the major player in that area, but I do think it will be around for a while and being a good with ActionScript porbably makes sense given that most Flash users are designers and most programmers will not want to learn Flash - could be a good niche to get into … and a lot of fun!
Ste
Now i didn’t know JAVA was that popular. I wasn’t really shocked thought since i expected it to have a high audience. I think McLaren Mercedes f1 team uses JAVA for their projects ( i have seen Sun Microsystems on their car).
So my question is, is JAVA really that powerfull? Why not use C++?
What about AJAX, just take a look at Google’s gmail and Yahoo’s Flickr for a glimpse at the future of web design.
XUL also looks very interesting.
“South” gets the cigar on this one. AJAX will be the one to watch.
Expect a bang…then a boom.
Anything .NET + “Longhorn” = Java outta control. Sheesh.
And we think we have problems now…
Sony Music CD anyone?
You said “Even small Java applications have a lot of overhead in just setting up”. This is crucial: small things are quick and neatly done with a scripting hack.
But do not try to build, debug and maintain larger projects in other languages than java or c#! You are right : ruby is not ready yet. I miss good IDEs like IntelliJ’s Idea terribly and the code base is not stable enough yet.
Not being a mainstream language yet should not hinder you from using new languages if they do what they suppose to do. (Which is unfortunately not unrelated - see IDE).
Just in case you want to add something to your ‘wishlist’ for the next programming language feel free to comment on:
http://manideas.blogspot.com/2005/06/draft-of-prenatural-programming.html
I am an IT student looking to get into a web development career. I am currently trying to figure out what languages would best for achieving my this goal. Thank you for the above mentioned advice , it is helping a lot.
Can anybody advise me as to what sort of things I should practice and experiences I should focus on while in school to maximize my entry into this field. What programing strengths and abilities are valued in the real world right now- and how can I show that I have them in the student portfolio I am trying to build?
Thank you in advance for your assistance
I would look to learn PHP because it is the most widely used web scripting language and because lots of small and medium sized businesses use it, it will give a good chance to get jobs to work on while you’re at school.
Another language I would consider is Ruby and the Rails framework. Therein lies the future of programming in terms of the thinking of how web applications should be built.
Why not functional programming (FP)? In the recent years there have been some breakthroughs in FP, making it suitable for large systems. Modern FP languages (Haskell, Clean) are far less verbose than imperative counter parts; one can reason about correctness (as opposed to unit testing); they have lazy evaluation - so the program runs efficently by skipping the parts it doesn’t need; etc; true static typing (java static typing is some sort of a lie: it does lot of runtime checking as well); etc.
Clean in particular (clean.cs.ru.nl) has a Windows IDE written in Clean itself, offers a “pure functional” strategy to handle mutable data and it’s pretty fast. Download the Clean system and you will say wow! (it features some arcade games as samples)
There is also the SML familly, probably OCaml being the most popular, which also offers very good performance and the list goes on and on. After developing (with a team) a suit of java apps of more than 130,000 lines of code, I know where the “object” way of thinking starts to crack.
I had a website that used ASP; changed it to PHP; changed it to Java but not deploy yet. My website is currently using PHP. I also have worked with Java and Coldfusion for a few years in a large scale company. Here is what I am thinking of the future programming languages. For web applications PHP will probably be the number one for small to medium scale companies since it is relatively easy and fast development. Java has steeper learning curve ( some where from 6 months to 2 years) and longer development time.
However, Java is not just limited to web applications. There are many in house applications that PHP can not do. That being said, students should ask themselves which working environment they would like to work with. Do you want to work with just web development, medium structure company, lot of opportunities for advance, lower salary, then go for PHP; by luck you find a start up company and grow with it. If you want to work for big company, well defined structure, limited opportunity, good benefit, high paying salary then go for Java, you can not be millionaires over night but not go to bed hungry either. Both languages will be around for a long time. Good luck. Loc
I agree with Carlos, but I’d like to take his point further by drawing your attention to Scala.
http://bymyreckoning.com///index.php/2007/02/07/after_java_the_next_big_thing
Scala is effectively a functional upgrade to Java. This has the advantage that the syntax is familiar to Java c++ programmers, but iut has many of the feature’s of functional languages like Haskell and R=Erlang. In particular it adds the Actor concurrency model from Erlang.
There is an eclipse plugin and a framework called ‘lift’ in the early stages of development.