<[EMAIL PROTECTED]> 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 -- http://mail.python.org/mailman/listinfo/python-list