You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Clifton Brooks <cl...@gmail.com> on 2008/06/17 09:22:39 UTC

JRuby sucked up the bath water but left the baby behind.

Instead of binding Ruby to Java as in JRuby, or Python to Java as in Java,
we have to find a way to compile Ruby on Rails applications, .py files, and
PHPs into java servlets.

Although I adore programming in Java, most web developers simply find it too
difficult to learn.  They prefer PHP, RoR, and Python because all three are
easier to learn and use without understanding.  These languages don't scale
as well and sacrifice run time efficiency for development time efficiency.

The greatest advantages of servlets include:
1.  The fact that they parse requests and generate responses through method
calls instead of operating system processes or Fast CGI.
2.  JNDI connectivity, particularly database connection pooling.
3.  WORA and platform independence.  (More a factor compared to .NET than
the open source technologies.)

Sadly, JRuby and Jython are just interpreters written in Java and they run
more slowly than the original binary interpreters.

If, instead of interpreting JRuby, PHP, and Jython, Tomcat, or some
extensions for it, could compile programs in these languages into java
servlets, then all of the advantages of the Java world will instantly become
accessible to these popular languages.  This suggestion is analogous to the
.NET model which compiles any language into Windows only byte code.  Here,
any language compiles to platform independent, Java bytecode.

I love Java as a language, and almost always prefer to develop in it, but
maybe it's greatest virtues aren't syntax and grammar.  Most web application
developers prefer PHP for reasons similar to those which make RoR
appealing.  However, the technologies underneath these languages don't
measure up to the JVM and Tomcat or other Servlet containers.  This causes
all sorts of scalability problems, and it slows down the entire internet.

When and how can we grant Java infrastructure to PHP developers?  When and
how can we compile PHP, Ruby, Python, and other web application languages
into Servlets?

Re: JRuby sucked up the bath water but left the baby behind.

Posted by Jim Manico <ji...@manico.net>.
I love this plan - a great way to turn all other languages into Java(tm) 
! :)

- Jim
> On Tue, Jun 17, 2008 at 9:22 AM, Clifton Brooks
> <cl...@gmail.com> wrote:
>   
>> If, instead of interpreting JRuby, PHP, and Jython, Tomcat, or some
>> extensions for it, could compile programs in these languages into java
>> servlets, then all of the advantages of the Java world will instantly become
>> accessible to these popular languages.  This suggestion is analogous to the
>> .NET model which compiles any language into Windows only byte code.  Here,
>> any language compiles to platform independent, Java bytecode.
>>
>>     
>
> http://jcp.org/en/jsr/detail?id=292
>
> You just have to wait till Java 7 :-)
>
> Leon
>
> P.S. On a personal note, you simply can't build a stable reliable
> enterprise software with duck typed language like javascript or ruby.
> And running scripts in tomcat doesn't make your scripts better.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>   


-- 
Jim Manico, Senior Application Security Engineer
jim.manico@aspectsecurity.com | jim@manico.net
(301) 604-4882 (work)
(808) 652-3805 (cell)

Aspect Security™
Securing your applications at the source
http://www.aspectsecurity.com


Re: JRuby sucked up the bath water but left the baby behind.

Posted by Damien B <ni...@gmail.com>.
Leon Rosenberg wrote:
> On Tue, Jun 17, 2008 at 9:22 AM, Clifton Brooks
> <cl...@gmail.com> wrote:
>> If, instead of interpreting JRuby, PHP, and Jython, Tomcat, or some
>> extensions for it, could compile programs in these languages into java
>> servlets, then all of the advantages of the Java world will instantly become
>> accessible to these popular languages.  This suggestion is analogous to the
>> .NET model which compiles any language into Windows only byte code.  Here,
>> any language compiles to platform independent, Java bytecode.
> 
> http://jcp.org/en/jsr/detail?id=292


