Originally posted by Apokalypz
View Post
Announcement
Collapse
No announcement yet.
OpenJDK 11 Now The Default Java For Ubuntu 18.04 LTS - Plus Some New OpenJDK Benchmarks
Collapse
X
-
Originally posted by kpedersen View Post
This guys first attempt was 40 days. He mentions that he would use yacc or flex if he was to do it again saving quite a bit of time.
https://www.sigbus.info/how-i-wrote-...n-40-days.html
And Bellard's OTCC (to win an obfuscated C competition) shows that someone with his skill and knowledge likely could get a functional one going.
This one (written in python) was a couple of weeks: https://github.com/ShivamSarodia/ShivC
Sure, they might not be professional quality or you and I may not be skilled enough to do it but what exactly do you think would be a problem?
Unlike a JVM, it is a much smaller task. That is pretty much exactly my point. Getting one of these up to a professional capacity would likely still be a trivial task compared to porting the JVM to a different architecture. And that is not good :/
Ugh, I know. It is a tad scary. Luckily I can avoid Javascript; however I do depend on Java for a couple of projects and I am starting to get cold feet on the whole ecosystem if it is so... expansive!
The added Jit in Node.js adds overhead ontop compared to i.e Duktape or Lua. And I am sure it provides a few more bells and whilstles compared to (the tiny in comparison) LuaJIT, but surely it must be an absolute bi*ch to maintain. Luckily Node.js has quite a big company behind it for now. What about in the future though?
As far as I recall, gcj is dead but I wonder if that would have been a more elegant and maintainable route in the long run. GCC isn't small but it also achieves a lot more than simply a VM and bytecode compiler.
Maybe we won't have type erasure some day, though I mostly think the code and binary size is alright for Java as a language and JVM as a runtime for all the capabilities on offer.
Comment
-
Originally posted by kpedersen View PostHad a look through the source code just for fun and... wow, if these large corporations lose interest in Java, it is absolutely dead in the water. Just the i.e GC or network modules alone are larger than all the code myself or my company has ever written! We are talking hundreds of thousands of lines just for two very minor components on a very small subset of platforms (x86, ARM).
Don't get me wrong, no issues with Java; but can things not be a bit simpler? It would hurt me but I could write a C compiler in a year or so. People more skilled than me could probably write one in a week. But this monstrosity of a VM alone (let alone the compiler / optimiser) is surely not maintainable!
:/
Comment
-
Originally posted by mcloud View PostNot wanting to feed the trolls, but have you seen how complex SSL/TLS plus all the other signing stuff plus hardware crypto for PCKS 12 and stuff? No one seems to be doing that simpler anywhere. Most languages don't even get all the stuff the JVM has unless you pull in lots of code as well. And even the ones that do (eg: C/C++), they don't even come close to the JVM API ease of use
I was looking entirely at the sheer volume of (sometimes very platform specific) C and C++ code required to support the JRE and JVM. I guess it kinda makes me cringe when people say that Java is portable. The language may be but the JVM and large chunks of the JRE most certainly are not. I feel that some work to reduce that could be a big benefit. It is certainly possible, J2ME for example running on relatively small micro controllers.
Originally posted by audir8 View Post
The basics of GC and IO are the same in every language that has them.
However Java's implementation is still pretty massive. Not just Java of course, so is Mono's (https://raw.githubusercontent.com/mo...sgen/sgen-gc.c).
Edit: And jeez, look at dotnets implementation: https://raw.githubusercontent.com/do.../src/gc/gc.cpp
A cool 37597 lines in one file. Too big to display in the standard GitHub interface. Imagine being given the task of porting that to a 128-bit architecture in 20 yearsLast edited by kpedersen; 23 April 2019, 11:15 AM.
Comment
-
Originally posted by kpedersen View Post
True enough and as far as I know, scanning the stack in C *needs* platform specific code (some stacks grow upwards, whilst some grow downwards). One good attempt at using std C for this is here: https://github.com/orangeduck/tgc (using a volatile variable to find the location on the stack to avoid register storage).
However Java's implementation is still pretty massive. Not just Java of course, so is Mono's (https://raw.githubusercontent.com/mo...sgen/sgen-gc.c).
Edit: And jeez, look at dotnets implementation: https://raw.githubusercontent.com/do.../src/gc/gc.cpp
A cool 37597 lines in one file. Too big to display in the standard GitHub interface. Imagine being given the task of porting that to a 128-bit architecture in 20 years
Comment
-
Ubuntu shipped 11.0.2 but it has a TLS 1.3 bug. So they are still behind CentOS/etc which have 11.0.3 along with the disrto independant builds
Comment
Comment