Live data from Hacker News

IT Runs on Java 8

veekaybee.github.io

451–460 of 556 posts

Re: IT Runs on Java 8

#451

In the majority of companies it's simply not possible to operate on the bleeding edge the way HN articles would have you believe you should. Besides the obvious issues around the value of rewriting stable legacy systems on new platforms, there are also man power issues. You need tier 1 developers to live on the bleeding edge because any problem that comes up (and they will come up) largely requires you to solve it yo…

> provides little concrete value to the business

The concrete value doing such things add to our business is happy staff (which you mentioned), which means the best people don't leave, and stat excited and productive for the long term. Also, when hiring, because it helps us get the best people to join us in the first place.

It's not just about "bleeding edge", it's about giving dev teams the freedom to do that if they want to. Some do more than others, but the point is, if they get it wrong, things break and they get called at the weekend or whatever and they soon change track.

Re: IT Runs on Java 8

#452

Earlier quoted context omitted.

What are the restrictions on F# that were posed by them? Given that Don Syme was the one who originally designed them, specifically with a mind for cross-language use (which is why they got stuff like variance long before C# supported it), this is a surprising claim. In fact, I recall Don saying something along the lines of, if CLR did generics with erasure like Java, F# probably wouldn't be where it is today. I saw…

> What are the restrictions on F# that were posed by them? It does make it harder to add features to the language that do not map to the current reified "generics" spec, for example higher-kinded polymorphic types. Of course, the JVM has plenty of issues supporting alternative languages too, for example lack of tail-call optimisations, or switch-on-type, for functional languages.

> Of course, the JVM has plenty of issues supporting alternative languages too, for example lack of tail-call optimisations,

That's true (and will be addressed), but that's a problem that can be fixed by adding a feature, not removing a central one, which is why I said that both Java and .NET have made mistakes, and reified generics was one of .NET's.

> or switch-on-type, for functional languages.

There is no difficulty supporting that. In fact, the Java language is about to get that without JVM changes. Perhaps you mean switching on A and A, where Foo and Bar are reference types (and possible with a subtype relationship between them), well even Haskell can't do that, and if there was a language that thought this is a good idea, it would be able to do it quite easily.

Re: IT Runs on Java 8

#453

Earlier quoted context omitted.

I think Sun might have wanted to sue Google? https://news.ycombinator.com/item?id=10951407

Yes, thanks for that, it stirred my recollection as I actually bumped into Jon Swartz by accident just in that era. I don't think it was money, so much as the established culture at Sun (i.e. James Gosling: "Sun is not so much a company but a debating society). A more aggressive CEO/leadership/culture would have maybe raised the money to take on Google, or to take another tact. So while you are right - and thanks for…

Whatever Sun was "about", sadly, it didn't work, and damaged some excellent technologies, like Java and Solaris, that Sun couldn't invest a lot of resources into because it no longer had them. Oracle managed to save one of them and make it thrive. Sun, as a big, impactful company, was a product of the dot-com bubble. It certainly made more lasting contributions than other bubble-era companies, but its strategy couldn't survive the crash. Maybe great ideas can be born in companies like Sun but need companies like Oracle to sustain.

Re: IT Runs on Java 8

#454
post #281

Earlier quoted context omitted.

> the actual language & core libraries are incredibly slow to react to anything. async/await being the obvious example. Still no sign of it in the Java language, nor any expectation of it, unless I missed something.

https://wiki.openjdk.java.net/display/loom/ which is superior to async/await, if I may say so myself (I'm the project lead)

Great article, thanks. Some perhaps-silly questions:

1. Is it possible to inspect the state of a 'parking' operation, the way you can in .Net with Task#Status?

