4 ms·
I think that hosting the jdk sources using a bunch of Python scripts on top of mercurial was a big mistake, or perhaps it was not a mistake when Java was openso
by _old_dude_ 8y ago
I think that hosting the jdk sources using a bunch of Python scripts on top of mercurial was a big mistake, or perhaps it was not a mistake when Java was opensourced more than 10 years ago, but it's a mistake now to not use gitlab/github.
As you said the mercurial repository as stability issues, and when it works, it's super slow.
Java need a previous version of java to bootstrap because javac is written in Java. And you don't need x11 if you build the headless version.
For Graal, the goal is to replace c1 and c2 (the two JITs used by Hotspot and written in C) by Graal in order to have only one JIT written in Java. But Graal is competing with c2 which has tuned over two decades, so currently you can choose if you want to use c1/c2 or c1/Graal when running Java. We know that Twitter is running Graal in production, i've no more info on that.
- antpls 8y agoI'm 27 years old, I do not develop software on a professional level, but my Master degree in C.S. and my knowledge are enough to be able to download and compile Rust, Go, Python or Julia on my machine in less than an hour for each (Julia taking a bit more time because it even compiles LLVM as a default, but it was as easy as git clone; get_dep.sh; configure; make, and some scientific libraries deps). Even the Linux kernel is rather well self-contained. I would like to be able to hack on Java like I can on any of those above languages, but "JVM" is actually a too big of a project containing way more than the necessary, which is, I guess, a legacy from the business model and organization of Oracle. Today, there are ant, maven, Gradle, mercurial, JVM, 2 GCs, JRE, JDK, headless versions, tons of codenamed other projects, a giant README and a lot of documents to read. If "Java" was just a single _lean_ compiler and standard libraries, easy clone; configure; make, like Go or Rust are, it would be more approachable for new people, it would give a better first impression. That being said, I'm impressed by the academic work of people working on the GCs and the JIT technologies of Java and JVM.
- chrisseaton 8y agoIf you've built Go from source, how were you so surprised about the bootstrapping requirement? Go is also bootstrapped and you need to install a binary Go compiler to build it.
- antpls 8y agoIn fact, you probably noticed I tested most trending compilers and they are all bootstrapped this way. But none of them is 1.5GB before the compiled compiler is downloaded. My reaction was more about the unexpected overall size and process to get a basic Java compiler built from scratch. In all the above, the binary compiler can be automatically downloaded as part of the dependencies (from their own servers, not packaged for any distribution in particular), which make things simpler. Edit : Maybe other compilers were lighter because I cloned with --depth 1 on git. I don't know the equivalent on mercurial, so it downloaded more than necessary