Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Routes into Scala?

 
chris webster
Bartender
Posts: 2407
33
Linux Oracle Postgres Database Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"Scala In Depth" is clearly aimed at giving readers a deeper understanding of Scala after they've worked through the early learning phase. From your experience, what is the most common - or the most effective - route into Scala? Are most Scala users migrating from Java, or are they coming from a wider background? To what extent do current Scala adopters already have a background in functional programming? How far can people regard Scala as just another tool in the toolbox for their next project, or is it still something that demands a lot of specialised preparation first?

And how long do you think it will be before people are routinely starting out in Scala without the usual JEE background i.e. when will Scala become a "native language" for developers, rather than a second language for people who may still feel more comfortable in Java?
 
Erik Bakker
author
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
chris webster wrote:"Scala In Depth" is clearly aimed at giving readers a deeper understanding of Scala after they've worked through the early learning phase. From your experience, what is the most common - or the most effective - route into Scala?

I think the most common is coming from Java. But in the #playframework channel on Freenode, we also see a fair amount of PHP and Ruby developers that want to switch to a type-safe language like Scala, and find that Play matches their ideas about web frameworks. I also think that people that have some experience with functional programming are inclined to look for alternatives when working with Java. I don't think there's a specific 'most effective' way.

If you're introducing Scala to a team, we've seen it helps to have at least one experienced Scala programmer on board, that can guide those new to Scala and knows where they should stay away from for a while.

Are most Scala users migrating from Java, or are they coming from a wider background? To what extent do current Scala adopters already have a background in functional programming?

At my workplace a fair chunk of the people that adopted Scala in recent years did not have any functional programming background. It's also not necessary; you can start writing Scala in an imperative style and slowly adopt functional code when you get into that

How far can people regard Scala as just another tool in the toolbox for their next project, or is it still something that demands a lot of specialised preparation first And how long do you think it will be before people are routinely starting out in Scala without the usual JEE background i.e. when will Scala become a "native language" for developers, rather than a second language for people who may still feel more comfortable in Java?

I don't think that Scala needs other specialised preparation than other programming languages. But I don't think there's many people that use Scala as their first programming language yet; for beginners the visibility of Java, Ruby etc. are higher, and I don't think many introductory programming courses use Scala (yet). Not sure how fast that will change
 
chris webster
Bartender
Posts: 2407
33
Linux Oracle Postgres Database Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Erik. Interesting to hear there are people coming from PHP to Scala/Play - that's a big jump for anybody - while I guess the Rails people will find a lot of familiar ideas in Play.
 
Brian Hanafee
Greenhorn
Posts: 7
Mac Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Erik Bakker wrote:
I don't think that Scala needs other specialised preparation than other programming languages. But I don't think there's many people that use Scala as their first programming language yet; for beginners the visibility of Java, Ruby etc. are higher, and I don't think many introductory programming courses use Scala (yet). Not sure how fast that will change


I love Scala but honestly, I think it would be a brutal choice for first programming language.

  • The flexible syntax and optional declarations make it difficult to predict for someone who isn't already comfortable with language syntax.
  • The integration of object-oriented and functional styles leaves beginners unsure of which way to go. One can learn OO first, or learn functional first. Learning both in parallel is asking too much.
  • Image explaining co-variant and contra-variant types to a person who isn't familiar with object inheritance.
  • Many of the harder to understand choices in the libraries are driven by Java compatibility. For someone who doesn't know Java, that means a lot of WTF moments.


  • Heck, the table of contents for Scala in Depth can almost be read as an outline of reasons why it's not a good first language. I'll grant that Chapter 2 has a lot of points that would be good for a first language.
     
    Joe Harry
    Ranch Hand
    Posts: 10124
    3
    Eclipse IDE Mac PPC Ubuntu
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I guess the goal of Scala is not to teach OOP concepts but rather it assumes to have OOP knowledge. It build on it to teach functional style of programming. Agreed that there is a very steep learning involved.
     
    • Post Reply
    • Bookmark Topic Watch Topic
    • New Topic