On 06/15/2011 10:26 PM, Cédric Beust ♔ wrote:
The fact that I never had to say "new" and "delete" was indeed a big
factor, and while it's technically due to the GC, it actually felt
like it was more of a syntactic and thinking relief. This is an aspect
of garbage collection that's often overlooked, by the way: its
presence has a positive impact on both the runtime (no more memory
leaks or crashes caused by referencing bad memory) *and* the source
(no new/delete and the assorted headaches of figuring out when to free
the memory).
But there is an important lesson in Java's emergence: it succeeded not
because it added more power but because it liberated programmers from
tediousness.
Agreed on all (also parts not quoted). BTW, I'd push the reasoning about
the impact of GC saying that it positively impact, beyond the source,
the *design* since you don't have to assign the object ownership
responsibilty. For what concerns the C++ thing, I was working a lot with
it and I remember the long waiting for the STL - until I printed the
specification. Huge, massive, elephantiac, unreadable. With Java I gave
up to generics for a while, but STL wasn't just about generics, was
about a standard library with collections and such, which the language
missed. The idea of having Vector and HashMap, and a standard version
that was sharable by all the code and third party libraries, and no more
the mess with multiple alternate implementations in C++ of such a
basilar thing, was excellent. So ...
- Modularization (in all dimensions), built right into the
language. A mix of OSGi (runtime modularization) and ivy/maven
(build-time modularization), coupled with *NO* standard library
(everything is a module available on the web, including the core
libraries)
I think that would be a mistake. Standard libraries are critical for
the initial success of a language. The initial libraries of Java were
ridiculously bad, but the fact that they were shipped with the JDK
empowered developers to prototype stuff right away and adopt a common
vocabulary and patterns. In my opinion, a bad standard will always be
better than no standard (see C++' continuous struggle with collections
and threading...).
... exactly what I mean. BTW, yes, they could be better at the time, but
the current stuff is worse in 2011. So in the end they weren't that bad.
In addition to the standardisation of patterns, add the fact that Java
brought a single non-primitive variable type, the reference, compared
with the three different flavours of C++: pointers, auto variables and
references (&). Too many ways to do the same thing, which is one of the
reasons I fear Scala.
--
Fabrizio Giudici - Java Architect, Project Manager
Tidalwave s.a.s. - "We make Java work. Everywhere."
java.net/blog/fabriziogiudici - www.tidalwave.it/people
[email protected]
--
You received this message because you are subscribed to the Google Groups "The Java
Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.