HomeНаука и техникаRelated VideosMore From: O'Reilly

Martin Odersky, "Working Hard to Keep It Simple" - OSCON Java 2011

2481 ratings | 145223 views
Today's world of parallel and distributed computing poses hard new challenges for software development. A rapidly increasing number of developers now have to deal with races, deadlocks, non-determinism, and we are ill-equipped to do so. How can we keep things simple, in spite of the complexity of the underlying runtimes? In my keynote I present some of the core technology that was developed in Scala to deal with the parallelism challenge: Parallel collections, actors, and parallel domain-specific languages. They have in common that each involves a sophisticated implementation, yet provides a simple, intuitive toolkit to the developer. About Martin Odersky (Typesafe): Martin Odersky is the inventor of the Scala language, a professor at EPFL in Lausanne, Switzerland, and Chairman and Chief Architect of Typesafe. His work concentrates on the fusion of functional and object-oriented programming. He believes the two paradigms are two sides of the same coin, to be unified as much as possible. To prove this, he has worked on a number of language designs, from Pizza to GJ to Functional Nets. He has also influenced the development of Java as a co-designer of Java generics and as the original author of the current javac reference compiler. Don't miss an upload! Subscribe! http://goo.gl/szEauh Stay Connected to O'Reilly Media by Email - http://goo.gl/YZSWbO Follow O'Reilly Media: http://plus.google.com/+oreillymedia https://www.facebook.com/OReilly https://twitter.com/OReillyMedia
Html code for embedding videos on your blog
Text Comments (52)
Noah Garner (4 months ago)
T V MANIKANDAN (1 year ago)
great video
Fuad Efendi (1 year ago)
Can we rewrite Lucene library in Scala? With distributed collections representing indexes? Will it be "clone" of existing Java library, or something really cool instead? Lucene internally uses very sophisticated compressed arrays of integers, "automaton" and "trie" implementations, and so on. Many of this were first developed in Python (I believe)
Sudhindra Magadi (1 year ago)
fantastic talk
Mithi Sevilla (1 year ago)
From the top of my head, here’s a short list of my own favorite tech talks for every programmer :) What do you think? https://medium.com/@mithi/a-few-good-tech-talks-c00bda9ab3ab#.tldvbi6ol
A S Gowri Sankar (10 months ago)
good one! you should consider adding Simon Ritter's 55 features in Java 9
UdaalPorga (2 years ago)
"This thing can beat hand written C++ code" - wow!
Rafael Ribeiro (2 years ago)
The Coursera course brought me here. Great talk by Martin Odersky, explaining exactly why Scala was designed the way it was.
demonkoryu (6 months ago)
Same here!
Ilya Rusin (6 months ago)
Coursera course brought me here too. Great talk!
Alex Spencer (2 years ago)
Pratik Mehta (2 years ago)
Hi, Does anyone agree over here that the "Time vs Space graph" shown at 6 minutes is technically incorrect ? If no, then can someone please explain me how come space functions (vertical lines) are distributed at different timings if they are parallel on given time ?!! Entangling of Imperative language is understandable due to locking mechanism and all, but isn't this graph an incorrect example for difference which Martin Odersky wants to explain ??
bool (6 months ago)
Since functions are referential transparent, they can execute in parallel in different space, at the same time, yielding the same result even if they are executed in different sequence(determinism).
A S Gowri Sankar (10 months ago)
+PlanetSunny6 I had the same question as the OP and your reply was clear enough. thank you!
PlanetSunny6 (2 years ago)
+Pratik Mehta IMHO the difference is more subtle than that. Its about the abstraction at which you think when implementing the solution (not from a functional requirements perspective). He said when you are writing code, you dont have to think in terms of time, you can think in terms of building blocks like legos. e.g. when writing a multithreaded app, you dont worry about things like locking, waiting, notifying of threads, the correct sequence in which these things happen and how you guard against these; you let the scala compiler take care of these things. Later on he also said that as humans we are optimistic; we dont guard against whatever would possible go wrong; again alluding to the same thing Hope that helps.
Xiaofei LUO (3 years ago)
His Coursera course on functional programming get me here. I'm learning Scala majorly for Spark. Why Spark is written in Scala, is FP naturally suited for parallel computing ?
Chetan Bhasin (2 years ago)
+Xiaofei LUO I believe, yes. Ever since I've learnt Scala, I think more in terms of concurrency and scaling things out. Scala isn't exactly is functional programming. I would say that it's a hybrid. Anyhow, the way Scala is build, it's perfect for concurrent distributed applications.
Fei Liu (3 years ago)
Short by very nice talk.
Gherbi Hicham (3 years ago)
Ok i was thinking about it but now i'm convinced ,Scala is a must learn language .
Chinedu Ekwunife (3 years ago)
Well done Scala!!! Amazing
Lior Neuman (4 years ago)
7:10 typo in the word "tpying"... on the bottom right of a typesafe slide :) these things it seems happen even to the best
Murali Mohan (3 years ago)
+Lior Neuman You seem to focus on small things and I am sure you'd have missed the big picture.
Kumar Iyer (4 years ago)
The last bit about the Physics DSL went over my head
Steven MacCoun (4 years ago)
excellent, concise review
snarkyboojum (4 years ago)
The rapid fire shutter noises in the background on every slide are majorly annoying. Didn't anyone tell the photographer the slides would be made available online :( http://www.slideshare.net/Odersky/oscon-keynote-working-hard-to-keep-it-simple
Hasan Cetinkaya (4 years ago)
Scala is really amazing for multithreading issues. Much better than c# async await.
info305 (4 years ago)
y pic of guiddo van rossum?
A S Gowri Sankar (10 months ago)
good question
JD Pelayo Petit (4 years ago)
It's on Coursera.org and it's called Functional Programming Principles in Scala
Melvic Ybanez (4 years ago)
the advanced course is here --> coursera.org/course/reactive "Principles of Reactive Programming" by Martin Odersky, Erik Meijer and Roland Kuhn
A S Gowri Sankar (10 months ago)
Coursera has changed these days :/
jinilover (5 years ago)
i also heard about it, sounds like something about concurrency or parallel programming
hybridsociety19 (5 years ago)
and he was planning to do an advanced course this fall
Nqorule336 (5 years ago)
Hello Scala...here I come baby!!!!
Saurabh Talbar (5 years ago)
Functional Programming Principles in Scala
nxhoaf (5 years ago)
Could you please send me the cours name ?
Amir Sarvestani (29 days ago)
Functional programming principles in Scala
Nitesh Chauhan (5 years ago)
awesomeness :)
darkbit1001 (5 years ago)
I did some of my most critical programming as a minor (in C and C++ of course)... Do you mind sharing your framework on GitHub or something? Perhaps an old adult like me can learn from it!
Ilan Godik (5 years ago)
Hmm... I'm a minor XD And I learned and control half of it in half a week :) And also made an handy,consice assertion framework on the third day after starting to learn scala :) I'm special :)
Juan Gomez (5 years ago)
Scala, AKKA, parallel embedded DSLs. This top science is what separates minors from adults.
proyb2 (5 years ago)
For performance reason and Oracle and IBM have close collaboration on improving JVM. Not many people know it.
Alexandr Martynov (5 years ago)
About Parallelism... Why IBM not uses Scala for "Watson"?
jinilover (5 years ago)
does it use the scala combinator parsers to parse the DSL to generate the AST?
Shrey Dutta (5 years ago)
Where is the afternoon video?
alwajdi (5 years ago)
yeah right..tell that to twitter, linkedin and many more that uses scala in production..zzzz
Joël Harkes (5 years ago)
tpying, typo?
Fedor Petrov (5 years ago)
Coursera, Thumbs up!
andyhewell (6 years ago)
@pkasb90 I'm interested to know too. Can you please explain further? I'm looking forward to learning Scala atm.
GathGealaich (6 years ago)
@pkasb90 Really? What about some more specific examples? Since Scala people don't seem to have those "huge problems".
pkasb90 (6 years ago)
Your examples for Scala only work in a classroom environment. Simplicity programming in Scala will run into huge problems in real coding later on. Coders will understand what I mean. Azlan
Any opinions now? I was starting to learn Scala now
Mrinal Kanti M (7 years ago)
13:34 "... and the it sends minors to Facebook and adults to LinkedIn".

Would you like to comment?

Join YouTube for a free account, or sign in if you are already a member.