40 ms·
Ain't Java the 2nd most used language in the world, after JavaScript? The enterprise world uses Java everywhere. Java powers pretty much the entire banking in
by TacticalCoder 5y ago
Ain't Java the 2nd most used language in the world, after JavaScript? The enterprise world uses Java everywhere. Java powers pretty much the entire banking infrastructure.
Aren't there billions of Java smartcards that people carry in their pocket/wallet and use on a daily basis?
Aren't there billions of Android apps installed that are, basically, Java?
One can dispute the numbers a bit but... How is Java not one of the biggest success story ever for a programming language?
I'd also add: it's kinda funny to see so many programmers hating on Java and thinking that, somehow, Java is dead or dying, yet on a daily basis they'll use one of the JetBrains tools, written in Java, to work on their "non Java" code.
I do not only think he was right to lose sleep over it: I think Java delivered.
- coldtea 5y ago>Aren't there billions of Java smartcards that people carry in their pocket/wallet and use on a daily basis? No.
- smcl 5y agoThey are referring to SIM cards or newer credit/debit cards (the chip-and-pin ones): https://en.wikipedia.org/wiki/Java_Card https://en.wikipedia.org/wiki/Java_Card
- coldtea 5y agoI guessed as much, but I don't think they're anything but niche in 2022. They're not in regular (e.g. VISA, Mastercard) chip-and-pin credit cards for example, are they?
- smcl 5y agoSo wikipedia says that it is, but honestly I am not an expert so let's just set that aside for argument's sake unless someone can definitively say one way or another. But it's definitely in SIM cards, which are indeed carried and used by billions daily
- kaba0 5y agoI think it is still Java in bank cards. Even Apple Pay implemented all their thingies in Java.
- joelthelion 5y agoJava didn't kill Microsoft though.
- forgetfulness 5y agoIn a very indirect way; leveraging its popularity, and coming on the heels of Apple to create a captive audience for their ad networks and surveillance machinery, Google used Java to spring up a developer base for Android, which ate away at the use of MS product outside of the US like iOS did stateside.
- the-dude 5y agoOnly because they invented their own.
- cfcosta 5y agoBecause Sun (or oracle, I'm bad with time) decided to forbid MS to keep developing their own implementation.
- dtech 5y agoRightly so. They added all kinds of things that only worked on the MS JVM, which was the "extend" of their EEE strategy, right before extinguish.
- treeman79 5y agoJ++ was the final straw for me. I realized it’s sole purpose was to screw over Java. Not to be useful. Spent last 20 years avoiding Microsoft tech after that.
- tzs 5y agoThose things were almost all things that you could ignore if you weren't trying to specifically make a program for Windows, and that if you were trying to make a program specifically for Windows made it a lot easier and made the resulting program a lot better as a Windows program. If Sun had blessed Microsoft's approach and encouraged Apple to do similar for Mac and done similar themselves for Solaris and encouraged someone to do similar for Linux then Java could have become a major language for mainstream desktop applications rivaling C/C++ or perhaps even becoming the most common language for such development. But Sun didn't want you to be able to write for Windows or Mac or Linux using Java. They wanted you to write for the Java platform which happened to run on Windows and Mac and Linux. And so Java desktop apps were almost always inferior to desktop apps written in C/C++/Objective C that could make better use of the native GUI and other facilities and did not stand out as some weird ugly alien thing.
- strangemonad 5y agoAnd when you leave aside Java (the language) and consider the jvm platform broader ecosystem with all the various interoperable languages like kotlin, scala, clojure… it’s a huge space. I understand some level of heathy criticism but, I don’t really understand the level of hate the jvm gets. When you look at recent and upcoming features, a lot of the complaints about it being “heavy” are being directly addressed.
- bayindirh 5y agoJVM is not really that heavy since the Intel released "Core i" series processors. Also, JVM uses its resources well. It's one of the best engineered software artifacts if you ask me. I really enjoyed using the language back then, and will not hesitate to restart if there's a scenario which would fit the bill to use it.
- smaudet 5y agoIt's not heavy, it's the syndrome where wild success gets you associated with the good and the bad. Enterprise Java is extremely slow, over-engineered, complex, that's where the majority of hate comes from. Then they had their security debacle, coupled with a couple strange roadmap changes, and being bought out by Oracle, an unpopular company for different reasons. Java the language then sat mired by the corporate world and went nowhere for almost a decade (java 6, 7, 8). Oh, and don't forget Billy, wonder why C# has made such a comeback in recent years. It's a nice(r) more modern language, it's not that great, come on...and I say this currently working in it full time. So yeah political prop and the normal stuff popularity brings with it. It has also happened to JS too...
- foobarian 5y agoOn the Internet nobody knows you are a dog. There is a wide spectrum of age, experience, and attitude in the programming population. Hot take: I am guessing that a lot of the noisy hating and hemming and hawing comes from the newer, less experienced cohort, we just can't tell on the Internet and so the perception skews that a significant fraction of all programmers think this way. I am basing this on having been there, done that, where I would scoff with indignation at any software not written in hand-optimized assembler with a bunch of unnecessary (to my newbie self) layers of abstraction.
- agumonkey 5y agoJava would be the same success as PHP .. it might be everywhere but due to all kinds of side forces. It's like playing snooker, claiming a ball, missing it but scoring all the other ones accidentally and bragging.
- Sharlin 5y agoThat's very unfair. Some people may dislike Java and its ecosystem (and even the JVM platform), but it is not where it is now by accident.
- agumonkey 5y agoI honestly wonder what made java so prevalent server side. JVM jit speed and memory safety are good arguments but the rest was not so shiny. Remember the J2EE era, it was horrible and the reason java got there seems, IMO, to be heavy marketing. ps: I forgot, the JVM spec was a good thing, it made a lot of things sound for people, so easier deployments and less inconsistencies.
- Jetrel 5y agoNot exactly a java fan here, but java targeted the enormous block of people writing in C/C++ for their enterprise servers, and gave them "machine-independence". Being able to upgrade your server, and not having to rewrite your app, was huge. The competition wasn't PHP, at the time; it was C/C++. It's interesting in today's era of Rust, that people think of Java as failing to replace C++; in practice, it was only 90% successful, and managed to replace the vast majority of cases where people did use it. About the only things that didn't get replaced were (some) desktop gui apps, and apps that were so tiny that they weren't worth the launch of the JVM.
- agumonkey 5y agoYeah I remember steele saying they wanted to make c++ move toward lisp. But you got me curious.. what kind of backend code was written in c++ ? did people write server side logic in it ? I remember seeing some Oracle C code but it felt like a strange thing and not a c/c++ land. But to be honest that's not my world.
- nudpiedo 5y agoWell in the context of the emails: no, Java failed at delivering. Solaris OS is now history and many programming language competitors raised and won over it at its own game in all areas but android, although it was an industry leader for quite long time its time is over and now it is mainly corporative legacy. Even as general programming language Python and JavaScript took over, and in dedicated areas like webservers it’s been long since Java’s time is gone. The analysis in the replies is correct.
- whimsicalism 5y agoFor very complex business logic backend/middleware, who is beating Java? Only contenders I can think of are C# or Go.
- jpgvm 5y agoC# isn't, it's highly successful but locked into one ecosystem. .NET Core is very new (by enterprise standards) and hasn't yet had time to supplant usecases for Java. Go is even newer and even less successful vs Java. Firstly it's awful in large business logic heavy programs. It's getting better with generics but it's error handling and module structure mean it's very ill-suited to the sort of software Java thrives in. I think the only real competitor to Java (both on Android and backend/desktop) is Kotlin.
- vel0city 5y agoFWIW, there is no ".NET Core" anymore. Now its all just ".NET", whether or not you're running it on Windows or Linux. Theoretically its all just the same from the application's perspective, there's no separate toolchain or library.
- jpgvm 5y agoWhile that might be true now enterprise is still running stuff on .NET 2.X and .NET 4.X is still dominant overall. It will be years until enterprise shops are caught up to where .NET is atm, that is just the way of things. FWIW it's not much better in Java-land. Most enterprise shops have apps they refuse to invest in upgrading off of Java 6. Java 8 still has huge share though thankfully in the last few years Java 11 is catching on. I like Java and C# a lot, they appeal to me above the rest of the langs for practical reasons but I don't miss distancing myself from actual enterprise development - that is where passion goes to die.
- thomascgalvin 5y ago> How is Java not one of the biggest success story ever for a programming language? It absolutely is. Java isn't sexy, for the most part. It lets a lot of innovation happen in other languages, then takes the successful parts for itself. This is how we (eventually) got generics, lambdas, streams, and local type inference, for example. Java slowly becomes more ergonomic, and that slowness - the slowness to change, not execution speed - is why it gets a lot of hate. Why use Java, when $LANGUAGE_OF_THE_DAY has $FEATURE_OF_THE_DAY? What people fail to realize, what people fail to see the value of, is that this slowness means Java doesn't get worse. Java has avoided most unforced errors. It's not like C++, where the template language is both Turing complete and the fastest way to summon Beelzebub from the depths of his infernal pit, and where you need a team of PhDs to decide which version of `auto_pointer` actually works the way you think it does. It's not Javascript, where the framework your front-end lead sold you on last week has already been superseded by the hot new thing. And you don't generally have to worry about compatibility. Until v9, you could take code written against the 1.0 spec of the language and expect it to run pretty much out of the box. And the changes post v9 honestly aren't that difficult to work through, as opposed to Python's 2 -> 3 split. Java isn't the sexiest language out there, but it hits a very sweet spot, right in the middle of the "familiar", "stable", and "productive" Venn diagram. It's probably the second-most important computer language developed in my lifetime, after Javascript, and is without a doubt a smashing success story.
- mashpoe 5y ago> It lets a lot of innovation happen in other languages, then takes the successful parts for itself The only time I've ever had to use Java was for a computer science class, and I thought it was a solid language (pun intended), but I hated its half-assed attempt at operator overloading. I think it's a major feature that's long overdue to be fully implemented in Java, because it's already used for some of Java's built-in classes and it's proven useful in many other programming languages. Most of Java seems very well-thought-out to me, but for some reason they decided to add only some operator overloading, instead of planning ahead more. I remember hearing somewhere that they were planning on adding operator overloading, but last I checked it didn't look like it was going anywhere.
- dec0dedab0de 5y agoI think much of the hate for java came from non-programmers, or future programmers who had to deal with runtime issues. For a long time if an app was written in Java it meant it was going to be a pain at some point.
- rileyphone 5y agoI hate on Java because it's terrible to program in and seems to make it harder to actually solve problems, between the store-brand version of object orientation that it's based on and the mountains of useless abstraction that begets. There's a reason its relative popularity is on a downward trend [0] - my generation of programmers were taught Java in college and learned to hate it. Though I will say that its narrowness and structure make it the best choice for outsourcing/getting the most out of the cheapest development resources. Just not something that I want to deal with. [0] https://www.tiobe.com/tiobe-index/java/ https://www.tiobe.com/tiobe-index/java/
- kaba0 5y agoTiobe is next to useless, and Java doesn’t beget useless abstraction - it is entirely up to you how you write your code. Also, while it is indeed started out as an OOP language, it is a mixed paradigm one nowadays (just as almost all languages are) — you are entirely free to program it in a much more functional way. It is especially freeing with the new records.
- dilyevsky 5y agoIt’s true java the technology is actually pretty good. Java the culture on the other hand… It’s probably less to do with the language itself rather the fact it’s used mostly for boneheaded enterprise crud
- kaba0 5y agoJava has as many developers as a smaller country, ranging from the numerous enterprise domain (you mention) to robotics, to HFT. The culture between these are really distinct between them.
- dilyevsky 5y agoGoogle says there are 7 million java devs globally. Lets put number of robotics/hft java devs at 100k which seems rather generous. So what are the remaining 98% working on?
- PaulHoule 5y agoI had a summer job programming Java when it was still in beta. I remember getting into an argument in the men's room of the basement of center Ithaca with two guys who were saying that Java was overhyped and I was saying "believe the hype" That time I was right. Java was one of the first programming languages to be specified by adults. (e.g. they didn't know how to specify PL/I and make it work, C worked by accident, ...) When researchers realized the memory model was broken the first instinct of the Java creators was "let's fix it" while other languages first made excuses and waited a decade + for a "fix"
- otabdeveloper4 5y agoThe original promise of Java was cross-platform user-facing visual apps. (Which is why Gates was scared of it.) This promise certainly failed to deliver. Instead Java is now Cobol 2.0, but nobody lost sleep over this fact.
- PaulHoule 5y agoThere was the idea that Java Beans would work like the COM model does for Visual Basic and it would be straightforward to build a GUI to build form GUIs. That never happened, but few visual UI builders have come close to what Visual Basic was in 1995. I liked JavaFX but I don't miss it.
- samus 5y agoIt actually failed at what Bill Gates feared it would to: it is pervasive, but not a competition to Windows and the Windows GUI stack. Smartcards were never MS's target market, and nobody was yet thinking about smartphones.
- fundad 5y agoThe move to server-based experiences made the Mac competitive and made iOS wildly useful despite not bundling jvm. I think what most helped it was that it was the common language against early commercially-supported app servers from big vendors. BSD started as a Pascal compiler for Unix and enabled a community of researchers to work with a common language on machines more accessible than those from DEC. Bill was right that consumer-oriented products with server-side software had Java as the wind at their backs.
- samus 5y agoExactly, it was the Web that threatened Microsoft. But Java is not the only player that could have dominated in the backend. Also, the backend lost its importance to the frontend, where the HTML/JavaScript/CSS (both in the browser and as Electron) stack rules.
- Someone 5y ago> Smartcards were never MS's target market https://techmonitor.ai/technology/microsoft_to_slash_smart_card_prices_with_new_os https://techmonitor.ai/technology/microsoft_to_slash_smart_c...: “Microsoft Corp has plunged into the smart card market with an operating systems that will compete with existing systems such as MultOS and Java Card […] Microsoft’s Smart Cards for Windows is an 8-bit operating system with 8K of ROM” That was October 1998. About a year later, there was https://news.microsoft.com/1999/11/15/microsoft-delivers-windows-for-smart-cards/ https://news.microsoft.com/1999/11/15/microsoft-delivers-win... I don’t think that went far, but they certainly tried.
- samus 5y agoEntering existing markets is not easy at all if the newcomers don't have significant advantages.
- tannhaeuser 5y agoI'm inclined to cite that saying where there are those programming languages everybody complains about, and those that nobody is using. Doesn't hold for HN, though ;)
- mrcwinn 5y ago>I do not only think he was right to lose sleep over it: I think Java delivered. He's not losing sleep over Java, the language, becoming popular. He's losing sleep over the threat to the business (at the time, operating systems). I think if you consider Microsoft's market cap ($2.39 trillion this morning), despite some bumps along the way, Microsoft protected and grew its value. It's not to say Java hasn't enabled monetization. But if you have "billions of Java smartcards" and the long tail of those installs don't create much value or affect Microsoft's bottom line, then, to Bill, that particular point is moot. (Edited typo)
- xtracto 5y agoI think Gates didn't have anything to worry about regarding Java... at the end of the day, the company that created it went under the water in 2009. Java as a technology was great, but as a business just didn't cut it.
- ThrowawayR2 5y agoNobody knew that at the time. 2000 is the peak for both for companies before the dotcom bust and Sun Microsystems had $18.3 billion in revenue, not that far behind Microsoft's $22.9 billion in revenue.
- garbagecoder 5y agoAnd wasn’t part of that that MS made it’s own implementation? One that I recall being preferable as a user.
- vintermann 5y agoI'd say it runs distant descendants of Java. The fact that Gates lost sleep not only over Java, but over JavaBeans is undeniably funny. JavaBeans delivered frustration and secure employment for a legion of developers. Just a couple of weeks ago we got a reminder of how horrible early Enterprise Java was, with the Log4j exploit. The kind of thing everyone goes, "why would they think that was a good idea?" today, but the answer then was "almost everyone, certainly everyone who makes decisions..."
- Mikeb85 5y agoExcept Java never truly threatened the Windows OS. Nathan's reply back was on point: Java expanded into some voids but didn't kill Windows. Android beat Windows mobile because MS pissed away their advantage (they had a mobile OS before either Android or iOS but it sucked) and Windows mobile was too little, too late. Nothing to do with Java really.
- matchagaucho 5y agoAll true. Gates was specifically losing sleep over Java on the Windows desktop, which never really took off.
- open-source-ux 5y ago"How is Java not one of the biggest success story ever for a programming language?" The language is an enormous success. But in one key area it did not succeed in popularity: in building cross-platform desktop GUI apps. Many businesses did use it for building internal GUI desktop apps. However, Java did not find much success in consumer-facing desktop apps - despite the considerable effort made to encourage developers use Java for this purpose. For example, in the late 1990s Java had it's own GUI look-and-feel called 'Flush 3D'. It was designed to be consistent across operating systems.[1] But Java desktop apps earned the reputation as being slow and unresponsive, not fast and nimble. The Java applets that ran in the browser were no better. Today, perhaps Java will find success creating consumer-facing, high-performance applications on web pages using WebAssembly? [1] http://ptitben2000.chez.com/info/lookandfeel/higc.htm http://ptitben2000.chez.com/info/lookandfeel/higc.htm
- lliamander 5y ago> I'd also add: it's kinda funny to see so many programmers hating on Java and thinking that, somehow, Java is dead or dying, yet on a daily basis they'll use one of the JetBrains tools, written in Java, to work on their "non Java" code. And even JetBrains is working on a language to replace Java (which yes, runs on the JVM, but it also runs not on the JVM). Java is a fine language, and one that I have the most experience with. I'm glad it's there, but I also think that increasingly it will not be the default choice for greenfield projects. That is typically what people mean by a dying language: it's only used for projects in maintenance mode.
- smcl 5y agoNone of those are wrong but I think they're missing the point slightly. Bill Gates seemed concerned that Java represented either some existential threat to MS or at least something that would heavily dent their bottom line and pierce their dominance of the desktop market. And really it turned out to neither. Java is indeed very popular and undeniably a successful language + ecosystem, but I don't think what it has become was what Gates had feared. I'd be interested to see if, knowing how it all played out, Bill Gates now believes he was right to be fretting about Java back then. Given the position Microsoft is in today, maintaining its hold on the desktop with Windows and with a strong cloud offering in Azure, I think he'd answer "no, I wasn't".