Live data from Hacker News

IT Runs on Java 8

veekaybee.github.io

461–470 of 556 posts

Re: IT Runs on Java 8

#461

Earlier quoted context omitted.

>> Most developers [from context: who want static types] turn to C++, Java, or C# > I'd be surprised if more than half (most) developers using static typing use those languages and not others outside that set. Really? I'd be surprised if it was less than 90%. What is the competition? Go, TypeScript, Swift, Scala, Kotlin, Rust (in rough order of my gut sense for how widely used they currently are)? These are all still…

> If you argue that C has static types, then I guess you're probably right. C (like C++) is both statically and weakly typed; strong and static typing are orthogonal axes (dynamic but strongly typed languages are common.) If you mean strong and static when you say static, you need to take C++ off your list.

No, it's (mostly) not about that.

It's about C not having any generics or similar things (like C++ templates), so you need to fall back way more often on void*.

So on that axis Go is roughly as statically typed as C, albeit more strongly typed.

On the other hand C++ is more statically typed than C, but is about as strongly typed (afaik).

Re: IT Runs on Java 8

#462
post #132

Earlier quoted context omitted.

It is not the technology which is slowing down the enterprises. That is done by processes, humans and risk. You cannot stay up to date permanently, because that introduces risks all the time. Once you earn money, there are layers to protect the money stream. You can loose tons of money by not staying modern, that is true. But you can loose everything when you ignore a risk. The trick is to find a balance. And all of…

You can't avoid upgrading forever though, eventually your legacy technology will stop getting security updates and support. Then you are tasked with a huge leap from old to new. I suspect corporates don't really want to get stuck with so much legacy, they just don't know how to avoid it.

That is right. That is the balance I mentioned. In our teams we try to update the base framework every year to avoid locking us out of the innovation in language and library ecosystem. But a UI stack for example you do not migrate without explicit funding.

Re: IT Runs on Java 8

#463
post #280

Earlier quoted context omitted.

> .NET has both of them I'll give you value types, but reified generics in .NET were a mistake. It really makes interop and code sharing among languages hard, in exchange for a rather slight added convenience. This means that if you're a language implementor and you're targeting .NET, you'll get much less from the platform than you would if you target Java, which makes .NET not a very appealing common language runtim…

I see it as a double-edged sword. On the one hand, reified generics means that it's .NET's object model or the highway. On the other hand, .NET maintains a much higher standard of inter-language interoperability. When I was on .NET, I didn't have to worry much about the folks working in F# accidentally rendering their module unusable from C#. Now that I'm on the JVM, I've accepted that it's just a given that the depe…

It's not .NET vs Java so much that the development of the two languages you mention are coordinated. For Kotlin and Clojure interop works both ways; Scala doesn't care much about that, so Scala developers write special facades as Java language API. There are lots of different languages on Java, and they care about different things. The Java team itself develops only one language, although at one time there was another (JavaFX Script). Some language developers (Kotlin, JRuby) work more closely with the Java team, and others (Scala) hardly ever do.

Re: IT Runs on Java 8

#464
post #281

Earlier quoted context omitted.

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 Sch…

1. Yes.

2. Configurable. A fiber is assigned to a scheduler that is, at least currently, and Executor (so you can implement your own).

> I take it from the following snippets that fibers can only run on the thread where they were created

No. A fiber has no special relationship to the thread (or fiber) that created it, although now there can be a supervision hierarchy thanks to structured concurrency: https://wiki.openjdk.java.net/display/loom/Structured+Concur...

> OpenJDK projects feed back into the Java spec and Oracle Java?

