Scala Lab
From Dev8D
Contents |
Scala Lab
#dev8d #lab |
| When: | Fri 26th 14:00-18:00 |
| Where: | Coding_Lab |
| Twitter Tags: | #dev8d #lab |
Organisers
Attending
If you are thinking of attending this session, you can add your name to the list below (places are limited):
- Tom Morris
- Damian Steer
- John Hoyland
- Ed Summers
- Tilaye Alemu
- Ianthe Hind
- Adrian Mouat
- Nasir Jamal
- Tom Smith
- Dan Hagon
- Ross McFarlane
Coding Dojos
The coding lab will be in the style of a 'Coding Dojo'.
If you would like to understand what a 'Coding Dojo' is, David Flanders has kindly put together this video:
[Principles behind Coding Dojos]
Introduction
Scala is a general purpose, practical, object-oriented/functional-hybrid programming language that runs on the JVM. It's type-safe and has a performance profile very similar to Java, but has the expressiveness of dynamic languages like Ruby and Python. Some Java users are treating it as a "power Java", some are using it as a scalable back-end for other applications (Twitter), some are using it as a half-way house between Java and Python/Ruby. In the workshop, we will look at some of the features of the language, learn the syntax and start using it to build something in a Coding Dojo.
To participate, it is strongly recommended that you download a recent version of the Scala compiler/runtime - 2.7 or 2.8 branch (the version installed by apt-get on Ubuntu or Debian Sid/Squeeze is fine). Familiarity with Java is useful; I've included code sample comparisons to Java, C#, Python and Ruby. For the Coding Dojo, we will be using SciTE on a Linux machine.
Resources
One thing to note: the Scala language is developed quite actively. Stuff changes: lots of stuff is going to change in the imminent 2.8 release. Be aware.
- Scala by Example describes most of the features of Scala
- Scala Tutorial for Java Programmers is useful - despite the title, it's useful for any programmers, not just Java programmers.
- The Code Commit blog has an excellent six part series called "Scala for Java refugees" - it's useful for non-Java programmers too:
- I maintain a little page called Scala for Hackers which is a sort of engineers log of how to do everyday web-hack type things with Scala - currently covers introspection, HTTP GET and parsing XML and JSON.
- Stack Overflow: Common programming mistakes for Scala developers to avoid
- SIDs - Scala Improvement Documents, the Scala equivalent of PEPs in Python
- Twitter on Scala - discusses some of the reasoning behind Twitter's decision to use Scala on the back-end.
Books
There are a number of Scala books available:
- Martin Odersky, Lex Spoon and Bill Venners, Programming in Scala - written by Scala's creator (Martin Odersky), this is a great book, but can be a bit academic at times.
- Alex Payne and Dean Wampler, Programming Scala - co-written by Alex Payne from Twitter (who have implemented Scala on the back-end of a very large production site). It's particularly useful as it covers features in the upcoming 2.8 release.
- Interview with the authors on the On Ruby blog
- You can read the 'rough cut' of the book online here.
- David Pollak, Beginning Scala - written by the author of the Lift web framework
- Interview with the author on the On Ruby blog
- Venkat Subramaniam, Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine - covers Scala's Actor-based concurrency system in some detail.
Essential software bits
- sbt: simple build tool for Scala - a lightweight alternative to using Ant/Maven. Uses Scala code for configuration rather than XML or makefiles.
- Unit testing: ScalaTest, Specs, Rehersal
- Vim syntax highlighting for Scala
- scala-vim-snippets (if you use snipMate, the TextMate snippets emulator for Vim, this adds all the snippets from the TextMate bundle and a few from the Java snippets file)
- Scala, emacs and yasnippet (if you use Emacs, try this)
| Attending | Tommorris +, Shellac +, Datainadequate +, Edsu +, Tilaye +, Ianthe88 +, Adrianmouat +, Nasj +, Everythingability +, Axiomsofchoice +, and Rossmcf + |
| Begin Time | 26 February 2010 14:00:00 + |
| End Time | 26 February 2010 18:00:00 + |
| Equivalent URIThis property is a special property in this wiki. | http://data.dev8d.org/2010/programme/dev8d_programme.rdf#event-fri-1400-1800-lab + |
| Event Level | 4 + |
| Location | Coding Lab + |
| Organiser | Tommorris + |
| Title | Scala Lab + |

