Live data from Hacker News

Under the Hood with Java 10 Enhanced Generics

infoq.com

21–30 of 45 posts

Re: Under the Hood with Java 10 Enhanced Generics

#21
post #4

This is really troubling to me. I'm a Scala developer and JVM nerd by trade (though more devops and high-level architecture as of late) and I've been hoping really hard that they'd just bite the bullet, flag-day the current type erasure and non-unified type system, and make Java 10 what...well, what the CLR is, now, today. The generic specialization route they describe is at best gross, isn't much better than what Sc…

I think a lot of people would see things differently.

.NET is much less a threat to Java today than it were 10 years ago. Today Windows is no longer the dominant platform, you have Scala for people wanting more advanced language features, you have Android and web applications are in general preferred over desktop applications. And if you are writing desktop applications then you need to take into account the Mac platform where .NET is at best a second class citizen.

And when it comes to IDE: I find IntelliJ far better than VS from nearly every standpoint - I simply don't understand your last remark.

Re: Under the Hood with Java 10 Enhanced Generics

#22
post #21
post #4

This is really troubling to me. I'm a Scala developer and JVM nerd by trade (though more devops and high-level architecture as of late) and I've been hoping really hard that they'd just bite the bullet, flag-day the current type erasure and non-unified type system, and make Java 10 what...well, what the CLR is, now, today. The generic specialization route they describe is at best gross, isn't much better than what Sc…

I think a lot of people would see things differently. .NET is much less a threat to Java today than it were 10 years ago. Today Windows is no longer the dominant platform, you have Scala for people wanting more advanced language features, you have Android and web applications are in general preferred over desktop applications. And if you are writing desktop applications then you need to take into account the Mac plat…

As far as .Net's future as illustrated, Android is not the preferred target for most mobile developers; iOS is, and currently the best cross platform runtime is based on mono/.net. Time will tell if cross platform server software programming catches on (my hunch is that it will with more mature frameworks). Kestrel and .net core 5 are a huge assault on java on the server, and warrant attention from oracle.

