Future of JVM/Java ecosystem

What do you Jow Forumsuys think about the future of Java and the JVM? Is it worth investing time and effort into the platform? Is it worth developing new complete applications on it compared to just going native or doing it on Electron/.NET (heck Python even)? Some of my concerns:

>.NET 5 coming next year which brings the runtime to a conceptual feature-parity with the JVM that is: one program - run everywhere which makes it a direct competitor after the old Windows-first everywhereelse-second .NET versions
>Oracle being the "owner" of the ecosystem, essentially holding it hostage via stuff like the TCK although OpenJDK being GPL is good + the API lawsuit with Google
>not much desktop share (few major apps, 1-1 games here n there) although I don't know how it is in enterprise (desktopwise) - afaik LibreOffice is on the way of phasing it out in favor of Python

Is it time to just roll with .NET even on Linux (serverwise too!) or will the JVM and related tech actually grow in the future? I know there are a lot of shops based on it but the same is true for COBOL etc. I'm asking about *growth in the future*, not it staying around as legacy. Ofc we won't get rid of it as long as it works.

Attached: 1556143390270.jpg (646x595, 42K)

do both
java will be around for a while
I wouldn't put too much faith in .NET promisses

A world without Electron is a world for me. If I could I would either compete against both or just support Java. Anything really as long as it isn't Electron.

Rust is taking over

go with .net
you cant get more comfy than this

Python requires C code for performance though, I don't see as a viable replacement for Java in data heavy scenarios.
Does Java have a cffi equivalent that is not JNI? I guess that would make Python look better.

There's JNA (which uses libffi with a small JNI stub, similar to the ctypes module on Python) to directly call into native functions from an interface declaration.

They're working on some new stuff ("Project Panama") but I haven't seen any docs yet on the API. But they're trying to eliminate JNI eventually. I believe the goal is something like JNA for the programmer, with the performance of JNI.
In the meantime you can always use JavaCpp which is essentially annotated Java code which generates JNI for you.

Surely you mean Jakarta

Look into Quarkus. Supersonic sub atomic java. The numbers they are turning over regarding performance and footprint makes Java the most efficient thing to run. Beating node

java is slowly dying that cant be denied

that said learn clojure, lisp in jvm
its an interesting project and maybe lisp first chance at becoming mainstream

Attached: Clojure_logo.svg.png (220x220, 14K)

yes but
you see
java and dotnet jobs requirements are still pretty high, this isn't your average web dev job where you show your portfolio and you get hired based on some goofy shit website.

There is some interesting stuff happening with Java in my area. Univeesities started dropping Java couple years ago in favor of Python and JS; they not only atopped teaching it, but completly advocating against to the point that If anyone the least of intentions to build a uni"s project in Java they would immediatly find someone else to take the project lol.

Now, what this has led to? Companies are desperate for Java devs to maintain their legacy code, they are paying mad cash but still can't find Java devs so now they are outsourcing the jobs and the python and js cs grads are ALL becoming freelancers , working at McDonald's like jobs or moving to another city/state.

Java is going stale, but it's like IBM - it'll be around forever. Feel free to learn it. There are plenty of opportunities out there still.

Attached: open_pepe.jpg (640x410, 42K)

.NET has hit almost every promise over the last five years, and much had been promised. You can deploy to Linux today. I've done so, in fact. The experience is just werks tier.

And that's a good thing. I like working with people who know what the hell they're doing. This is almost impossible in web dev.

java is in a weird place where its a relatively high performance language that is straightforward to program and debug, but it will never be at the bleeding edge of high performance and it will never be as loose and carefree to program in as a scripting language

>show portfolio with REST api project
>no degree
>100k starting

imagine caring more about about elitism than money

Attached: image.jpg (400x267, 24K)

Java is so widely deployed across business at this point that OpenJDK is not going anywhere. Oracle releases will always be based on this. I recently came back to it after a while and the community is still strong. If you care about open source it's the only thing that really matters anyway.

>Electron
This isn't a real application platform, it's a tool to deploy standalone versions of already-existing javascript programs. It doesn't make sense to use it as a baseline.

>.NET
Developer experience outside windows is still poor, the only real usable tool is monodevelop which is very rudimentary.

