Live data from Hacker News

Scala – 1 Star – Would Not Program Again

overwatering.org

241–250 of 324 posts

Re: Scala – 1 Star – Would Not Program Again

#241
post #136

Question - the job/hiring post on hen for November has many positions for clojure and one definitively for Scala. Here, I see references to investment banks using scala. Has scala become a readable alternative to java, while most of the future focus is on clojure? Does anyone know how real life performance compares between both. From my viewpoint, scala is in use at several banks and Twitter - clojure doesn't really…

There are some big places using clojure - the Daily Mail uses clojure heavily for it's website, as do SoundCloud; also, like Scala, it's used internally at some financial institutions - CitiBank have some clojure, and we've been using clojure at IOOF (an Australian superannuation company). Performance is probably the last thing you need to care about when choosing a programming language for most businesses - unless y…

Some other examples are Prismatic, Runa (recently bought by Staples), Climate Corporation (recently bought by Monsanto), Twitter (via acquisition of Backtype), etc. And there are a number of other big name companies very quietly using it to just get stuff done.

Re: Scala – 1 Star – Would Not Program Again

#242
post #235

Earlier quoted context omitted.

I think I read that phrase from you before on nyc. I think it's a misleading catchprase. For me and I think most other Scala devs Scala is a statically typed FP-OO language. So Haskell doesn't do it justice because Haskells insistence on purity makes it impractical for me in getting stuff done. And Java doesn't do it justice because Java is held back by its history. "Superset of" makes it sounds like a weakness and o…

>So Haskell doesn't do it justice because Haskells insistence on purity makes it impractical for me in getting stuff done I know this will sound snarky, but I have to ask: have you tried haskell before? I only ever hear that line of reasoning from people who have never used it (and I was once one of them, using that very same reasoning to choose a multi-paradigm language). We bailed on scala for haskell precisely bec…

"Useful for getting stuff done" is a point that Erik Meijer literally has made. F.i. you find him explaining his point of view on side effects and imperative programming here. And how he progressed from "fundamentalist" functional programming to "the real world is imperative & embrace side effects". http://youtu.be/a-RAltgH8tw?t=11m1s

You can't say that Erik Meijer doesn't know Haskell. :-)

Re: Scala – 1 Star – Would Not Program Again

#243
post #228

Earlier quoted context omitted.

I would rather use almost anything else except the random DSL wasteland that is Scala In my experience very little Scala code uses DSLs. Learning Scala isn't that tricky for anyone who knows Java, which is a pretty big pool.

That was not my experience with Scala. Every library we used had its own DSL and that made the code really hard to read. Maybe things are different now, but I'll bet that was a lot of people's first experience with Scala. It's what turned me off to the language, even though I did like using the standard Scala library quite a bit. Edit: It was two years ago so other than Lift and some SQL DSL I don't recall which libr…

That's pretty odd. What libraries were you using?

Re: Scala – 1 Star – Would Not Program Again

#244

I started learning Scala almost a year ago at my latest job - we use it for production systems at a large multinational investment bank. Coming to Scala from experience including C, Java and Haskell, I intially found Scala quite difficult. It is true that there are some things in Scala that are not obvious to newcomers, and that are difficult to discover for yourself - such as the use of Implicits, and the strange pr…

> Coming to Scala from experience including C, Java and Haskell, I intially found Scala quite difficult.

I think because it allows you to do OOP and FP, Scala becomes difficult since it is so easy to mix the styles. Similar to C and C++, this is very powerful, but also very dangerous. The main learning curve is programming in a way so you don't shoot yourself in the foot while using its flexibility.

Re: Scala – 1 Star – Would Not Program Again

#245

Question - the job/hiring post on hen for November has many positions for clojure and one definitively for Scala. Here, I see references to investment banks using scala. Has scala become a readable alternative to java, while most of the future focus is on clojure? Does anyone know how real life performance compares between both. From my viewpoint, scala is in use at several banks and Twitter - clojure doesn't really…

Real life performance generally favors Scala over Clojure, but by a relatively small factor (2x). This is mostly due to the clojure implementation's use of reflection to achieve dynamism. Dynamism? You know what I mean. You can make this up with some really clever tools for parallelism though, if your problem fits.

This is totally bogus. Clojure will only use reflection if calling into Java interop with ambiguous types and even those cases can be addressed with type hints (if they even matter).

Re: Scala – 1 Star – Would Not Program Again

#246
post #28

What is my biggest gripe theoretical gripe about Scala is that Trait order is important! Because traits can override common function. A class that is e.g. Ball with traits Shiny and Red is NOT the same as e.g. Ball with traits Red and Shiny. Why? Why complicate testing to a point where you need not only test traits for correct behavior, and not just composing of Traits, but even the order in which they are composed?…

