Objects, Anomalies, and Actors: The Next Revolution
Steve Vinoski believes that actor-oriented languages such as Erlang are better prepared for the challenges of the future: cloud, multicore, high availability and fault tolerance.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
How would you like to view the presentation?
Introducing SQLFire: a memory-optimized, high performance SQL database
Calling all developers. Build your technical skills
What Developers Want: The End of Application Redeploys
Early Access! Download JBoss Developer Studio 5.0 now, with packages for Mac, Windows or Linux!
VMware vFabric SQLFire - Test drive the data management system with memory speed, horizontal scalability and a familiar SQL interface
Best presentation I've seen in a while.
Thanks for such a nice presentatiion
A great presentation, both interesting and well presented. Thanks InfoQ.
Sure to be not original at all but this presentation is excellent!
Worth the time to watch.
Very good presentation
Though I have 6 years of experience in Java field and more than half of advices/tips are already integrated in my head for long time, Joshua's presentation freshed my mind and revealed things I didn't consider closely.
Thanks a lot for providing this video!
It worth seeing twice if you're engaged in API (not only Java) design.
Any chance in making your videos available in some sort of offline format?
Some sort of podcast would be perfect... ;)
Mr. Bloch = Clear thinking + PhD + Occam's razor approach.
This presentation clear my most of the points .because he addressed the very good points of an API design.I agree with Alex. This is not only JAVA .
It's better to get it offline due to streaming prblms.
I want to reforce the question about off-line videos, WE need it!!!
Congratulations, the presentation is Excellent!
yes is very fun to listem such video ,i think its useful for listener
where i can download this video
Actually, English is not my native language, but I could understand this presentation as he explained as well. Thanks Joshua & Thanks infoQ~!
Thanx for this excellent presentation - as always by Joshua B.
Pleas can we have an offline version!!
Where can i download presentation (ppt,pdf,...)?
Hi all,
i just google around ...
pdf can download at - lcsd05.cs.tamu.edu/slides/keynote.pdf
Enjoy
Good article
I just watched this presentation 4 years later and everything said is still actual and not only for Java. This is why I love design so much.
This man is a good speaker and I think these Javapolis events looks very cool, even if I am a .NET developer.
Thanks for the high quality content, I never got so addicted to a website before.
I don't get the idea with the ThreadLocal and the keys. Since Bloch is such a luminary I can only suppose that there is a good reason behind the design he came up with, but I can't see it. So, in the interest of learning, and I figure I may not be the only one who doesn't get it, I will simply ask and hope someone can enlighten me (us, if I am not alone in this).
I do understand the issue with the string keys being "global namespace". Of course it's not really a namespace at all, but string comparison does mean different parts of the code could more easily overwrite one another's data. However, what is the point of using thread locals anyway? I thought the idea was to enable any object that participates in the work of a thread to easily share information *without* having to distribute a reference to anything all over the place. If so, replacing the string key with an object key negates the whole point of using thread locals in the first place.
Furthermore, if I have to ensure all objects that need to access some data have a reference to the Key instance, isn't it just as easy then to instead ensure they have a reference to whatever is associated with that key?
What is it that I have misunderstood or simply not understood?
I don't want to risk this becoming a debate about whether Java or .net is better, but I have to say it seems to me the .net solution (in which one places a ThreadStatic attribute on a static field to indicate it should be stored as a thread-local variable) is rather better. It solves the problem of accidentally using the same variables where one meant to use different ones, requires extremely little code, is transparent to the user of the class declaring the static member (of course the field should be private and exposed via a property, but this changes none of what I've said), and does completely away with the need to write boilerplate code to obtain references to these objects.
public class Log
{
[ThreadStatic]
static Log current;
static public Log Current
{
get { return current; }
set { current = value; }
}
// .... Log implementation
}
Like this, whenever some operation starts that we'd like to log we'll simply create the log with Log.Current = new Log();
and then any code that is called in the context of a current log can obtain a reference to it with Log log = Log.Current;
or just use Log.Current.WriteLine() and so on directly.
Steve Vinoski believes that actor-oriented languages such as Erlang are better prepared for the challenges of the future: cloud, multicore, high availability and fault tolerance.
Trisha Gee talks about using Java for low latency programming, the Disruptor, an open source concurrent programming framework developed by LMAX, agile management techniques, and diversity in IT.
Antoni Batchelli introduces Pallet, a devops platform for the JVM for provisioning and configuring servers, configuring clustered services, deploying and managing software, servers and services.
Salvatore Orlando introduces OpenStack and Quantum, a project intended to provide network connectivity as a service, covering the current state and expected developments in the future.
Every major Open Source project worldwide has already embraced Distributed Version Control Systems (DVCS), will enterprises be next?
Dmitriy Setrakyan introduces GridGain, comparing it and outlining the cases where it is a better fit than Hadoop, accompanied by a live demo showing how to set up a GridGain job.
Jesper Richter-Reichhelm presents the DevOps integration at Wooga, and how their system architecture has evolved over the years in order to cope with the increasing number of players.
"Swarming" is a technique whereby many members of a team work together to deliver a User Story, taking advantage of the skills of many team members together. How do you do this in a distributed team?
20 comments
Watch Thread Reply