[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[OT]Re: Setting up a Java development environment the debian way.



Le jeudi 23 juin 2005 à 12:59 +1200, Simon Kitching a écrit :
> On Wed, 2005-06-22 at 18:21 +0200, Aurélien Campéas wrote:
> > Le mercredi 22 juin 2005 à 16:05 +0100, Alan Chandler a écrit :
> > > 
> > 
> > For the record, the static typing in Java is acknowledged as one of the
> > worst imaginable (in short : it is mandatory but you have to go through
> > its backdoor (read : defeat it) all the time to make working programs).
> 
> It still provides more static type support than completely
> dynamically-typed languages like Ruby and Python. 

True. But how many errors in Python/Ruby programs are type errors ? 

> And if you use
> "generics" as provided in Java 1.5+ then this problem is resolved.

Only downcasting from collections is resolved with "generics" in 1.5,
not the covariance/contravariance problem (or the general type unsafety
of Java), is it ?

> 
> > 
> > OTOH, Working programs have been written in dynamically typed languages
> > for ages. Yes, industrial strength programs (whetever that means).
> > 
> > And I don't know any serious study about this topic. All we have is
> > anecdotal developper experience/opinions. But you will be able to judge
> > how important is static typing by yourself, again, when trying
> > ruby/python/lisp ...
> 
> This mail list isn't really the proper venue for this discussion so I'll
> just make one reply then shut up. All the following is of course just my
> opinion.

Right. I just can't resist a last followup ...

> 
> Ruby/Python are excellent languages where the developers on the project
> are experienced and talented.

(Doesn't that mean that talented experienced developpers avoid Java and
practice Python/Ruby whenever possible ?)

Strangely, I have found that python is an excellent language where
developpers are complete beginners, because of less hurdles from code &
syntax to execution. Especially with students (I was one not long ago
and incidentely frequented some).

> 
> However this isn't usually the case with any "industrial scale"
> development; the normal corporate IT department has people with a wide
> range of abilities, and in that situation the support of a statically
> typed language can be very useful (IMO).

That's marketing. Was never really proven.
Static typing is of course sometimes a good performance hack, when
applicable (which it is not, ironically, on Java/Smalltalk oo-like
languages).

> 
> And anyway it is *extremely* difficult to sell non-technical management
> on development in Ruby/Python. Java's marketing has, however, raised its
> awareness level to a point where the senior suits will actually consider
> it. So from a purely practical point of view, if you are interested in
> learning tools that will be of use in a commercial environment then Java
> is much more useful to know than Ruby/Python.

Oh, I imagine if the suits were allowed to dictate the choice of
building materials for planes instead of engineers, we would fly in wood
and cast iron (proven materials which most industry worker have already
met in their lives) planes :)

hmmm, I decided to learn the tools that could help make me a better
worker, not agreable to the suits. 

> > 
> > There is an aspect of Java that is quite misunderstood : it is a good
> > language / platform not because of some technical merits (it is really a
> > rehash of 60's technology) but because of the division of labor it
> > allows in the industry (and some other "social" or "political"
> > properties) : 
> > * separation from the designers (or so-called software architects) that
> > draw UML pictures and the coders (so-called code-monkeys that do the
> > supposedly unintelligent translation from high-level pictures to PL
> > level)
> > * mass availability of Java programmers (thus supposed
> > interchangeability of those)
> > * good marketing pressure from Sun and other big players to make Java
> > the new COBOL
> > 
> > All the hype about Java being an OO-language (a very poor one indeed)
> > and bringing encapsulation to programming in the large masks the fact
> > that the big organizations that use Java need to encapsulate, indeed,
> > the many mediocre (read : insufficiently trained on theoretical and
> > practical levels, thus cheaper) programmers that make their huge dev.
> > teams.
> 
> I pretty much agree with this. Java is a middle-of-the-road compromise
> language. I don't think it's "a very poor" OO language, it's an average
> one.

Interesting. What would you put "below" the Java average, then ?

>  The only revolutionary thing about Java is the fact that it
> compiles to portable bytecode (well, it isn't actually the first to do
> that either).

Smalltalk did that when Java was not even a straw in Gosling's eye.
Also, see Perl and Python (all "compiled" to portable bytecodes).

>  But, in a twist of fate, in Java's "server" niche that is
> almost irrelevant.
> 
> And J2EE was horribly over-complicated, a fine example of
> design-by-committee. However under pressure from alternative
> nicely-designed frameworks like Spring and Hibernate, J2EE is becoming
> more streamlined and easier to use. J2EE 1.5 should be a significant
> improvement over the past. [...]

Really ? I hope for M Chandler ... It's really a pity he has to take
this road because the "hobby" may look quite a lot of tedious work ...

Aurélien.



**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

www.clearswift.com
**********************************************************************




Reply to: