Re: Python or Java or maybe PHP?



<liorm@xxxxxxxx> wrote:

> Hi everyone,
>
> I need to write a web app, that will support millions of user accounts,
> template-based user pages and files upload. The client is going to be
> written in Flash. I wondered if I coudl get your opinions - what do you
> think is the best language to use for the server? Python or Java? And
> I'm talking scalability, object oriented, development tools etc.

I would personally not consider PHP, in terms of "human" scalability (if
the server needs to grow to substantially rich logic etc). However,
Ruby (with Rails, of course, as the server-side framework), Python (many
options server-side, from Twisted to Django), and Java (even more
options server-side), are, I believe, all worthy candidates. They're
all "object oriented" enough that the fine distinctions among them don't
really matter; choice of developer tools is probably widest for Java and
least wide for Ruby (and the same for server-side web frameworks), but
this cuts both ways (once you've decided on Java as the language you
still have many weeks of evaluation to pick tools and frameworks -- if
you decide on Ruby, tools and framework are more or less fixed -- Python
is "in between" in both fields).

The "etc." is where the fun is;-). Java is statically typed, Ruby and
Python are dynamically typed: you will perhaps find more flamewars on
the web about this one aspect of programming languages than about all
others combined. On the basis of extensive personal experience, I'm
firmly in the dynamical-typing camp -- firmly convinced that Ruby or
Python make developers and teams more productive, or, in other words,
that Ruby and Python are "higher-level" than Java, requiring much less
code to implement a given amount of functionality, and developers'
productivity is tied mostly to the "amount of code" they need to
develop, debug, maintain (functional specs and user documentation OTOH
depend on functionality, not on code needed to implement the
functionality, and so don't depend on the choice of implementation
language[s]).

You'll also find lots of flamewars on each side about side issue such as
"community", or "the quality of programmers" that you can easily get for
language A vs language B (for just about any choice of A and B;-). I'm
not sure how much weight you should give to these considerations, or
other "soft and fuzzy" ones such as the issue of "philosophy" reflected
by each language's design and community.

All things considered, I would tentatively suggest Python, but if you
examined both languages a little and then picked Ruby (or, given a
suitable number of CS PhD's in your development team, Common Lisp, or
Haskell, but that's another issue) I'd have no basis for predicting that
your choice would be wrong; if you picked Java, I would strongly suspect
you made the wrong choice; if you picked PHP, I would personally feel
_certain_ that you made the wrong choice;-).

And just to give the devil its due, if it's an acceptable trade-off for
your server to be shackled to Microsoft systems forevermore, you might
even want to consider ASP.NET -- I have no experience with it
whatsoever, but some people whose technical judgment I respect do claim
it's a good choice. Personally, I would consider the 'strategic' cost
(the above-mentioned MS shackes) too high in any case, but only you can
make such decisions for your own circumstances. Similarly, Apple's
WebObjects have also been widely praised, but they would shackle you to
Apple systems (language choice directly supported by Apple for
WebObjects is Objective C, Java, and WebScript, a proprietary
very-high-level language; but I believe that thanks to PyObjC you could
use Python instead or side by side with ObjC, just as, of course, you
always have the option of Jython, instead or side by side with Java,
whenever you choose a "Java"-based platform).


Alex
.



Relevant Pages

  • Re: Basic inheritance question
    ... used 'this' in C++ and Java. ... but in Python it doesn't. ... language, they would write a lot of ten liners that is changed a LOT ... Add three levels of inheritence and a couple globals and you'll find out ...
    (comp.lang.python)
  • Re: The Industry choice
    ... but still Java is considered as a sure-job language. ... >After being a python programmer for long time, ... VERY substantial investments into any technology it "marries", ...
    (comp.lang.python)
  • Re: Basic inheritance question
    ... this in VB and Java. ... Python doesn't "enforce" explicit name of classes - IIRC, ... No it exists in any language, the way to avoid it is by good class ... Add three levels of inheritence and a couple globals and you'll find out ...
    (comp.lang.python)
  • Re: Does Python compete with Java?
    ... I am relatively new to Python. ... and will be the dominate language. ... > compete with Java, .NET, and any other commercially backed language. ... PHP has a considerable mindshare as "the language" to write ...
    (comp.lang.python)
  • Re: Some Noob Questions
    ... language and ask a compare/contrast question, ... implementation works great for handling all this server-side stuff" I ... Java) - they go so far as providing that "Petshop" example of AJAX and ... I was pretty into all this stuff (programming and networking in particular) my whole life up through getting my BS - then I went to grad school and kinda got away from it all for a long time... ...
    (comp.lang.java.programmer)