Slashdot Mirror


Web Application Architecture

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."

11 comments

  1. Site's down? by TheLink · · Score: 1

    Can't connect.

    --
  2. Re:Scripting Language? by Anonymous Coward · · Score: 0

    As the article points out, the site already runs more than fast enough for our needs. Why make development slower to gain extra speed that isn't needed?

  3. when you've got a hammer... by rfsayre · · Score: 2

    Three of their developers are Python contributors. They also developed two previous versions in Java. It's unsurprising that they found success in Python on their third attempt.

    1. Re:when you've got a hammer... by MrBlack · · Score: 2

      That's a bit harsh. They sounded like quite competent developers who had a lot of good tools at their disposal and were given the freedom to choose the one they thought was best (which is a bit of a rarity). 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. It can read about stacks of people going the JSP/EJB/JDBC route (which either attests to it's effectiveness or the effectiveness of it's marketting). It's nice to read about someone doing something a little differently.

    2. Re:when you've got a hammer... by rfsayre · · Score: 2
      I didn't intend to imply that they were incompetent or that they had made the wrong choice in terms of development tools and languages. In fact, I think they made exactly the right choices, in the end. But most of those choices have to do with the skills of their staff, which appear to be quite impressive. It's just not news to me that a team with a bunch of python contributors ended up working best in python.

      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).

    3. Re:when you've got a hammer... by Kefaa · · Score: 2

      While it may sound harsh, I believe the point is important, and probably due another "ask slashdot" all together.

      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.

  4. Re:Scripting Language? by Anonymous Coward · · Score: 0

    Development slower? By using Java, you are forced to use OOD/P and properly design every aspect of the project. This may increase your development cycle, but decrease your maintainance cycle (which clients *thoroughly* enjoy).

  5. Re:Scripting Language? by pthisis · · Score: 2

    Maintenance and development of a Python web site are both likely to be significantly faster than for the equivalent site written in Java if for no other reason than that the Python code is going to be substantially shorter; less lines to both write and maintain, and they're clear, readable lines (unlike say an awk or poorly-written Perl program).

    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

    --
    rage, rage against the dying of the light
  6. Re:Scripting Language? by javaman235 · · Score: 1

    Oh my God, you can make a vector full of functions/methods in Python!? That has to be the coolest thing I've ever heard!

    --
    -The art of programming is the pursuit of absolute simplicity.
  7. Re:Scripting Language? by Anonymous Coward · · Score: 0

    You can do that in Perl, C (I think), LISP (for sure, and any other functional language), etc.