Live data from Hacker News

Scala – 1 Star – Would Not Program Again

overwatering.org

191–200 of 324 posts

Re: Scala – 1 Star – Would Not Program Again

#191
post #105

Earlier quoted context omitted.

Once you start dwelling in the intricacies of a very complex type system, it becomes quite difficult to keep things easy to understand. There's this joke about how a Haskell programmer's style on a hello world programme evolves with experience, starting from a very readable, sort of down to earth implementation, and turning out in its last iteration into a complex "mess" of abstract concepts, for sensibly the same re…

That's not a very good joke.

If you take it too seriously, it's indeed not very good. I personally take it as a compliment for Haskellers: it means that people from the Haskell (and fp in general)community do think at a higher level than the average programmer, so much that it becomes for them difficult not to.

The FP model gives good tools to enable that, and encourage people to think that way.

I may also be biased because I feel more confortable thinking that way. Certainly programmers excelling at imperative programming might disagree, but I don't think that the latest trends of "functionalizing" Java, C++ or PHP are coincidental. Javascript opened the way by bringing back that paradigm to a larger audience, and these languages, which already have FP concepts available, but not in a very usable way, are now incorporating them to the core. That's a good thing.

Regarding the original topic, Scala is very much an experiental language in my opinion (because of the concepts it involves; the implementation is pretty good), so maybe there's a little bit of thruth in the article in that regard. Perhaps that's the "flaw" of academic languages. Also the comparison with Java is quite pertinent, Java being a language designed from the ground up for engineering: the grammar is fairly simple, which provided a somewhat good compromise between high readability (because of its similarities with C) and easiness at machine processing (not as easy as lisps dialect though).

Re: Scala – 1 Star – Would Not Program Again

#192
post #155

Earlier quoted context omitted.

Scala is pulling out of that phase. Scalaz 7 removes a lot of the less-readable operators (e.g. you now have to write "Kleisli" rather than "☆"). The Requests HTTP library, long mocked for its periodic table of operators, has fallen out of favour (I'm not sure it's even maintained any more). I can't speak for SBT because I don't use it, but Spray is probably the nicest library for defining HTTP APIs I've ever used, i…

Wait. Scala has unicode operators ? Wow.

Perl6 also has unicode operators - https://news.ycombinator.com/item?id=4942377

Re: Scala – 1 Star – Would Not Program Again

#193
The Scala code I write looks very similar to the Clojure code I write. But has the advantage of (optional) static type checks.

What I care about is that a language lets me express easily the concepts that are in my head. Scala does that and because of its type systems makes it even possible to document these concepts in a mechanically verifiable way (only up to a certain extent, of course).

Re: Scala – 1 Star – Would Not Program Again

#194

Earlier quoted context omitted.

There are other JVM languages that are far less verbose than Java, without the complexity of Scala, with better compile times, and better compatibility with plain-old Java. For instance, Kotlin.

Kotlin hasn't even been released yet, and it looks just like Scala.

It 'looks just like Scala'? It is not even a functional programming language. Let alone that it supports implicits, general operator overloading (operator overloading is very limited in Kotlin), existential types, etc.

In fact Kotlin looks mostly like Java with some additions to make everyone's lives easier (closures, extension methods, data classes).

Re: Scala – 1 Star – Would Not Program Again

#195
Scala after 2 weeks = 1 star Scala after 2 months = 3 star Scala after 6 months = 5 star

Show me a statically typed language on the JVM that trumps Scala -- it doesn't exist.

Show me an ecosystem in that statically JVM based language that trumps that of Scala (Akka, Play, Slick, sqltyped, Squeryl, Spray, Scalatra, Lift, Blue Eyes, Unfiltered, etc., etc.)

