

Scala: a new language for rapid development? - oleg_myrk
http://www.scala-lang.org

======
jorgeortiz85
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
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
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).

~~~
michaelneale
I think you mean statically strongly typed. I think python is strongly typed,
but dynamic.

~~~
jorgeortiz85
Yes, my bad.

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

~~~
amichail
See how far you can get through this:

<http://www.scala-lang.org/docu/files/ScalaByExample.pdf>

------
zurla
i prefer lol-code on monorails for my prototypes

