A self-proclaimed “code junkie” recently gave his view of what the world of programming will be like 20 years from now.
In a keynote presentation entitled “Software Engineering in the Year 2027,” David Intersimone, vice president of developer relations and chief evangelist at CodeGear, shared his view of trends that are likely to come to fruition for developers in 20 years, including the existence of virtual software teams and collaborative infrastructures. Intersimone spoke at the EclipseWorld show in Reston, Va., on Nov. 7. CodeGear, Scotts Valley, Calif., is a division of Austin, Texas-based Borland Software.
However, to get to the programming nirvana of 2027, developers will first have to overcome some of the obstacles present in todays development processes, Intersimone said. These obstacles include disparate, non-integrated systems and teams, as well as the lack of cohesive software reuse strategies.
Intersimone suggested a new way of looking at the software development paradigm and suggested “capturing developer intent via application factories.”
These application factories foster what Intersimone called “application-driven development,” where the “structure, evolution, and logic behind developing an application is part of the application.” And both those components and the application itself can be shared with other developers as reusable software assets. Moreover, these assets will be platform neutral, framework agnostic, and relevant beyond Java and Eclipse, Intersimone said.
“We need to be able to say everything involved in developing this application is reusable,” he said. “We need to have metadata for applications.”
Click here to read about a survey on how Eclipse products save money.
Essentially, Intersimone is promoting “a way to annotate and build templates or cheat sheets to go along with the architecture” for applications.
This would enable not only better maintenance of applications, but would enable developers building new applications to use the templates, “cheat sheets” and other reusable software assets to simplify their efforts, Intersimone said.
In this scheme of application factories, developers will be able to mine patterns, and capture trails and actions taken to develop applications and then make application modules, which will be “new first-class citizens” in the creation of new applications based on these assets.
In a typical “application factory” scenario, Intersimone said a developer would start to navigate conceptually through the application using application factory meta-data. They would then run a script for generating template code or trails. At that point the developer would switch to a “resolver” phase for the changes made by the script, he said.
CodeGear Exec Shares
Vision for Programming in 2027″>
This phase includes: Reviewing each change and the reason why the change was made; Making any in-place edits to the changes performed by the script; Tagging the changes as needed; Scrolling to the script line which produced the change and if need be customizing or modifying it; then committing the changes to a change set; and repeating the process if necessary.
Intersimone said CodeGear is using this method to build the next version of JBuilder and the product may enable some of the application factory capabilities.
Read more here about why developers want to make Eclipse faster, smaller and simpler.
Meanwhile, Intersimone said another emerging issue for developers is concurrent programming face are coming up against. Intersimone listed a few ways to deal with programming for concurrent or parallel processing environments, such as wait-free and lock-free synchronization, transactional servers, rethinking the use of the sequential programming model, and possibly using more functional programming.
Moreover, in the coming world of future programming, Intersimone said he can imagine organizations “buying 30 minutes of the top EJB [Enterprise JavaBeans] developers time when you need it on a Saturday night.”
Intersimone also said he envisions a virtual marketplace and global repository that exists as a large, integrated marketplace for open source and commercial components, with plug-ins and services, created on-demand “as fast as a Chinese suit,” and featuring a “demo space” where users can try out the components before they buy them.
In addition, in the future programming world of Intersimone, “Internet enabled applications and browser-based applications are old school,” and technologies like Google Gears will provide offline functionality for web applications to “bring the rich Internet experience to the desktop and the device.”
The semantic web also will play a role, Intersimone said. “I predict that databases will just be the Internet—and data will be there,” he said. And there will be new, built-in data types for programming languages.
There also will be new user interfaces and user augmentation scenarios including bendable displays and sensor-oriented development, he said. There will be self-describing interfaces, components and services, as well as legacy integrated development environments, languages, programming styles and databases.
And although today software development is often like herding cats or playing in a punk band, the goal is for developers to be able to work together like an orchestra or jazz band, Intersimone said.
So, according to Intersimone, software engineering in 2027 will feature more success, less chaos; virtual software teams; collaborative infrastructures; integration of the internet, services and applications; rich user experiences; and “a living software world.”
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.