


Web Application Architecture 11
AMK writes: "I've written an article
about Web application architecture, describing the design we use
at my workplace which relies on an object-oriented database, a Web app server we wrote, some parts of extreme programming, and lots of Python code. It shows a straightforward way of building a system that can cope with a complex Web-based application."
Site's down? (Score:1)
Re:Scripting Language? (Score:2)
Also, Java is more of a class oriented language than a truly object-oriented language; Python closer to being a fully object-oriented language (like Smalltalk but unlike, say, C++). Read e.g. the comp.object FAQ and pay attention to things like dynamic inheritance, meta-class programming (which Java supports only in a very limited way; e.g, you can't get the meta-class of a meta-class), and multiple polymorphism.
Heck, functions aren't even objects in Java; you can't keep a vector (or other container) full of functions (or methods). The type-class dichotomy in Python is a bit of a wort (though it's even worse in Java), but there's a unification coming in Python 2.2.
Java is primarily statically typed while Python is primarily dynamically typed; that's the major difference between the two from a programming languages standpoint, and Java vs. Python boils down essentially to the same old Pascal vs. Lisp or Ada vs. Smalltalk debate on that level. Python certainly isn't untyped (unlike, say, tcl or in some ways perl).
Also, the speed argument is pretty bogus in this arena; Python is slower than Java for heavy computation, but it's substantially faster for file and network I/O (areas which are quite important in web site development).
Which is not to say that Java isn't the right tool for some web sites, but Python is an extremely good tool even for large multi-developer web sites where maintenance is an important issue.
Sumner
Re:Scripting Language? (Score:1)
when you've got a hammer... (Score:2)
Re:when you've got a hammer... (Score:2)
Re:when you've got a hammer... (Score:2)
Also, it is not clear from the article that they had 2 tries in Java. It seems like they had one try in Java, ditched it for zope, and then finally switched to python.
You're right. It's not clear. The sentence
"The earliest version of the site was written using Java servlets, and the Run Builder used Zope..."
isn't clear at all, since they refer to an early "site", but the first run was a networked GUI app. Maybe they were using "site", "application server", and "backend" interchangeably (not that there's anything wrong with that).
Re:when you've got a hammer... (Score:2)
While I may have success with LanguageX, you try it and suffer failure. Group2 tries it with limited success and Group5 cranks it out like they are going out of style.
My experience has been that two true production efforts (not pilots) are almost always needed to work through "first timers" disease. New technology of any kind is almost certain to slow down the process and limit success. If you choose to follow the advice here, remember it was built with the effort and experience you may not have. In essence, your mileage will vary.
I strongly recommend "Rapid Development" by Steve McConnell for anyone planning to start with technology new to them.