Microsoftโs to-do list in the software development space includes continued or new investments in multiple areas, including cloud computing, the Web, parallel computing, devices, and agile and distributed development, a company executive said in a blog entry on Tuesday.
ย
In setting its investment priorities, Microsoft is being mindful of an increasing number of choices developers have in programming styles, said S. Somasegar, senior vice president of the Microsoft Developer Division, in a blog entitled, โKey Software Development Trends.โ
ย
โMore than ever before, todayโs developers are open to considering and using multiple technologies to enable them to build solutions smoothly and deliver them to their customers quickly,โ Somasegar said.
ย
With cloud computing, Microsoft has โcommitted to bringing the best cloud computing platform and services to the Windows ecosystem,โ he said. Microsoftโs cloud platform, while not specifically named in the blog, is Windows Azure.
ย
โThe cloud is just one example of a virtualized computing platform and the next generation of developer tools must enable developers to build software that deploys and performs well in cloud and other virtual environments,โ Somasegar said.
ย
Under the banner of โThe Web as a Platform,โ Somasegar said the browser provides a rich runtime environment and โfriction-free accessโ to applications. He noted the use of JavaScript libraries to help Web developers get more done with JavaScript and cited Microsoftโs Silverlight platform as an example of a technology allowing for โimmersive Internet applications.โ
ย
โDevelopers are increasingly choosing the Web as their platform of choice for software and software development.ย Increasingly, developers and designers are using tools that offer a rich development, debugging, and profiling experience designed for the Web,โ said Somasegar.
ย
In parallel computing, Somasegar said Mooreโs Law, in which CPU performance doubles every 18 months, now is being fulfilled by adding more processor cores rather than boosting single-core performance.
ย
โToday, a small handful of programmers have the skills to write code that performs well in multi-core and many-core environments,โ Somasegar said. โIn the future, parallel libraries, debugging, profiling, and diagnostic tools will enable more developers to take advantage of parallel computing resources.โ
ย
Prior parallel computing efforts at Microsoft have included the companyโs Concurrency Runtime, offering a scheduling layer to control application resources.
ย
To accommodate the proliferation of devices, Microsoft is evolving its software to take advantage of new user interface paradigms such as speech-, camera-, and touch-based solutions, said Somasegar.
ย
โWindows 7 provides great support for touch-enabled applications in the platform. Silverlight and WPF (Windows Presentation Foundation) have embraced camera-based interactions and multi-touch, as has MFC (Microsoft Foundation Class Library).ย I expect user interface paradigms to continue to evolve and become more intuitive and powerful,โ Somasegar said.
ย
Recognizing the trend toward use of agile development methodologies, which allow for more iterative development, Microsoft will make accommodations for agile in the upcoming Visual Studio 2010 IDE due in April, Somasegar said. The IDE supports agile processes such as unit testing and iteration planning, he said.
ย
โWithin Microsoft, many teams have integrated elements of agile development practices to their process,โ Somasegar said.
ย
In the distributed development space, Somasegar said the experience of teams working across time zones and borders should equal the experience of a single developer, but also include cloud-based development activities such as code reviews and remote paired programming.
ย
โGreat distributed team development tools will enable developers to build the next generation of software, leveraging the worldwide talent pool,โ Somasegar said.
ย
He asked blog readers to note other important trends for Microsoft to consider.