JPR 2K10
Submitted by kebernet on Tue, 03/30/2010 - 00:44
Tagged:
So Bruce challenged us to write about this years' Java Posse Roundup. He specifically mentioned the future of computing session, and I admit, of the sessions I went to, this one evoked the most strong views, so I will start with this and work out.
First, one of the things that Bruce proffered that passed with almost no objection was the idea that the border between memory and storage would evaporate. This, I completely agree with, and I think will be the biggest deal in computing in my lifetime.
I have joked a number of times about the fact that we are recycling the argument about filesystems vs databases thirty years after filesystems won. The real irony of both of these is that, for most devices, they will be completely irrelevant. Flash RAM is approaching speeds and sizes that make it a complete replacement for "storage." By that, I don't mean Solid State Disks, I mean, just make addressable memory in a computer persistent. Why keep around "files" when you have 2^64 or 2^128 bits of addressable "persistent" RAM?
"Storage" is going to become more and more a special purpose application that is "Network" or "Non-Network", but who cares?
Secondarily to this, though, is the change in what Computer Programming, or at least Computer Science is. To this end, I don't see the job of a programmer changing that much. Bill "Fire Eater" Pugh noted that computer programming as a task hasn't really changed that much in the LAST 25 years. Why we think it wil somehow become something radically new in the next is foolish. At the very least, we will always need device drivers and task managers. These will not change drastically.
Much was made (not the least by me) of Joe's "make me a burrito" computer. I don't doubt that, nanofab aside, there will be magical devices that seem to make this happen. We discussed neural nets and genetic algorithms, and these will be a part of making this happen. However, my assertion is that this kind of "programming" will be akin to creating spreadsheets today. It will require some kind of abstract description language, but it will be the purview of people we don't consider programmers creating logic that drives decisions. The core activity of "programmers" -- creating tools from abstract syntactical tools -- will not change very much.
More than this, though, what bothers me about the assumption that "real" computer programming will go away is the assumption that we ever move beyond anything. This is a field that is, literally, about 80 years old. Imagine that the people who built the Gobkli Tepe figured after 80 years they knew what the hell they were doing with Architecture. We move faster as a species than they did. I would like to think I will contribute something meaningful to the software of my lifetime. But seriously, we have no Biden-ing idea what we are doing. We are living in the stone age of computing and hurdling forward at an incredible rate.
Lots of other stuff happened. I did a GWT+HTML5 Dojo that DJ mentioned as a highlight of the conference. I felt it was an implosion. We spent an hour and a half realizing that the GWT OOPHM plugin didn't play with the HTML5 DB. We also learned -- to my consternation vs the prototype I built the Friday before -- that the JavaScript objects you get back as result rows are immutable. Realistically, I wish I had used the Gwittir HTML5 code rather than the gwt-mobile code, but that seemed like it would have been self serving.
Lots of the tech discussions this year mirrored previous years. We all hate maven, but don't know of anything better. We have no clear solution on UX or even UI technologies right now. Engineering management is not a solved problem, though Jason's argument about created knowledge is a compelling new metric. The Java platform is plowing forward. Scala is cool. Fan(tom) is really, really interesting.
And on that note, functional programming still seems like where we should be, but we don't quite know how to get there. OOAD is obviously lacking, but -- it seems to me -- defining and ontological space for most problems is the easiest way to address them. Defining functional spaces may be better, but requires significantly more mental heavy lifting.
And Bill Pugh is the coolest guy ever.
It is hard to quantify the "revival meet" quality of JPR. Seriously, it is great to spend that much time around that many people with big brains from that far flung around the globe. The JDK7 and JFX insights were worth the price of admission. That said, as someone who seems to to "Java" on literally everything *BUT* the "Java Platform" it was great to talk to people with deep insight into where we have been and where we are going.







Comments
Yep - Bill is the man!