3 ms·
That's the way I (try to) think, sort of, but honestly the successful projects are the ones with money behind them. Java was just terrible but IIRC Sun put in a
by tempguy9999 7y ago
That's the way I (try to) think, sort of, but honestly the successful projects are the ones with money behind them. Java was just terrible but IIRC Sun put in approx. $0.5 billion into advertising it and it was jumped all over by execs because of advertising and not any technical, or far more importantly business, merit.
Tech is fad driven - look at all the big data projects by companies that don't need them.
- Nitramp 7y ago> Java was just terrible [...] Java was released in 1995. Compared to the state of the art back then, I believe it was a significant advancement. There was plain C with all its shortcomings, C++, but in a much worse state than today, and then the dynamic bunch (Python, Tcl/Tk?). There's no doubt Java had major issues, many of which were only ameliorated with Java 2 and later, and some remain today. But on the other hand it was memory safe, statically typed, with much simpler semantics, machine independence, Unicode support etc. pp. I believe Java overall meant progress. I'm not sure the advertising budget perspective is that salient. The main competitor for Sun at the time was Microsoft (with C++ and their Windows platform), who had a very well working marketing / developer relations / etc operation going as well.
- tempguy9999 7y agoJava was dire. It could have been much better when released - though granted it was designed for embedded originally, but it was then arguably mis-sold. Performance was avoidably bad in some parts of the libraries. I recall a major rewrite of some product being started then killed because performance sucked (surely much better now, but things took far too long to change). Memory behaviour was not fixed until java 5: "The original Java memory model, developed in 1995, was widely perceived as broken, preventing many runtime optimizations and not providing strong enough guarantees for code safety" (https://en.wikipedia.org/wiki/Java_memory_model https://en.wikipedia.org/wiki/Java_memory_model) I'd also like to add Brinch Hansen's heartfelt lament "If programmers no longer see the need for interference control [in java's threading] then I have apparently wasted my most creative years developing rigorous concepts which have now been compromised or abandoned by programmers" Per Brinch Hansen, Java's Insecure Parallelism - SIGPLAN Notices, April 1999 > statically typed with type holes for arrays > with much simpler semantics yep, too simple. IMO it relied too much on the programmer. Generics took too long to appear also. > Unicode support Broken cos they didn't read the spec properly. It has problem with the BOM on UTF8 which has bitten me (can't remember the details, think it was this https://stackoverflow.com/questions/1835430/byte-order-mark-screws-up-file-reading-in-java https://stackoverflow.com/questions/1835430/byte-order-mark-...) The advertising budget was what drove things, not common sense. Java could have been good but it was designed badly and badly oversold.
- renox 7y ago> I believe Java overall meant progress. I'm not so sure, you're comparing it only to C,C++ or Tcl/Tk but what about Ada? Smalltalk? Lisp? Objective-C? Plus Java's standard library was full of bugs for a looonnng time: they focused on new features instead of fixing it.. I've experienced "Java can't print" myself while Java's hype was going full force..
- pjmlp 7y agoObjective-C was going nowhere before Apple's acquisition, my thesis was rewriting a particle system from Objective-C/NeXT into C++/Windows as means for the department to keep research in OSes that everyone else could use. Ada compilers were bloody expensive. Modula-2, Delphi, VB, Oberon, Modula-3,..., were great, but they were either only available commercially, or OS specific. Java was given away as free beer, with a batteries included standard library and with less hurdles than trying to write portable C or pre-C++98 across all platforms that existed in the 90's. That alone made us try it out, On my university, the computing department changed all the compiler design and distributed computing classes to Java, without Sun paying anything to a tiny Portuguese university.
- ido 7y agoThe java performance complaints are also widely overstated...Mostly when running on windows it took a few seconds when starting a java program if the JVM wasn't yet loaded to memory (as it had to be loaded first). But a well written java server-side application (so something that doesn't need to be started very often but generally just idles until it's contacted by clients) is as fast or faster than anything you were likely to be using for a couple decades after its introduction.
- tempguy9999 7y ago"are"? Yes, perhaps. "were"? I don't know.
- mcguire 7y agoAda, until Gnat came out, was similar to C++, minus templates and "real" object orientation but plus generics and threading. It was also hand crafted by military contractors out of pure unobtanium. The true interesting bit, Spark, didn't come until later. (I'm not sure who did the Ada I used in a class in the late '80s.) Smalltalk was neat, but never caught on, possibly due to the lack of free implementations and the difficulty of integrating with anything else. (The original prototype of the OS/2 3.0/Warp UI was done in Digi-something Smalltalk. (Waves feebly from IBM.)) Lisp, in particular Common Lisp, was very popular in certain areas, but again died out. Possibly another combination of lack of free implementations, integration difficulty, and sheer difference from the alternatives. (Scheme. Sigh. The cleanest language design ever. But no single OO design when that hype train was at full speed. Plus, parentheses, which well Common Lisp had already poisoned.) Guy Steele said that Java dragged the industry halfway to Lisp, if that means anything.
- blacksqr 7y agoSometimes I wonder what would have happened if Sather had caught on. (forked from Eiffel in 1990, unlike Eiffel it was free and open-source) Authors claimed it was as fast as C++. https://en.wikipedia.org/wiki/Sather https://en.wikipedia.org/wiki/Sather
- pjmlp 7y agoI think it never had Eiffel's level of tooling, and libraries, focused on UNIX platforms as CLI compiler, hence why it never took off outside its research university. I learned about it on a Dr. Dobbs article and that was about it. As for performance, Eiffel was already quite fast, because while it used a VM for development (MELT), AOT compilation was done via system compilers, with support for generics and value types from the beginning. It was also one of the first OOP languages to support non-nullable references. EDIT: This was the Sather article I referred to. https://www.drdobbs.com/tools/the-sather-programming-language/184409087 https://www.drdobbs.com/tools/the-sather-programming-languag...
- tempguy9999 7y agoI subcontracted to a guy who was sold on the eiffel hype. I got an installed it to. I managed to crash the compiler in the first few minutes of use. The other guy ended up entirely distrusting the incremental compilation after losing a day or so to that. I don't remember any particular tooling, and the language was crap (Meyer was better at hype than language/compiler design). IIRC sather was eiffel with the subtyping holes fixed. Bertrand Meyer allowed holes in eiffel subtyping (which sather disallowed) which he (meyer) was sure he could deal with, but eventually they proved intractable IIRC. My boss eventually abandoned eiffel, and let the eiffel company know why. It was not an enjoyable experience for either me nor him.