July 23, 2010

Scala is my language-of-the-year this season.

Already for a while, I'm teaching myself one programming-language-per-year.
It upgrade my coding abilities whilst keeping programming skills generic and language agnostic. Practically it means I'm rewriting lots of code snippets with familiar structure in different languages. Something like RosetaCode on syntactic level.

Last year I flushed my brain with Category Theory and Linear Logic. Reason for that upgrade was one silly question from headhunter, namely: "What do you call class with virtual function". (C++ interview).
His own answer was - `Polymorphic Class'. Ups... This `hangs me up just like F0 0F C7 C8  hangs Pentium MMX. Postfactum I meditated on subject a lot,  because it was traumatizing failing interview that miserable.
Clearly he meant `Subtyping polymorphism of C++ object's but I ruled that out on simplicity ground and begin looking for `higher-kinded (*->*) in type classes, then for `class's from Naive Sets and then back to nothing, Just Nothing...

Thanks to this unfortunate event I rethink my approach for `skills-upgrade in general:
`programming-language-per-year still good, valid and fun
`proficiency can be gained in 10 year (10,000 3000 hour when 4.5 per day 220 days per year)
`then you have to go to new LEVEL (still creator) or GAME OVER (manager)

What is Scala?
For me it is reification of computation via programing (By means of reification something that was previously implicit, unexpressed and possibly unexpressible is explicitly formulated and made available to conceptual (logical or computational) manipulation).

Why Scala?
Because I like to program things fluent style and the way I feel it right.

No comments:

Post a Comment