>Developer experience outside windows is still poor, the only real usable tool is monodevelop which is very rudimentary.

t. hobbyist programmer

In addition to Java being in tons of enterprise setups, there are useful new languages sprouting out of the JVM-- kotlin, clojure, scala etc. I think Java might become less and less of a selection for "new" projects, but its definately not going anywhere, kinda like how C is still around and in tons of systems

I said developer experience, not deployment experience. It's still aimed at windows users, who are most likely to be "hobbyist"

>Developer experience outside windows is still poor
Knock knock dumbass, it's the most popular IDE. Also JetBrains Rider, which is arguably better than the big boy Visual Studio, but it costs money while VS Code is OSS.
The experience on Linux with either is just like on Windows ever since dotnet core was released in 2016. It's long past time to accept that dotnet has become cross platform competitive. The only thing it's missing is a native GUI framework, which is arguably unnecessary on Linux anyway.

Most businesses use Windows for everything. They have some custom software that runs on a server 2012 machine and a handful of automation tasks run by the task scheduler. Most data integration is CSV files over SFTP. Most durable automation is written in C# or Java. This shit isn't trying to be the next Facebook, it's trying to make sure the billing process or the data sync with ImportantVendor3 runs every single day and that any dumbass could remote in and click some buttons to configure and run it manually.

Attached: no8sY.png (1366x768, 88K)

Attached: 1558004050123.png (720x303, 112K)

.NET will go farther without Steve Balmer the Proprietary Faggot, but JVM will be king for a while. All the relevant apache projects are written in Java so that's that.

Didn't read it all but yes java is worth learning, it will be around for a long time. Don't learn c# that shit is a fucking joke unless maybe you're an MS cuck.
I've learned all the major jvm languages, the best one is kotlin. It has seamless interop with Java, and has a ton of awesome features and it's very functional and fun to write. I became totally obsessed with it for a week when I first learned it, didn't do any work at all and didn't sleep much either, just writing fuckin kotlin.

>t. pajeet

>t. knows nothing about kotlin or java

JVM still leaks memory how it feels and is full of pointless reflection and encapsulation that slurp memory like never seen. And it's no wonder due guy who designed java in first place was faggot that had mentality of "programmers don't know how to use it anyway" so java lacks unsigned variables, unmanaged interop is fucking tedious boilerplate shitshow partially thanks to it, also you don't have option to use pointers if you want unlike in .net.

The jvm is way faster than fuckin .net dude. That shit is done pal, switch to something else if you want to stay employed. Btw kotlin has unsigned types and all sorts of cool shit. They're just gettin started!

Do both, javas old but it's still here for a reason and .NET shouldn't be overlooked.
Or you could just learn C++

I worked as a maintime Java dev for a while.

> C#
Lightyears ahead of Java. Been like this for years now. It's just a superb language.
But, it's Windows focused. You can use Mono on Mac, but it's meh, and the Linux support of Mono is dogshit. So multi-platform wise... eh/10.
> Java
It's stuck in the past. Oracle took over, then kept giving it less attention/support as years came.
Desktop wise you have several GUIs to choose from. They do the job. However, good luck delivering an installation that "lasts".
What do I mean?

On .net, even 2.0 for example, all you need to do is use Windows 10's installed to install .net 3.5 for the customer. Which it can do without any trouble.
And your several years old program works, runs, looks fine.

Java? A desktop Oracle JRE is now not free anymore for companies.
Sure, there is openJDK / other builds. Go ahead, try to launch a .jnlp with that. Shoo, try it.
Then there are the web-applets for example.

Basically, you try to build a solution that just works, is simple, future proof - but you cannot.

> Scala, Kotlin and the rest
Eh. It's all the same. Maybe Google will save the language with Kotlin, but we don't know...yet.

that's bollocks. got hired to both Java/C# jobs without any real hardcore experience. even the interviews are fairly basic.
it's easy as hell and you are paid to write boilerplate.
I suppose the only trouble comes later on when all the workarounds and boilerplate becomes a slow mess, and they hire an expert. Now that's when shit goes down. You will hunt your bugs and shitty code for years to come.

