Settings

Theme

Scala: a new language for rapid development?

scala-lang.org

8 points by oleg_myrk 18 years ago · 8 comments

Reader

jorgeortiz85 18 years ago

Also check out the lift web framework, written in Scala

http://liftweb.net/

Highlights (from link):

Advanced Framework

Lift has a number of great features for web developers. Many inspired from existing frameworks like Seaside, Rails, Django, TurboGears, and Wicket:

    * Comet support is easy to add and scalable
    * Mapping between databases and code is easy (Rails)
    * Content and code are well separated (Wicket, TurboGears)
    * Forms are secure by default (Seaside)
    * Convention over configuration is emphasized, no xml hell (Rails)
    * Component model makes pages elements easier to create and maintain (Wicket)
    * Prebuilt classes are provided for standard functions, e.g. User (Django)
    * Semantic information carries from model to enable smart display. e.g. postal code, social security number, email address
    * State machine support for model objects, including timeouts. e.g. after 3 days w/o confirmation, delete this new account
    * Site Map provides site wide navigation and access control support 
marketer 18 years ago

For a while, they called Scala the ocaml-killer. Because it is fully interoperable with Java, it enjoys a huge standard library, which is one of the main pitfalls when writing ocaml code. I'm not sure it ever really caught on, though. Scala is a nice functional language with a rich type system built on java byte code, and is similar in concept to Microsoft's offering on the .NET platform: F#

  • jorgeortiz85 18 years ago

    Scala also compiles down to CLR (.NET) bytecode, though granted the support for CLR is not nearly as good as the support for JVM.

    I think the comparison to F#/ocaml is only skin-deep. Scala does have type inference, which saves a lot of typing compared to Java. For example, in Java one might write:

      IWidgetClassFactory factory = new WidgetClassFactory();
    
    In Scala one can get away with:

      val factory = new WidgetClassFactory
    
    The parens are optional. There as no type declaration for "factory", yet the language is still strongly typed, so the type of "factory" is inferred at compile-time. In many ways Scala code "feels" like Ruby (in the brevity and expressivity of its syntax), but strong type-checking means you avoid bugs (at compile-time) that in Ruby you'd have to catch with extensive unit tests or total system failure every now and then.

    Scala also has a sophisticated Actor library based on Erlang's actors. Scala's extensible syntax means that the following is valid Scala code (and was implemented as a -library-, it's not part of the language specification).

      val response = myActor !? request
    
    Actors are lightweight, so you can spawn hundreds of thousands of them on a single JVM, yet (unlike Ruby) they run on top of system threads, so you get real concurrency. This is unbelievably awesome for web development. Imagine keeping an actor thread alive for every logged in user to your site. Combine this with Ajax/Comet and you can "push" any updates out to the user as they become available.

    Anyway, I'll stop raving, but check out Scala by Example (link elsewhere in the comments) and the lift web framework written in Scala (link elsewhere in the comments).

queensnake 18 years ago

Boo, that's just a link to the website. I want my vote back! :/

zurla 18 years ago

i prefer lol-code on monorails for my prototypes

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection