Steven has posted 36 posts at DZone. View Full User Profile

Only One Language Solves the Whole Problem: Scala

02.21.2008
| 7742 views |
  • submit to reddit

I'm writing this post from the Groovy/Grails eXperience, awaiting the start of registration and the actual first sessions. It's a bit ironic that at this time I have to come to this conclusion: Scala is the only language that solves the whole problem.

So what's the "whole problem" then? It's programming for multi-core processors. And static typing. Throw away your Python, Ruby and Groovy books. The dynamic language skills you've learned may still be useful in other settings, who knows. But if dynamic languages are your thing you're on the wrong side of the aisle.

It's Scala! Think about it. You can write your own web server in Scala - after all Tomcat is written in Java. Scala is somewhat readable, but if you know ML you'll feel right at home. As you all know using multi-core processors efficiently is the future. Intel has an 80-core processor! Think! It's Scala all the way.

Java is old and needs replacement anyway. People get excited about dynamic language but they're wrong. Dynamic languages are useless! Useless! You can't even refactor! What's that about?

Anyway, I'm gonna enjoy this conference, do my sessions and on the plane home start to learn Scala. I want to secure my future man!

Happy coding!

Published at DZone with permission of its author, Steven Devijver.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Mike P(Okidoky) replied on Thu, 2008/02/21 - 4:27pm

Scala doesn't seem very readable at first glance at all.  The sample on wikipedia looks dreadful.  The samples on the scala-lang site also make it clear that it's unlikely to succeed as a mainstream language.  That's what we want right?  A powerful mainstream(able) language.

Instead, I think instead of trying to root for existing language X, how about we create a new one.   Something close to Groovy perhaps, but with the problems fixed.  Major requirement: write similar code than Java should result in similar performance.  Right now Groovy's performance makes it unacceptable for anything but a sparingly used glue language.

I also like to see multiple inheritance. 

Michael Riecken replied on Thu, 2008/02/21 - 4:35pm