Yes, compile times are a hassle (for deployment that is, incremental compilation combined with sub projects are plenty fast, usually around 1-3 seconds, it's a non-issue).

Yes, IDE support is nowhere near that of Java's, but it has improved immensely during the past 2 years. Either IntelliJ or Eclipse + ScalaIDE do the trick, am happy on the latter here.

There are only two kinds of languages: the ones people complain about and the ones nobody uses --Bjarne Stroustrup

Re: Scala – 1 Star – Would Not Program Again

#196
post #133

Earlier quoted context omitted.

> But because the plumbing must be laid out so meticulously and in every situation, it is often hard to see how things work at a high level. You can't see an architectural sketch in Java, you can only see endless classes in endlessly nested subdirectories. This is a very low level of abstraction, and helps the layperson (such as someone approaching a new open source project) build up an understanding from the base el…

> The only real outlier being Javascript which gets its popularity from being the only option for the browser. This is probably the reason for Javascript's popularity, but if you ignore some bad language design, Javascript is a very simple language with a very small number of concepts that you need to understand to start getting work done in it. Even Python (which I think is the simplest of the widely used dynamic la…

>> This is probably the reason for Javascript's popularity, but if you ignore some bad language design, Javascript is a very simple language with a very small number of concepts that you need to understand to start getting work done in it

I hear this a lot. JavaScript is great unless you [insert example why JavaScript isn't great]. You could easily turn that statement around: JavaScript sucks, unless you don't [insert example why JavaScript sucks]. It's an empty statement that could apply to almost any development language no matter how objectively 'good' or 'bad' it is.

I don't know Scala, but judging from the (interesting) article it appears that Scala can be perceived as a bad language because it allows you to write obfuscated, hard to read code that hides many details of what's going on in the program. This can be both a good and a bad quality, depending on the kind of program, and the kind of developer. Personally I like languages that aren't too opinionated or restrictive, so I might like Scala. Compare this to JavaScript, which is a bad language for the simple fact that it's downright dangerous to program in looking at all the idiotic, arbitrary corner cases you have to avoid.

You could have a philosophical discussion about the merits of the design choices in Scala, I don't think you could say the same about JavaScript though, it really is popular only by accident.

Re: Scala – 1 Star – Would Not Program Again

#197
post #118

The section on HTTP headers and typing is a little concerning to me. I've been making rust-http recently and (before I was aware of Spray) I felt strongly about the typing. So, I'd like to discuss this. Am I wrong after all? Here clearly is someone that disagrees with me. I think I should probably write up a long blog post on the topic explaining my reasoning and so forth. rust-http is, at present at least, rejecting…

Although I appreciate this discussion, both the OP and you are off-topic. This is a library design issue, not a language level issue. If people like OP are dissing a language because they don't like a particular library's API, they have very strange expectations from the language. And if you are worried about this section of users, then I would say in order to make good use of your time, it is best to ignore them.

For all practical purposes, you're never comparing just the core language, but the language+libraries for common tasks (no matter if it ships 'batteries included' or not)+the whole ecosystem and community of library developers.

If it's hard to do X in your language, but easy in other languages - then that's a weakness for your language, despite that 90% of X's will be outside of the language core.

And even 'optional extras' in your language can be weaknesses instead of features - if they are often used by library makers for less readable/maintainable code than the other options.

Re: Scala – 1 Star – Would Not Program Again

#198

Earlier quoted context omitted.

Kotlin hasn't even been released yet, and it looks just like Scala.

It 'looks just like Scala'? It is not even a functional programming language. Let alone that it supports implicits, general operator overloading (operator overloading is very limited in Kotlin), existential types, etc. In fact Kotlin looks mostly like Java with some additions to make everyone's lives easier (closures, extension methods, data classes).

It managed to copy almost every single Scala feature and is not even functional? Impressive.

Re: Scala – 1 Star – Would Not Program Again

#199

Earlier quoted context omitted.

I've developed and maintained multiple large systems in a team using various languages. I would much rather maintain a system written in Scala than either Java or various scripting languages we've used and the view is shared by the whole team. It's far less verbose than Java and very maintainable compared to other very large systems written in scripting languages.

We simply disagree on this. I would rather use almost anything else except the random DSL wasteland that is Scala. Even Ruby or Python (with the horrible GILs) is preferable. The groups I worked with made different determinations than your team, but if you guys love it, enjoy. Seriously, if you find a technology your whole team loves, you are KILLING it. Both companies I worked with have since dropped Scala (after li…

Interesting, I'm from Sydney and we are seeing a large increase in Scala developers becoming available. Several large companies have been hiring them by the truck load and the local Scala meetup regularly gets 50-80+ people.

I too suffered a bit from DSL hell, especially some of the more extreme examples like the library "dispatch" where you need a "element lookup table" to figure out which squiggly line to use. But once you have a stable set of dependencies the initial DSL influx subsides and you start to work with a fairly manageable subset of them on a day to day basis.

Re: Scala – 1 Star – Would Not Program Again

#200
post #106

Earlier quoted context omitted.

I'm trying to escape PHP, but terminal velocity is hard to achieve since now I have Laravel to work with. I'm looking to venture off either into JVM space or Go.

I tried the same thing. I now play with C and Nimrod... And just doubled down on PHP. You'd be amazed at how powerful it can be in the right hands... Or not, as you're using Laravel ;)

Oh come on, that's not fair :) Laravel is a godsend compared to what I had to work with before. However I think I am using it wrong, I dump almost everything into controllers and views and use models for relationships only. Those controllers got fat, real fat.
Post reply on HN