Live data from Hacker News

Scala – 1 Star – Would Not Program Again

overwatering.org

291–300 of 324 posts

Re: Scala – 1 Star – Would Not Program Again

#291

Earlier quoted context omitted.

"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. :-)

The fact that Erik Meijer says that imperative programming is the way to go for the "real world" is deserving of attention, but it doesn't empirically mean "all 'real world' software is better created with the imperative paradigm". From the sound of it this is his first job in the "real world"? If that's the case, perhaps he just hasn't seen patterns of applying his current functional knowledge in a way thats better…

> The fact that Erik Meijer says that imperative programming is the way to go for the "real world" is deserving of attention, but it doesn't empirically mean "all 'real world' software is better created with the imperative paradigm".

Nor is that even, I think, what I think Meijer favors. Meijir's position, from what I've seen from him in various contexts, seems to be that there are cases in real world software where the most clear expression of intent uses imperative constructs, and its better to use them -- but understand and contain their dangers -- in those cases rather than trying to avoid out of devotion to purity.

> From the sound of it this is his first job in the "real world"?

Well, if you don't count the 13 or so years at Microsoft as being "real world".I don't think he ever was a fundamentalist anything.

> I believe this is the reason to keep an ear open for authority figures, but not to take everything they say empirically

"Empirically"? Are you meaning something like "uncritically"? Because "empirically" doesn't have any meaning that makes sense in this sentence.

Re: Scala – 1 Star – Would Not Program Again

#292
post #202

Earlier quoted context omitted.

You never work with scripting languages? (i.e., why is there no Python, Ruby or Javascript in your lists? or maybe I do'nt know Haxe, does that replace them?)

Both Haskell and F# have good REPLs and are adequate for writing "scripts", maybe he prefers statically typed languages?

And Go compile speed combined with "go run foo.go" makes it feel like a scripting language without a REPL.

But in reality, when I need quick scripting, I mostly use ZSH.

Re: Scala – 1 Star – Would Not Program Again

#293

Earlier quoted context omitted.

Most of the stuff I work on is highly concurrent. GILs are the devil. Almost all the joy and ease you from GIL languages is lost as you try to go concurrent and have to use (in python for example) multiprocess and gevent ... then you start getting caught on the rough edges and poor ideas in those tools... and everything falls apart.

GIL isn't a language feature, it's an implementation feature — in Ruby, at least, this is a significant difference because there a major implementations (Jruby, most notably) without it even though it is a feature of the MRI implementation.

True, but JRuby comes with it own huge bag of rough edges (read: no C extensions for you without a bit PITA). IronPython is in a similar boat.

That said, I do prefer JRuby to Scala.

Re: Scala – 1 Star – Would Not Program Again

#294
post #2

I like Scala. It's a JVM language, it's extremely powerful, but maybe it's too powerful for us mere mortals. Eclipse allows very fast compilation times, but when I tried sbt, I gave up because I CAN'T wait for compilation: we're in 2013, I'm using a quad core at 3.4GHz, 12GB of RAM and SSD, so I'm not ready to wait. Eclipse allows fast incremental compilation. Scala's type system is very rich. I don't know if there e…

Were you using

  sbt ~compile 
for incremental compilation? I found a lot of the time spent waiting for compilations could be reduced by not waiting for the JVM to boot.

Re: Scala – 1 Star – Would Not Program Again

#295
post #276

Earlier quoted context omitted.

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 go…

Why not use every tool at your disposal that can catch bugs early? Static typing does that. Sure, you can catch bugs later with testing, but why not take advantage of automated tools (i.e. the compiler)? That's one less test you have to write.

The original post was decrying the limitations of a specific library. If you can implement the map in a better way while still allowing the freedom I/we need then fine. If you can't then get out of my way and hand me the map.

Re: Scala – 1 Star – Would Not Program Again

#296
post #288

Earlier quoted context omitted.

Not odd at all; you were being condescending, trying to paint me as someone who isn't as good a programmer as you are. Maybe I'm not, but I've written some very robust systems code in my career, so don't be so quick to write people off. I don't think I'm infallible (straw man much?), but I do think that dead simple errors such as this would be caught by any amount of actual testing. That said, I wouldn't be against a…

No, you interpreted it as condescending. Just because I enjoy unbridled optimism does not mean I am condescending. You are suggesting that you are infallible, as the "dead simple errors" you refer to get out into production systems every single day. More than one serious security hole in rails has been due to very similar problems. You are very much implying that you are a better programmer than the entire rails team…

Who cares about your super awesome Haskell library? You have meandered our of context. My response was in response to a defense of this particular implementation. If your abstraction sucks then I don't want it as it will cause me more headache than it is worth. That's the point.

EDIT: Eh... looking back at my original comment I don't think I got that across at all. It reads as more of a rant against a typed system in general, which is not what I intended.

Re: Scala – 1 Star – Would Not Program Again

#297
post #202

Earlier quoted context omitted.

You never work with scripting languages? (i.e., why is there no Python, Ruby or Javascript in your lists? or maybe I do'nt know Haxe, does that replace them?)

Most of the stuff I work on is highly concurrent. GILs are the devil. Almost all the joy and ease you from GIL languages is lost as you try to go concurrent and have to use (in python for example) multiprocess and gevent ... then you start getting caught on the rough edges and poor ideas in those tools... and everything falls apart.

GIL is all evil. If your are dealing with CPU bound concurrency yes, GIL is there to take the fun away. But if your problem is most about IO concurrency (downloading from multiple sockets for ex) GIL is no problem. I get very nice speedup from Python's threads with a silly web crawler I wrote.

Re: Scala – 1 Star – Would Not Program Again

#298
post #288

Earlier quoted context omitted.

Not odd at all; you were being condescending, trying to paint me as someone who isn't as good a programmer as you are. Maybe I'm not, but I've written some very robust systems code in my career, so don't be so quick to write people off. I don't think I'm infallible (straw man much?), but I do think that dead simple errors such as this would be caught by any amount of actual testing. That said, I wouldn't be against a…

No, you interpreted it as condescending. Just because I enjoy unbridled optimism does not mean I am condescending. You are suggesting that you are infallible, as the "dead simple errors" you refer to get out into production systems every single day. More than one serious security hole in rails has been due to very similar problems. You are very much implying that you are a better programmer than the entire rails team…

  I love that there are people who say things like this totally seriously.
No, it was condescending.

Re: Scala – 1 Star – Would Not Program Again

#299

Earlier quoted context omitted.

Well, to be fair, most unexpected behaviour in js comes from people not knowing the language, or people expecting js to behave like other languages. I do agree though, that js does have its share of design quirks.

> most unexpected behaviour in js comes from people not knowing the language Isn't this just a rationalization? Any unexpected behavior is by definition something the user didn't know to expect.

Well yes. But in that case Haskell is full of unexpected behaviour for someone completely new to functional programming, as C++ is to someone used to Lisp.

Re: Scala – 1 Star – Would Not Program Again

#300

Earlier quoted context omitted.

Is 'legalese' really a high-level language? It seems to contain a ton of boilerplate. Signal-to-noise ratio is quite low in reality. It could much more succinctly be encoded in a formal language. Also, I think you exaggerate the 'Scala is bad because DSLs' point. There are indeed a lot of libraries which overuse symbols but you are not obligated to use them. I have found the Scala I've written and read personally to…

>Is 'legalese' really a high-level language I think he meant the language that lawyers might use amongst themselves. Legalese is actually fairly low level. It's like a fully type annotated version of English that redefines all library functions each time.

That sounds like Java alright. Or maybe that's C++.
Post reply on HN