patterns-discussion AT lists.siebelschool.illinois.edu
Subject: General talk about software patterns
List archive
- From: Malte Finsterwalder <malte AT finsterwalder.name>
- To: patterns-discussion AT cs.uiuc.edu
- Subject: Re: [patterns-discussion] Pattern-Oriented Programming
- Date: Tue, 26 Oct 2004 17:37:22 +0200
- List-archive: <http://mail.cs.uiuc.edu/pipermail/patterns-discussion>
- List-id: General talk about software patterns <patterns-discussion.cs.uiuc.edu>
Pascal Costanza wrote:
1) Good timing - the Internet hype just started and Java was for the
Internet
No, Java was originally developed for something very different. It just happened to match the idea of applets well. It's interesting to note that noone is doing applets anymore. As Paul Graham has stressed several times, as soon as you are on the server, it doesn't really matter anymore what language you are using. To the contrary, using a non-mainstream language can give you a competitive advantage because you can take advantage of features that are hard to express in other languages.
It didn't say it was initialy developed for applets, but they still
managed to make it look like good timing and a perfect match.
Of course that's obsolete by now, since applets failed, but nobody cares
anymore. Java is too big by now.
3) Free tools - the jdk was free right from the start and now even
complete development environments are free (eclipse, netbeans...)
There is another issue here: Languages like Lisp and Smalltalk have been rejected by the beginning of the 90's because their runtime environments were considered huge (around 5 MBytes). Java came at a time when the hardware has just started to catch up with the resource requirements of more dynamic languages than C and C++. Nowadays, a complete Java installation (Eclipse + JDK) amounts to a 85 MByte download, while Lisp and Smalltalk are still moderate. For example, a Macintosh Common Lisp installation takes about 32 MBytes on my harddisk, and I think the sizes for Smalltalk are similar.
I would probably add this part of "Good timing".
4) Standardized but not by committee - There is only one Java and
changing the language standard and the library happens more quickly than
in committee-based languages, like C++ for example
...but Java still requires you to know about existing replacements for parts of its library. For many ingredients of the Java core API, there are many better alternatives around.
I don't argue that Java libraries are always great or perfect. There
would be no SWT, if Swing would be really great. But they are there and
they are standard. There are no alternative Java implementations that
don't have these libraries or that would need any kind of porting.
And even the extra libraries, like all the Jakarta stuff, don't need any
porting.
5) There is a very large standardized library for most of the general
purpose programming tasks. It may not always be perfect or even very
good, but it's there
Yes, Java is good at this. Commercial Lisp implementations are quite good at this as well, and I hear that Smalltalk vendors also do a fine job here. The fact that most of Java is available for free is a questionable advantage, at least for commercial projects.
You say exectly what the problem is: Some vendors have good libraries.
But that's something different. It's not standard. And another version
from another vendor has a different library, at least in part.
6) Platform independent - I think that by now this is the most
interesting feature of Java
Yep, that's good. However, Common Lisp provides excellent platform independence. I have been able to port my AspectL package for Common Lisp / CLOS to five different Common Lisp implementations running on four different platforms (Unix, Linux, Mac OS X and Windows). In those implementations, I heavily mess with the Metaobject Protocol, so this are not toy examples.
There you say it again: "port". Java doesn't need any porting and there
are no different versions. That's a very great advantage, I think.
One of the biggest obstacles for Common Lisp has been the lack of a cross-platform GUI library. But this has been solved last year with the Ltk binding to Tcl/Tk. See http://www.peter-herth.de/ltk/
Scheme even runs on PDAs. ;)
Java runs on PDAs, Smartphone, Hosts, Desktops, .....
Why did other languages fail?
I didn't mean to say that all languages with the following properties
fail. I wanted to say that some failed because of these characteristics.
1) Not so much marketing and no support by very big companies
Python succeeded in spite of a big company backing it.
2) No Standard and a lot of different implementations (e.g. Smalltalk)
...but not the case for other languages.
You also said it for Lisp.
It's true for C++.
As far as I know it's true for Cobol as well.
And probably other more.
As far as I know it's not true for Eifel, Perl, Python, Ruby.
And I think that's a very great advantage for those languages as well.
6) They look freaky or complicated and are hard to read and/or write for
beginners (e.g. Lisp)
Scheme is reportedly very easy to learn for beginners: http://www.teach-scheme.org/Notes/scheme-faq.html
Easy to learn for beginners is something very different from easy to
learn for experienced people!
I also heard that it's easy to learn LaTeX if you never learned anything
like Word. The other way around is a very different story though.
I think it's unlikely that Lisp is going to be the next "big thing". (This is a very American way of thinking about things that I don't like. Small things are also worthwhile. ;)
:-)
I persoanlly think it's VERY unlikely that anything that already exists
for some years becomes "the next big thing".
I suppose it needs something NEW to be "the next big thing".
Python and Perl are very successful languages in spite of some of the characteristics that have led other languages to "fail". So I am optimistic that there are other ways to sneak a language into wider use.
I think this is because Python and Perl have some good characteristic
that make them successfull:
1) Platform independent (more or less)
2) Only one version
3) Complete version freely available
4) Large "standardized" libraries.
5) No really "marketing" but a lot of support from different sides
Currently, Common Lisp sees a rise of interested people, so I think in a few years we are going to have a reasonably sized community.
Would be interesting.
Greetings,
Malte
- Re: [patterns-discussion] Pattern-Oriented Programming, (continued)
- Re: [patterns-discussion] Pattern-Oriented Programming, Ralph Johnson, 10/24/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Mark Grand, 10/24/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Pascal Costanza, 10/25/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Ralph Johnson, 10/26/2004
- RE: [patterns-discussion] Pattern-Oriented Programming, Chris Finlayson, 10/27/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Pascal Costanza, 10/28/2004
- RE: [patterns-discussion] Pattern-Oriented Programming, Chris Finlayson, 10/27/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Pascal Costanza, 10/25/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Ralph Johnson, 10/25/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Malte Finsterwalder, 10/25/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Pascal Costanza, 10/25/2004
- Message not available
- Re: [patterns-discussion] Pattern-Oriented Programming, Malte Finsterwalder, 10/26/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Dan Palanza, 10/25/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Mark Grand, 10/24/2004
- FW: [patterns-discussion] Pattern-Oriented Programming, Mike Beedle, 10/25/2004
- FW: [patterns-discussion] Pattern-Oriented Programming, Mike Beedle, 10/25/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Ralph Johnson, 10/25/2004
- RE: [patterns-discussion] Pattern-Oriented Programming, Reich, Shalom, 10/25/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Pascal Costanza, 10/25/2004
- RE: [patterns-discussion] Pattern-Oriented Programming, Mike Beedle, 10/26/2004
- RE: [patterns-discussion] Pattern-Oriented Programming, Jason Baragry, 10/26/2004
- RE: [patterns-discussion] Pattern-Oriented Programming, Mike Beedle, 10/26/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Pascal Costanza, 10/25/2004
- RE: [patterns-discussion] Pattern-Oriented Programming, Sriram Gopalan, 10/25/2004
- RE: [patterns-discussion] Pattern-Oriented Programming, Chris Finlayson, 10/27/2004
- Re: [patterns-discussion] Pattern-Oriented Programming, Ralph Johnson, 10/24/2004
Archive powered by MHonArc 2.6.16.