Prognostication is always fun, whether you're thinking up your own predictions, or reading someone else's. As apparently a great many people have noted, "prediction is very difficult, especially about the future." (Was that Yogi Berra? Niels Bohr? Einstein? Mark Twain? Is it an ancient Chinese proverb?) This reality does not faze Bruce Eckel, who just posted Programming in the Mid-Future. What's the "mid-future"? About 25 years from now. Bruce starts out with:
In 25 years or so, we'll look at the current morass as only a small step above assembly-language programming.
An interesting way to look at this is to think back to the state of programming 25 years ago, in 1985. If you take that state, compare it to today's state, then "project" linearly into the future, maybe you can guess what programming witll be like in 2035. Well, certainly you can guess, but is it likely that you'd be right?
A thought experiment: pretend it's 1985, and think about what programming was like in 1960 (impossible even for me to accomplish except by referencing historical documents). What would someone in 1985 have thought programming would be like in 2010, by thinking back to the state of programming in 1960? Or, go back even further, with the aid of something like the Wikipedia's History of programming languages, and see if any longer term trends seem to remain approximately constant.
Let's try this, just for fun!
Figure 1. An artistic representation of a Turning machine (from the Wikipedia)
1935 - predates electronic computers; Alan Turing was thinking about the Turing Machine: "an infinite memory capacity obtained in the form of an infinite tape marked out into squares on each of which a symbol could be printed. At any moment there is one symbol in the machine; it is called the scanned symbol. The machine can alter the scanned symbol and its behavior is in part determined by that symbol, but the symbols on the tape elsewhere do not affect the behavior of the machine. However, the tape can be moved back and forth through the machine, this being one of the elementary operations of the machine. Any symbol on the tape may therefore eventually have an innings" (see Figure 1)
1960 - FORTRAN, LISP, and COBOL in use
1985 - C, C++, SQL
2010 - Java, .NET, Web Scripting, RIA
What is the trend? Clearly, as time progresses we work "farther away" from the hardware. Also the relation between code and memory becomes further abstracted over time. And, changes in hardware are related to changes in programming languages: the languages adapt to the available resources that new hardware provides, such as electronic memory, graphics, the Web, etc.
So, what does this point to for 2035? Thinking about hardware, many core processors should be the norm. Another clear hardware trend: hardware that can perform the same functionality (or much greater functionality) gets smaller over time. And, computers "disappear" into devices, which are no longer considered to be computers, even though they are actually computers that perform a single, specific task (mobile phones, for example). Will there still be desktop PCs in 2035? Perhaps only programmers will have them.
I'm not much for prognosticating myself. I once spent quite a lot of time coming up with some decent stock market models, but I was never able to successfully predict the longer-term future.
What are some of Bruce Eckel's predictions for Programming in the Mid-Future? He predicts that 25 years from now, the programming environment will include these features:
Extremely dynamic
Stupidly parallel objects
Persistent diskless environment
Transparency between local and cloud
Swarm testing
Security via suspicious systems
Effortless data stores
Query-based data
Reusability on a vast scale
Effortless system integration
Reusable UIs
Effortlessly scalable
Built-in evolvability
Big talk
See the full article for details, and to post your own predictions and/or hopes for programming in 2035.
A lot of people experiment GlassFish for the first time via an IDE (most A colleague of ours just got a new Nexus One device and I just had to try LWUIT on it... I used Thorsten's port to get started and made some minor UI tweaks using the resource editor. In the process I also added a new LWUIT feature (pure touch) to make the UI behave closer to the way it does on Android/iPhone devices (show focus only when using the keypad and hide it when not using the touch screen). The result is...
It's been a little over a month since I pinged Kohsuke about an "official Hudson blog"; my role has been nothing more than writer and editor of a community resource, while I have invested a lot of time in Continuous Blog it is not "mine" so much as it is "ours." I feel I have a responsibility as the current maintainer of this resource to be as open as possible about what's going on with CB. When I sat down to write the inaugural post...
In 25 years or so, we'll look at the current morass as only a small step above assembly-language programming. Here's what I think programming will be like then...
After a long hiatus from UCLA, Duke returned in the form of the UCLA Java User Group. I'm not sure how long it has really been since a Java User Group haunted the halls of UCLA. Some say it's been between five and ten years which, in Java terms, is quite some time. I found a great archived news item here at UCLA about the UCLA Java Campus from 2000. I like that idea. Maybe we can see it come around again...
One of the areas I'm keen to improve in the next version of JAX-RS is link creation. JAX-RS already offers UriBuilder but I think an annotation driven approach could save a lot of repetitive coding. I've been experimenting with a couple of annotations that I think would be useful and I just checked in an experimental extension that partially implements what I have in mind. Suppose you have a resource like this...
There is my proposal for JUG-AFRICA agenda. Everyone is free to comment and add interesting ideas. I will detail each point in my blog later. * Continue to affiliate JUGs and share our experience with new JUGs; * Elect a president and a vice president (last week of april 2010); * Increase our visibility by both ways internal and external (very important)...
In the Forums, sgnl19 is working on Testing JAX-WS based SOAP Services with SOUP UI: We're trying to test our webservices with the SoapUi Testingtool. The tool normally sends the requests formatted with whitespaces. The effect occurs, that if we send the request without using the strip whitespace function only the first parameter...
sargue has a problem with GlassFish v3 valve not found (cnfe): I have a problem trying to configure a custom valve on glassfish v3. I've coded the class (attached) and generated the jar file (attached). I put the jar file inside the lib directory (where I put for example jdbc drivers). That's...
In the JavaFX forum, lordoffriends says Help !! please: I m new to javafx..and i want to integrate my java project with javafx.and i m using Eclipse with JAVA FX SDK 1.2.1. Here is the code of Java file : public class JavaTest { public static void main (String[] args) { ...
Our Spotlight this week is the work of our friend Felipe Gaúcho, who suddenly passed away on Friday, March 5. Felipe was a CEJUG founder and leader, a Java evangelist, and a long-time java.net collaborator. The self-description he wrote for java.net: "Felipe Gaúcho works as senior software engineer at Netcetera AG in Switzerland. He is a well known Brazilian JUG leader and open-source evangelist. Felipe works with Java since its early versions and has plans to keep that Java tradition as it is. When he is not coding, he prefers to listen reggae and travel around with his lovely wife Alena and his son Rodrigo."
We just published a new java.net Feature Article, Dibyendu Roy's Rethinking Multi-Threaded Design Principles; in the emerging multicore/multiprocessor world, multi-threaded programming is critical, in my view. We're also featuring Has JDBC Kept up with Enterprise Requirements? by Jesse Davis; in the article, Jesse invites us to look beyond Type 4 architecture to address the latest requirements of the enterprise Java ecosystem. And, Adhir Mehta's Java Tech article, Web Service Simulatino Using Servlets also remains in the Featured Articles section of the java.net home page.
Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.
Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.