Learning Scala
From Lift
These following are notes on the "Learning Scala" session of the Scala lift off conference. They were taken by Niels Vaneck and originally posted here.
- Talk regarding difficulties in learning Scala
- readability, types
- ability to simply define functionality (by means of 'complicated' api definitions) seen as both an advantage and downside..
- fear of 'application guys' messing around with difficult code
- Documentation:
- some javadoc like system exists
- scala's documentation seems a bit outdated
- lift documentation virtually non existant
- Good IDE support would make this a bit better (learning, code nav etc)
- Suggestion:
- Restricted mode.. restrict certain confusing features from being used
- API reduction?
- Style guide with some sort of enforcement
there seems to be a dichotomy between being able to write some scala, and being able to wrap one's head around something like Lift. - hard to visualize the magic behind it Seems to be more an issue with Lift than scala the language though Jevgeni says Lift Tutorials help with this.. (Digg clone in lift) oh. tutorial doesn't compile anymore. Scalablogs dynamic web applications with Lift & Scala by Jorge Ortiz
- Jorge: Students' points of confusion with Scala:
- Syntax (solved by mapping scala to java in your mind... right : )
- Big words: "covariance", "contravariance"
- http://cs94si.stanford.edu
Existential type is one type, you just don't know what it is. (known unknown : )
Martin likes to keep Scala's feature set down and have 'syntactic sugar' that allows flexible usage of these features
non alphabetic tokens make scala hard to read. => for instance what's the meanin of this?
language flexibility opens up opportunity for creating very ambiguous programs from a readability
Scala: - some find functional aspects hard.. - Type System - Fold operation etc
Teaching: - pair programming helps a lot - in demo's, coding on the fly vs ready made examples