2. So fibers run in 'carrier threads'. Is there a pool of carrier threads, or can any thread act as a carrier? I'm thinking of .Net's where this is configurable (ignoring that .Net 'contexts' aren't exactly threads), by means of Task#ContinueWith() and the Scheduler class. I take it from the following snippets that fibers can only run on the thread where they were created:

starting or continuing a continuation mounts it and its stack on the current thread – conceptually concatenating the continuation's stack to the thread's – while yielding a continuation unmounts or dismounts it.

And also:

Parking (blocking) a fiber results in yielding its continuation, and unparking it results in the continuation being resubmitted to the scheduler.

On a non-technical note, how do OpenJDK projects feed back into the Java spec and Oracle Java?

Re: IT Runs on Java 8

#455
post #92

Fun story : i had to develop the same system for two different companies, one a startup with 3 employees (the founders) , the other a billion dollar business. Just a backend api & web interface, together with an iOS app displaying the content. I could use shiny new tech for the startup (which at the time was python on app engine and its nosql datastore, with a backbone.js framework), whereas the other one forced me t…

This sounds like Java is not the big corp's problem. This is bound to happen if the people deploying the software don't know their way around their own infrastructure and around the software they are going to deploy. A big corp tends to centralize knowledge into departments. To get stuff done, departments have to communicate and coordinate. If there are shoddy processes for this in place, you get a big, fat, slow organization.

Re: IT Runs on Java 8

#456
post #273

Earlier quoted context omitted.

Poor start-up time, terrible application bloat, uninspiring language with poor concurrency support, massive RAM requirements, everything XML, complex tuning required, what a nightmare. No wonder the world is running towards Python and serverless as fast as they can...

CPython is 100 times slower and has no multi threading support (CPython is single threaded). JVM code can outperform native C code. The JVM supports many advanced languages (Scala, Clojure, Kotlin) and it can even run Python code (Jython) faster than CPython. For concurrency it has this ultra powerful library https://akka.io (Up to 50 million msg/sec on a single machine. Small memory footprint; ~2.5 million actors pe…

Jython seems to be much, much slower than CPython, actually: https://pybenchmarks.org/u64q/jython.php

The only benchmark where it's faster is the one involving threads, which makes sense. CPython definitely has multi-threading support, but it also has the Global Interpreter Lock preventing threads from actually executing bytecode at the same time. Jython doesn't. People have written patches that successfully remove that GIL, but those patches make single-threaded performance worse and thus haven't been accepted.

Re: IT Runs on Java 8

#457
post #452

Earlier quoted context omitted.

> What are the restrictions on F# that were posed by them? It does make it harder to add features to the language that do not map to the current reified "generics" spec, for example higher-kinded polymorphic types. Of course, the JVM has plenty of issues supporting alternative languages too, for example lack of tail-call optimisations, or switch-on-type, for functional languages.

> Of course, the JVM has plenty of issues supporting alternative languages too, for example lack of tail-call optimisations, That's true (and will be addressed), but that's a problem that can be fixed by adding a feature, not removing a central one, which is why I said that both Java and .NET have made mistakes, and reified generics was one of .NET's. > or switch-on-type, for functional languages. There is no difficu…

> That's true (and will be addressed)

Glad to hear it! It's probably the biggest issue trying to do functional programming on the JVM.

> There is no difficulty supporting that. In fact, the Java language is about to get that without JVM changes.

The technique to implement ADTs in functional languages on the JVM has often been to add an integer tag to every subtype and switch on that, but it's ugly enough for interop that IIRC Scala doesn't do it (and is thus less efficient).

Re: IT Runs on Java 8

#458
Yup still trying to migrate a big repo to git, and have been at it on and off for two years. Once your products have a decade or more of history and 100 man years or more of effort, they always carry a bit of momentum.

Re: IT Runs on Java 8

#459
post #85

The funny thing is that from a purely technological point of view, Java (even the 5-year-old Java 8 and certainly recent versions) is far ahead of most other stuff hyped on HN (as well as less hyped stuff). Virtually no other platform comes close to that combination of state-of-the-art optimizing compilers, state-of-the-art GCs, and low-overhead in-production profiling/monitoring/management. And much of the cutting-e…

You are describing the Jvm there, mostly. The jvm is great, and java is pretty tired even in the latest incarnations. I would have nothing against working full time with a jvm stack. So long as java isn’t involved.

Re: IT Runs on Java 8

#460

Earlier quoted context omitted.

Oh, for christ's sake. I don't want to get all "get off my lawn" but HN is full of early-20-somethings rediscovering things and calling them 'bleeding edge'. The highest paid people in our industry are working on drudgery full-time for FAANG. And that's fine, people have families, I'm not judging anyone. But let's not fool ourselves.

A good example of this is static typing - shat on for years by HN, and now, all of a sudden it's the greatest thing since sliced bread!

And you know why, right?

Fucking JavaScript.

Strong static types have always been awesome, because there are no mysteries, no surprises. A chair is a chair. A wheel is a wheel. Fire is hot and water is wet.

But, hey, fucking JavaScript, so look at my bullshit variable! Is it a function? Sure! Does it have properties! You bet! Is it a chair? Who the fuck knows! The 'legs' array is undefined... Can we make it a chair? Of course! I need a wheel, can we make it a wheel too? You betcha! Just assign more fucking properties! Yayyyyyyyyyyyyy!!!

Hey, can I post this retarded data bag right the fuck back over to two different API endpoints? Why the fuck not? Okay, assholes, check out my greasy, cheese filled, swiss army bullshit unicycle or whatever the fuck this is, I don't even fucking care anymore, because I can't wait to just become an amnesiac, dump my client side session cache and pretend this whole fucking nightmare never even happened.

Post reply on HN