Start using Kotlin RIGHT NOW

.NET 5 will have Java interop, literally no reason to make new apps in Java anymore. Use C#/F# on .NET core and you won't ever look back.

Attached: dunnoako.jpg (1000x834, 77K)

Kotlin

>.NET
Basically dead
>Electron
Not really comparable because electron is a glorified UI kit and JDK a whole ecosystem. And electron is slow as fuck
>python
Slow as hell and irrelevant except for some shitty scripts written by scientists

Java and the JDK dominate the backend market. It's not only the JDK itself, it's the gazillion libraries available for Java. If python comes with batteries included than JDK comes with a whole fusion reactor.

Learn Java, C++, Python and some Javascript and you'll never have a problem finding a job.

In any case as a developer you should never trust in a constant which is that a certain language will exist for ever or will change the market.

Java double downed on the enterprise back-end segment where existing web companies already have behemoth code bases. Java will still be kicking 10 years from now without a doubt.

I am biased because I love C#. Rust/Go/Electron simply are not going to displace .NET in the userland space 10 years from now. If you have a killer app (or even a normal one) can't go wrong with C# and .NET.

The only wildcard is compute heavy workloads for like a startup business idea. Don't have any insight into what is going make the most sense / make you most money.

>applets and jnlp
Lmao, that shit is dead and nobody uses it. What is your argument. Please stop reciting stuff from the early 2000's.

Wth is. Net core?

.NET core is .NET Framework with all windows focused removed. (although you still can target windows with core like you can with framework) so you no longer need to use Mono if you just wanna develop command line and server applications.

Apparently, all tax filings are done using a framework that relies on JNLP in my country.
> inb4 but its old
THAT IS THE POINT. For fuck's sake.
If you have an old ass C++ Windows app that's been written in Delphi... guess what? IT WORKS.
An old .net 2.0 app? Oh boy. It will run just fucking fine.

But damn son, you dared to touch some Java technology a few years ago? Well, go fuck yourself.
Fuck you for using a part of the language, or a feature. Why? Because fuck you, we are Oracle, that's why.
You could say, why use JNLP? Why use Web apps? I ask: Why not?
Again, in 2019, you can either get a commercial JRE by Oracle, or get a neutered OpenJDK distribution on Windows. Which will kinda work but won't integrate. It's a mess.

Stop living in a third world shit hole?

>You can deploy to Linux today
But you can't deploy .NET to Solaris, OpenBSD, FreeBSD, or whatever. You can run Java anywhere. .NET you still can't. Maybe some day you'll be able to, but until then, .NET still has serious portability issues.

This hasn't been true for many, many years. They have historically been on par with each other, with one edging out the other in certain applications, but lately dotnet has been beating jvm by a small amount almost across the board.
Also lol you fuckers still don't have real generics, streams are absolutely garbage compared to linq, and you've got nothing like async/await. The reason why you liked kotlin so much is because it give you a taste of what C# has been doing for over a decade.

Dotnet core is a thing now, and it has a shocking amount of api compatibility with the old dotnet. Essentially only extremely Windows specific things were stripped. I've been working in core for over a year now and I've never once pined for an old feature; they really just stripped the garbage. Microsoft has made it clear that the old framework will be retired eventually, and that core is the future.

Attached: Screen_20190227.jpg (738x1753, 222K)

You can build the runtime on FreeBSD and probably many others with a little work. Automated builds for these platforms aren't provided because they're just not popular enough.

Wish I could be this braindead. I have values and shit.

i remember when in dotnet 1 the builds barely worked

now in dotnet 3 i can say "just run dotnet run and it works

t. Pajeet

i guess being unemployed is a good thing for you

Supporting windows and linux means you support every user-facing system that isn't owned by someone on Jow Forums. It also means you support virtually all systems that aren't used for some embedded or highly-specific task, and those things probably aren't interested in .NET in the first place.

>Embedded
I used the dotnet micro framework several years ago for a project using the netduino N2+. 100KB of memory, and a large chunk of that was taken by the tcp/ip driver. Still worked great.

>solaris, bsdx y z, etc
nobody uses that anymore, faggot

>netmicro
how the fuck I have never heard this?
damn it