News for hackers. Stuff that matters.
Re:Java 10 and beyond – a look at the potential language change by ktosobcy on Sunday May 13, 2018 @08:42PM (#17061882)
It has easy learning curve, it's verbosity while cursed upon makes it also easier to grasp the code by less-then-expert, it's performant, it has huge ecosystem, it can run everywhere.

In principle - it's just convenient in many ways.

Re:Java 10 and beyond – a look at the potential language change by eslaught on Sunday May 13, 2018 @09:29PM (#17062041)
I object to the idea that Java has an easy learning curve. Java is only easy because there is a massive investment put into it up front, in the form of freshman CS courses. So (a) a lot of the learning curve gets attributed to programming itself being difficult, and (b) once you internalize the model you categorize everything else as being "easy" or "hard" based on how similar it is to Java.

If you take people who instead learned Python as their first language, and put them through all the ceremony that is getting "hello world" to work in Java, you're going to get a very different reaction. A lot of this is very dependent on perspective.

Re:Java 10 and beyond – a look at the potential language change by peterashford on Sunday May 13, 2018 @11:04PM (#17062377)
I completely disagree. I learned Java after C++ and I found it to be a breeze to learn - and I was self taught. Python is a good language too, granted.
Re:Java 10 and beyond – a look at the potential language change by eslaught on Monday May 14, 2018 @12:56AM (#17062817)
I agree with your experience, but not your conclusion. How quickly you can switch from C++ to Java is a function of how similar Java and C++ are, not how easy one or the other is.

For the record, I also learned C++ first. I also found Java to be a breeze. And then I discovered a whole world of other languages, and learned that in the grand scheme of things, Java and C++ are actually really similar to each other. Even Python is not so incredibly different, though it is vastly easier thanks to dynamic typing.

Compare any of these to stack based languages (Forth), array-based languages (APL), dataflow/graphical languages (LabView), homoiconic languages (Lisp), dependently-typed languages (Coq), etc. There are so many paradigms that are so dizzyingly different from each other. C++ and Java really are much more similar than they are different.

And it's worth pointing out that many if not most of these, though they would probably induce shock in a typical C++/Java programmer, are actually built on top of a small set of core concepts that is probably more coherent than either of Java or C++. And this matters a lot for people who are learning truly from scratch. There isn't necessarily enough data to make any definitive statements here, but there are schools that start with e.g. Haskell as a first language, and offhand I would probably say they get off the ground faster than a lot of Java/C++ introductory courses I see.

Re:Java 10 and beyond – a look at the potential language change by peterashford on Monday May 14, 2018 @05:19AM (#17063987)
Sure, C++ and Java are both Algol based languages. I agree that a different paradigm is a better way to go for learning - LISP as I mentioned or Haskell as you mentioned. I have done a little Haskell and Erlang, but not enough to say that I know those languages. LISP I value chiefly for making me think differently which I guess is what you are going for in your comments. Although, I do still assert that Java is an inherently good language. I knew C before C++ and I would rank C and Java as 'better' languages than C++ from a design perspective. C and Java for being simple. C++ is good in other ways - it is arguably 'powerful' although the bang for buck over Java is reasonably low in that regard these days. My point is, I know several Algol languages and in my opinion C++, C# are the 'worse' ones and Java, C are the 'best'. I completely accept that other people will view this entirely differently and that this is largely a matter of taste.
Re:Java 10 and beyond – a look at the potential language change by starkruzr on Sunday May 13, 2018 @11:46PM (#17062519)
Python's environment management stuff makes me dizzy every time I try to get back into it.
Re:Java 10 and beyond – a look at the potential language change by Traubenfuchs on Monday May 14, 2018 @08:22AM (#17064799)
> and put them through all the ceremony that is getting "hello world" to work in Java Ceremony?

It's one line with the official java REPL jshell. Two lines, if you want a GUI (Swing).

Re:Java 10 and beyond – a look at the potential language change by random4369 on Sunday May 13, 2018 @08:46PM (#17061896)
C# ticks all the same boxes and is much better from a language point of view.

The only reason Java still exists is because it created a generation of professionals who only know Java, only do Java, and won't learn anything else. That group is still large enough to maintain critical mass and create new greenfield Java projects despite the fact that Java is a shit-poor choice of language for those projects today.

Re:Java 10 and beyond – a look at the potential language change by peterashford on Sunday May 13, 2018 @11:09PM (#17062390)
I code C# for a living and I still prefer Java. A lot of the things added to C# are mis-features IMO. When stuff gets added to Java it's usually been thought out better than the way MS used to cram new features into C#. I quick look at C++ ought to show that every feature under the sun isn't always the best approach. I take issue with your "professionals who only know Java" line. I knew C, C++, Lisp, Pascal and Assembler before coding Java. I've learned C#, Javascript, Python and Rust since. I still consider Java one of my favourite languages. It's a pretty poor ad-hominem argument.
Re:Java 10 and beyond – a look at the potential language change by bitL on Sunday May 13, 2018 @10:43PM (#17062308)
Java was propelled by investment banks that saw Java as a manna from heaven comparing to C++ CORBA and the mess it was. Suddenly you had something simple yet even more powerful than C++ when it came to time to deliver a flawless distributed app. Java's main drawback is the amount of boilerplate code, but frankly that's more of an issue of framework/design patterns than the language itself; similar problems are in Python, Scala or even Haskell, just at a slightly higher conceptual level.

Language-wise C# overtook Java quickly, but SUN was all about openness and about not being big bad Microsoft, and that resonated with the majority of idealistic developers.

Re:Java 10 and beyond – a look at the potential language change by kllrnohj on Sunday May 13, 2018 @08:51PM (#17061921)
C# was too tied to Windows for too long, it lost the mindshare outside of that ecosystem.

Also that whole "Android" thing happened.

Re:Java 10 and beyond – a look at the potential language change by random4369 on Sunday May 13, 2018 @09:02PM (#17061955)
> Also that whole "Android" thing happened.

Yeah, and Google made their opinion of Java quite clear by adding first-party support for Kotlin.

As for Java being popular because it has mindshare, you are agreeing with my original point. It doesn't continue to exist because it's a good language. It continues to exist because of inertia.

Re:Java 10 and beyond – a look at the potential language change by bitmapbrother on Sunday May 13, 2018 @09:32PM (#17062060)
>Yeah, and Google made their opinion of Java quite clear by adding first-party support for Kotlin.

Which is good for Android developers as they crave that syntactic sugar. Unfortunately, businesses have different priorities.

>As for Java being popular because it has mindshare, you are agreeing with my original point. It doesn't continue to exist because it's a good language. It continues to exist because of inertia.

It may not have all of the syntactic sugar that other languages have at the moment, but given its new release cadence its only a matter of time before it reaches feature parity.

Re:Java 10 and beyond – a look at the potential language change by thoughtexprmnt on Sunday May 13, 2018 @10:06PM (#17062191)
Agreed. Java was first, so that's primarily why it is where it is today in terms of market share. But C#, and its functional cousin F#, are now leading the way in the evolution of modern programming languages. With .Net Core now being open source and all-platform, we should all look forward to it supplanting Java and JVM as the ubiquitous language and runtime.
Re:Java 10 and beyond – a look at the potential language change by indemnity on Sunday May 13, 2018 @10:21PM (#17062237)
We used to be a Microsoft/.NET shop, and switched to Java for the ecosystem, as well as the fact that all the interesting things in cloud happen outside of Redmond.

Somewhat nicer syntax and some functional features isn’t going to fix the wider problem Microsoft has, which is the reason for .NET core existing, I suppose.

Re:Java 10 and beyond – a look at the potential language change by thoughtexprmnt on Sunday May 13, 2018 @10:55PM (#17062345)
>which is the reason for .NET core existing, I suppose.

True, .Net Core exists because Microsoft eventually realized its mistake of tieing its programming framework too closely to its operating system. But... that mistake is now in the past, for some years now.

>all the interesting things in cloud happen outside of Redmond.

We're getting a bit off-topic from OP with this, but can you please give an example of some other cloud provider's service for which there is no Azure equivalent?

Re:Java 10 and beyond – a look at the potential language change by indemnity on Monday May 14, 2018 @07:27AM (#17064509)
> We're getting a bit off-topic from OP with this, but can you please give an example of some other cloud provider's service for which there is no Azure equivalent?

I'm not referring to Azure feature line items, but rather that in the industry, Microsoft is usually an afterthought.

The innovation happens elsewhere, and then Microsoft has to themselves try and port it to Windows. If you're running on Azure, eventually you're running on Windows (yes yes, it can do Linux VMs).

We did .NET forever, and always had to try and make do with half baked adapters and integrations when wanting to use things like Hadoop or Spark back in the day, not to mention containers took forever to come to Windows.

Got tired of waiting for Microsoft or the community to port things over, just switched to the platforms and languages where this was all native. I'm sure you'll say it's better now, I've been hearing that for quite some time now, but every time I look, it's still confusing, muddled and in beta.

Kubernetes, JVM & Node.js works great for us now, and GCP is absolutely rock solid and performant.

And we don't have to wait for Microsoft to bless us with the only implementation we're ever going to get, the OSS community is much, much, more active outside of the Microsoft bubble.

Re:Java 10 and beyond – a look at the potential language change by pjmlp on Monday May 14, 2018 @03:44AM (#17063608)
.NET Core still fails short of many features available on .NET Framework.