Java vs Dynamic Languages: Sun's James Gosling "Didn't Get The Memo," Says Blogger Ryan Tomayko
'One year ago, this type of behavior could be attributed to a lack of documentation and discussion on these issues,' says Ryan Tomayko, referring to James Gosling's recent dismissal of PHP and Ruby as 'scripting languages' with 'really serious scaling and performance problems.' But no longer, Tomayko argues.
Reader Feedback: Page 1 of 2
#16
Marcus commented on 8 Jan 2008
After all, we all know PHP can be used to write any kind of full featured servers, including a web server.
OPS, Php is not multithread.
Suck =/
#15
m commented on 3 Apr 2006
The distinction of "java vs 'dynamic' languages' is misleading. Java is also 'dynamic' because it uses dynamic, late binding (between invocation and implementation) at run-time. The more important differences here are whether a language is strongly typed and whether a language is a 'scripting' language or not. Strongly typed languages validate invocation parameters against declared parametric signatures - a general purpose feature that is known to help catch errors earlier in development. A weakly typed language can be easier to get up & running without having to fully flesh out one's object/type models, but can be vulnerable to unexpected runtime results that are hard to debug. A 'scripting' language is a language whose compilation unit consists of a discrete segment of source code (i.e. a statement) that is relatively small compared to a complete logical or source module. A 'compiled' language is one whose compilation unit corresponds to or exceeds the scope of complete logical or source modules. Although most scripting languages evaluate just prior to execution, that is not necessarily always the case. However, the scope of the compilation unit has many effects on the capabilities and behavior of the language. A scripting language can literally have subsequent lines of source in a given source stream changed 'on the fly'. On the other hand, a compiled language can be analyzed and optimized with regard to a larger scope of the source, resulting in large performance gains. Both models have their place in the world.
#14
Tuomas commented on 20 Mar 2006
Do you have seen JASCO language (see: http://ssel.vub.ac.be/jasco/ )? It is like a dynamic aspect *java* language, which has many good sides of ascpetj, but has many more, dynamic properties. Does somebody done something commersiell with JASCO?
#13
Matt L. commented on 19 Mar 2006
Here is how I would define a scripting/dynamic language: a language that allows developers to quickly write code by deferring bug discovery until runtime instead of compile time. If your goal is to get software up and running quickly, then perhaps a scripting/dynamic language is the right answer. However, software costs are primarily driving by quality and maintenance. It is well established that the cost of fixing bugs increases dramatically the later they are found. Compiled languages allow an upfront investment to be made in terms of quality and maintainability. In my view, this is the primary benefit of using a compiled language.
#12
David J. commented on 18 Mar 2006
I recently learned that the second "round" of a "debate" is for each person to criticize his/her own arguments.
Also, being an experienced software engineer with a B.S. degree in Computer Science, and being having practical programming experience using C, C++, Java, SmallTalk, UNIX, Objective-C, AppleScript, Perl, and PHP, I find myself to be an exception to Ryan Tomayko's "mild accusation" (I mean that seriously) that those who like Java were somehow "lured" into it and never explored other technologies. (I believe that's what he said.)
Concerning the term: "Dynamic Languages": I have never described certain "languages" that instruct a "Turing Machine" as "dynamic". I was taught that that certain "computer languages", for lack of a better term (i.e.: English, French, Japanese, etc.), ran on a "runtime model".
Exception - (First: Pre-qualifying my possible ignorance here.) If a program is written, then compiled, and then statically linked, I do not believe it requires a "runtime model". C and C++ would such examples- thus the C++ "fragile base class problem".
However, I always include the term "runtime model", when describing the 'dynamic languages': "dynamic computer languages with a runtime model". The "runtime model" provides 'linking' during "runtime" instead of "compile"/"build" time. There are pros and cons to each.
One last thing: I do agree that there is a difference between "Programming Languages" and "Scripting Languages".
Sincerely,
David
#11
Jasen Halmes commented on 17 Mar 2006
I just sat through a presentation that included a description of Sun's new scientific programming language Fortress. It is described as a compile on demand language, no byte code. So basically the future of programming languages according to sun is a scripting languge.
#10
Gary Renner commented on 17 Mar 2006
I agree with Gosling almost 100%. We have a glut of scripting languages and they "do" get their simplicity at the expense of general purpose features like strong type checking and strong exception handling. Web oriented scripting languages "can" be used for other purposes in the same way that SQL can be used to write non-database applications. But why go there? The problem with the proliferation of languages is that it divides the workforce and wastes their time re-writing applications in new languages. If we want special purpose simplicity - we should use graphical application generators.
#9
Paul commented on 17 Mar 2006
Insightful, funny, relevant. IMHO, Mr Gosling is a living legend, but he's also got something to sell and it skews his message sometimes. I WISH I could get my employer to take Dynamic Languages seriously, but the corporate world is a little backwards, and managers typically out-of-the-technology-loop, so static is often the order of the day. For now.
#8
Mike Mosiewicz commented on 17 Mar 2006
Just one note on scallability. Most php-scales-well rants based on share-nothing horizontal scallability are fine unless you hit a problem that is related to modifying/storing information not only reading. In such case the story is totally different. And it's the fuel that drives development of so called enterprise architectures.
#7
alderete commented on 17 Mar 2006
I don't understand what all the fuss is. Who cares what James Gosling thinks? He's an obviously interested party, with a party line to spew.
There are lots of industry luminaries, all spewing their corporate lines.
The thing is, as you point out in your article, the knowledge that this is spew is well-documented. Either now or in months or in years, everyone who can have their mind opened will have their mind opened, just by the current motion and inertia that platforms like Rails and PHP possess today.
By arguing with Gosling, it's making his words more legitimate. Like there's a debate here. There's no need for debate. We don't need to prove him wrong with articles and blog posts. We just need to keep successfully building real, working systems using the tools that we feel are appropriate.
As the current Nike commercial (running during college basketball) says, "Let your game do the talking."
#6
Mike commented on 16 Mar 2006
Ok since your beating gosling up, you really should know the facts as well, for instance Ruby really doesn't scale well and it doesn't support unicode so most web dev is out. Its a nice tool language but not for real apps, sure the mom and pop usa based shops it will work for a bit but get real. I think all of the languages out there are useful, they are all being used...none of them do it all nor should the always be used. So please stop the childish rants about Java and use what you want, if you don't like something leave it alone
#5
Anjan Bacchu commented on 15 Mar 2006
hi there,
James Gosling did a lot of work on LISP to build Emacs.
I guess there's a perspective of someone who's done a whole breadth of applications using Java. We all know that Ruby/Python can be used for 80% of the applications that Java can be used. But we know (from the 80/20 rule) that the only 20% of the journey is done when you say that 80% work is done. The last 20% takes 80% of the effort. If you're happy with the 80% work, fine.
When he specifically says that breadth is NOT there in the other languages, you should NOT jump to conclusions about his motives. If you ask Bjarne Stroustrup about C++, he is known to defend C++'s successes in a wide area of applications (which is wider than Java's). Gosling has higher motivation than Bjarne ever did to keep his created language going but at the same time we should not put ignorance and ill-motives.
Even though one tends to accept/recognize when the trade press like to sensationalize such things, I feel terrible when a PhD/M.S talks like a Slashdotter/high schooler/"Digg"er. You expect more from people who have an M.S - after all they don't go to such schools just to learn Compilers.
BR,
~A
#4
Harry Fuecks commented on 15 Mar 2006
Perhaps it's time to nail down the term scripting language - my vote goes for "Anything with a virtual machine is scripting language" - then James might not feel so left out.
#3
George commented on 15 Mar 2006
What is a scripting language? I mean, what's the bare bones of it, technically speaking? It is a language executed as script. That means it is called (from somewhere), then loaded, executed and ends, that's all, and what concerns me, I'm perfectly fine with that. It's the same for me if it is interpreted, pre-compiled into P-code (or similar) or executable, CGI or Fast-CGI, module or stand-alone, as long as it behaves like intended I'll be fine.
So why all the fuss about it? Why does Gosling mention it anyway, why are so many users/programmers upset with the term "only scripting"?
I think the main reason is that there are different programming philosophies behind the kind PHP (Ruby, Perl etc.) on the one side is used in programming and Java is on the other side. That's all, simple as that. Whereas a "scripting" language is executed and dies afterwards (which has its advantages like rapid development, ease of deployment etc.), a "compiled" language does not (need to have, so it may use caching/pooling/memory objects much more efficient and has not to rely on backend systems and their performance that much).
In my opinion that was what Gosling meant saying that scripting languages "[...] have really serious scaling and performance problems." Okay, distilling all these into such a little sentence like Gosling did has a taste of FUD, but nevertheless Gosling may have relied on the fact that people who read his interview are a little bit technically educated (and even I did not point out anything that new until now either).
So shame on Gosling, he could have made his point more clear on that. But on the other hand I do not have to read "Effective Java Advocacy Beans" section 6.8.3 to see another kind of FUD raising on.
And of course I could do application programming using scripting languages.
I can do something very similiar to scripting in compiled languages too, using JSP or ASP or whatever...I do not see the point.
Just my $0,02
#2
George commented on 15 Mar 2006
What is a scripting language? I mean, what's the bare bones of it, technically speaking? It is a language executed as script. That means it is called (from somewhere), then loaded, executed and ends, that's all, and what concerns me, I'm perfectly fine with that. It's the same for me if it is interpreted, pre-compiled into P-code (or similar) or executable, CGI or Fast-CGI, module or stand-alone, as long as it behaves like intended I'll be fine.
So why all the fuss about it? Why does Gosling mention it anyway, why are so many users/programmers upset with the term "only scripting"?
I think the main reason is that there are different programming philosophies behind the kind PHP (Ruby, Perl etc.) on the one side is used in programming and Java is on the other side. That's all, simple as that. Whereas a "scripting" language is executed and dies afterwards (which has its advantages like rapid development, ease of deployment etc.), a "compiled" language does not (need to have, so it may use caching/pooling/memory objects much more efficient and has not to rely on backend systems and their performance that much).
In my opinion that was what Gosling meant saying that scripting languages "[...] have really serious scaling and performance problems." Okay, distilling all these into such a little sentence like Gosling did has a taste of FUD, but nevertheless Gosling may have relied on the fact that people who read his interview are a little bit technically educated (and even I did not point out anything that new until now either).
So shame on Gosling, he could have made his point more clear on that. But on the other hand I do not have to read "Effective Java Advocacy Beans" section 6.8.3 to see another kind of FUD raising on.
And of course I could do application programming using scripting languages.
I can do something very similiar to scripting in compiled languages too, using JSP or ASP or whatever...I do not see the point.
REG CROWDER wrote: It also makes the point that people who market things should think about who has money to spend, now that the US and UK are sliding into a bit of a recession.
I pounded London marketers over the head on this issue at this URL:
http://www.utalkmarketing.com/Blogs/DisplayBlog.aspx?BlogID=286
REG CR...
Unknown wrote: Nice article! I think if you add some examples to each of the tools you were mentioning in the article will help the reader to try the concepts you mentioned here.
Duty Editor wrote: > queZZtion commented on the 11 Oct 2006:
>
>> How come this article makes no mention of
>> financial terms of the deal??
Financial terms of the deal were not disclosed at the time of writing.
linux news desk wrote: Collax named Christopher Ackley to lead its U.S. Channel Sales team. Collax works with solution providers to deliver a suite of open source applications to help run small and growing businesses, including security, networking, and communication with no Linux knowledge required.
enterprise open source news desk wrote: Mertech Data Systems, provider of ISAM to SQL Database Connectivity (ISDBC) solutions has been notified by KEH Camera Brokers that Flex2SQL was successfully used to quickly transition from a proprietary DataFlex database to a MySQL database management system. Flex2SQL?s plug-in approach allows compa...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS