How much time (and money) do they invest? Do you have numbers comparable to java? :)
I hope their generics turn out nice because there are lots of interesting decisions to make in their design.
Let's hope it doesn't end the same way as error did
It was never called that way. It was 1.3... "5" was the first to start the major number 'marketerring'. Internally it was still 1.5, though.
>don't nEEd typE paraMeterS BeCAusE
This is quite false, generics RFE was top 3 in the java bug parade since 1.2.[0]
True. Also, Odersky and Wadler's Pizza language [1] was available as early as 1996 and the language designers at Sun were well aware of it and keen on adding it to Java. Odersky mentions this here[2]:
Bill Venners: How did Scala come about? What is its history?
Martin Odersky: Towards the end of my stay in Zurich, around 1988/89,
I became very fond of functional programming. So I stayed in research
and eventually became a university professor in Karlsruhe, Germany.
I initially worked on the more theoretical side of programming, on
things like call-by-need lambda calculus. That work was done together
with Phil Wadler, who at the time was at the University of Glasgow.
One day, Phil told me that a wired-in assistant in his group had heard
that there was a new language coming out, still in alpha stage, called
Java. This assistant told Phil: "Look at this Java thing. It's portable.
It has bytecode. It runs on the web. It has garbage collection. This
thing is going to bury you. What are you going to do about it?" Phil
said, well, maybe he's got a point there.
The answer was that Phil Wadler and I decided take some of the ideas from
functional programming and move them into the Java space. That effort became
a language called Pizza, which had three features from functional programming:
generics, higher-order functions, and pattern matching. Pizza's initial
distribution was in 1996, a year after Java came out. It was moderately
successful in that it showed that one could implement functional language
features on the JVM platform.
Then we got in contact with Gilad Bracha and David Stoutamire from the Sun
core developer team. They said, "We're really interested in the generics stuff
you've been doing; let's do a new project that does just that." And that became
GJ (Generic Java). So we developed GJ in 1997/98, and six years later it became
the generics in Java 5, with some additions that we didn't do at the time. In
particular, the wildcards in Java generics were developed later independently
by Gilad Bracha and people at Aarhus university.
Although our generics extensions were put on hold for six years, Sun developed a
much keener interest in the compiler I had written for GJ. It proved to be more
stable and maintainable than their first Java compiler. So they decided to make
the GJ compiler the standard javac compiler from their 1.3 release on, which came
out in 2000.
[1]: http://pizzacompiler.sourceforge.net/index.html[2]: https://www.artima.com/scalazine/articles/origins_of_scala.h...
Without having these assistants, you really understand why "Pike style" of having short API names and small variable names was popular, even if it often left you scratching your head when reading the code.
Not sure what's that about, JBuilder was great, so was Eclipse. I know people love IDEA but feature wise I consider it subpar to Eclipse even today.
I don't know, if today Eclipse fares better, beacuse like many people I switched to IntelliJ never looked back.
IntelliJ was first released in 2001. Those days it was a closed-source paid product. It competed with JBuilder, Visual Age (which became Eclipse), Forte (which became Netbeans) etc.
Now they’re invading Golang. I’m happy they’re taking their time.
map : (A -> B) -> [A] -> [B]
It's quite clear from the above type signature what this function does and does not do. It can only use the supplied A's to create B's using the supplied function. It cannot do anything else with the A's and the B's. To me, that is clarity.