Hacker News new | ask | show | jobs
by boskone 6111 days ago
Scala is _not_ some esoteric MIT, CMU language to make a point exercise. Its a pragmatic and practical attempt to "fix" Java so it has all the capabilities of Java with the proper foundational coherence which allows for additional, some yet to be defined or added, capabilities. Java has long ago painted itself into a corner. It has reached its evolutionary dead end.

As someone who lead a team which wrote one of the largest retail websites in the earlier days of Java, and as someone who has spent the last year rewriting legacy business logic in Scala, there is no comparison.

Scala wins not because its the new hipster language, it's distinctly superior across the board. You can write better, clearer, far more robust, far more scalable and far more easier to maintain and modify business logic at higher levels of productivity. That and its ability to work with legacy Java code makes it ideal. This is from direct and in-depth experience.

My concern with gizmo's post is its complete lack of claimed experience. No context of based on my experience where ... so we ... and then did a POC comparison with ... and found .... and concluded ...

In fact it appears very much to be a direct quote of from the preamble from the "Enterprise IT Managers Survival Handbook For Those Without Experience Or Knowledge Of Software Development Fundamentals"

Privately I've played with all of them. I love the shear outrageous power and beauty of Scheme (PLTs impl) and Haskell, the base competency of SML, and I've even used them in the enterprise in isolated in very few situations where the situation demanded it.

However, never once did it cross my mind to even "think" to introduce any of them into the enterprise (well a brief fling with Python for our operations group, it was found to be too hard).

Scala deserves to win. It is decidedly superior, however, lots of deservedly good things, in fact most, never see the light of day in IT.

1 comments

Note that I primarily object to the "let's do a startup with language FOO, because then everybody can see how cool we are and every smart programmer will want to join us because the language is so awesome!" attitude.

It's fine to take a calculated risk (Scala) if the direct benefits are measurable and significant. I'm not claiming that people should dogmatically stick to languages from the 90ies because they're safe. I'm saying that you need a very good reason to use a language with an uncertain future.

Also note that I (deliberately) didn't put Scala in the list of foolishness that contains Clean and IO.

"Note that I primarily object to the "let's do a startup with language FOO, because then everybody can see how cool we are and every smart programmer will want to join us because the language is so awesome!" attitude."

(a) no one ever diplayed such an attitude on this discussion or put that argument forward. Strawman.

(b) This is what you said.

"Messing around with unstable languages is a lot of fun. It's educational too. But don't build your business around it. Python/Django and Ruby/Rails are only barely stable enough to work with. "

which is different from reacting to the non existent "everybody can see how cool we are if use language foo" argument.

"I also note that I (deliberately) didn't put Scala in the list of foolishness that contains Clean and IO."

But you did say " Thinking that using Haskell, Clean, IO or Lisp will be a net benefit to productivity is foolish."

You never really showed where the "foolishness" is.

Also, from your original list that still leaves Haskell and Lisp as languages that don't "provide a net productivity gain", which is a very strange (and as pointed out by boskone above, unsubstantiated) claim. There are profitable businesses built on both these languages (lisp is a family of languages but still .. ), and very capable programmers being massively productive using both.

You said something stupid with nothing to back it up, got hauled over the coals and are now backtracking trying to make a less objectionable claim.

You then claimed Perl didn't exist in 1995 (!) and that's why PG used CL for ViaWeb (!).

quoting boskone "In fact it appears very much to be a direct quote of from the preamble from the "Enterprise IT Managers Survival Handbook For Those Without Experience Or Knowledge Of Software Development Fundamentals"

Indeed.

It's only a slight exaggeration. In the OP he states "my heart just said yes, it wasn't' a rational choice but an instinctive emotional one". The original article also states/quotes that picking an esoteric language is a good idea because that way you attract people who learn languages for fun. The "let's use a cool language" attitude is very visible here on HN.

I stand by what I said in (b). That you shouldn't pick a language because it's fun -- this I find almost self-evident. When you want to build a business you need to be more pragmatic and you need to consider other factors. Django and Rails are now probably the most popular frameworks for web 2.0 shops. I claim they are not very stable (and I provide supporting arguments in other posts). So I argue that using Django/Rails is adventurous enough. Barely stable enough obviously doesn't mean that it's unusable or worthless. The success of many Django/Rails projects is evidence of that.

The onus is on those who use non-mainstream languages to provide evidence there is an advantage. I claim there is no advantage, and I point out several downsides. If I claim that using Assembly for web programming is foolish you wouldn't expect me to show you why either.

"But of course there are obvious exceptions" covers the few businesses that have become successful. Here too, the onus is not on me to prove that Lisp did not contribute to their success, the onus is on those who are successful to show that it is Lisp that made it so. The reddit people drank the cool-aid, and it didn't work out for them. A single data point, I know.

I'm not taking back anything I said. I stand by it. I find that some of you are looking for things to disagree with, and you read my statements in the most objectionable way. You're saying you know what I meant better than I did when I wrote it. That's quite presumptuous. To attack my character by implying I'm trying to weasel out of anything is most uncalled for.

My claim that Perl didn't exist when viaweb was started was indeed stupid. Had I known viaweb started in 1995 I would never have said that. I (mis)remembered something pg said some time back, along the lines of "if I had to start viaweb today, I would use Python or Ruby". Maybe pg never said that, I don't know. Either way, I was completely wrong there.

edit: found the reference http://news.ycombinator.com/item?id=36905 (I was wrong)

"The "let's use a cool language" attitude is very visible here on HN."

Some evidence would be nice. I don't see it at all in the sense you claim i.e "we'll use a cool language because it makes us cool". No one I know on HN ever makes that claim or thinks that way. And yet to you it is "very visible". Links please?

"The reddit people drank the cool-aid, and it didn't work out for them. A single data point, I know"

But you don't accept "single data points" in the other direction do you? ViaWeb, Jane Street, Orbitz, FlightCaster?

"single data point I know" ;-)

"The onus is on those who use non-mainstream languages to provide evidence there is an advantage."

You are the one who makes outrageous claims that there is no productivity gain without ever actually using "esoteric" languages in a business context, so you could have some experience backing t your claim that there is no productivity increase. Your troubles upgrading Python (or whatever, your arguments on this are very vague and unconvincing) are not sufficient. Sorry.

When people who actually do use powerful languages to run their businesses report increased productivity, you refuse to accept it or consider it a possibility.

<Shug> Flip Bit. Move on.

"You're saying you know what I meant better than I did when I wrote it."

I don't know you in person. I have to judge your argument by what you actually write not by what you thought in your innermost heart when you wrote it. In your writing you come across as uninformed wrt your claims, and constantly shifting positions when confronted with counter claims, citations or evidence.

That said, I am done discussing this with you. Your argument has nothing backing it but "I think thus and thus with no experience or data or evidence and I refuse to consider anything contrary to my stated position".

Good Bye, Have a nice day.