As far as the IDE's, I've used both and can say that I vastly prefer Visual Studio paired with ReSharper (the R# in the previous comment). This is the first comment I've seen in a public forum, actually, that says that VS is not better than IntelliJ.

Re: Under the Hood with Java 10 Enhanced Generics

#23
post #15
post #14

Earlier quoted context omitted.

I like Scala (and I'm starting to use it in my day job!) but I don't really think IDEA tooling is "roughly Java-level" quality. In fact, all the Scala IDEs I've tried are astonishingly bad, IntelliJ included. The consensus among the more knowledgeable Scala programmers at my office is that IntelliJ is too quirky as an IDE (probably due to its built-in Scala compiler which gives way too many faux compile errors. This…

Maybe you're using different Java knobs than I am, but IDEA 13 (haven't bought 14 yet) is effectively the same for me between Java and Scala. The Scala environment is perceptibly slower if I pay attention to it, but not that much and is generally unnoticeable. I can't remember the last time I had a bogus compiler error. The only thing I can think of is that I only use imported SBT or Maven projects. Maybe that has so…

My experience is much more like the one described by the_af .

IntelliJ is OK for most Scala code, but it regularly makes a mess of anything complicated. So much so that, in our office, the first answer to "why doesn't this code compile" is "Does it really not compile, or is IntelliJ being dumb again?" It's usually the latter.

I think it depends on what style of Scala you use. Anything involving slick or spray tends to confuse IntelliJ. Its better in 14, but it's still not good.

The refactoring is bad enough that I hardly ever bother using it. It gets simple things mostly right, but doing that by hand is just as easy. It can't do the more useful things like method signature changes.

The tooling support for Scala is improving, but its at about 10 years behind Java tooling.

Re: Under the Hood with Java 10 Enhanced Generics

#24
post #21
post #4

This is really troubling to me. I'm a Scala developer and JVM nerd by trade (though more devops and high-level architecture as of late) and I've been hoping really hard that they'd just bite the bullet, flag-day the current type erasure and non-unified type system, and make Java 10 what...well, what the CLR is, now, today. The generic specialization route they describe is at best gross, isn't much better than what Sc…

I think a lot of people would see things differently. .NET is much less a threat to Java today than it were 10 years ago. Today Windows is no longer the dominant platform, you have Scala for people wanting more advanced language features, you have Android and web applications are in general preferred over desktop applications. And if you are writing desktop applications then you need to take into account the Mac plat…

Count me also in the camp of someone who has never heard a person choose Intellij over VS with Resharper who has used both for any significant time.

As for .NET, if it were a viable Linux server side VM, C# would be a very compelling language in comparison to any of the JVM languages. It blows Java out of the water, and even as a full time Scala developer, I'd have a hard time arguing against it vs Scala because the things I love about Scala come with so many things I hate.

Re: Under the Hood with Java 10 Enhanced Generics

#25
post #7

Earlier quoted context omitted.

Yeah, but then it has also around 10K other features, most of which you don't need. Most Java developers won't be able to become Scala masters by 2018 anyway, if at all. On the other hand C# has even better generics than this proposal, along with await, dynamic, yield. And it's now supported by MS and Xamarin on all big platforms.

I like C#, I write a lot of it, but the claims of complexity regarding Scala are just so vastly overblown. Anyone who's a competent Java programmer and has an open mind (which is the nicest way I can think of to say "doesn't pee themselves when they see a lambda") can be a competent Scala programmer within a month of daily use. It's not that hard, the tooling today in IDEA is roughly Java-level in terms of quality, a…

Let me preface this by saying I've been a full time Scala dev for a few years now, and routinely make the choice to use Scala in new projects.

That said, the complaints about Scala's complexity are not overblown in the least. If you ever had the opportunity to move from one Scala team to another, or to integrate 2 Scala teams that had grown independently previously, you see that even saying you are a Scala team does not narrow down significantly what to expect when opening up the code base. There is so much variance in what is and is not idiomatic Scala, that even the Scala standard libraries are a mix of styles and best practices. As for Scala steering you towards the "Right Thing", I'd argue that the Scala community has not settled on what that is (to the point of schism) and my experience indicates that quite the opposite is true.

As far as IDEA achieving parity with Java, the very concept is laughable. Simple things like safe refactorings aren't, and syntax highlighting mistakes and phantom compile errors are common. While the IDE story in Scala has improved dramatically over the years, to say it is Java level is over selling it.

Re: Under the Hood with Java 10 Enhanced Generics

#26
post #14
post #7

Earlier quoted context omitted.

I like C#, I write a lot of it, but the claims of complexity regarding Scala are just so vastly overblown. Anyone who's a competent Java programmer and has an open mind (which is the nicest way I can think of to say "doesn't pee themselves when they see a lambda") can be a competent Scala programmer within a month of daily use. It's not that hard, the tooling today in IDEA is roughly Java-level in terms of quality, a…

I like Scala (and I'm starting to use it in my day job!) but I don't really think IDEA tooling is "roughly Java-level" quality. In fact, all the Scala IDEs I've tried are astonishingly bad, IntelliJ included. The consensus among the more knowledgeable Scala programmers at my office is that IntelliJ is too quirky as an IDE (probably due to its built-in Scala compiler which gives way too many faux compile errors. This…

I'd suggest that there are lots of people who consider these issues as disappointing as you do, they just don't intersect very well with people who continue to program Scala.

Every day I find myself asking if the language is worth the terrible tooling story, and so far the language keeps winning out. But I completely understand people who don't come down on the same side as I do on this issue.

Re: Under the Hood with Java 10 Enhanced Generics

#27
post #21

Earlier quoted context omitted.

I think a lot of people would see things differently. .NET is much less a threat to Java today than it were 10 years ago. Today Windows is no longer the dominant platform, you have Scala for people wanting more advanced language features, you have Android and web applications are in general preferred over desktop applications. And if you are writing desktop applications then you need to take into account the Mac plat…

Count me also in the camp of someone who has never heard a person choose Intellij over VS with Resharper who has used both for any significant time. As for .NET, if it were a viable Linux server side VM, C# would be a very compelling language in comparison to any of the JVM languages. It blows Java out of the water, and even as a full time Scala developer, I'd have a hard time arguing against it vs Scala because the…

Heh. I guess with the IDE's there is quite a bit of personal taste involved but believe me I am not the only who prefers IntelliJ.

Wrt. the other things; the way I see it .NET-support outside Windows has been "vapourware" since .NET's inception. It simply has not happened. In the beginning I thought this was MS's deliberate strategy but now the tables have turned and as a sinister business strategy it does not make sense anymore.

I have no more love for Oracle than I have for MS and I would love to see something as solid, cross-platform and performant as the JVM from MS but it just is not there.

Re: Under the Hood with Java 10 Enhanced Generics

#28
post #23
post #15

Earlier quoted context omitted.

Maybe you're using different Java knobs than I am, but IDEA 13 (haven't bought 14 yet) is effectively the same for me between Java and Scala. The Scala environment is perceptibly slower if I pay attention to it, but not that much and is generally unnoticeable. I can't remember the last time I had a bogus compiler error. The only thing I can think of is that I only use imported SBT or Maven projects. Maybe that has so…

My experience is much more like the one described by the_af . IntelliJ is OK for most Scala code, but it regularly makes a mess of anything complicated. So much so that, in our office, the first answer to "why doesn't this code compile" is "Does it really not compile, or is IntelliJ being dumb again?" It's usually the latter. I think it depends on what style of Scala you use. Anything involving slick or spray tends t…

Huh, I use Slick quite a lot and never have trouble. Never used Spray. I guess I don't write terribly complex stuff (I really do use Scala largely as I'd use a JVM C#, I suppose) in general, though.

About all I find myself using refactoring tools with for Java is renaming, honestly, so I guess I'm more likely to have my itches scratched by the current state of tooling.

Thanks for the explanation, though!

Re: Under the Hood with Java 10 Enhanced Generics

#29
post #27

Earlier quoted context omitted.

Count me also in the camp of someone who has never heard a person choose Intellij over VS with Resharper who has used both for any significant time. As for .NET, if it were a viable Linux server side VM, C# would be a very compelling language in comparison to any of the JVM languages. It blows Java out of the water, and even as a full time Scala developer, I'd have a hard time arguing against it vs Scala because the…

Heh. I guess with the IDE's there is quite a bit of personal taste involved but believe me I am not the only who prefers IntelliJ. Wrt. the other things; the way I see it .NET-support outside Windows has been "vapourware" since .NET's inception. It simply has not happened. In the beginning I thought this was MS's deliberate strategy but now the tables have turned and as a sinister business strategy it does not make s…

Cross-platform and performant? Wait six months. (My friends in a position to know say sooner, but I'm a pessimist.)

Re: Under the Hood with Java 10 Enhanced Generics

#30
post #14
post #7

Earlier quoted context omitted.

I like C#, I write a lot of it, but the claims of complexity regarding Scala are just so vastly overblown. Anyone who's a competent Java programmer and has an open mind (which is the nicest way I can think of to say "doesn't pee themselves when they see a lambda") can be a competent Scala programmer within a month of daily use. It's not that hard, the tooling today in IDEA is roughly Java-level in terms of quality, a…

I like Scala (and I'm starting to use it in my day job!) but I don't really think IDEA tooling is "roughly Java-level" quality. In fact, all the Scala IDEs I've tried are astonishingly bad, IntelliJ included. The consensus among the more knowledgeable Scala programmers at my office is that IntelliJ is too quirky as an IDE (probably due to its built-in Scala compiler which gives way too many faux compile errors. This…

I won't touch IntelliJ, but I find Eclipse good enough to work with. I've seen the syntax-errors-in-random-files bug occasionally; it's always been a block of text "moved" to the wrong place in the file. Annoying and worrying, but pretty quick to fix. Debugging has always been reliable though, and simpler refactoring works, and it's getting better at a good rate. But yeah, the problems are real.
Post reply on HN