I would have said http://jcp.org/en/jsr/detail?id=223 first, even if 292 
is seriously needed performance-wise. JSR 223 was previously planned for 
a grand release of PHP 5 + Java interop (look for early presentations of 
PHP 5 five years ago, running on a J2EE server was touted as "out of the 
box"). History knows it failed.

 >> If, instead of interpreting JRuby

JRuby is a bad example, since it's a JSR-223 implementation which is 
able to compile Ruby to Java bytecode (see 
http://wiki.jruby.org/wiki/JRuby_Compiler ).

 >> This suggestion is analogous to the .NET model which compiles any
 >> language into Windows only byte code.

Well, not really, the .NET model compiles to the CLI, which is portable, 
as long as you have the CLR for your target environment, so it's not at 
all Windows only.

Otherwise, and old page that comes up from time to time:
"Robert Tolksdorfs Programming Languages for the Java Virtual Machine"
http://www.is-research.de/info/vmlanguages/


 >> Although I adore programming in Java, most web developers simply find
 >> it too difficult to learn.  They prefer PHP, RoR, and Python because
 >> all three are easier to learn and use without understanding.

There is an even easier language to learn :-D
http://jbasic.sourceforge.net/

Damien B

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: JRuby sucked up the bath water but left the baby behind.

Posted by Leon Rosenberg <ro...@googlemail.com>.
On Tue, Jun 17, 2008 at 9:22 AM, Clifton Brooks
<cl...@gmail.com> wrote:
>
> If, instead of interpreting JRuby, PHP, and Jython, Tomcat, or some
> extensions for it, could compile programs in these languages into java
> servlets, then all of the advantages of the Java world will instantly become
> accessible to these popular languages.  This suggestion is analogous to the
> .NET model which compiles any language into Windows only byte code.  Here,
> any language compiles to platform independent, Java bytecode.
>

http://jcp.org/en/jsr/detail?id=292

You just have to wait till Java 7 :-)

Leon

P.S. On a personal note, you simply can't build a stable reliable
enterprise software with duck typed language like javascript or ruby.
And running scripts in tomcat doesn't make your scripts better.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: JRuby sucked up the bath water but left the baby behind.

Posted by Jim Manico <ji...@manico.net>.
You can not write enterprise-class, secure, web-centric software with 
PHP or RoR. The jury is still out on Python.

To gain the benefits of Java you would need to turn the PHP language 
into - Java. So far, all projects that try to spit out bytecode via a 
non-Java language have failed.

Writing enterprise-class software is difficult. There is no way around 
it. The idea of "running PHP on Tomcat" should be taken out back and 
executed Sopranos-style.

- Jim
>
> ----- Original Message ----- From: "Clifton Brooks" 
> <cl...@gmail.com>
> To: "Dev Tomcat" <de...@tomcat.apache.org>
> Sent: Tuesday, June 17, 2008 9:22 AM
> Subject: JRuby sucked up the bath water but left the baby behind.
>
>
>> Instead of binding Ruby to Java as in JRuby, or Python to Java as in 
>> Java,
>> we have to find a way to compile Ruby on Rails applications, .py 
>> files, and
>> PHPs into java servlets.
>>
>> Although I adore programming in Java, most web developers simply find 
>> it too
>> difficult to learn.  They prefer PHP, RoR, and Python because all 
>> three are
>> easier to learn and use without understanding.  These languages don't 
>> scale
>> as well and sacrifice run time efficiency for development time 
>> efficiency.
>>
>> The greatest advantages of servlets include:
>> 1.  The fact that they parse requests and generate responses through 
>> method
>> calls instead of operating system processes or Fast CGI.
>> 2.  JNDI connectivity, particularly database connection pooling.
>> 3.  WORA and platform independence.  (More a factor compared to .NET 
>> than
>> the open source technologies.)
>>
>> Sadly, JRuby and Jython are just interpreters written in Java and 
>> they run
>> more slowly than the original binary interpreters.
>>
>> If, instead of interpreting JRuby, PHP, and Jython, Tomcat, or some
>> extensions for it, could compile programs in these languages into java
>> servlets, then all of the advantages of the Java world will instantly 
>> become
>> accessible to these popular languages.  This suggestion is analogous 
>> to the
>> .NET model which compiles any language into Windows only byte code.  
>> Here,
>> any language compiles to platform independent, Java bytecode.
>>
>> I love Java as a language, and almost always prefer to develop in it, 
>> but
>> maybe it's greatest virtues aren't syntax and grammar.  Most web 
>> application
>> developers prefer PHP for reasons similar to those which make RoR
>> appealing.  However, the technologies underneath these languages don't
>> measure up to the JVM and Tomcat or other Servlet containers.  This 
>> causes
>> all sorts of scalability problems, and it slows down the entire 
>> internet.
>>
>> When and how can we grant Java infrastructure to PHP developers?  
>> When and
>> how can we compile PHP, Ruby, Python, and other web application 
>> languages
>> into Servlets?
>
> I dont know about the feasibility of this, some clever person can 
> figure it out, but there is definitely a market for PHP in tomcat.
> The question comes up in the user groups. I imagine there are 
> practical challenges to that and the half cocked Servlet solutions out 
> there seem to be reinventing PHP in JNI, and doing a fairly bad job.
>
> I was wondering if an extension to the Apache runtime would not be a 
> better way to go... APR + PHP_R kind of idea.
> And then just look for some cool but simple interop. Like a servlet 
> can forward to PHP, and visa versa.
> ie you can just use TC for your PHP, and you can get it integrated to 
> some degree with servlets.
> ... ie take two great technologies and bring them a little closer, not 
> a competitive product, just closer coop.
> Make servlets and PHP better bed mates. The idea is that as Apache PHP 
> is developed further, TC gets the leverage, with a few perks.
>
> "Damn thats a nice WIKI in PHP... I'm going to drop it into TC, add 
> the PHP_R engine to TC and forward requests to it from my servlet"... 
> something like that.
> If PHP starts a session in this env, servlets see it as well... so 
> theres a little engine overlap, but otherwise Apache TC are 100% compat.
> Bean passing with primitive types would add a creative dimension to it.
>
> JRuby is cool, but I feel if you want to write a powerful site all in 
> j script... well, you get what you made.
> I think that any leverage in that area will come from the JRE itself, 
> now that Sun is backing ruby, in the form of a JIT Script engine or 
> something like that in the JRE, so I think, not worth the investment. 
> The compilation of scripts to Java could first be attempted external 
> to TC... if they get it right, well its just a java class that TC can 
> use.
>
> Servlet + PHP as bed mates == most internet solutions
> Now that product like Netbeans are bringing in PHP editors, allowing 
> for hybrid solutions makes even more sense.
>
> Just a thought ;)
>
> --------------------------------------------------------------------------- 
>
> HARBOR : http://www.kewlstuff.co.za/index.htm
> The most powerful application server on earth.
> The only real POJO Application Server.
> See it in Action : http://www.kewlstuff.co.za/cd_tut_swf/whatisejb1.htm
> --------------------------------------------------------------------------- 
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>


