The Importance of Parallelism
Q: What are you guys doing in software to attack the issue of parallelism? A: In Java itself there have been concurrency libraries, and they are being pretty successful. In the enterprise stuff, the frameworks have been really good at doing parallelism for people. With the enterprise stuff, the frameworks have actually been pretty good at doing a little magic parallelism for people. They write a sequential model and by magic it ends up parallel. But for things like doing scientific calculation on massively multithreaded machines, that's a really hard problem. So like the Fortress guys, Guy Steele [a Sun fellow working on programming language research] and friends, they've got this functional language that they tear apart and map to a multiprocessing. And that's really interesting. They're the only folks that I know of that are really tackling large-scale multithreaded systems for the nonenterprise issues.A: Well, tools could help if only we knew. Dealing with multithreaded programming has been a huge source of Ph.D. theses for like 30 years. And there just hasn't been a killer solution. So there are all kinds of stuff that we could do with tools. If you look inside NetBeans, there are all kinds of stuff for monitoring threads, monitoring the data behind them, monitoring blocks. And for hundreds of threads most of those things act really great. Once you get into the tens of thousands of threads, life gets hard. Q: Another question that comes up is, When are we going to see continuations in Java? A: I had hopes for last year. And all the stuff that Neil Gafter [a Microsoft engineer focusing on the future of Java as a hobby] was doing just blew up for ridiculous reasons. Josh Bloch's [chief Java architect at Google] opposition was pretty bizarre. And it's hard to know when we can take another stab at that without getting the same type of high-temperature community reaction. Q: You said you're impressed with the adoption of JavaFX. Do you feel like you guys have the RIA thing licked? A: I don't think it's licked. We've got a lot more to do. But I'm really comfortable with the vector that we're on. We took this tack of integrating with the Adobe tools and sort of feeding that into the chain. That's been remarkably successful. The artist crowd really likes that. We've got this new tool that we've been showing. And JavaFX itself, one of our hopes for that since the early days was that we would be able to figure out how to map it to fairly widely different devices. We kind of had this back of the envelope proof that it was doable. And we pretty much got it figured out and nailed. Q: Will Java be a platform for cloud computing? A: People have been doing cloud computing kind of stuff in Java from day zero. Cloudlike stuff has become a part of everything we do. Kenai is our developer cloud. And the integration with NetBeans actually has REST APIs, and that's some pretty snazzy stuff. We really only started to do that stuff in the last six months. We've got this long "wouldn't it be cool?" list for NetBeans and Kenai and the combination of them.
Q: So it's not a tools problem? Or could tools help?