On Wed, Nov 25, 2009 at 9:17 AM, Asiri Rathnayake <
asiri.rathnayake(a)gmail.com> wrote:
Hi,
On Wed, Nov 25, 2009 at 1:33 PM, Pascal Voitot
<pascal.voitot.dev(a)gmail.com>wrote;wrote:
nice analysis :)
one question that arises in my mind: in the future, in 2, 3 or 4 years,
with
all these features integrated in groovy or clojure which tends to be more
efficient "syntaxically" or more "specialized" also, I really wonder
why
we
should keep coding in Java in fact. The question
of performance is not
really an issue since everything runs in the JVM at the end.
Anyway, this is not the subject here but I wonder :)
Have you seen last Java7 language evolution?
One point that bothers me is that Java is very easy to understand. I can
write a java program, come back after 6 months and still be able to read
and
understand it in a couple of hours. Is the same true for clojure / groovy?
I don't really know clojure so I can't say...
groovy is quite clean... maybe a bit too much ways to do the same thing
sometimes and some cryptic syntaxes to write in one line what you would
write in 10 in Java... but this is a young language and it needs to get
stable...
And what about Remote debugging, IDE support (Syntax
highlighting /
intelisense), Learning curve ?
groovy has already some good support... not perfect but quite correct... the
only problem is the hot codeswap since groovy generates quite a lot of code
when being compiled and generally "normal" debuggers are not able to reload
the new code in the JVM and you need to use some tools such as JavaRebel
which is not free at all!!!
from java, groovy learning curve is really short... but but but if you code
in Groovy exactly as you code in Java, you don't use the full power of the
language... This is the main learning curve: to get the groovy mind :)...
I'm not sure I have it after years of Java:)... It reminds me on C coders
coding in C++ sometimes :)
I've done some serious programming in groovy
(haven't touched clojure yet)
and what I understood is that it makes me very tempting to hack in a
solution (because it's very easy) and get it to work (very very rapid) but
on the end it results in a bad design.
This is only my opinion, I'm not against or favour of groovy / clojure. But
I love java :)
you're right and I love java too... this is a drawback for all scripting
languages in fact... maybe for all languages with lazy typing... anyway, you
know, I've been coding in C for some years then in C++ and it was exactly
the same problem... bad design in C is so easy to obtain: you code, you
code, you code and you get an horror :)... then you use C++ to have an OO
design but it's more horrible because OO requires to be really structured in
your mind and you can play with pointers in C++ and do very powerful things
but so easy to go on the dark side of the design... but I've seen the same
thing between C++ and Java... I see today lots of young coders who doesn't
even understand what is "memory allocation" but they don't care because
they
have the magic of the garbage collector which does everything... so they
allocate, they allocate and at the end you get a server doing hello world
which takes 1Go RAM and the garbage collector doesn't even know what to do
with all these garbages :)...
So design is a human problem not a language problem even if some languages
tend to make design easier or not.
Finally, I really think Java is not efficient for lots of things (XML DOM,
Strings, files manipulation for ex) and other languages are really better at
it... Today, just because I'm more efficient like that, I tend to write a
single project in several languages and I try to use the best languages for
each part...
The only languages I don't use are X# even if I already found some good
ideas in them ;)...
- Asiri
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs