About the Author

Chris Shiflett

Hi, I'm Chris, a web developer and a founding member of Analog. I live and work in Brooklyn, NY.


Gosling Didn't Get the Memo

I just read a smart critique of James Gosling's recent interview. It's worth a read.

For those who don't have the time or inclination to read the interview, it's basically the creator of Java trying to explain why PHP, Perl, Python, and Ruby do not pose a serious threat. One of his first statements is, "PHP and Ruby are perfectly fine systems, but they are scripting languages." In the critique I just mentioned, Ryan Tomayko dismantles this argument with a style reminiscent of The Daily Show:

James pulled this directly out of "Effective Java Advocacy Beans," section 6.8.3 "Dealing with questions on dynamic languages."

Ryan provides an excerpt:

First, call anything not statically compiled a "scripting language." Attempt to insinuate that all languages without an explicit compilation step are not to be taken seriously and that they are all equivalently shitty. Best results are achieved when you provide no further explanation of the pros and cons of static and dynamic compilation and/or typing and instead allow the reader to simply assume that there are a wealth of benefits and very few, if any, disadvantages to static compilation.

The entire response is both entertaining and informative.

Note: Jeff Moore also provides some good commentary on the interview.

About This Post

Gosling Didn't Get the Memo was posted on Mon, 13 Mar 2006 at 13:29:40 GMT.

5 Comments

1. Ivo Jansch's GravatarIvo Jansch said:

I think the 'scripting language' is not so much about 'to compile or not to compile', but the major thing here is 'persistence'.

In a java environment, be it a Swing application or servlets or beans, you have native persistence. Objects persist over requests, and this has its own set of disadvantages.

The major drawback of PHP is in its very nature that for each request, a script is reexecuted. Ofcourse we have sessions, of course we can serialize stuff, but those are basically workarounds for the lack of object persistency. (not to mention that persisting objects in sessions only works per user).

PHP5 has better OO support than PHP4, but in my opinion, true OO is only useful when the objects persist after a page completes.

Mon, 13 Mar 2006 at 17:28:40 GMT Link


2. Ivo Jansch's GravatarIvo Jansch said:

Sorry, I meant to say 'advantages and disadvantages' where I said 'disadvantages'

Mon, 13 Mar 2006 at 17:29:41 GMT Link


3. Peter Pistorius's GravatarPeter Pistorius said:

Good comments, didn't know that about Java ...

Mon, 13 Mar 2006 at 18:16:21 GMT Link


4. timvw's Gravatartimvw said:

I still have to see a good formal definition of "scripting language" and especially how it's different from a good formal definition of "programming language"... (Untill then i find it useless to make the difference and i'll call them all programming languages.)

Mon, 13 Mar 2006 at 19:22:38 GMT Link


5. John Collins's GravatarJohn Collins said:

Is persistence always a good thing, especially for a default behaviour? There are instances where it is required, for example for a web daemon or bot, but just for a normal web page/servlet?

I do not think that persistence is a required as you make out, as it is not memory efficient. Why would you want your objects to remain in memory, unless you were sure that they were going to be used again? If they are not required, it is just using up memory on the server.

Java is very weak on the web server front, especially when you factor in the need for constant restarts every time you change the application. This need for restarts when combined with object persistence makes Java a really bad option for commercial, shared web hosting, as the administrator overhead is massive.

PHP needs a persistence mechanism for those instances when it is required, but I don't believe that it should ever be the default behaviour for objects.

Mon, 20 Mar 2006 at 09:18:09 GMT Link


Post A Comment

Personal Details and Comment

Style Guide

Line breaks are converted to paragraphs. Also use:

  • <a href="" title="">text</a>1
  • <em>text</em>
  • <blockquote><p>text</p></blockquote>
  • <code>2  <?php  if ($foo) {      $foo = TRUE;  }  ?></code>
  1. Note: <code> can be used inline (e.g. in paragraphs) or in a block as shown. Include whitespace and newlines in blocks.

Please enter Chris (my first name) below. This is a primitive spam prevention technique, and I apologize for the inconvenience.

Preview and Submit

Upcoming Talks

ConFoo

10 - 12 Mar 2010

At Hilton Montréal Bonaventure, Montréal, Canada.

South by Southwest

12 - 16 Mar 2010

At Austin Convention Center, Austin, Texas.

Dutch PHP Conference

10 - 12 Jun 2010

At TBD, Amsterdam, Netherlands.

O'Reilly Open Source Convention

19 - 23 Jul 2010

At Oregon Convention Center, Portland, Oregon.

New Comments

liukang wrote:

I have problem with this example. In my php.ini magic_quotes_gpc is off so i'm using only addsla...

Posted in addslashes() Versus mysql_real_escape_string()
RyanTheGreat wrote:

Well, I'm not Chris, but I will do my best to address the questions raised in the comments by Ian...

Posted in Security Corner: Cross-Site Request Forgeries
Chris Shiflett wrote:

Thanks for the kind words, Simon. I'm glad you liked the tutorial. In case it's helpful, here'...

Posted in Webstock
Chris Shiflett wrote:

Hi Robin, I plan to post something about it, but it's going to be hard to express everything i...

Posted in Webstock
Simon Mahony wrote:

Hi Chris, I really enjoyed your workshop on the Evolution of Security at Webstock. I think I g...

Posted in Webstock

Browse Comments


Work and Books

Analog Essential PHP Security HTTP Developer's Handbook