Tuesday, December 12, 2006

Java 6 and Scripting

Sun released Java 6 yesterday. Of particular interest (to me at least) is the explicit direct support for scripting languages as a "core" part of Java (more or less - of the Java 6 edition "package" at least...).

Though I intuitively understand it (and believe it), I've still yet to see a reasoned justification as to why we need scripting languages? Is the compiler that much a barrier to productivity?

Otherwise - some nice additions to Java 6 (especially the XML APIs, which, like E4X, are critical for easing web services development - nice), but despite them, I think Java 6 moves it further away from a credible client-side computing platform - too much increasing complexity, which creates distribution issues. I think Microsoft's mini-CLR is a better step in that direction. Open source and mobile/phone development may change that for Java, but I think a variety of factors will continue to impede relevance in that space.

Labels: ,

14 Comments:

Anonymous Anonymous said...

It's important to identify what constitutes a "scripting" language. I don't think the compiled/interpreted distinction is of much importance. There are very few "real" interpreters. Most real interpreted language implementations include a compilation phase to some internal intermediate form (if only in memory) that is evaluated by a simple VM.
I think the real determining factor is one of static typed vs. dynamic typed languages. So I guess the real question that should be posed, “Does static typing in languages hamper productivity?”

My own answer to this is yes and no… and it depends… heh. I mean certain things like JSON/Javascript, as a serialized wire format demonstrates the power and flexibility of dynamic typing. But getting runtime type errors for things that would have been caught through static type checking is sort of lame as well. I think in the end you want a mix, encourage and support static typing but, allow for language integrated dynamic types for their power and expressiveness.

-JR

December 12, 2006 11:26 PM  
Blogger Trekker said...

"Java 6 moves it further away from a credible client-side computing platform - too much increasing complexity, which creates distribution issues."

Chris Oliver has some neat demos of client-side JSR-223 compliant scripting with what he calls "F3". Several of them are "equivalents" of AJAX and Flash demos. But still I agree with you client side Java, with or without scripting, is slooww...I think mostly the JVM startup time and foorprint are to blame...

December 13, 2006 8:26 AM  
Blogger Sree Kotay said...

Hey JR - so... not sure I agree (entirely). That is, seems like there's other things (aside from the obvious, like sand-boxing) - but i wouldn't say that static typing is the key differentiator; otherwise variants and the like would be more popular.

seems more a tool/authoring chain thing?

December 13, 2006 7:00 PM  
Anonymous Anonymous said...

So not sure if sand-boxing would be a differentiator either (obvious or not :P). Both Java and the CLR ,as examples, support compiled languages with provisions for sand-boxed execution environments.

But y... perhaps the real discriminating factor comes down to "do I run the source code" or "do I run some intermediate or native compiled form". Which does come down to a toolchain/authoring thang. Since the compilation phase can ALWAYS be hidden inside the toolchain giving the feel (for all intensive purposes) of a "scripting language" regardless of the language. Unless we go back to talking about the actual language features that characterize scripting languages.

-JR

December 13, 2006 9:48 PM  
Blogger Sree Kotay said...

no - I agree with all that. What I meant was - looking at that way, why did Sun feel like they needed to add such robust and broad scripting support to *JAVA*?

Maaaaaybe some small percentage was about end users scripting tools, but I have to imagine the vast majority was "source" developers. Its already (reasonably) portable, has a distribution format, etc. etc.

Is it just a skills/language re-use thing? Some productivity gain? or...?

December 14, 2006 8:35 AM  
Anonymous Anonymous said...

So the way I see it... They added it for the same reasons that Microsoft defined the IActiveScript interface. To have an extensible plugin framework for "embedding" scripting languages into an application written in Java. So certainly targeted towards developers that are writing apps like browsers or webservers that want to integrate scripting languages in some extensible way.

-JR

December 14, 2006 9:00 AM  
Blogger Sree Kotay said...

Hm - I get that; but why do people want scripting languages? For Java apps, end user/client-side mods have got to be small...

December 17, 2006 11:27 PM  
Anonymous martin said...

I think I tend to agree with the extensibility argument.

As for why then use a scripting language? Low entry cost for the developer? Just the app running your script, your knowledge of JavaScript/Python/insert-language-here and a text editor?

Cuz adding scripting language support for plugins/extensions to your app is the new black?

December 21, 2006 12:48 PM  
Blogger Sree Kotay said...

<<
Cuz adding scripting language support for plugins/extensions to your app is the new black?>>

lol - yeah, sometimes I think that's the real reason...

December 21, 2006 1:13 PM  
Anonymous <a href="http://www.xanga.com/buy_levitra">Buy Levitra</a> said...

Great article! Thanks.

August 18, 2007 6:43 PM  
Anonymous <a href="http://phentermine1.eamped.com">Phentermine</a> said...

Thanks for interesting article.

August 19, 2007 12:10 AM  
Anonymous <a href="http://courses.cvcc.vccs.edu/ENG112_GROSS/_Chat_Room/000008fd.htm">Anonimous</a> said...

Excellent website. Good work. Very useful. I will bookmark!

September 10, 2007 4:14 PM  
Anonymous Anonymous said...

runescape money runescape gold runescape money runescape gold wow power leveling wow powerleveling Warcraft Power Leveling Warcraft PowerLeveling buy runescape gold buy runescape money runescape items runescape gold runescape accounts runescape gp dofus kamas buy dofus kamas Guild Wars Gold buy Guild Wars Gold runescape accounts buy runescape accounts runescape lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold runescape money runescape power leveling runescape money runescape gold dofus kamas cheap runescape money cheap runescape gold Hellgate Palladium Hellgate London Palladium Hellgate money Tabula Rasa gold tabula rasa money 陈楚生 压力开关 压力传感器 流量开关 流量计 液位计 液位开关 温湿度记录仪 风速仪 差压开关 可燃气体检测仪 过滤器 强磁水处理器 自清洗过滤器 自动反冲洗过滤器 保鲜棕榈树 棕榈树

November 15, 2007 11:37 PM  
Blogger runescape gold said...

runescape money runescape gold runescape gold runescape money buy runescape gold buy runescape money runescape money runescape gold wow power leveling wow powerleveling Warcraft Power Leveling Warcraft PowerLeveling buy runescape gold buy runescape money runescape itemsrunescape accounts runescape gp dofus kamas buy dofus kamas Guild Wars Gold buy Guild Wars Gold lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold runescape money runescape power leveling runescape money runescape gold dofus kamas cheap runescape money cheap runescape gold Hellgate Palladium Hellgate London Palladium Hellgate money Tabula Rasa gold tabula rasa money Tabula Rasa Credit Tabula Rasa Credits Hellgate gold Hellgate London gold wow power leveling wow powerleveling Warcraft PowerLeveling Warcraft Power Leveling World of Warcraft PowerLeveling World of Warcraft Power Leveling runescape power leveling runescape powerleveling eve isk eve online isk eve isk eve online isk tibia gold Fiesta Silver Fiesta Gold




runescape money runescape gold wow power leveling


棕榈树
VI设计
画册设计
血管瘤
肝血管瘤
音乐剧
福卡
防静电地板
美国留学
留学美国
电阻器
不锈钢电阻器
频敏电阻器

睡眠呼吸机
伟康呼吸机
呼吸机
无创呼吸机
家用呼吸机
呼吸机的使用

北京消化系统疾病
北京心脑血管疾病
北京肾病
北京中医儿科
北京针灸减肥
针灸减肥
北京糖尿病
北京疼痛病
北京类风湿

April 03, 2008 5:50 AM  

Post a Comment

Links to this post:

Create a Link

<< Home