Live data from Hacker News

Scala – 1 Star – Would Not Program Again

overwatering.org

261–270 of 324 posts

Re: Scala – 1 Star – Would Not Program Again

#261

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…

> Both companies I worked with have since dropped Scala (after literally hundreds of thousands of dollars spent on the attempts)

Hundreds of thousands of dollars is on the order of, what, 1 engineer-year?

Re: Scala – 1 Star – Would Not Program Again

#262
post #140

Earlier quoted context omitted.

> Scala is on my "will not work with" list of languages/technologies Just curious, what are the some languages/platforms you like or enjoy using? (Mine are Python, Erlang and Go for ex).

Hobby wise: Haskell, Rust, Nimrod, Haxe Shipping code: Go, Erlang, C++11 (avoiding legacy), F# (with Xamarin) I program in many more, but those are probably my top 8 right now.

I think with macros in Haxe you can create similar readability problems which you don't like in scala.

Re: Scala – 1 Star – Would Not Program Again

#263
Yegge said it best 5 years ago. [1]

"The... the the the... the language spec... oh, my god. I've gotta blog about this. It's, like, ninety percent [about the type system]. It's the biggest type system you've ever seen in your life, by 5x. Not by an order of magnitude, but man! There are type types, and type type types; there's complexity...

They have this concept called complexity complexity Meaning it's not just complexity; it's not just complexity-complexity: it's parameterized complexity-complexity. (mild laughter) OK? Whoo! I mean, this thing has types on its types on its types. It's gnarly.

I've got this Ph.D. languages intern whose a big Haskell fan, and [surprisingly] a big Scheme fan, and an ML fan. [But especially Haskell.] He knows functional programming, he knows type systems. I mean, he's an expert.

He looked at Scala yesterday, and he told me: "I'm finding this rather intimidating.""

[1] http://steve-yegge.blogspot.com/2008/06/rhinos-and-tigers.ht...

Re: Scala – 1 Star – Would Not Program Again

#264
post #27

I'm always interested to see intelligent criticisms of one of my choice languages. Let's take a look at what he has to say: Slow build times complaint > It is essentially impossible to practice TDD in Scala simply due to the time it takes to compile. Hrmm, that's interesting, because it sure seems like other people are able to do this. I agree, the slow build times are annoying, but let's not exaggerate. SBT critique…

TDD in Scala is very easy. I do it every day on several large Play! applications. I feel as though the author is doing something crazy, like compiling everything on every test run and always running all the tests.

Re: Scala – 1 Star – Would Not Program Again

#265
A disagreeing comment wrt OP. Hope it is useful to some.

On the library criticism ... Well, pick better libraries, use java libraries, or roll your own. You have twice the choice you have in java. Is that bad, or good?

Yes, there is immature stuff. Well for the lawyer rate you are charging, should be able to separate that from the good bunch?

The complexity - In my experience, learning curve is gradual in that you can pick new features when you need them. You can pretty much get by writing javesque scala with a bit of closures in the begining. Then take mixins, then take the hardcore stuff when you feel comfortable.

About the build system - here I was surprised. You seem pragmatic, why use it? To me SBT is totally useless because it solves nothing existing tools do not solve. The Scala support in Maven is perfect, and i feel so productive and mature in it these days, I would never trade unless there is a very strong selling point (meaning more free time for me to drink beer, whatever) If you don't like Maven, code in Ant. But using a build tool which is a general-purpose language? I agree with you. Baaaaad idea

Re: Scala – 1 Star – Would Not Program Again

#266
post #82

Earlier quoted context omitted.

But what practical problem is such a scheme actually solving? If I write response["headre"] = ... I have a bug, sure, but an obvious bug that will be fixed very quickly. With this type system I am now limited in an annoying way. I don't get it.

> I have a bug, sure, but an obvious bug that will be fixed very quickly. People say the same thing about null pointer exceptions, but null pointer exceptions are a huge problem in practice. Every bug is "obvious" in retrospect.

No, this is not the same as a null pointer. Null pointers are typically much more sneaky, this line means the header will not be written and the error is right in your face.

I do understand the desire to prevent these sorts of errors at the language level, but not at the cost of functionality. I don't agree with this one, but I do (for example) appreciate libraries such as the STL which (hopefully) prevent that pointer issue you brought up (and more). The STL doesn't (often) force me to work around silly limitations though.

Does this library provide for creating arbitrary headers in some other fashion? If not, why?

Re: Scala – 1 Star – Would Not Program Again

#267
post #238
post #82

Earlier quoted context omitted.

But what practical problem is such a scheme actually solving? If I write response["headre"] = ... I have a bug, sure, but an obvious bug that will be fixed very quickly. With this type system I am now limited in an annoying way. I don't get it.

>I have a bug, sure, but an obvious bug that will be fixed very quickly I love that there are people who say things like this totally seriously.

I'm not sure what you've done to make you feel like being condescending is something you have earned, but please feel free to share your body of work.

I've worked on very large, complex, mission critical systems my entire career. Medical devices mostly. If you're not catching these sorts of errors early then you aren't modeling and testing your software correctly (or at all). All of the objects in the world aren't going to prevent you from writing bugs and crappy code. OO is no panacea and we've known that for quite some time now. I don't want to use a library which is limiting because it thinks it is doing me a favor.

Re: Scala – 1 Star – Would Not Program Again

#268
post #249

Earlier quoted context omitted.

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

C# does that too. It's called LINQ and it's very popular.

It's NOT called LINQ in C#.

You are probably referring to "LINQ to SQL" which is different and significantly less popular technology than LINQ.

Re: Scala – 1 Star – Would Not Program Again

#269
post #184
post #82

Earlier quoted context omitted.

But what practical problem is such a scheme actually solving? If I write response["headre"] = ... I have a bug, sure, but an obvious bug that will be fixed very quickly. With this type system I am now limited in an annoying way. I don't get it.

For me, a big benefit is the tooling support. If the API is statically typed, I can easily find the headers I am able to set using my IDE. And for setting the date I don't have to check the http spec for which syntax I have to use for the date.

That's not a bad point, I'm just not sure I am willing to give up functionality for tooling. The end goal here is a program that people can use to get things done, not awesome IDE integration.
Post reply on HN