Article Discussion
Scala Tendencies and Concurrency
Summary: A programming language is as much about a set of design principles as it is about syntax and code structure. In this brief interview Martin Odersky, creator of the Scala language, talks about design tendencies that Scala encourages, especially in comparison with Java. He also discusses Scala's approach to concurrency.
4 posts.
The ability to add new comments in this discussion is temporarily disabled.
Most recent reply: June 5, 2008 5:09 AM by r
    Frank
     
    Posts: 135 / Nickname: fsommers / Registered: January 19, 2002 7:24 AM
    Scala Tendencies and Concurrency
    May 7, 2008 1:00 PM      
    In this brief interview Martin Odersky, creator of the Scala language, talks about design tendencies that Scala encourages, especially in comparison with Java. He also discusses Scala's approach to concurrency.

    http://www.artima.com/lejava/articles/javaone_2008_martin_odersky.html

    What do you think of the coding and design tendencies Scala encourages?
    • Leo
       
      Posts: 14 / Nickname: aeoo / Registered: April 12, 2006 7:02 AM
      Re: Scala Tendencies and Concurrency
      May 7, 2008 3:24 PM      
      Call me crazy, but I think if Scala and Scala IDE plug-ins continue to develop at the current pace, we're going to see a mass exodus from Java into Scala. I have Scala and the beta plug-in setup here and once in a while I play with them.

      My enthusiasm for Scala is slowly building.

      As far as tendencies are concerned, I have to take Martin's word for it. I'd need to use the language for half a year to a year, non-stop, to really be able to tell about the tendencies, I think.

      Clojure also looks pretty good to me. So, before I commit to mastering a language, I want to see how things develop for a while.

      Programs are data and data are programs is a very powerful feature of the LISP family of languages. I think in Scala there are too many special constructs to enable the "programs are data and data are programs" paradigm. Much time has passed since LISP was invented, yet no one to my knowledge came up with a way to do this except to create another LISP.

      If I am wrong, I gladly accept corrections.
    • Alex
       
      Posts: 8 / Nickname: alexstojan / Registered: June 20, 2005 0:51 PM
      Re: Scala Tendencies and Concurrency
      May 7, 2008 7:06 PM      
      I don't know Scala (yet), but I like what I read about it so far, especially the fact that its design is focused on libraries. I think that's the right way to go.
    • sawan
       
      Posts: 3 / Nickname: kst / Registered: August 14, 2006 6:08 PM
      Re: Scala Tendencies and Concurrency
      May 8, 2008 7:01 AM      
      I have been a fan of C++. Because of the flexibility of the language, i could express myself in more than one ways, and the flexibility of the language did not restrict my thinking. C++ looked like it had all the features that allowed me to express myself elegantly.

      When i started in Java, i always felt Java was forcing me to code and design in a particular way, and i can do nothing about it. I felt like my creativity was being restricted by the lack of flexibility in Java.

      Now, I am learning Scala, and i absolutely love it. Inconsistent syntax and "_"'s confuse me at times(may be because I am a beginner) but the flexibility and support for functional and object oriented paradigms truly amaze me.
    • r
       
      Posts: 1 / Nickname: jkb / Registered: June 5, 2008 0:01 AM
      Re: Scala Tendencies and Concurrency
      June 5, 2008 5:09 AM      
      [quote="Martin Odersky"]
      That said, currently by far the most popular approach to concurrency is Scala's actor library. This provides for threads that communicate by message passing. Messages are asynchronous, and the receiver of a message can control with pattern matching which kind messages it is prepared to act on at any time. This is almost exactly the same approach as the one followed by the Erlang programming language. I often hear the argument that Erlang-style actors could also be emulated in Java or other programming languages. I don't think this is true. To precisely emulate these actors, you need pattern matching, and only very few languages provide that.[/quote]

      This sounds a bit like JavaSpaces to me. Could someone please let me know what makes this really special? And why would someone want to emulate something "precisely"? Each language has it's own quirks and features, thus 100% emulation is not always possible, and not always what you want.