wood burning stoves 2.0*
The moose likes Scala and the fly likes What kind of multi-core/concurrency problems do the book examples demonstrate? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Languages » Scala
Bookmark "What kind of multi-core/concurrency problems do the book examples demonstrate?" Watch "What kind of multi-core/concurrency problems do the book examples demonstrate?" New topic
Author

What kind of multi-core/concurrency problems do the book examples demonstrate?

Michael Swierczek
Ranch Hand

Joined: Oct 07, 2005
Posts: 107
    
    1
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.

Thanks.
Venkat Subramaniam
Author
Ranch Hand

Joined: Jan 28, 2008
Posts: 79
Hi Michael

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
the features.

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.
Michael Swierczek
Ranch Hand

Joined: Oct 07, 2005
Posts: 107
    
    1
Venkat,

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.
Marco Ehrentreich
best scout
Bartender

Joined: Mar 07, 2007
Posts: 1280

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

Marco
Michael Swierczek
Ranch Hand

Joined: Oct 07, 2005
Posts: 107
    
    1
Marco,

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.)
Marco Ehrentreich
best scout
Bartender

Joined: Mar 07, 2007
Posts: 1280

Hi Michael,

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

Marco
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: What kind of multi-core/concurrency problems do the book examples demonstrate?
 
Similar Threads
Java Concurrency in Practice by Brian Goetz, Tim Peierls, Joseph Bowbeer, et all
Java discourages intelligent use of database technology: Discuss.
when not to use thread
Java and Multi-Core Processors
Dr Dobbs on functional languages