Zope & Python
Bill de hÓra
bill at replywillfail.com
Thu Oct 12 05:15:42 EDT 2000
More information about the Python-list mailing list
Thu Oct 12 05:15:42 EDT 2000
- Previous message (by thread): Zope & Python
- Next message (by thread): Zope & Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
> > I have had a look at the "Zope" application server at www.zope.org, and feel > > that it cannot be considered for use (on the server side) in an enterprise > > application because of the following weaknesses: > > > > The business-logic extensions must be written in Python, which is a fine > > "glue language" for whipping up scripts and small applications in as short a > > time and as few lines of code as possible, but is simply not robust enough > > for enterprise applications. For example, it does not allow compile-time > > enforcement of interface specifications, as C++ and Java do. This is precisely why you would want a dynamically typed language for web applications. There is very little empirical evidence that static typing actually protects programmers or adds robustness by punting type checks to the compiler. There is plenty of evidence to suggest it leads to brittle, bloated, and eventually unmaintainable code. Python is ideal not as a glue language, but in parts where you need real flexibility. That's why Google uses it to write spiders. Python's ability to rewrite itself is fantastically powerful. Anyway XML should be your glue now. Vignette and Arsdigita use tcl. Tcl is light weight easy to learn and use and compact as we might expect from a scripting language. Both these companies build enterprise level web applications. Using a scripting language to build applications is not hurting them. Smalltalk is widely used at the enterprise level in the back tier, it has similar typing properties to Python. There are very probably more correctly functioning Smalltalk programs in the world than C++ programs: and that's actual programs not in proprotion. Almost no-one has written a correctly functioning C++ enterprise level application. For what it's worth, dynamic typing and functional programming is becoming ascendent within the OO coomunity (by community I mean the 100 or so people who tell the rest of us what good OO is). The value of static typing is a myth born of dealing with crap C code in the seventies and eighties when C went far outside its comfort zone. > > a) It does not even support the concept of private, protected and public > > instance variables and methods. The whole concept of "design-by-contract" > > relies on the availability of these features. You cannot rely on > > programmers to have the discipline to comply with (nonexistent) interface > > specifications. Design by contract assumes you have a contract in place. PPP access alone won't give you that, nor will static type checking. You need argument assertion semantics in the language (which java doesn't have by the way and C++s is highly ambiguous) and exception handling. Python has excellent exception handling. > > b) If we develop web applications in accordance with the Java Servlet API, > > we can upgrade the platform from Apache+Tomcat running on Linux to Sun's > > Java Webserver, or IBM Websphere, or BEA Weblogic (BEA is the industry > > leader in OLTP middleware), or any number of other commercial > > implementations. What is the upgrade path for Zope? You'll only need that upgrade path when some architect or business decision makers decides that we must have J2EE/EJB compliance on the middle tier. But tell me, in 2-5 years time when we decide that we need fully parallel/distributed architectures not tiering, what is your upgrade path from Java middleware? > > c) Java allows a wide choice of compilers, debugging and profiling tools, > > modelling tools, middleware, and libraries for everything under the sun. It > > is a mainstream language for commercial applications, with a relatively > > large pool of programming expertise and with support from most major > > industry players (besides Microsoft). Python may be gaining popularity, but > > is way behind Java. Finding python programmers is a problem, yes. But if you're hiring against a skill-set rather than looking for real talent, you have an intellectual capital issue that's probably more serious than decisions of architecture. No amount of compile time handholding can protect you from weak programmers who are bandwagonning on Java. And a talented programmer will be writing useful python code in a week. Look, this is really about software layering. I would not write my network systems layers in Python. But I would write application level code in Python. Equally, I would certainly not want to code business or templating logic in a static language like C++ or Java. In that space servlets/JSP are a three legged dog, a sideshow at best. -Bill de hÓra
- Previous message (by thread): Zope & Python
- Next message (by thread): Zope & Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list