-- 
Jim Manico, Senior Application Security Engineer
jim.manico@aspectsecurity.com | jim@manico.net
(301) 604-4882 (work)
(808) 652-3805 (cell)

Aspect Security™
Securing your applications at the source
http://www.aspectsecurity.com


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: JRuby sucked up the bath water but left the baby behind.

Posted by Johnny Kewl <jo...@kewlstuff.co.za>.
----- Original Message ----- 
From: "Clifton Brooks" <cl...@gmail.com>
To: "Dev Tomcat" <de...@tomcat.apache.org>
Sent: Tuesday, June 17, 2008 9:22 AM
Subject: JRuby sucked up the bath water but left the baby behind.


> Instead of binding Ruby to Java as in JRuby, or Python to Java as in Java,
> we have to find a way to compile Ruby on Rails applications, .py files, 
> and
> PHPs into java servlets.
>
> Although I adore programming in Java, most web developers simply find it 
> too
> difficult to learn.  They prefer PHP, RoR, and Python because all three 
> are
> easier to learn and use without understanding.  These languages don't 
> scale
> as well and sacrifice run time efficiency for development time efficiency.
>
> The greatest advantages of servlets include:
> 1.  The fact that they parse requests and generate responses through 
> method
> calls instead of operating system processes or Fast CGI.
> 2.  JNDI connectivity, particularly database connection pooling.
> 3.  WORA and platform independence.  (More a factor compared to .NET than
> the open source technologies.)
>
> Sadly, JRuby and Jython are just interpreters written in Java and they run
> more slowly than the original binary interpreters.
>
> If, instead of interpreting JRuby, PHP, and Jython, Tomcat, or some
> extensions for it, could compile programs in these languages into java
> servlets, then all of the advantages of the Java world will instantly 
> become
> accessible to these popular languages.  This suggestion is analogous to 
> the
> .NET model which compiles any language into Windows only byte code.  Here,
> any language compiles to platform independent, Java bytecode.
>
> I love Java as a language, and almost always prefer to develop in it, but
> maybe it's greatest virtues aren't syntax and grammar.  Most web 
> application
> developers prefer PHP for reasons similar to those which make RoR
> appealing.  However, the technologies underneath these languages don't
> measure up to the JVM and Tomcat or other Servlet containers.  This causes
> all sorts of scalability problems, and it slows down the entire internet.
>
> When and how can we grant Java infrastructure to PHP developers?  When and
> how can we compile PHP, Ruby, Python, and other web application languages
> into Servlets?

I dont know about the feasibility of this, some clever person can figure it 
out, but there is definitely a market for PHP in tomcat.
The question comes up in the user groups. I imagine there are practical 
challenges to that and the half cocked Servlet solutions out there seem to 
be reinventing PHP in JNI, and doing a fairly bad job.

I was wondering if an extension to the Apache runtime would not be a better 
way to go... APR + PHP_R kind of idea.
And then just look for some cool but simple interop. Like a servlet can 
forward to PHP, and visa versa.
ie you can just use TC for your PHP, and you can get it integrated to some 
degree with servlets.
... ie take two great technologies and bring them a little closer, not a 
competitive product, just closer coop.
Make servlets and PHP better bed mates. The idea is that as Apache PHP is 
developed further, TC gets the leverage, with a few perks.

"Damn thats a nice WIKI in PHP... I'm going to drop it into TC, add the 
PHP_R engine to TC and forward requests to it from my servlet"... something 
like that.
If PHP starts a session in this env, servlets see it as well... so theres a 
little engine overlap, but otherwise Apache TC are 100% compat.
Bean passing with primitive types would add a creative dimension to it.

JRuby is cool, but I feel if you want to write a powerful site all in j 
script... well, you get what you made.
I think that any leverage in that area will come from the JRE itself, now 
that Sun is backing ruby, in the form of a JIT Script engine or something 
like that in the JRE, so I think, not worth the investment. The compilation 
of scripts to Java could first be attempted external to TC... if they get it 
right, well its just a java class that TC can use.

Servlet + PHP as bed mates == most internet solutions
Now that product like Netbeans are bringing in PHP editors, allowing for 
hybrid solutions makes even more sense.

Just a thought ;)

---------------------------------------------------------------------------
HARBOR : http://www.kewlstuff.co.za/index.htm
The most powerful application server on earth.
The only real POJO Application Server.
See it in Action : http://www.kewlstuff.co.za/cd_tut_swf/whatisejb1.htm
--------------------------------------------------------------------------- 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org