Earlier quoted context omitted.
Well Java is arguably one of the most IDE-reliant mainstream languages. It's completely unusable and unergonomic without the myriad of constant code generation and fixing as you write. Treating the IDE like a separate problem is not realistic with java. With e.g. Rust, I can use vim, vscode, whatever floats your boat. > no idea why you'd have to configure "getting the actual logs"? Some genius java logging library, I…
> Well Java is arguably one of the most IDE-reliant mainstream languages. It's completely unusable and unergonomic without the myriad of constant code generation and fixing as you write. True, but with IntelliJ 99% of what you wrote is auto-configured. Eclipse needs a bit of hand-holding, but almost everything you described is due to project configuration. > Some genius java logging library, I can only guess. That's…
Java Is Underhyped
641–650 of 808 posts
Re: Java Is Underhyped
#642Earlier quoted context omitted.
> I can't stand python - too wishy-washy. That's an interesting take; my experience has been (at least the community) is quite proudly dogmatic on the One Right Way To Do It, for all values of "It". I also don't like Python, but I think for different reasons and perhaps a bit less than you. Never used R, but I understand it to be quite fiddly.
R is an analysis tool. You don't write software in R.
Re: Java Is Underhyped
#643Earlier quoted context omitted.
Java generics just aren't powerful enough to express that a higher order function's exceptions depend on its args, so pretty much everyone has given up on specific checked exceptions.
Yes, they are: @FunctionalInterface public interface ThrowingConsumer { void accept(T value) throws E; } public static void forEach(Collection elements, ThrowingConsumer consumer) throws E { for (T element : elements) { consumer.accept(element); } } There is a significant shortcoming, which is that you can't catch exceptions using the type parameter - this does not compile: public static Optional forEach(Collection e…
Re: Java Is Underhyped
#644Earlier quoted context omitted.
I've interacted to a ton of Java projects. And with a ton of various other commercial and Open Source projects. In my experience (sample size of hundreds of projects), Maven projects are >, on average, easier to build and manage than most other languages. The repo structure is standardized, the build cycle is standardized, the built packages are always in the same place, etc. The Java installation is a 1-time think.…
Well Java is arguably one of the most IDE-reliant mainstream languages. It's completely unusable and unergonomic without the myriad of constant code generation and fixing as you write. Treating the IDE like a separate problem is not realistic with java. With e.g. Rust, I can use vim, vscode, whatever floats your boat. > no idea why you'd have to configure "getting the actual logs"? Some genius java logging library, I…
With Rust you code in VIM because there's nothing better. Improving Rust IDE's has been one of the teams big focuses for years. Everyone codes in random text editors because there's no amazing IDE.
Re: Java Is Underhyped
#645For my use cases, Java has all the wrong compromises: - not high level enough to compete with Python/Ruby/JS/PHP, etc - not low level enough to compete with Rust/D/Nim/Zig - not specialized enough to compete with Erlang/R/Go/Julia - not opinionated enough to compete with Lisp/Haskell So why use Java ? It's good, it's fast, it's productive, it's well supported, battle tested and documented for decades with a huge pool…
My main issue is that people writing Java (or for the JVM) because of their backgrounds (app-level code printers) almost completely disregard how that code works on the JVM, at scale, in a highly responsive and/or high throughput service. You can't just use a big, "safe bet" framework like spring, which taints EVERYTHING in that project, write a simple REST API and then do heavy work "in the background" without side…
Endless abstraction, loading giant things into RAM, looping over every item in huge arrays. Blocking server threads for minutes at a time. In most languages you would be punished severely with awful performance or OOM. Java chugs along until things get horrifically bad.
Re: Java Is Underhyped
#646The amount of vitriol Java receives in the game development space is rather strong. However, whenever people dismiss Java as being a bad language, I can't help but think of Minecraft. Yes, it's one of the few mainstream titles where Java has been successfully applied, but I believe Minecraft's success was specifically because it was written in Java. With no JVM, there would have been no Minecraft mods at the level of…
> For the people who say that Minecraft should have been written in C++ […] there's Bedrock Edition. Nobody I know cares about it enough to play it. Been playing for just under ten years, everyone I know plays Bedrock these days. I built and manage a very popular tool / Minecraft community and while I don’t have actual numbers, my general sense is the majority of players run either console or mobile Minecraft - all o…
Re: Java Is Underhyped
#647Earlier quoted context omitted.
There's a lot of very reliable distributed systems written in java. But if something goes wrong, and it will, because distributed systems, you will not want to debug it. And because java is very enterprisey, distributed java developers are expensive. You're competing with faang salaries.
What other platform would you want to debug? There is basically no better one then the JVM when it comes to profiling. Exceptions are detailed with stack traces, you can even attach a profiler in production and let it run there because of the negligible overhead with flight recorder. Hell, there are even debuggers that can run your program backwards.
Re: Java Is Underhyped
#648Earlier quoted context omitted.
> Now you have exponential problems. Scala has less support, slower builds, and features Scala-devs are eager to abuse to make the code unreadable. Unfortunately, the Scala compiler is quite a bit slower than javac. In practice this doesn't hurt quite so much anymore; incremental builds make working even with large code bases quite snappy. Full-rebuild; get a coffee. The build tools for Scala have _massively_ improve…
Does scala compiler still does 25 or something like that passes? It won't ever be fast when doing this.
https://scala-ci.typesafe.com/grafana/dashboard/db/scala-ben...
The Scala 3 compiler has much fewer passes though.
Re: Java Is Underhyped
#649Earlier quoted context omitted.
Yeah, because he did so much for Python tooling at Google.
Google is hugely invested into Python, especially the data engineering branch. TensorFlow, Jax, etc. Though they will probably get replaced by Dex lang, they even dropped Swift 4 Tensorflow to focus on Dex [1]. The language looks very Pythonic compared to Julia which is a 180-degree turn in terms of language design. [1] https://github.com/google-research/dex-lang
As for Dex,
> Research language for array processing in the Haskell/ML family
> This is an early-stage research project, not an official Google product.
Where is Python?