On 6 Mar, Andrew M. Kuchling wrote:
Your development technology doesn't matter.
Despite your following (very good) points, this is not true. It leads to conclusions like "Perl is just as readable as Python", "Let's just use C, it can be made as portable as Java", "We should use Lisp for this 3D first-person shooter, we just need a better algorythm than previous C implementations." A better way to phrase this is: Your development technology is only one piece in a larger puzzle. I've recently switched a rather large project from Java to Python -- throwing out nearly 2 years of work in the process -- and I have noticed an immediate increase in development speed. Changing development technologies was a GREAT idea; but only because it was considered within the framework of the developers we had, the skills they had, and the relative advantages of both frameworks. The project had a high dependence on lists and hashes. Changing to python increased performance (all these data-types are native in C, in python; profiling our code shows that it spends most of its time inside java.util.Hashtable), scalability (Java has lots of hard limits; a max of a few thousand interned strings, 32M of RAM per process unless you start diddling command-line arguments, and GC gets unbelievably slow if you do that), reliability (the JVM on Linux is buggy; python is pretty robust if you're not using any crazy native modules ^_^), and last but not least, we get the source to our tools so we can improve them ourselves.
I wish more managers knew this. You can build interesting applications in Zope. You can build them using Java servlets, or CGI, or WebObjects. No tool is going to magically solve all your problems, and solving them will require familiarity with your tools, hard work and careful effort, no matter what you use.
Certainly, nothing is a magic bullet or a panacea that will make all your development problems go away, and I doubt that anyone reading this list believes that. Coincidentally, if you are, and you do, I have a GREAT WAY to MAKE MONEY FAST with NO INVESTMENT!!! It is NOT MLM!! ;-)
We had a manager here who was quite enamored of Java, and early on we wrote some stuff in Java servlets. He viewed our Zope work as just stopgaps on the way to Java code that would carry us into the long-term, but every time I asked "What problem would be solved by rewriting all our Python code into Java?", there was no clear answer. Unfortunately, far too many people in business computing follow a similar management-by-white-paper-and-press-release style.
This is a great point. Considering the technology within a coherent whole is EXTREMELY important, and the view of some managers that something is just going to be a panacea that resolves everything is depressing. It's not limited to development technologies though -- it's "employee empowerment", it's "diversity training", "thinking out of the box"... bad management transcends the boundaries of space and time =)
Similarly, Greenspun argues that you shouldn't re-invent databases; it would require a tremendous amount of work to add to your home-grown system all the features that existing databases have -- fancy query optimization; storage across several devices; on-line backups; federated operation; etc... So use an existing system; Greenspun's preference is Oracle, but he doesn't argue it like a law of nature.
In my experience (I admittedly haven't read this particular article) Greenspun's advocacy of Oracle and WebDB is near-rabid and biased toward extremely high-end applications for people with lots and lots of money. What you're referring to as "re-invent"ing, by the way, is referred to by some as 'innovation'. However, I will agree that the time to do that is not necessarily when a large project is nearing a deadline... Finally, I think Zope is a great tool, and for some applications (making a Slashdot clone, for example) it DOES have the kind of killer advantage that can make it worthwhile to switch lots of work in another system to. It all depends on what's appropriate though -- if, for example, your site needs to have access to AdaBase, I don't know if Zope is the best way to go. I have actually seen projects for which CGIs written in C++ were unquestionably the best choice. Examples like that are rare, but they do exist. -- ______ __ __ _____ _ _ | ____ | \_/ |_____] |_____| |_____| |_____ | | | | @ t w i s t e d m a t r i x . c o m http://www.twistedmatrix.com/~glyph/