When to Consider Java 
Author Message
 When to Consider Java

In the article about Orbitz and ITA Software,
http://www.*-*-*.com/
the author says "Our web site page generation code is also
largely written in Common Lisp, though there's also fair bit
of Java there."

Does anyone know or could anyone speculate on what part is
in Java and why?

In general, for server-based applications (presumably meaning
an application server tasked by a web server such as Apache), in
what situations or for what functions might it be better to use
Java instead of Lisp?

Is the answer of the form, "It might be better to
use Java so that you can avail of library X, because there is
no library X in Lisp yet or it isn't as well developed."?

If so, what are the possible values of X at this time?



Sun, 01 May 2005 09:37:02 GMT  
 When to Consider Java

Quote:

> In general, for server-based applications (presumably meaning
> an application server tasked by a web server such as Apache), in
> what situations or for what functions might it be better to use
> Java instead of Lisp?

  To answer your question, I could only share my own experience in
  using Java for server-side applications. The business of the company
  I work for is to deliver games for mobile devices "through the
  air". It is also possible for the user to send its scores and buy
  new levels through SMS. The download and SMS server as well as the
  back-end services (the EJB server) are written in Java. Finally, the
  database we use is Oracle. A very classic architecture.

  This architecture has been choosen (not by me) for its scalability
  and performances through distributed computing, easy maintenance,
  easy deployment and rapid development cycle.

  After 2 years of exploitation, _all_ these points have _failed_!

  Java apparently has some great advantages over other mainstream
  languages such as C/C++: first, binary portability through its VM
  which enables us to work on PC workstation and deploy our software
  on Solaris server without any modification. Second, garbage
  collection which avoids at lot of bugs and headaches. Third,
  exceptions handling which avoids mysterious "core dumps" (despite
  the fact that the code is polluted with try/catch clauses).

  Unfortunatly these features are not well designed and are not
  sufficient to achieve all the above goals. For example, you just
  can't interact nor patch the software while it is running and it was
  a terrible thing for us. The application server (EJB) we've bought
  costs a lot and is unable to reload beans on-the-fly. But even if it
  could have done this, you still have to recompile your bean before
  uploading it to the server. It's really a pain.

  Moreover, when our QA team find a bug in our server, we can't look
  at the state of the program on their machine nor fix the bug. We
  have to go back to our seats to try to reproduce the bug locally
  wasting a lot of time. The same thing also happens when the
  marketing need an instant feature on the server!

  The huge Java library seems to be a valuable toolbox but it's just
  smoke and it can't fix the design flaws of the language. With
  the Java implementation of the object-oriented paradigm you don't
  have enough abstraction mechanisms and you end up by building an
  huge collection of objects whereas a Common Lisp macro would have
  fit perfectly.

  We also had to write a Web application as a Customer Care
  service. It was written using Tomcat/JSP/Struts so called
  "technologies". What a joke! You have to deal with a lot a XML files
  to slowly generate some poor HTML files. I've done the same thing in
  few lines of Lisp code within AllegroServe.

  To give you a last example, the EJB server was so slow and so
  un-optimizable that we had to rewrite all our marvelous beans in
  pure Oracle SQL queries! What a real pain! When you think about
  CommonSQL which integrate perfectly SQL into Common Lisp!

Quote:
> Is the answer of the form, "It might be better to
> use Java so that you can avail of library X, because there is
> no library X in Lisp yet or it isn't as well developed."?

  For server-side applications I don't actually see any advantages of
  Java over Common Lisp! In the future, RPC and data exchanges
  betweens server will use simple HTTP streams so you don't need
  RMI-like featurs specific to a language. Nothing prevent you from
  using Common Lisp in your server development.

  Instead of buying a really expensive application server
  (BEA/WebLogic) we should better have spend our money into a Franz
  complete solution.

  And as a conclusion, as someone else told it on this newsgroup it's
  not a good argument to say that it's hard to find Lisp
  programmers. It's more easy to learn than the latest language of
  Microsoft (C#), really the worst thing I've ever seen.

--
Frederic Brunel

"You can't rush art."



Mon, 02 May 2005 23:09:27 GMT  
 When to Consider Java

Quote:

> In the article about Orbitz and ITA Software,
> http://www.paulgraham.com/carl.html
> the author says "Our web site page generation code is also
> largely written in Common Lisp, though there's also fair bit
> of Java there."

> Does anyone know or could anyone speculate on what part is
> in Java and why?

> In general, for server-based applications (presumably meaning
> an application server tasked by a web server such as Apache), in
> what situations or for what functions might it be better to use
> Java instead of Lisp?

I can tell you when I choose Java on the server side.  If I'm
developing a client and server in tandem, the client is in Java, and
there are opportunities for significant amounts of shared code between
the two; or, I'm leaving a trail of code behind me that other people
will have to maintain, and I don't know who they are.  It's reasonable
to expect J. Random Hacker to be able to modify reasonable Java code,
but (unfortunately) not Lisp.

The first case gets bumped in Java's direction because of the benefits
of avoiding lots of duplicate code.  The second, to keep positive
references, as opposed to a work history of people who hate me because
I'm the only one they can find who can maintain my work.  At least
when leaving code for J. Random Hacker to maintain, I can
machine-generate lots of it.

--
           /|_     .-----------------------.                        
         ,'  .\  / | No to Imperialist war |                        
     ,--'    _,'   | Wage class war!       |                        
    /       /      `-----------------------'                        
   (   -.  |                              
   |     ) |                              
  (`-.  '--.)                              
   `. )----'                              



Tue, 03 May 2005 03:13:51 GMT  
 
 [ 5 post ] 

 Relevant Pages 

1. Global Functions Considered Harmful?

2. Which Language needs least lines? (COBOL considered harmful)

3. Education Centre .msi not considered "valid"?

4. Can J be considered OOP?

5. Considering purchasing RealBasic... have questions

6. Considering Switch from Smalltalk to C++

7. Hello Smalltalk, bye bye Java (was Sprint: Hello Java, bye bye Smalltalk)

8. Smalltalk vs Java, OBJS says Java wins.

9. Java Risks (should be Java mis-speak)

10. Cellular automata benchmarks: Java vs C++ vs Java vs C++

11. CO-Denver- Java Developer (or strong OOP Java wannabe) ( 441659 )

12. CO-Denver- Java Developer (or strong OOP Java wannabe) ( 649407 )

 

 
Powered by phpBB® Forum Software