On The Insider: Britney's Bikini-Clad Top 10
BNET Business Network:
BNET
TechRepublic
ZDNet

January 10th, 2006

Gosling and general purpose languages

Posted by John Carroll @ 9:10 am

Categories: General

Tags:

James Gosling learned a lesson in a recent blog post on the subject of scripting vs. strongly typed general purpose languages, and that is that readers of technology news are evil. Yes, I mean you. You guys make that scene where Steve Martin goes off on John Candy in Planes, Trains and Automobiles look like a scolding at a kindergarten. Hey, I expect it with me. I work for the Devil. But, people were telling James Gosling, inventor of the Java programming language and generally acknowledged smart guy, that he had to do more research on programming languages before he opened his mouth. Is nothing sacred?

I have to agree with Gosling’s point. You’ve heard the analogy that if you have a hammer, everything looks like a nail. Well, too often, people who are expert in a scripting language think that it’s a good idea to do EVERYTHING with it. A work colleague of mine from way back when was a huge fan of Perl, and he proceeded to make an entire web site, including business logic, in the scripting language. It was an impressive feat, and to this day, I have never seen quite so much Perl in one place. Unfortunately, the code was also a slow-performing, impossible-to-maintain hairball. Suffice to say, the client was not happy with him.

I’m an object fanatic, and I really think it’s better to do as much as possible in a more strongly-typed, general purpose language like Java. Scripting code has it’s place, just as the tape on a Christmas present has it’s place. Tape holds everything together, just as scripting languages, properly used, are the glue that holds together business logic written in more rigorously typed languages. When you start to wrap your presents entirely in tape, though, you know you’ve gone off the Christmas deep end.

Since I find native code development to be reminiscent of "Member’s Only" Jackets and 80s hair bands, I’m also a fan of "virtual machine" or "managed" environments. They lead to safer, less buggy code due to the addition of runtime services that prevent common problems by managing memory, checking buffer lengths automatically, and providing better error handling, just to name a small fraction of the things VM/Managed environments provide. That’s why I consider it essential for modern backend code - and even hairy bits of client code - to be written in either Java or .NET.

That being said, I also agree with Dana Gardner’s post yesterday about what was not said in a follow-up interview to Gosling’s blog post, which is an elucidation of a previous point I made last December.  Java’s growth is slowing because a new ecosystem is developing around open source tools, and due to the proprietary nature of Java, Java has missed that boat. Of course, what Dana doesn’t talk about is why profit-oriented companies should give away intellectual property, particularly when other areas of its business are hitting the shallows, but that’s a question that applies to the open source development model in general.

Still, I don’t think Dana proposes a viable alternative to the strongly-typed, general purpose language. Frankly, you don’t want to do everything in a scripting language. If that piece of the puzzle isn’t filled by Java in the Unix-inspired open source ecosystem, then what does? C++? I sure hope not.

John CarrollJohn Carroll has delivered his opinion on ZDNet since the last millennium. Since May 2008, he is no longer a Microsoft employee. He is currently working at a unified messaging-related startup. See his full profile and disclosure of his industry affiliations.

Email John Carroll

Subscribe to A Developer's View via Email alerts or RSS.

  • Talkback
  • Most Recent of 57 Talkback(s)
Red Hat is a project?
If tools can hold down the cost of a successful project, are you going to object to tools?