As long as your traits are independent, the order does not matter. Anyway, how do you imagine this could be done better? For order to not matter, the linearization could not be possible and we'd end up with something much more complex and ugly like multiple inheritance in C++ with all the diamond inheritance problems, etc.

Actually, there's a very elegant solution to the diamond problem. Eiffel does this with a renaming mechanism. Martin Odersky certainly knew about Eiffel's solution when he designed Scala, but my guess is that, he chose the simpler solution of traits, just like most languages, because general multiple inheritance just isn't too useful.

Still, it's a shame that most people interested in programming languages have never heard about Eiffel, or ever read the superb book "Object-Oriented Software Construction" by Eiffel's creator, Bertrand Meyer. Eiffel has many flaws (the most proeminent being the complete lack of support for functional idioms), but it has very good ideas as well. (Perhaps the most popular influence Eiffel had on other languages is Design by Contract and the uniform access principle, which you see in most "modern" languages.)

Re: Scala – 1 Star – Would Not Program Again

#247
post #136

Question - the job/hiring post on hen for November has many positions for clojure and one definitively for Scala. Here, I see references to investment banks using scala. Has scala become a readable alternative to java, while most of the future focus is on clojure? Does anyone know how real life performance compares between both. From my viewpoint, scala is in use at several banks and Twitter - clojure doesn't really…

There are some big places using clojure - the Daily Mail uses clojure heavily for it's website, as do SoundCloud; also, like Scala, it's used internally at some financial institutions - CitiBank have some clojure, and we've been using clojure at IOOF (an Australian superannuation company). Performance is probably the last thing you need to care about when choosing a programming language for most businesses - unless y…

As far as automated trading is concerned, performance is critical, which is why C++ still is king in this domain.

Re: Scala – 1 Star – Would Not Program Again

#248
post #150
post #3

As a java Dev I have been watching Scala to see what people make of it. It seems like Scala is generally perceived as an academic exercise. We all want more powerful tools and infinite expression but at what point are we bikeshedding languages instead of building transparently clear solutions? Scala seems to be solving problems i dont have.

There's a lot of "seems" going around from people who haven't used the language, or dynamic-typing folk who obviously aren't going to pick a language that bets the farm on static types. As a long-time Java dev myself, Scala is solving problems you don't even realise you have, because you don't know to look for them. Powerful types, immutable state and FP make a world of difference for writing clear solutions, with be…

> less code, less bugs and less bullshit than the horrendous status quo of corporate Java development.

It may take some getting used to syntax and design wise, but being able to code things up in 1/10 the size of other languages completely blows away the disadvantages of Scala.

Re: Scala – 1 Star – Would Not Program Again

#249
post #228

Earlier quoted context omitted.

I would rather use almost anything else except the random DSL wasteland that is Scala In my experience very little Scala code uses DSLs. Learning Scala isn't that tricky for anyone who knows Java, which is a pretty big pool.

That was not my experience with Scala. Every library we used had its own DSL and that made the code really hard to read. Maybe things are different now, but I'll bet that was a lot of people's first experience with Scala. It's what turned me off to the language, even though I did like using the standard Scala library quite a bit. Edit: It was two years ago so other than Lift and some SQL DSL I don't recall which libr…

My "favorite" part of Scala was half a dosen DB libraries each re-implementing SQL as a DSL.

Re: Scala – 1 Star – Would Not Program Again

#250
post #170

Question - the job/hiring post on hen for November has many positions for clojure and one definitively for Scala. Here, I see references to investment banks using scala. Has scala become a readable alternative to java, while most of the future focus is on clojure? Does anyone know how real life performance compares between both. From my viewpoint, scala is in use at several banks and Twitter - clojure doesn't really…

I think the real world popularity of scala is significantly higher than that of clojure (e.g. TIOBE rankings). I don't think there is any more "future focus" on clojure - scala is still making big new releases all the time, and IMO it will be easier for scala to gain clojure's flexibility and compile performance than for clojure to gain scala's safety and runtime performance.

TIOBE is garbage but I would not dispute that Scala use is higher today. However, Scala and Clojure use both continue to rise.

Well-written Scala and Clojure can provide comparable (ie Java level) performance.

Clojure has tools (like core.typed and Prismatic's schema library) to optionally provide you with static typing where you want it, without the burden where you don't need it.

Clojure does regular releases every year (that continue to be high quality and maintain backwards compatibility) and now has paid developers and support that will continue to accelerate progress. Because of the flexibility of the language, a great deal can be done outside the language in libraries (such as the entirely new concurrency paradigm in core.async).

Post reply on HN