It continually amazes me that people (like Mr. Devijver, but he's not the only one) will throw up a headline that reads

Only One Language Solves the Whole Problem: Scala

And then end the article with an admission that he has to START learn the language on the plane ride home.

The headline should have read

I Don't Know What I'm Talking About, But That Won't Stop Me From Writing:

Only One Language Solves the Whole Problem: Scala

This would have saved me the time it took me to read to the bottom... I could have skipped this. Is there no editorial control here? Must we suffer this dihharea of words?

Rick Ross replied on Thu, 2008/02/21 - 5:17pm in response to: Michael Riecken

[quote=mriecken]I Don't Know What I'm Talking About, But That Won't Stop Me From Writing:

Only One Language Solves the Whole Problem: Scala

This would have saved me the time it took me to read to the bottom... I could have skipped this. Is there no editorial control here? Must we suffer this dihharea of words?[/quote]

Michael, I'm pretty certain that Steven's entire posting was completely tongue-in-cheek, posted in response to another story submitted last night. I saw this posting in the pre-publication queue, but I didn't think that Steven (a Zone Leader with moderation privileges) was actually going to publish it. I should have known better :)

Anyway, I hope we can end this here, before it gets further out of control. Please take my word for it that Steven is actually a very sophisticated software developer and architect. He's a presenter at the Groovy conference going on right now, and I would not expect him to be spending much time on his return flight learning Scala. He's quite firmly in the Groovy camp.

Rick

ff aaa replied on Thu, 2008/02/21 - 8:15pm

Scala posts are as annoying and useless as recent Groovy posts.

Michael Riecken replied on Thu, 2008/02/21 - 8:24pm

Rick,

I agree about Steven having earned his writing stripes. I don't normally associate a wrter with an article, but after reading your response, Rick, I went through and looked through his recent articles. I remember reading and appreciating several of them (especially those on build tools).

I think the tounge-in-cheek attitude was lost on me in this format.  Perhaps if I knew him better it would not have been an issue.

Steven - please accept my apologies for this, my misinterpretation.  Perhaps, going forward, we can clearly delineate sarcasm from serious content.

With kind regards,

+Michael

John Denver replied on Thu, 2008/02/21 - 10:26pm

Damn what are you smoking?, I'm agree with the other commenters, Javalobby should not allow this kind of writings.

Java is old? Hahah it is only 13 years old, I will say Cobol or Fortan that are old but those still have their place.

Creating new languages is like reinventing the wheel all over again, IMHO The best thing to do is take Java and adapt it, I dont want Java to become bloated as C# but it can get rid of the deprecated stuff and adapt with new style of paradigms and try to keep backwards compatibility. But I don't see a reason why a lot of hype to find the next best thing. It will never be because the world is adapting with what we have now. Windows OS will still be the desktop of choice for a long time to come and Java will still be the language for software development in the enterprise for a long time to come also.

If you want to cut your development time for small to medium projects I suggest to see at dynamic languages as Groovy but Java is here to stay for another 30 years and I hope because we have invested lots of efforts, time and money with Java. I really don't want to start all over again with Scala as reinventing the wheel in software development. 

 

 

 

Jeroen Wenting replied on Fri, 2008/02/22 - 1:38am in response to: ff aaa

[quote=afsina]Scala posts are as annoying and useless as recent Groovy posts. [/quote]

 more annoying. At least the Groovy fanboyz have used the language before raving that it's going to kill Java :)

Sultan Rehman replied on Fri, 2008/02/22 - 1:46am in response to: Rick Ross

[quote=rick]He's a presenter at the Groovy conference going on right now, and I would not expect him to be spending much time on his return flight learning Scala. He's quite firmly in the Groovy camp[/quote]

Is it just me or you make it sound like it's a bad thing for the author to be spending time on anything but Groovy? And what's with the "firmly in Groovy camp" anyway? Is this some kinda There-Is-Only-One-True-God church thing or something and that he needs to demonstrate his allegiance clearly?

Frankly I'm not even sure if the author is serious or just being saracastic.  Also this type of article isn't really helpful to anyone nor anything. If you feel excited about something, tell us why with code. Show us some code, show us some applications. We are all programmers and we breath code. Empty words like static typing over dynamic typing have no weight. Show us something concrete or shut up already. We can decide for ourselves on what we want, thank you very much.

 

Rick Ross replied on Fri, 2008/02/22 - 4:02am in response to: Sultan Rehman

[quote=sr57119]Is it just me or you make it sound like it's a bad thing for the author to be spending time on anything but Groovy? And what's with the "firmly in Groovy camp" anyway? Is this some kinda There-Is-Only-One-True-God church thing or something and that he needs to demonstrate his allegiance clearly?[/quote]

It is just you - you're over-interpreting and having a chip on your shoulder, to boot. I didn't especially like Steven's tongue-in-cheek article, and I absolutely have no bias towards either Groovy or Scala. If you're looking to pick a fight, then keep looking - it ain't starting here.

Alex(JAlexoid) ... replied on Fri, 2008/02/22 - 4:58am in response to: Sultan Rehman

[quote=Sultan Rehman]
And what's with the "firmly in Groovy camp" anyway?Is this some kinda There-Is-Only-One-True-God church thing or something and that he needs to demonstrate his allegiance clearly?
[/quote]

Try rading some posts by Steven. The ones that are about Groovy, you'll understand. And there are always people that exagerate thins...

 [quote=Sultan Rehman]
We are all programmers and we breath code.Empty words like static typing over dynamic typing have no weight. Show us something concrete or shut up already.
[/quote]

 Not all of us are programmers. Filosophic articles are also good, witch you consider empty for some reason.

Robert Hicks replied on Fri, 2008/02/22 - 7:44am

STOP! HE IS JOKING PEOPLE!

Sultan Rehman replied on Fri, 2008/02/22 - 8:00am in response to: Rick Ross

[quote=rick]It is just you - you're over-interpreting and having a chip on your shoulder, to boot. I didn't especially like Steven's tongue-in-cheek article, and I absolutely have no bias towards either Groovy or Scala. If you're looking to pick a fight, then keep looking - it ain't starting here.[/quote]
Wo wo where did that come from! I wasn't trying to pick no fight and I don't know what chip you saw on my shoulders. Maybe my poor choice of words, for which I'm sorry if I've offended anyone. But your reaction don't make you look like the most sensible and level-headed person either.

[quote=jalexoid]Not all of us are programmers. Filosophic articles are also good, witch you consider empty for some reason.[/quote]
Call me simple but I fail to see anything philosophical about this type of articles. To me it just leads to more of "my neighbourhood is better than yours" type of discussions. Oh well.


 

 

Rick Ross replied on Fri, 2008/02/22 - 8:13am in response to: Sultan Rehman

[quote=sr57119]Wo wo where did that come from! I wasn't trying to pick no fight and I don't know what chip you saw on my shoulders. Maybe my poor choice of words, for which I'm sorry if I've offended anyone. But your reaction don't make you look like the most sensible and level-headed person either.[/quote]

No worries, Sultan, and I'm sure nobody ever accused me of being the most sensible person anyway :)

Peace,
Rick

Michael Riecken replied on Fri, 2008/02/22 - 8:24am in response to: Robert Hicks

[quote=sigzero]STOP! HE IS JOKING PEOPLE![/quote]

 I think that his simply proves that "Joke" articles have a limited applicability in this medium.

You would never catch 60 minutes doing a joke piece (they may make stuff up, but they want you to believe it to be true).  You would never catch the New York Times running a piece like this.  Heck, you wouldn't even catch something like this from Sys-Con (and THAT pains me to write - Hi Fuat).  

One may argue that DZ/JavaLobby is not claiming to be in the same league as those institutions.  Well... if this is the type of sophomoric tripe that passes for technological journalism, they never will be.

I expect more.

I understand that the author is a luminary in his field.  Still, this article should have never had made it to the public's eye.

Mark Haniford replied on Fri, 2008/02/22 - 9:03am

Uhhggg...like some other posters I didn't get that this was a joke because...well...we've seen this sort of stuff on the front page of Javalobby in the past....but serious.

Alex(JAlexoid) ... replied on Fri, 2008/02/22 - 11:56am in response to: Sultan Rehman

[quote=Sultan Rehman]
To me it just leads to more of "my neighbourhood is better than yours" type of discussions. Oh well.
[/quote]

I hate thos kind of discussions.

And I have seen some communities die off just because of 0 value and provoking joke articles starting to dominate.

BTW, this article I consider just personal thought type, that really should be posted on personal blog, rather than javalobby.

Mark Thornton replied on Fri, 2008/02/22 - 2:13pm

In some countries, notably the UK, joke pieces are not at all rare even in the serious end of the media. Unfortunately much of the online community seems incapable of recognising sarcasm (even or perhaps especially) those that share the same native language.

Are we likely to learn not to use jokes/sarcasm online? ... Not in the forseeable future.

Osvaldo Doederlein replied on Mon, 2008/03/03 - 4:13pm

Disclaimer: this is a SERIOUS reply.

I also confess to be a beginner in Scala, but the more I learn, the more I like it. Very different from Groovy, which caught my attentiona couple years go - I even wrote a monster-sized, cover story article on brazilian Java Magazine - because it had all sorts of productivity syntax features, and great Java integration on top of that.

But in the end of the day, it's yet another stupid dynamically-typed language. Not only that, but a hudreds times slower thaneven other dynamically-typed langages. I will never use Groopvy for anything except dynamic pages, appliction-level scriptability and the like.

Don't be fooled to think that Scala has no chance just because its syntax is more complex than Java. this is true, but IMHO it well pays off the learning curve. C++ was much more complex than C (even by C++'s instroduction - before templates and other craziness), but that didn't stop C++ from taking over C for application development. Because it was a much better language than C. Well, at least it was much more powerful, and it broke new ground in delivering OOP to the mainstream. But C++ had too carry big a burden with compatibility with C, unmanaged memory... it couldn't reach to the next level, so Java came.

The Java language will not reign forever, either. Its replacement is not a matter of if, it's a matter of when. But methinks the Java platform will live much beyond the Java language, especially as it becomes more open. We can still fix many issues of Java, e.g. with closures, limited type inference and other proposals for Java SE 7. But IMHO the next great language may be something like Scala, and the fact that it's also a design-for-the-JVM language, and matching Java's performance(*), makes it an even stronger contender.

(*) At least, if you code in Scala mostly like you do in Java, because Scala currently seems to miss high-level optimizations that would benefit its unique features. For example, a fundamental operation like List.map() is implemented 'by the book' with a method that creates an output list. A proper optimizing compiler for a functional language (even an impure one) would avoid this in many circumstances, e.g. when the resulting list is used as input for another operation (e.g. in a for-comprehension). In other words, many important operations must be "intrinsified" by the compiler, otherwise you must either trade some performance for the language's most interesting and advanced features - or avoid these features and use Scala as a "better Java than Java"... and if you do that, the trouble of learning it, integrating to your toolchain etc., is probably not worth the effort.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.