Also, as has been observed, a company profiting from giving advice on how to make software work is not... (Read the rest)
Posted by: Anton Philidor Posted on: 01/12/06 You are currently: a Guest | | Terms of Use
Hate to agree with you  Roger Ramjet | 01/10/06
Regarding .NET  John CarrollZDNet Moderator | 01/10/06
Something stinks  Robert Crocker | 01/11/06
Define core  John CarrollZDNet Moderator | 01/11/06
I would think CORE was more extensive...  Robert Crocker | 01/11/06
Do you understand Proprietary?!?  Robert Crocker | 01/10/06
Yes, the old debate  John CarrollZDNet Moderator | 01/10/06
Class vs. Instance  Yagotta B. Kidding | 01/10/06
A useless distinction  John CarrollZDNet Moderator | 01/10/06
Mind the P's and Q's  Edward Meyers | 01/11/06
It's about the tools.  Anton Philidor | 01/10/06
Good points  John CarrollZDNet Moderator | 01/10/06
Pick two  Yagotta B. Kidding | 01/10/06
Yes....  John CarrollZDNet Moderator | 01/10/06
Try again, John  Yagotta B. Kidding | 01/10/06
I'm sorry, but...  John CarrollZDNet Moderator | 01/10/06
The Problem Is  Edward Meyers | 01/11/06
A Couple of things  Roger Ramjet | 01/10/06
No...  John CarrollZDNet Moderator | 01/10/06
Doing the wrong thing well  Yagotta B. Kidding | 01/10/06
So, on that count...  John CarrollZDNet Moderator | 01/10/06
As expected  Yagotta B. Kidding | 01/10/06
Re: As expected...  John CarrollZDNet Moderator | 01/10/06
It's not about the ease of coding!  Tsu Dho Nimh | 01/10/06
It's not, but it certainly helps  seosamh_z | 01/11/06
Which is it, Anton?  Yagotta B. Kidding | 01/10/06
Programming with hammer, nail? Oh! You mean punch cards.  Anton Philidor | 01/10/06
Straw man  Yagotta B. Kidding | 01/10/06
Seeking advantage.  Anton Philidor | 01/10/06
Re: Seeking advantage.  none none | 01/11/06
Red Hat is a project?  Anton Philidor | 01/12/06
Not just about programming tools  jorwell | 01/11/06
Careful...  Anti_Zealot | 01/11/06
Why  Yagotta B. Kidding | 01/10/06
Simple rule.  Anton Philidor | 01/10/06
As noted, Anton,  Yagotta B. Kidding | 01/10/06
Making money  Anton Philidor | 01/10/06
The Sun and the Long Night  Yagotta B. Kidding | 01/10/06
Letting go...  Anton Philidor | 01/10/06
Grave Furnishings  Yagotta B. Kidding | 01/10/06
Giving up the ghost  Anton Philidor | 01/10/06
Re: Grave furnishings...  John Le'Brecage | 01/10/06
RE: ZDStyler  Yagotta B. Kidding | 01/11/06
Re: re: ZDstyler...  John Le'Brecage | 01/11/06
RE[3]: zdstyler  Yagotta B. Kidding | 01/11/06
re:[4]: ZDstyler...  John Le'Brecage | 01/11/06
It all fails on some level.  John Le'Brecage | 01/10/06
In other words  Yagotta B. Kidding | 01/11/06
Coding, "the easy part"  Anton Philidor | 01/11/06
Not at all...  John Le'Brecage | 01/11/06
Looking for gems.  Anton Philidor | 01/11/06
Programming is simple  Yagotta B. Kidding | 01/11/06
When coders code.  Anton Philidor | 01/11/06
My take...  John Le'Brecage | 01/11/06
Assuming the worst.  Anton Philidor | 01/11/06
Moving on from objects  jorwell | 01/11/06
Disparaging Scripting Languages  dave_cross | 01/11/06

What do you think?

SponsoredWhite Papers, Webcasts, and Downloads

advertisement

Recent Entries

Top Rated

Archives

ZDNet Blogs

White Papers, Webcasts, and Downloads

SmartPlanet

  • Thought-provoking progressive ideas on diverse topics that intersect with technology, business, and life, and matter to the world at large. Visit SmartPlanet
  • More from IBM
  • Innovate your business' process model, play against the market, compete against others on our scoreboards and WIN! Try INNOV8 2.0: A BPM Simulator
  • Enabling Real-World Business Transformation through IBM Service Management Read the EMA Analyst Report
Click Here