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.

Reply via email to