7 ms·
> And the idea that corporate developers or even frankly any developers are switching to LLVM and WebAssembly en masse is pretty ridiculous. There is only 1 po
by dtech 7y ago
> And the idea that corporate developers or even frankly any developers are switching to LLVM and WebAssembly en masse is pretty ridiculous.
There is only 1 popular language released since 2009 that targets JVM: Kotlin. All other target JS, their own bytecode or LLVM: Go, Rust, Dart, Elixer, Julia, Typescript, Swift.
This is a significant difference from 2003-2009 languages which all targeted JVM unless they were Microsofts: Groovy, Scala and Clojure.
- pjmlp 7y agoAnd all of them have a lot of work to catch up with 25 years of market experience.
- scarface74 7y agoBecause development that happened in 1994 is really relevant today. How will these languages ever catch up with innovations like JavaBeans, Java Server Pages, and Java Server Faces?
- coldtea 7y ago>Because development that happened in 1994 is really relevant today. 1994? We still depend on tons of features, infrastructure, and techniques developed in the 60s and 70s. Heck, most of what the JS world considers "state of the art" was already available in 70s languages. As for the snark, first, the innovations the parents refers to is not "JavaBeans, Java Server Pages, and Java Server Faces", but stuff like rock-solid GCs, tooling, and so on. And even techniques on the level of "JavaBeans, Java Server Pages, and Java Server Faces" are only going to be resold to several other languages. The JS worlds keeps on piling Java (or older) techniques and syntax. Heck, they just re-invented the "private instance variables" (with an ugly hash syntax) on their latest efforts...
- scarface74 7y agoThe contention was that other languages had a “lot to catch up” with Java because it’s been around for 25 years. So how haven’t other statically typed languages “caught up”? In fact, Java is so far behind C# with true Generics, LINQ - not the syntax the entire linq expressions -> expression trees -> runtime providers that can parse the trees and translate it to a destination syntax, etc. it’s laughable. Can anyone say honestly that Oracle has been a good steward over Java or that it has improved as fast as any modern popular language? And the “tooling” around Java is the main reason that when I had a choice between C# and Java in the mid 2000s, I chose C#. Heck, the Visual Studio 97 was better than most Java tooling is today. Yeah I played around with the early VB like Java IDEs like JBuildsr. Java’s IDE’s have never been strong points. Neither have the XML is king mindset.
- coldtea 7y ago>In fact, Java is so far behind C# with true Generics It's not "true Generics" it's a different generics tradeoff (tradeoff not just for backwards compatibility sake). And LINQ is not that important in the grand scheme of things. Are Haskell, CL, or Smalltak also "far behind" C# for not having LINQ? It's just another feature. You can most of the same things with a fluent interface, streams, and functional composition, and without straying off the regular syntax of the language into a LINQ DSL. Besides, last time I've checked, Java still has the performance edge over C#.
- scarface74 7y agoLINQ itself is a big deal because of what it enables. A simple LINQ expression can be passed around an translated on the fly by various providers. The same expressions can be translated to Sql, Mongo, regular IL, etc. And no LINQ isn’t just syntax. Last time I checked neither SmallTalk or Haskell are taking the world by storm... Haven’t Java proponents been claiming Java was going to be fast for over two decades?
- coldtea 7y ago>A simple LINQ expression can be passed around an translated on the fly by various providers. The same expressions can be translated to Sql, Mongo, regular IL, etc. The same can happen with a simple abstract expression in native syntax (in fact tons of tools in all languages that do that). LINQ just gives you a standardized built-in DSL for that -- but nothing you can't build yourself with the language's main syntax. Heck, LISPs have been able to do the same shit for half a century. >Last time I checked neither SmallTalk or Haskell are taking the world by storm... Yes, they only made a dent with the smarter developers. Still, C# isn't taking the Linux world by storm either, and it's nearly irrelevant on mobile too, so there's that. >Haven’t Java proponents been claiming Java was going to be fast for over two decades? Java has been fast for over 15 years now, so not sure what you're getting at here. Faster than C# as well, so there's that too.
- stickfigure 7y agoConsidering that we're watching the javascript ecosystem slowly fumble its way through reinventing the technologies of the past, I'd say 1994 is pretty damn relevant. Types. Clumsy stand-ins for synchronous behavior like async/await. Transaction managers. Threads. I'd add immutability and functional programming but really that's rediscovering technology from the midcentury. We really are doomed to repeat history.
- scarface74 7y agoThere is the little language called C# that’s been around for a minute.
- pjmlp 7y agoIt has such a wonderful cross-platform GUI.
- scarface74 7y agoThere are no “wonderful” cross platform GUIs and that been true for over two decades.
- royjacobs 7y agoI assume you're trolling at this point but if that's not the case then the Qt company would like a word with you.
- scarface74 7y agoYes I know they exists. But my definition of “good” is does look and work like a native app? That’s not true for anything Java based or Electron or .Net.
- pjmlp 7y agoNow I am confused, after all isn't .NET the best for everything?!?
- pron 7y agoThey are far from catching up on compilation, GC and low-overhead observability technology. Those developments didn't happen in 1994; they have been happening continuously over the past 25 year (e.g., in the past few years we've seen ZGC, JFR and Graal), where Java is still far ahead of the pack.
- scarface74 7y agoBenchmarks?
- pjmlp 7y agohttps://www.techempower.com/benchmarks/ https://www.techempower.com/benchmarks/
- scarface74 7y agoSo 1% with a “25 year head start”?
- pron 7y agoI don't know where you're getting the 1% -- in some of those benchmarks it's much higher (and remember that Scala and Kotlin are also Java -- they rely on the same compilers, GCs and monitoring; they just replace the frontend compiler, which is less than 10% of the JDK). Also, the benchmarks are very simple, and hardly exercise the platform's power. And they don't measure other capabilities at all. For example, Go may not be far behind on performance, but its observability is shit, it doesn't have good dynamic linkage, and other important features. Again, I am not saying that other platforms may not have advantages elsewhere (e.g. lower memory footprint, no warmup), but when it comes to compilation, GC and observability, Java is about a whole technological generation ahead.
- scarface74 7y agoI was going by his posted benchmark. But correction,I had never heard of Vertx. It was 14% faster.
- dtech 7y agoYou could have said the same about Cobol in the '90s
- rpeden 7y agoYou could say something similar about Cobol now. Except replace 25 years with 60 years. Lots of people on HN would probably be shocked at how many Cobol apps are still up and running and actively maintained.
- pojzon 7y agoLike half of world bank systems are running on Cobol. No way its going out any time soon. And i dont see a problem if ots working and there are people willing to maintain it if needed.
- coldtea 7y agoYou seem to think Cobol is somehow superseded now. In fact it runs more critical infrastructure, and even sees more lines per year added for those kinds of systems, that JS does.
- macintux 7y agoElixir is built atop a VM older than the JVM.
- noopnoop 7y agoYes, but it will take a fraction of that time to catch up, now that the work has already been done.
- repolfx 7y agoAnd who uses Dart? Elixir? Julia? Hardly anyone. Lots of attempts but also lots of failures, sometimes due to poor runtimes or libraries. Swift is iOS/Apple specific, at least in usage. But mobile is dominated by Android, which is moving towards Kotlin. So Kotlin is already huge right there, much larger than Dart or Elixir and probably larger than Swift, soon if not already. Meanwhile Go would probably benefit from targeting the JVM, or at least having the option. As is, it's stuck in its own isolated world with low quality tools, libraries and GCs. At any rate number of languages is an odd metric. Kotlin by itself is a good enough language to probably kill off most attempts to compete with it over the next 5-10 years or so on the JVM, outside of research languages. Does the JVM really need dozens of languages?
- dtech 7y agoA lot of new languages fail. It's still a good measure of where things will be 10-20 years later. Look at new languages of 1990-2000: Haskell, Python, VB, Lua, R, Ruby, Java, Delphi, JS, PHP, Rebol. 4/11 are mostly irrelevant now. 4/11 are important niche languages. 3/11: Python, Java, and JS are dominant players. 1990-2000 might be special because of a massive shift toward IT systems in general, but it might not be and be an indication of languages lifecycle.
- int_19h 7y agoVB, Delphi and Rebol would be three of the irrelevant ones, but what's the fourth?
- erik_seaberg 7y ago> stuck in its own isolated world with low quality tools, libraries and GCs "Go needs a native library for ___" is used as an opportunity for safely tedious résumé-driven development. On the JVM you'd have to look for an unsolved problem which is probably harder.
- zmmmmm 7y ago> There is only 1 popular language released since 2009 that targets JVM You are going to upset all the Clojure fans with that :-) But what would be the point in more JVM languages? I feel like a big factor in that is just that every niche is well filled with mature languages now.
- sctb 7y ago(We've detached this subthread from https://news.ycombinator.com/item?id=19825584 https://news.ycombinator.com/item?id=19825584)