Tuesday, August 21, 2007

This is your father's Java

Steve Yegge of Stevey's Blog Rants was a keynote speaker at O'Reilly's OSCON recently, and spoke on branding. You can view his keynote address here. It runs about 25 minutes, and is pretty interesting.

One of his supporting points, though, really kinda caught my attention. He observed that within just a couple of years from now the new entrants into the workforce will have been born after the creation of Java. To them, Java is going to be the language their Dad uses, so it's OLD. They're going to want to program using the latest, coolest, language.

So what language is that? Steve believes the NBL (Next Big Language) is JavaScript 2.0, which he offhandedly revealed at the end of his talk. 2.0 is still undergoing standardization, but I found a paper that discusses its design goals. I'm still reading through and studying it--and I don't know, maybe it's because of my dinosaur upbringing--but I can still see developers getting into a world of hurt with it, in spite of the effort being made to reign it in a bit and address the worst of its perversities (like being allowed to call functions with the wrong number of arguments).

Once I'm done with the paper and trying out some stuff, I'll try to post some thoughts.


Dan said...

I don't really care that much about about programming languages anymore. There as so many excellent programming languages. Pick the right language for the job and move on. A new programming language is not difficult to learn once you have basic programming skills. What takes time to learn is: the business problems you are trying to solve, large infrastructure libraries of reusable components, etc. I learned Perl in 7 days in 1997 and programmed a great system with it in 15 months that replaced 3-4 software engineering positions. It was a great experience.

It's important to not get stuck in the Golden Hammer anti-pattern -- one language to die for. Pick the best tool for the job.

I am language and tool agnostic. I am system agnostic. Pick the best thing based on your business drivers and move on. It's best to be unbiased in your approach.

Marc said...

Programming language development has really gotten short shrift in recent years. So much of the software engineering research of late has been focused on increasing the ability to specify more and more detail in pursuit of the goal of system architects and system engineers specifying the entire system and then just clicking a button to generate all the code for it, e.g., Executable UML.

All I see with programming language evolution is increasingly undisciplined, ad hoc accretion of features. In other words, the "excellent programming languages" are decaying.

The implementation language is where the rubber meets the road, and it's no longer sexy, and so the hackers are taking over language design. While the languages are getting more powerful, you have to be a language hacker to exploit that power, and use it correctly.

Being agnostic about programming language and tools is like being agnostic about your auto mechanic. Do you, or should you, really not care about what the mechanic does so long as your car "runs" after coming out of the garage?

Dan said...

You missed the point. Pick the best tool for the job. I don't care whether it's Ruby on Rails, Java, Ada, Perl, or C++.