Page 2
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 theoryeven 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 onultimately making programs both faster and more robust."
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.
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 theoryeven 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 onultimately making programs both faster and more robust."
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools. 








