News for hackers. Stuff that matters.
Re:Scala: sharp and gets things cut by auggierose on Monday October 07, 2013 @01:49PM (#6509912)
Scala is the best language out there today for general purpose programming, FULLSTOP.

Many people complain about the complexity of Scala, or how many features it has, etc. Yes, there are some odd features (I am looking at you, native XML support), but these are features I NEVER use. Just learn the fucking type system (it's not that hard, all you need to understand for most of your coding is [A], [+A] and [A <: B] and you are set) and stick to the features you like / understand.

To those who praise the purity of Clojure: That is nice, but comes with a high prize. For example that you have to wait for something like Clojure.Typed, which is already a non-issue with Scala, because Scala comes with BATTERIES INCLUDED. Complaining that Scala has too many features is like complaining that Clojure has too many libraries.

Re:Scala: sharp and gets things cut by laureny on Monday October 07, 2013 @03:33PM (#6510615)
> Scala is the best language out there today for general purpose programming, FULLSTOP.

You have a very narrow view of what makes a good general purpose programming, it's not just about its syntax and its type system.

Scala suffers from a lot of hurdles that make it awkward to use in production and which lessen its productivity:

- IDE support, still very shaky, each new version of the plugin adding new features and breaking old ones, and the plugins randomly refusing to work now and then

- Tool support in general (it's sad that the best build tool is sbt, I was hoping we had learned from ant and maven that we can build better build tools)

- Slow compilation and getting slower at every release (memories of C++ and template linking)

- Backward compatibility still a problem. The compiler is a bit better now but the library story is simply a non starter for most production work

- And overall, the overwhelming impression that Scala is to Java what C++ is to C. It's a very big language that keeps getting bigger at each release, despite Typesafe promising they are working to fix that. They also promised that Scala development would no longer be driven by papers published at conferences, but that's a lie as well.

Also, some influential Scala people have been leaving Typesafe recently, and not in very good terms (e.g. Paul Philips, who was the guy keeping the releases together).

I just have a bad feeling overall about the future of such a language.

Re:Scala: sharp and gets things cut by virtualwhys on Monday October 07, 2013 @04:43PM (#6511114)
IDE support indeed has a ways to go, has improved a ton over the past 2 years, but still far from the rock solid Java IDE experience.

SBT is not simple, particularly for complex edge cases, but once you get your feet wet SBT is really quite awesome.

The notion that Scala compilation gets slower with every release is complete nonsense and is a clear indication of one who is not using the language. Scala 2.10 + SBT 0.13 combined with sub projects (modules) completely obviates the notion that Scala is "slow" since incremental builds are near Java speed (full builds, yes, much slower than Java, but for development, where you spend most of your day, working in Scala is relatively snappy).

Scala is Java++, fair enough, no complaints there.

> some influential Scala people have been leaving Typesafe recently

some is plural, other than Paul P what significant core Scala member has left Typesafe recently? Paul is a compiler addict, he may have "left" Typesafe, but look at his commits, he's still going strong, I don't think the guy can stop, he's obsessed.

> I just have a bad feeling overall about the future of such a language.

OK, leave it to those that use the language: wanting a language to fail is different than watching it succeed.

Re:Scala: sharp and gets things cut by auggierose on Monday October 07, 2013 @03:54PM (#6510760)
The IDE support is pretty good, I don't have problems with it. Ask the Clojure people how THEIR IDE support is ... sbt is a great build tool, better than ant or maven, pretty much the best I am aware of for any relevant language. The compilation speed is good enough for me, maybe you should upgrade your hardware. If you have compatibiliy problems, don't move to the new version. Wait until you have your issues fixed. You don't need to upgrade your Scala version immediately just because there is a new one. As to Paul Philips leaving, what was he responsible for, and what were the "bad terms"?

I have a really great feeling overall about the future of Scala. This feeling is based on my 20 years programming experience with all sorts of languages, and Scala is the best one out there right now. The IDE support and tooling is far greater than for any other language that comes close to Scala. (When you code in Java, even the greatest tooling in the world will not help your productivity).

Re:Scala: sharp and gets things cut by squidsoup on Monday October 07, 2013 @04:13PM (#6510892)
> Ask the Clojure people how THEIR IDE support is

Good from what I understand. Counterclockwise for Eclipse (https://code.google.com/p/counterclockwise/) received commercial support and sponsorship last year and is under active development. Chris Granger's Light Table (http://www.chris-granger.com/lighttable/) is an interesting contemporary look at an IDE. Tim Pope's fireplace (https://github.com/tpope/vim-fireplace) adds inline evaluation, a repl and some other tools to Vim. There's emacs of course.

Re:Scala: sharp and gets things cut by auggierose on Monday October 07, 2013 @04:19PM (#6510946)
I've done my share of Clojure programming, and none of the tools you mention are usable in a serious setting. The only stuff I could use (and that was damn hard to set up in the first place, and is "deprecated" for a year now) was an Emacs based solution.
Re:Scala: sharp and gets things cut by smrtinsert on Monday October 07, 2013 @03:59PM (#6510784)
I think sbt is the worst of all the jvm build tools I've used. I'm still learning the scala community but it puzzles me how such a strong community with great leadership and pretty nice tooling (scala-ide) can produce such an underwhelming tool.
Re:Scala: sharp and gets things cut by auggierose on Monday October 07, 2013 @04:27PM (#6511009)
I bet you didn't read the manual. You really have to read it.
Re:Scala: sharp and gets things cut by cgh on Monday October 07, 2013 @03:57PM (#6510770)
I guess "general purpose" doesn't include embedded (robotics, medical devices, etc.), games, systems programming, telecoms, scientific computing and various other disciplines, FULLSTOP.
Re:Scala: sharp and gets things cut by lmm on Monday October 07, 2013 @06:12PM (#6511659)
No. Duh. Those are indeed not general purpose programming fields, more or less by definition.
Re:Scala: sharp and gets things cut by lawn on Monday October 07, 2013 @02:40PM (#6510288)
Using capslock will surely make your point come across better, or not.

Complaining that Scala has too many features is like complaining that C++ has too many features, which is a valid complaint.

Re:Scala: sharp and gets things cut by auggierose on Monday October 07, 2013 @03:04PM (#6510432)
C++ is a dangerous and unsafe language, so you need to be aware of every little detail. That's why many features in C++ are a problem. Scala runs on the JVM. That and the saner design of Scala makes it much safer to code in Scala than in C++, and what you don't know in Scala, usually doesn't hurt you.

By the way, I didn't use capslock, I used shift.

Re:Scala: sharp and gets things cut by icebraining on Monday October 07, 2013 @03:00PM (#6510410)
stick to the features you like / understand.

Doesn't that only work if you're coding in isolation from bottom up? As soon as you include some library or start collaborating with someone who likes a different subset, you can't simply stick to what you know.

Re:Scala: sharp and gets things cut by auggierose on Monday October 07, 2013 @03:06PM (#6510446)
That might be a good point. You should come to an understanding with your collaborators on the subset you code in. That may be more difficult in an open-source setting.

BUT: This is even exaggerated in Clojure, where you are forced to learn all the little libraries your collaborators use...