Are the examples in the book built around multi-core/concurrent compression or encryption? Distributed web services? Graphic generation? Image conversion? MapReduce? Something else entirely?
The way functional languages are ideally suited for multi-core, distributed, and concurrent applications because of immutable variables and referential transparency is very intuitive. That's what originally got me interested in Haskell and then Scala, when I first read Tim Sweeney's presentation discussing why he thought functional languages may be the future of computing. But outside of a few simple examples (simple in concept, not simple in execution) like generating fancy game graphics, I have a harder time understanding how lots of software can be revised to efficiently use multiple CPU cores.
In general Scala or any language is not going to help us identify and partition a problem to take advantage of concurrency. That is
a design consideration. Once you decide to partition and take advantage of concurrency, the languages can step in and help with
Having said that, to answer your question about examples in the book, some of the examples are around making numerical computations
concurrent. Other examples are around Restful web service.
Thank you for your response. I realize Scala itself will not make it easier to identify problems that are easy to approach in a parallel fashion. As you said, it makes it easier to solve them, but not to find them.
I was just wondering what examples you used in your book. You said numeric calculations and Restful web services, which is good to me. Rest web services are one of the many technologies I've been meaning to learn. At my day job, we're still using Java and Struts 1.x, so if I want to learn it must be elsewhere.
We should be happy, that there's still the need for a developer with some brain sitting in front of the computer. If Skynet one day takes over and starts solving our programming problems without or help, I'm sure we'll have a lot more problems besides our programming problems
And to be honest I pray that this business doesn't get any easier than it already is. There are more than enough so called programming gurus which don't have any clue how to design and implement "good" applications which are maintainable and understandable for anyone. Unfortunately most managers don't even realize the difference. Hopefully even Scala doesn't make it too easy to create applications for future requirements regarding concurrency and other things
By most accounts, Scala is wonderfully productive once you're used to it. But in my humble opinion the very features that make it powerful also put the barrier to entry pretty high. High order functions, partial functions, closures, and traits are incredibly handy but not always easy for a newbie to understand. Plus, the very thing that makes Scala likely to see widespread adoption is compatibility with Java. That means many applications with Scala will be Scala/Java hybrids, so a user has to understand Java too and especially how Scala and Java interact.
I think Scala developers are safe for years to come. (Well, the next big thing, whatever that is, could conceivably make Scala developers obsolete. But I don't think Scala will reach the point where any hobbyist in his basement can pick the language up for general use any time soon.)
I absolutely agree with you. Having studied computer science I think should help me quite a bit in learning a new programming language because of some background knowledge hobby programmers maybe don't have (not generally because they are not smart enough but just because they didn't have the time to learn about some topics). Unfortunately I didn't have the chance to learn much about functional programming at our university and this fact makes the start with Scala not a walk in the wark if you try to fully understand the details of all the new concepts. So I think you are definitely right that Scala developers don't have to worry about their jobs in the next few years (if Scala actually grows in popularity).
Of course the above post regarding Skynet was more like a joke