5 ms·
I am not nostalgic for the old versions of Java. I learned on Java 3, when they designers were still saying, "yOu Don't nEEd typE paraMeterS BeCAusE yOu CAn cAs
by curtis3389 6y ago
I am not nostalgic for the old versions of Java. I learned on Java 3, when they designers were still saying, "yOu Don't nEEd typE paraMeterS BeCAusE yOu CAn cAsT tO Object!"
- Cthulhu_ 6y agoIn before the Go crowd shows up; this is pretty much the stage Go is at at the moment. But they're taking their time to ensure the design is solid instead of rushed and pressured by the community.
- kenniskrag 6y ago> But they're taking their time to ensure the design is solid instead of rushed and pressured by the community. How much time (and money) do they invest? Do you have numbers comparable to java? :)
- curtis3389 6y agolol, I haven't spent any time paying attention to Go, and totally forgot they're fighting this fight all over again. I hope their generics turn out nice because there are lots of interesting decisions to make in their design.
- pjmlp 6y agoHave you followed up on the ongoing discussion, now that the proposal has been finally done? Let's hope it doesn't end the same way as error did
- xxs 6y ago>Java 3 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] [0]: https://jcp.org/en/jsr/detail?id=14 https://jcp.org/en/jsr/detail?id=14
- mavelikara 6y ago> This is quite false, generics RFE was top 3 in the java bug parade since 1.2. 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 http://pizzacompiler.sourceforge.net/index.html [2]: https://www.artima.com/scalazine/articles/origins_of_scala.html https://www.artima.com/scalazine/articles/origins_of_scala.h...
- projektfu 6y agoThe ergonomics of Java kind of sucked until IntelliJ IDEA came out. Microsoft had introduced "IntelliSense" with VisualBasic and C++ earlier, and that made their stuff a lot more ergonomic despite the verbosity. The VisualAssist plug-in also was very useful. 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.
- xxs 6y ago>The ergonomics of Java kind of sucked until IntelliJ IDEA came out 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.
- projektfu 6y agoI didn't use JBuilder, perhaps it was wonderful. Until IDEA (and Eclipse) most people I knew were using their favorite text editor, such as Emacs, vi, or Notepad++. Each one had some benefits, but I never had that ease of use I had when IDEA came out. This is all subjective, but I'm surprised people thought that the ergonomics of the language were pretty good before 2000.
- qw 6y agoAt work (2001) we used JBuilder, and it was a real productivity boost for me. The GUI felt very natural and powerful. Borland knew how to make good IDEs.
- xxs 6y agoFor what is worth - I used it even earlier and I still remap the most used shortcuts to JBuillder's ones, e.g. ctrl+- to open classes. The shortcuts were somewhat optimized for use of both hands on the keyboard w/o mouse. I still prefer not to use mouse when I code.
- 6y ago
- parasubvert 6y agoAs one of those old timers that don’t like Java’s Generics, they are what caused me to stop wanting to use Java. IMO they are terrible for code clarity. Though I prefer loose typed languages in general. Now they’re invading Golang. I’m happy they’re taking their time.
- willtim 6y ago"Generics" (a.k.a. parametric polymorphism) might be terrible for code clarity in a verbose language with subtyping and little to no type inference, but in many languages they actually improve code clarity: 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.
- parasubvert 6y agoThis is true. But care must be taken with the feature. Iirc, Java Generics tried to take their time but refused to adopt more (at the time) exotic type inference to simplify the syntax.
- crazy5sheep 6y agowithout generic support, Go couldn't even provide things as simple as a Max(...) function for all kinds of numbers in their standard library.
- parasubvert 6y agoThis never bothered me as it is trivial. But clearly it bothers some people.