OpenJDK is the name of the Java implementation developed by Oracle (Oracle JDK is a build of OpenJDK under a commercial license). Projects are developed in OpenJDK (for the most part by Oracle employees because Oracle funds ~95% of OpenJDK's development, but there are some non-Oracle-led projects from time to time[1]) and are then approved by the JCP as an umbrella "Platform JSR" for a specific release (e.g. this is the one for the current version: https://openjdk.java.net/projects/jdk/12/spec/)

[1]: E.g. the Shenandoah GC (https://wiki.openjdk.java.net/display/shenandoah) is led by Red Hat, TSAN (https://wiki.openjdk.java.net/display/tsan) is led by Google, and the s390 port (http://openjdk.java.net/projects/s390x-port/) is led by SAP.

Re: IT Runs on Java 8

#465
post #258

Earlier quoted context omitted.

.NET is tied to Microsoft, so I'd avoid it 100% of the time. Yes, yes. I know that Microsoft theoretically open sourced and ported it. However the way that this always works is that there is a base that can be written in, but anything non-trivial will have pulled in something that, surprise surprise, is Windows only. Otherwise I agree that it is a better Java.

They didn't "theoretically" open source it - they actually open sourced it. I get why people used to shit on Microsoft, but Microsoft has demonstrated over a number of years that its changed under Satya. > However the way that this always works is that there is a base that can be written in, but anything non-trivial will have pulled in something that, surprise surprise, is Windows only. Outside of desktop GUIs, this…

No, Visual Studio does notrun on macOS. Visual Studio for macOS is a fork of MonoDevelop.

Re: IT Runs on Java 8

#466

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!

Yeah, but I think the kind of static typing that was 'shat on' for years is not the same as the one being praised today.

The shat on one is the old Java, verbose, obtrusive style. The newly praised one is Haskell-style, type inferred, expressive...

Now you could say that's not new, BUT what is new is marrying ML style type system to languages whose other concepts devs are largely familiar with and packaging it the right way to get into production, instead of just academia and that being the case even for historically impenetrable low-level programming and such.

Re: IT Runs on Java 8

#467
post #64

Earlier quoted context omitted.

> The best & brightest in tech are working with the best tools on the biggest problems I don't think that's true—there is a subset of the best and brightest who work on greenfield projects very decoupled from existing customer bases, and they get to blog / present / post a lot about what they're doing. There are quite a few "best and brightest" people who are in large companies or slow-moving industries. They're ofte…

If they're really the best, wouldn't they have their pick of workplaces and optimize for personal enjoyment? Nobody who could chew through research level algorithm problems all day would willingly write Java 8 CRUD apps for Windows Server 2000, because those are the people that have a choice.

One, the hiring market isn't either liquid enough or high-information enough for this to work.

Two, they have their pick of workplaces and focus on finding the biggest problem or perhaps the biggest paycheck, not the most freedom in tools. I have perfect freedom in tools hacking on OSS by myself; I don't look for that in a job.

Re: IT Runs on Java 8

#468
Patterns and tools exist that many a company could use and benefit greatly from.

A lot of this actually gets described in various HN posts (ex just today “use a pixel to log traffic and ditch google analytics.), and this is something I really enjoy about this community!

There’s a lot of competent posters and as long as you’re just enough competent yourself to make the distinction of “out of my league, google scale” and “could make this thing I’m building simpler and better” all is good.

The key here use whatever’s “meeting your requirements”, and after 20 years in both pure tech and enterprise IT let me tell you — many “dark matter” devs could use stepping out of comfort zone and question whether there’s _simpler_ as well as _better_ ways of meeting reqs.

At many places politics and culture have stood in the way, but this is slowly eroding.

I personally believe this ”out of comfort zone check”, or evaluation, be done at regular intervals be it regarding infra, providers, tooling or languages and it’s patterns.

It’s how you learn, and more important _unlearn_!

My last few years at enterprise dev shops seem to point at “we’ve won” at the floor, when it comes to embracing open source and a sharing mindset (at least here in Sweden).

For me personally — happy times! Finally I’m actually allowed to use that pqsql or open source monitoring tool, and no one raises a brow.

This gives you magnificent opportunities but also an incredible amount of potential foot-guns!

Re: IT Runs on Java 8

#469
Agree with article. Probably my company has a 95% of dark matter programmers, plus writing C++ code as C with classes and keeping Java 5 (!!!) And Java Applets still in development for customers who don't want to leave Windows XP as their desktop OS..

IT might run on Java 8 if it's lucky, but more of them are even far behind it.

Imagine that Jenkins CI just last year moved to Java 8 officially as JVM requirement.

A ton of products are still on Java 7. If we talk then about EE Standard, i have bad news for you

Re: IT Runs on Java 8

#470
post #464

Earlier quoted context omitted.

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 Sch…

1. Yes. 2. Configurable. A fiber is assigned to a scheduler that is, at least currently, and Executor (so you can implement your own). > I take it from the following snippets that fibers can only run on the thread where they were created No. A fiber has no special relationship to the thread (or fiber) that created it, although now there can be a supervision hierarchy thanks to structured concurrency: https://wiki.ope…

Very neat. So it preserves the virtues of .Net's task-based concurrency, but is even less intrusive regarding the necessary code-changes to existing synchronous code.

Does it impact things from the perspective of the JNI programmer?

> OpenJDK is the name of the Java implementation developed by Oracle (Oracle JDK is a build of OpenJDK under a commercial license).

Ah, of course. I'd missed that.

> there are non-Oracle-led projects from time to time[1], and are then approved by the JCP as an umbrella "Platform JSR" for a specific release

How do they handle copyright?

Post reply on HN