20 ms·
Java 1.0 Turns 25
- postit 6y agoIt’s crazy to think C++ and Java are only 10 years apart in the language timeline.
- jamespwilliams 6y agoAnd C++ and Python only 6 years...
- mssdvd 6y agoAnd many people consider python as a novel language
- alblue 6y agoWhat's even more interesting is that C++ and Objective-C started around the same time, and while one is known about widely, the other is still used heavily in the macOS and iOS ecosystems today. Indeed, the creator of Java acknowledged that Objective-C inspired the Java runtime, in particular its late-binding and message sending capabilities, which is what Java has used to this day to allow applications to still run unchanged, even after all these years.
- asplake 6y agoOh - we share a birthday :-)
- rzzzt 6y agoHappy Birthday!
- fiftyacorn 6y agoI remember buying a book at uni to learn it in 96. AHH applets
- jasode 6y agoI look at the history of Java as a case study in how original intentions don't play out. Hype, disillusionment, irony. Hype: Java "write once run anywhere" JVM was super hyped as the "Microsoft killer". In reality, the forces that reduced MS's desktop power were Apple iPhone & Google Android. MS's server software influence was reduced by Linux/MySQL and by further by Amazon AWS running that open source stack. Java was also predicted to be the "C++ killer" because all those wasted extra cpu cycles on fat desktops could be used for GC to make "manual memory management" obsolete. Java did succeed on the server (e.g. Ebay, Amazon, Google, all run a lot of Java on backend servers) but C++ today still has the spotlight for machine learning, games, desktop apps, etc. Irony: Java was the "serious" language for browsers and Javascript the "toy" language. In reality, Java Applets died along with Adobe Flash and MS Silverlight and Javascript evolves by bottom-up popularity to code complex browser apps. On the desktop side, it looks like a Javascript runtime (Electron, Deno) will have more deployment than a JVM-based runtime. If I can be bold and apply learnings from Java's history to today's landscape... I don't think Julia will achieve massive popularity for math programming even though the language was designed for it and the evangelists predict it. Instead, Python usage will always be ahead in that domain. Julia needs an influential player like NVIDIA CUDA or Google Tensorflow to adopt Julia as a first-class API to change its future trajectory and it doesn't look like that will happen. Similar counterintuitive history with the BASIC language. The "B.A." in "BASIC" stands for "Beginner All-purpose" but it turns out that Python became the more popular beginners language. The eventual history doesn't always agree with original design intentions of the programming language.
- nix23 6y ago> Java "write once run anywhere" JVM was super hyped as the "Microsoft killer" Java is a programming language, and you give the best example that it partially killed MS -> Android, and with Linux/MySql some of the biggest and longest running applications are written in Java and run on Linux..or whatever.
- hitekker 6y agoYou do know that Android was originally written in Java, right?
- fctorial 6y agoJDK 1.1 still works on windows (and on linux via wine). https://www.oracle.com/java/technologies/java-archive-downloads-javase11-downloads.html https://www.oracle.com/java/technologies/java-archive-downlo... Everything I tested works flawlessly.
- throwaway189262 6y agoMost Java 1.1 code still runs fine on Java 15 too. You'll get a bunch of warnings though
- jpgvm 6y agoYet in 2020 Java is still one of the most promising languages and it's VM spawned one of the most diverse and enduring ecosystems/platforms allowing a multitude of languages and frameworks to thrive.
- Communitivity 6y agoI remember the announcement, and being thrilled as I poured over the documentation and did some Java experiments. I didn't really get into programming it for my job until 1.1.4 though, and I remember being skeptical about the language's future when they changed the versioning a year later to Java 2, 3, etc. I continued with Java as my main language on the job until 2017. I should note that my coding for work became a mix of Android Dalvik Java and J2EE around 2009, and then focused on Android from 2013 to about 2016, with some Elixir and occasional J2EE work (Java 8). In 2016 my main language at work became C++, with some Rust. Revisiting Java and learning modern Java (Java 13-16) is one of my goals for 2021. That's driven by commercial necessity though. That is second to laying the groundwork for a full time Rust job though. Rust is the language that fills my heart, through and through.
- throwaway189262 6y agoI would say wait till Java 17. There's not a big difference from 11-15 and most of the new features are still in preview. Performance has been the big focus recently with new GC's, less memory use, and faster startup time
- ptx 6y ago> faster startup time Compared to Java 9, which was a big regression from Java 8 in terms of startup time. And Java 8 in turn was slower to start than Java 6.
- javajosh 6y agoI won't go past Java 11 because that's the last version that has an OpenJDK fork, AFAIK. I'm not a lawyer, but Oracle has changed the license for >11 that also gives me pause. I'm also very unhappy with Java's feature bloat: the JVM spec and JL spec used to be small and comprehensible, circa Java 5. Now they are both like 800+ documents. This dilutes Java's single greatest strength, which is a well-written, implementation independent specification. No other high level language has this. Python's specification, for example, is "read the CPython code". JavaScript + DOM (especially ES6 in modern browsers) has fulfilled the WORA promise on the client, and apart from a vast library of OSS libraries, I don't think Java is particularly distinguished at server-side. Spring? Django? Rails? Express? I mean, who cares at this point? They are all just processes that bind to a port and handle HTTP requests, with more-or-less the same trade-offs and dev experience. The biggest distinction with DX is "IDE vs text editor", not language/framework. I agree that Rust is a very exciting language, as is the general trend toward Clang/LLVM for new native languages. It seems we might finally be able to have our cake and eat it too. We'll see!
- postit 6y agoIt’s crazy to think C++ and Java are only 10 years apart in the language timeline.
- forinti 6y agoI think it is weird that it is 5 years younger than Python. I only heard about Python much later.
- hugs 6y agoLike in Aesop's fable, Python was a "tortoise" to many other languages "hare". Many languages (especially BASIC, Perl, PHP, Java, and Ruby) had moments where they had an extreme amount of attention in a short amount of time. Python never had its one defining "moment" (like Sun announcing and hyping Java), but Python steadily grew in usage nevertheless the whole time.
- usrusr 6y agoWell, both are far out on the fast end of the adoption rate spectrum, so subjectively those ten years have been a very long ten years. A lot of Java had been written to pre-1.5/"java 5" standards. There is so much of that stuff that even a full ten years after falling in love with Scala (not as an early adopter, I think it was right at its popularity peak!) I happened to find myself "generifying" some ancient java code. Even kotlin is older now than pre-generics Java has ever been.
- formerly_proven 6y agoWhat fascinates me is that Java 1.0 is from 1996, yet it seems like there was already a large number of production systems based on it by the turn of the millennium.
- hibikir 6y agoI worked on one, for a large telecom: It was simple business software, which before was written either in Cobol or plain old C. The large performance penalty that Java had back then was far less important than having to mind memory leaks in C, and people already thought Cobol was a language without a big future. It was also at the time before the dominance of x86 on intel hardware, so the compile once, run anywhere idea was also quite attractive to people that knew they wanted to change hardware vendors. It took a few more versions, and a few more JVM performance improvements, before Java was a competitive for a broader spectrum of uses, but it was competitive for business very quickly.
- vbezhenar 6y agoWhere can I download Java 1.0?
- vincnetas 6y agohttps://www.oracle.com/java/technologies/java-archive-downloads-javase11-downloads.html https://www.oracle.com/java/technologies/java-archive-downlo...
- vbezhenar 6y agoIt is Java 1.1.
- pjmlp 6y ago1.0 is almost impossible to find out. If I remember correctly the first usable one was actually 1.0.1.
- parasubvert 6y ago1.0.2 was the most stable and lasted the longest
- pjmlp 6y agoMight have been that one, I just remember it was exactly 1.0. Also remember some bugs as it was possible to combine accessors together something like having public private.
- alblue 6y agoYes, prior versions were insanely buggy. 1.0.2 was pretty stable as they fixed most of the problems by then, although Java 1.1 was when companies started to really use it for stability. Problems happened with the windows fork which was pinned to 1.1.3 but it went up to 1.1.8 IIRC.
- projektfu 6y ago
- raverbashing 6y agoInteresting, what happened to JavaSoft? Was it a Sun subsidiary that got merged back?
- pulse7 6y agoYes.
- curtis3389 6y agoI 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
- forinti 6y agoIn those days, I had the JDK in a box of 3.5" floppies.
- ansible 6y agoI was really excited about Java back in the day. My friend and I back in the 1990's started working on a STEM website that would have made use of Java applets. The idea was to present algebra concepts with graphing applets where you could modify a formula for a parabola, and then see the results on-screen in real time. Like what you could do with a graphing calculator, but with a more explanatory text surrounding it. I just took a look at the first page of google results for "learn algebra parabola" and found plenty of learning resources... but not a single one was interactive? With all the fancy Javascript-heavy pages these days, has noone has done this sort of thing? I also took a look at Khan Academy, and they have some interactive stuff, a lot of it is just videos.
- hnra 6y agoPerhaps Immersive Math [1] is similar to what you're looking for? [1]: http://immersivemath.com/ila/index.html http://immersivemath.com/ila/index.html
- ansible 6y agoYes, that's what I'm talking about.
- mStreamTeam 6y agoAll the frontend engineers I know are in it for the money these days. There's very little passion for building UIs that don't pull down a 6 figure income.
- austincheney 6y agoThere’s very little passion for writing any original front-end code of any kind unless you are doing it for yourself.
- randomopining 6y agoHonestly what revolutionary thing are you gonna do on the web with a 2d screen? Why waste hundreds of hours of your life doing it unless you enjoy it. Just paid paid son.
- tannhaeuser 6y agoMight be unknown to many how close we were to total MS dominance on the server side (in addition to the desktop which was owned by MS anyway) around 1992-6 and the push that Java and also the web got from Unix and open systems fans who weren't comfortable to surrender it all to MS. Around 2000ish there was this push for "100% pure Java" re-implementations for common libs and stuff showing the power of a community sharing a common goal, but also the blueprint for a language-centric ecosystem (not my cup of tea) that's also present in today's Rust, Go, Python, and Node.js communities, though Node.js booted off CommonJs and older SSJS initiatives who were mostly Java drop-outs fleeing from Java's AbstractEnterpriseIntegrationPattern-ness.
- temporallobe 6y agoSpeaking of Microsoft, does anyone remember J#? I didn’t think so.
- u678u 6y agoThat quickly became C# though which is very good and very popular. Edit you're right, C# and J# coexisted. I think its still the theme of MS using their own JVM then moving it to dotnet. https://en.wikipedia.org/wiki/Visual_J_Sharp https://en.wikipedia.org/wiki/Visual_J_Sharp
- temporallobe 6y agoOh yeah, C# is superb and even offers some features Java doesn’t such as limited operating overloading. My dabble in J# was brief but interesting and served as a smooth transition to C#.
- pjmlp 6y agoThat was J++. J# was Java for .NET, a C# sibling.
- pjmlp 6y agoI do, even have some books and other related stuff around.
- pjmlp 6y agoStill using it alongside .NET, my two favourite platforms. Happy birthday Duke!
- imtringued 6y agoIn principle I like Java but there are a few minor details that just make it not worth dealing with it. Getters and setters are incredibly annoying. There are lots of crazy things going on in the JEE ecosystem. The latter is a big deal when you accept an average "Java job". If you were to give it a small facelift I wouldn't have to worry about all the tiny flaws that add up. I don't really need Kotlin, Scala or dead JVM language x. Just a slightly better Java.
- noisem4ker 6y ago>Getters and setters Meet Project Lombok. Problem solved and forgotten.
- ivan_gammel 6y agoWell, no, it is not. Lombok does not mask invocations, so it is still foo.getA().getB().getC()
- Vax45 6y agoI prefer Immutables for code generation. Lombok tends to interfere with Eclipse' code evaluations (last time I used it, it kept interfering with searching for a generated method's usage in your code base) and tends to confuse me when trying to figure out if something's an actual method or a method that was injected into the AST during compilation. Immutables has its own set of problems, but at least it uses the standard Annotation processor and has a clear separation of generated code and the interface you write. Haven't used Java's new record's yet, so don't really know anything about that.
- dehrmann 6y agoI can't remember the exact issues, but there's enough magic going on in Lombok that it doesn't play well with Kotlin, so you're better off with Autovalue or Immutables to future-proof things. I also generally don't like how much magic Lombok uses, regardless of if you needs support for any other JVM languages.
- kulig 6y agoAn external dependency for generating getters and setters? Whats next? Dependency to check if a value is null?
- mongol 6y agoI started developing Java in my first job in 1998. On that workplace, some developers before me had evaluated some kind of Java framework called "San Francisco", if I remember it right, before I joined, but decided against it. If I remember it right, it was IBM that were behind that. Is someone familiar with it? Some pre-J2EE thing..?
- grzm 6y agoLikely https://wiki.c2.com/?IbmSanFrancisco https://wiki.c2.com/?IbmSanFrancisco ?
- mongol 6y agoYes this must have been it. Seems like something that didn't get traction...? I was wondering if it was the origin of something that came later such as servlets or EJB or something...
- fauigerzigerk 6y agoIt wasn't on the same level of abstraction as EJB or Servlets. "San Francisco" was a business-level framework that had components for things like inventory and order management, invoicing, pricing and discounting, etc. I guess the idea was that in-house developers would write line-of-business applications on top of it instead of customising something like SAP or Oracle Applications. It didn't get much traction as a concept, but I wouldn't be surprised if something like it still existed in some corner of IBM's consulting business.
- mongol 6y agoOkay, thanks for explaining!
- randomopining 6y agoI'm like not that amazing of a programmer, but Java seems pretty legit. It's a lot of cruft to pull together and manage to make stuff work. But once it does it's fast and the codebase is fairly easy to mentally model and absorb. Yeah the boilerplate stuff is kinda annoying but whatever. Java with Akka adds the actor and some flow/functional stuff that seems to be useful for building a distributed and complex system that would be used in the future landscape of functional computing.
- sradman 6y ago> Although Java has evolved over the years, the core of the JVM has maintained stability – to the point where applications compiled with Java 1.0 can still be run on modern JVMs, albeit much faster. The bytecode format has (largely) remained unchanged; Java has many warts but the bytecode stability is an admirable achievement.
- walkingolof 6y agoThat stability comes with a huge cost, for example, Value types, desperately needed, has been going on FOREVER (7 years and counting) with no end in sight ..
- wilsonthewhale 6y agoIf you've been following the development progress, they've gotten the VM side largely ironed out and under testing. Nothing on the language side has been polished yet though. As an honest estimate, I'd give about 2-4 more years. But it's definitely further along than I thought it would be. See: https://cr.openjdk.java.net/~briangoetz/valhalla/sov/ https://cr.openjdk.java.net/~briangoetz/valhalla/sov/
- victor106 6y agoValue types and Loom (lightweight threads) are two things that will shape Java in profound ways for years to come. 2-4 years for value types seems quite long but the changes to the spec to accommodate value type is much more broader in scope so that’s understandable.
- DaiPlusPlus 6y agoLoom question: I gather that it basically has implicit awaits, so how do you “force no-await” so you can run operations concurrently?
- victor106 6y ago
- jansan 6y agoDoes anyone remember the first Java IDEs? I know there was Visual Age for Java by IBM, but Sun had something, too. Was it called "Java Workshop" or something similar?
- jansan 6y agoFound it! It was actually called "Java Workshop". Here is a review of v2.0: https://www.irt.org/software/sw017/ https://www.irt.org/software/sw017/ The UI builder was really buggy and almost impossible to use, that's why we learned using GridBagLayout manually.
- severino 6y agoYou made me remember there was an IDE called "Visual Café" around that time. It was from Symantec: https://en.wikipedia.org/wiki/Visual_Caf%C3%A9 https://en.wikipedia.org/wiki/Visual_Caf%C3%A9
- rufus_foreman 6y agoI used Visual Age at work in the late 90s. The IDE itself was pretty decent but I still have nightmares about EJBs. The micro edition of VAJ (yes, that's what we called it) was itself written entirely in Java, and the team that did that took what they learned and built Eclipse.
- alblue 6y agoI interviewed Mike Milinkovic who led that team and who became Eclipse's executive director back in 2013, if you're interested in a trip down memory lane: https://www.infoq.com/interviews/Milinkovich-past-present-future-Eclipse/ https://www.infoq.com/interviews/Milinkovich-past-present-fu...
- didip 6y agoThe only thing I wished Java had from the get-to is lexical scoping closure with a real function as first class. These alone would have cut down so many boilerplate codes.
- heelix 6y agoAn Oracle marketing person reached out to me for some video clips talking about Java last Summer. One of the questions they asked is where do you see Java in 25 years? At that point in time, with a six month release cycle, the answer was Java 64. :) I got on the Java roller coaster in the Java 1.1 days... so some 23 years since I wrote my first Applet that tied to the mainframe via RMI/CORBA. Java has really evolved. Seems there is a wide range of Java developers - those fluent with streams, lambdas and other features introduced in Java 8 - and those who don't even seem to know what Java 7 try with resources are. I suspect C++ and other languages that have been around for multiple decades see the same thing. Not sure if it is the starting education or just dated material.
- chapium 6y agoI recently took some java classes and java 8 was baseline.
- oaiey 6y agoBe happy about it. It is no fun programming in early versions.
- pdevr 6y agoAh. RMI. It is funny. When I started with Java, one of the first real-world problems I faced, was solved using RMI. After many years, I faced a weird situation where requests were not passing through properly and hence, security assertions were failing.I solved it by ditching the frameworks and making pure HTTP calls[1]. I thought, the wheel has come full circle :-) [1] Disclaimer: Do not try at home, unless you know very well what you are doing. Especially when it involves security.
- twodayrice 6y agoI remember reading the white paper back in the 90s and being so excited. It’s been a good run!
- geophile 6y agoI was working in C++ when Java came out, and I remember my initial reactions: 1. Nice language, a relief after the complexity of C++, which was a complicated mess even in the early 90s. 2. GC! A great relief. 3. Completely bizarre memory model, due to the inability to physically embed one object inside another. 25 years later: Language: My view of the language itself is lower than it used to be. This is not due to the current "objects are evil" fad, not due to the preposterous AbstractFactoryManagerFactory abstractions that are sometimes enforced, and not due getters/setters (don't use them if you don't want to, I don't). No, I think there are two basic problems with the language itself. First, type erasure is just bad. It does simplify a number of things for implementation, but it leads to non-intuitive hacks required to get things right. Second, they got closures all wrong, basically limited to constant values so that the implementation can rely on copying. So many other languages get it right. (Have they fixed this? I haven't been an active Java user for a few years.) GC: Still nice, but: GC performance is still an issue. This is undeniable -- Oracle is still experimenting with new GCs. Tuning is getting so arcane, that I think I might actually prefer the C model. Valgrind was not available when I was an active C++ developer. It makes C memory debugging so simple, and GC tuning is such a mess, that my preference for GC (at least in Java) has diminished. If I had to rank memory management models, I think I'd go with 1) C + valgrind, 2) GC, and a very distant 3) Swift-style reference counting. Memory model: The lack of physically embedded objects is still a miserable choice. I understand why they did it -- it makes object identity much more complicated. But it really does rob Java of some critical tools for improving performance. Project Valhalla (value types) seems to be perpetually several releases in the future.
- AtlasBarfed 6y agoC still suffers from lack of real Unicode. One of Java's other big wins was unicode out of the box. Granted it was two-byte unicode, but still... it was aware it was a thing. I write Groovy with @CompileStatic. I do sigh when I have to "drop back" to Java. Much like Valgrind for C, IDEs helped out with Java's rough edges.
- kaba0 6y agoWhat’s wrong with type erasure? It’s always get brought up, but other than missing overloading (it never occured to me, but it is at least an objective criticism), it is basically what every single language does, other than c#.
- _trampeltier 6y agoI learned a bit Java 1.1 in my young years, but never used it much later. I still think Java Applets, embedded Apps in websites was a great idea and much better than anything we have today. But it never happened, because they did not took security so serious and so it was dangerous and never became a thing, sadly.
- pdevr 6y agoJava has amazing longevity. People have been writing articles about its demise, and yet, it is still here. I have programmed in Java for a long, long time. Getters and setters, Maven and its vagaries, abundant use of patterns - all of these make sure people have strong opinions about it. If any new person wants to learn Java, my two cents: Master generics and lambda. Do not learn, master them. Learn to write bullet-proof code using those two concepts, including proper exception handling. You will learn about a lot of things in Java, just by mastering those two concepts.
- alblue 6y agoI was involved using Java right from the very start, in 1995 while it was still available as a beta. I remember being distinctly annoyed that the Java 1.1 broke the model introduced in Java 1.0, in which a JVM which had no Windows showing or Threads running would terminate automatically. When Java 1.1 was created, the event dispatcher thread was created (incorrectly, in my opinion) as a non-daemon thread, which meant as soon as you loaded the toolkit the JVM would never close until you hit System.exit. Here's the bug I proposed a fix with in November 1998: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4030718 https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4030718 The shutdown hook never got fixed; these days there's convenience methods to add a shutdown hook to the (J)Frame so that on close it would call System.exit for you. I've written a bit more about my history here if you're interested: https://alblue.bandlem.com/2021/01/java-1.0-turns-25.0.html https://alblue.bandlem.com/2021/01/java-1.0-turns-25.0.html
- jzer0cool 6y agoMaybe someone here knows with something I've been struggling with lately. In modern systems when running a java created binary, I find it runs much slower on a mac, then on a PC especially. Not sure, but I find the ui jitters and stalls (imagine running heavy app in a vm container) when there is a lot of data pulling from a remote site. Is there a way to drive performance to the JVM, or shed light to what might be the cause? Thoughts to why a much older pc with less memory, worst memory card, seems to perform flawlessly. Here to look for any other solutions I could try. I love to be working on the mac, but like to have the performance I find when running the java app (with ui elements) on a pc. Something that comes to mind at the moment is maybe trying here a remote desktop to a windows machine to see if performance is better than running natively on the mac. Sorry in advanced for the slight vagueness on the specific app running and lack of specs provided.
- pirocks 6y agoMy first suggestion would to see if the lag corresponds to a full GC. Google can tell you the proper incantation to log GC events. If it is caused by a full GC you probably have some kind pathological behavior causing it . Allocating more RAM or changing GC args may help. Otherwise I would recommend profiling. You can use visualvm which should come with your jdk for that.
- jzer0cool 6y agoIf given a mac binary (and only that, only see it as a mac app and unsure here if there is a wrapper around it to make it so), is there a typical way to run it like pure java binary so I can add any xarg params for running it? I'll probably need to due a quick check on how a wrapper might have been created as it looks like a mac app so I can separate out the pure java binary. Memory: As far as I see, there is a built-in profiler within the app showing the memory usage. It has a high limit to 1gb and I see it rise quickly to about third of the way and repeated (quickly, about every 2 seconds) garbage collect down to 200mb. So it appears memory consumed very fast and than it garbage collects. Then repeats.
- 6y ago
- nickik 6y agoWhat is so insane to me is how Java was the one that came out when Sun had so many other things going on. The Self language had all the tech, they had a full compiler team, a high performance implementation and could reasonably do everything Java could. So much that the same people ow did Self eventually end up working on the JVM as well. And Java Script, end-up up itself being basically like Self in many ways. Maybe the Self team focused to much on research and the Java team focused more on getting it out there.
- muzster 6y ago0xcafebabe
- alblue 6y agoWhat’s interesting is that this is both the magic code for Java class files, and also for Mach-O executables on NeXTstep and macOS. So the language that inspired Java also has the same magic number — although this is a coincidence, not a derivative.
- linuxhansl 6y agoHeh. I remember the Java 1.0 days. At work someone showed me Java and just running a "Hello World" took a few seconds to start. And complex code was sloooow. I immediately concluded that no-one will ever use it and that's it's just a fad. (Just like I predicted there's no way to make money from a search engine :) ). Things changed a lot with Java 1.3, which, for the first time, came with JIT compiler. And with modern escape analysis, lock elision, new GCs, etc, I no longer (OK very rarely) look to C/C++ for performance anymore. I still miss real pointers (better unsafe, et al), native types collections (there are external ones) and more control over what gets put on the stack vs. on the heap (escape analysis is not good enough, yet.) sometimes.
- setpatchaddress 6y agoI remember being told in 1996 that Java would eventually be faster than C++ thanks to JIT compilation and certain language features (like `final`)... (Edit) Oh, and discovering that AWT was useless for just about anything.
- dave_sid 6y agoI feel old
- DonHopkins 6y agoPretty good run for a domain specific language for converting XML files into stack dumps.
- ebruchez 6y agoI remember when Java was first announced. I was in college. I read "The Java Language: A White Paper" and I was immediately excited. The benefits touted were: - simple - object-oriented - distributed - robust - secure - architecture-neutral - portable - interpreted - high performance - multithreaded - dynamic Quite a list! See the original paper here: https://tech-insider.org/java/research/acrobat/9503.pdf https://tech-insider.org/java/research/acrobat/9503.pdf I was one of the first students to do a project in Java (which I suggested myself). Yes, at that time, Java was cool technology.