Page 2

By Darryl K. Taft  |  Posted 2006-08-28 Print this article Print

However, "in my opinion the main problem that should be solved is making programming a creative job again," he said. "We are doing too much boring coding work now and too few creative tasks." He said part of the problem is weak tools. "The existing programming languages have not gone too far from machine code; they just use better words for the same instructions," Dmitriev said. But they do not allow for much more than just manipulating with stack, memory and control flow, he said.
"I believe that programs should be written not in the language of computer, but in the language of the problems domain, and then well reach the expected level of simplicity, clarity and maintainability," Dmitriev said.
According to John Crupi, chief technology officer at JackBe, in Chevy Chase, Md., developers of the future will need to adopt a new set of programming skills, including understanding how to create business-grained SOA (service-oriented architecture) services. "Coming from J2EE [Java 2 Platform Enterprise Edition] land, were familiar with finer-grained application services," Crupi said. However, "SOA services need to be aligned with business functionality and requires IT working closely with the business unit to correctly define the business services." Read here about Microsofts support for dynamic languages on .Net. Future developers also must learn Web event driven programming, Crupi said. Crupi is a former Sun Microsystems distinguished engineer. "Web applications will move more and more toward Web-based events," he said. "AJAX [Asynchronous JavaScript and XML] gives us the ability to initiate asynchronous requests, but not to receive asynchronous push events from the server. This will all change. In the future, Web-based applications will subscribe to business events and be mostly based on this interaction model. This new Web event model requires programmers to program more at the business event level and less at the user event level." With an academic perspective, Shriram Krishnamurthi, a computer science professor at Brown University, said developers of the future will have to deal more than ever with issues of sharing and access control, handling user concurrency, coping with global scale, and writing statements about programs rather than only writing program statements. Krishnamurthi said developers rush to use a "lint," or static, analysis tool for every new language they encounter, "but run screaming in the other direction when confronted with abstruse-sounding concepts like verification, abstract interpretation and type theory—even though the latter are really principled means of obtaining the former." However, part of the blame for this lies with researchers in these areas, who have not done a particularly good job of communicating the connection via usable tools, Krishnamurthi said. But that has been changing in the past few years, he added. "What these tools really need is more information about the hidden constraints in programs: the structure of the heap, the ephemerality of data, the protocol of locking, the pattern of communication, and so on," Krishnamurthi said. "Inferring these properties is expensive and very brittle, but writing lightweight specifications about them gives tools a great deal to chew on—ultimately making programs both faster and more robust." Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.

Darryl K. Taft covers the development tools and developer-related issues beat from his office in Baltimore. He has more than 10 years of experience in the business and is always looking for the next scoop. Taft is a member of the Association for Computing Machinery (ACM) and was named 'one of the most active middleware reporters in the world' by The Middleware Co. He also has his own card in the 'Who's Who in Enterprise Java' deck.

Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel