3 ms·
Fascinating! So basically the only reason Java is a thing today is because some manager was moved to pity by the lack of job prospects of a bunch of soon-to-be
by patrec 6y ago
Fascinating! So basically the only reason Java is a thing today is because some manager was moved to pity by the lack of job prospects of a bunch of soon-to-be-redundant engineers (because they had unwisely spent their last few years on this dead end project without anything tangible to show for it). So they allowed a release before putting them out to pasture, only to find the dead end project suddenly had become an overnight hit?
- ChuckMcM 6y agoYeah, pretty much. At the February '95 budget meeting (which determines budget for the next fiscal year (July 1)) they agreed that FY94 was the last year First Person would be funded so by 7/1/95 it was up to us to find new jobs either inside of Sun or elsewhere. But to be fair you are looking at it from the future backwards. At the time Sun considered "the web" to be a feature not a product (many were bemoaning that because SGI was making it so central to their identity) and a "browser plug-in" (which in itself was kind of a weird concept, originally we thought all applets would be java://applet-host) was hardly something to interest a big enterprise player like Sun. We literally went overnight from other parts of the company saying "I knew they were never going to make it." to "really this project has been ours all along it only seems fair that we should continue to direct it.", Sun Labs, SunSoft, and Sun hardware all claimed to be the reason we were even existing. It stands today, for me, as a classic "accidental" disruption.
- DonHopkins 6y agoSun politics, and opportunistic retroactive credit-takers, pfff! The same kind of bullshit happened with Self and HotSpot. Lars Bak developed the JIT compiler for Self at Sun, which they didn't appreciate, so he left for another company, applied his ideas to Java, and they bought his company back, and made HotSpot! https://en.wikipedia.org/wiki/Lars_Bak_(computer_programmer) https://en.wikipedia.org/wiki/Lars_Bak_(computer_programmer) >After participating in the design and implementation of the BETA Mjølner System, in 1991 he joined the Self group at Sun Microsystems Laboratories in Cupertino, California. During his time there, he developed a programming environment for Self and added several enhancements to the virtual machine. >In 1994, he joined LongView Technologies LLC, where he designed and implemented high performance virtual machines for both Smalltalk and Java. After Sun Microsystems acquired LongView in 1997, Bak became engineering manager and technical lead in the HotSpot team at Sun's Java Software Division where he developed a high-performance Java virtual machine. https://news.ycombinator.com/item?id=18691446 https://news.ycombinator.com/item?id=18691446 Java’s Forgotten Forebear (2009) (ieee.org) https://spectrum.ieee.org/computing/software/javas-forgotten-forbear https://spectrum.ieee.org/computing/software/javas-forgotten... https://news.ycombinator.com/item?id=23800625 https://news.ycombinator.com/item?id=23800625 Call with David Ungar (2015) [video] (youtube.com) https://www.youtube.com/watch?v=8nfrC-YLYqc&ab_channel=HernanWilkinson https://www.youtube.com/watch?v=8nfrC-YLYqc&ab_channel=Herna... https://news.ycombinator.com/item?id=20377077 https://news.ycombinator.com/item?id=20377077 >Lua's main problem is that it isn't JavaScript (i.e. in JavaScript's enviably lucky position of ubiquitous dominance). >If I had a time machine, I'd go back and try to convince Netscape to use Lua 2.1 instead of inventing JavaScript (released December 4, 1995). And hire the Self guys (Dave Ungar, Randy Smith and the crew who eventually made the Java HotSpot compiler) away from Sun, and Mike Pall (LuaJIT) from wherever he was! https://www.lua.org/versions.html https://www.lua.org/versions.html >Lua 2.1 was released on 07 Feb 1995. Its main new features were extensible semantics via fallbacks and support for object-oriented programming. This version was described in a journal paper. Starting with Lua 2.1, Lua became freely available for all purposes, including commercial uses. https://news.ycombinator.com/item?id=12574290 https://news.ycombinator.com/item?id=12574290 https://channel9.msdn.com/Blogs/Charles/A-Conversation-with-Bjarne-Stroustrup-Carl-Hewitt-and-Dave-Ungar https://channel9.msdn.com/Blogs/Charles/A-Conversation-with-... Here's some discussion with Jens Mönig about Self's roots and Morphic's evolution, and Lars Bak on JIT compilation: Jens Mönig (the author of Snap!) talked all about the new version of Snap! and the new HyperBlocks feature (APL like arrays) in the Snap!Con20 Keynote! His delight in programming is so contagious even with social distancing and teleconferencing! https://www.youtube.com/watch?v=K1qR4vTAw4w&ab_channel=JensM%C3%B6nig https://www.youtube.com/watch?v=K1qR4vTAw4w&ab_channel=JensM... I asked him about the architectural changes, and we discussed them and he sent me this: Don: Hi Jens! I'm catching up with all the work you've done since the Snap 5 release! You've made excellent progress! The problems you had and optimizations you made for Chrome sound interesting! Is there a summary or design document or discussion thread about it that I can read to catch up with it? Watching your Snap!Con20 keynote on Hyperblocks. Your delight in programming is so contagious even with social distancing and teleconferencing! Jens: Thanks, Don! The architectural changes were kinda profound, and I wasn't too eager about them had it not been for Chrome's suckiness. Now I'm really glad that all the work paid off, and Snap! has become much better, more stable and faster on all browsers, especially also on mobile ones. I don't really have a document aside from the short "migration guide" in the Github repo, but that doesn't discuss the architecture. That was a discussion between moi, John Maloney and some others. Don: Was there a Buddha Nature of the changes, or did everything change? Jens: Not everything changed. Don: I find architectural evolutionary stuff fascinating, like watching people solve the trolley problem for sport! Jens: I basically reverted to a Squeak model of display refreshing, instead of pre-rendering and caching every morph in advance. So the changes were mostly "surgical" and only affected parts of the whole thing. Don: Bert's paper about SqueakJS was a delightful mind-blower! His solution to the GC problem! Jens: Now that I mention is, I do have some slides that I drew for SAP management in April that talk about architecture - even though they didn't understand any of it. Let me see whether I still have them... Don: I loved reading the original Self papers back in 91 or so. I was visiting Amsterdam for the first time and had printed them out, and was reading them in a coffeeshop smoking weed. MIND=BLOWN! Jens: https://drive.google.com/file/d/1QD-tqtTL3ldtmtqmViNm-C7TW0n7Jykp/view?usp=sharing https://drive.google.com/file/d/1QD-tqtTL3ldtmtqmViNm-C7TW0n... Don: Thank you! I'd heard so much about Morphic and wanted to know what that was about, and why people liked it so much. Didn't that come from Self? Jens: Oh, yes the SELF papers were all wonderful, and Bert's / Vanessa's SqueakJS is the most awesome piece of software. Yep, Morphic came all from SELF, that's right Of course, I first saw it in Squeak, and hated it at first, haha. Don: The self papers just kept piling on layer after layer of amazing stuff: clean model. efficient implementation. jit compiler. but actually debuggable, with dynamic deoptimization! And they made it clear in those papers that those ideas could be applied to other languages, not just Self. They meant Smalltalk but didn't realize that Java would be the main beneficiary soon (then JavaScript). When I was working for Kaleida and evangelizing ScriptX (like CLOS-y object oriented scheme, kinda like dylan, with a multimedia library), the Python people really annoyed me because they were so smug and happy with their language, and I had a kind of envy for them, clinging to my sinking language. Then I became one of them and it was ok. I still do Python, but it's not my focus now, and I'd start new stuff in JavaScript now. Jens: Yeah, it's somewhat ironic that V8 turned out to be the main beneficiary of Lars Bak's work, not a Smalltalk system, isn't it? Don: Yes, and sadly ironic that David Ungar stayed loyally at Sun while the other guys forked off their own company that got bought by Sun for lots of money, and poor Dave didn't cash in on the reward he deserved. Well maybe ironic is the wrong word, just too bad Sun didn't treat Dave better, for all his work. But leaving a company, doing something cool, then selling it back to the company is a great "we told you so" move! All those ideas from Self were portable, and migrated out of Self to Java then to JavaScript, and lots of other places too, like LuaJIT! But they called in in the original papers, it was not language specific.
- patrec 6y agoThe main thing that stood out to me is the only reason Sun could "profit" from this accidental disruption is because someone in management was a nice enough person to allow something which it sounds like they must have seen as a small net loss for the company but a big net win for the engineers involved. I found that part much more surprising and interesting than the presence of harmful politics or people climbing over each other to claim credit for something they previously dismissed. Of course the story would be even more uplifting had Java become profitable and not just popular... (I mean certainly Java was worth something and the prime reason Sun got bought by Oracle, but it wasn't enough to help the company survive as an independent entity and even with hindsight it's not obvious to me what strategy would have allowed Sun to prosper)