VANCOUVER, British Columbia—In a speech at the Object-Oriented Programming, Systems, Languages and Applications—or OOPSLA—conference here, Microsoft Corp.s head researcher announced a new framework and tools for building domain-specific languages and the precursor to the companys software factories strategy.
Rick Rashid, senior vice president of Microsoft Research, described the strategy during his keynote at the conference, saying software factories represent “a change in what we actually want to do with software. Now we have to think about programming with large components.”
As software factories co-author and Microsoft software architect Jack Greenfield initially told eWEEK over the summer, software factories use tools such as Microsofts Visual Studio Team System, DSLs, patterns frameworks and guidance to build applications for specific industries or markets. However, the software factory approach is still somewhat futuristic and fits well with Rashids talk on the future of programming.
“This is the first down payment on our promise of software factories,” Rashid said.
Thus, Microsoft is starting now in delivering on its vision. “Our Visual Studio team is delivering a set of tools for developing software factories,” Rashid said. “Its a domain-specific tools package.”
In essence, Microsoft is delivering a preview of its tools. The Redmond, Wash., software giant introduced a CTP (Community Technology Preview) of its framework and tool for building customized domain-specific language designers. The CTP will ship this week.
During a demonstration of the tool, Jochen Seeman, program manager for VSTS (Visual Studio Team System), said the tool features a rich graphical designer in a platform that will be “available to end users and partners who want to build their own specific tools and languages.”
However, “in the final product youll be able to choose your domain-specific language from a template,” Seeman said. “You can do a graphical designer for your very own domain-specific language … and integrate a code generator that takes information from the designer and creates a Web page,” for instance, he said.
“Rather than start from scratch, we want [developers] to start with well-known notational models,” said Keith Short, co-creator of the software factories approach.
In addition, Microsoft announced a set of partners who have announced support for the new technology and expressed plans to deliver domain-specific language designers for their markets, including Borland Software Corp., Kinzan Inc., Nationwide Building Society, Siemens and Unisys Corp., Rashid said.
Though the term “factories” to some connotes automation of tasks and potential displacement of human programmers, the creators of Microsofts software factories initiative, Short and Greenfield, said that is just the opposite of how they see the landscape shaping up.
“We think just the contrary,” Greenfield said. “We think this will free developers up to be able to do the more innovative tasks.”
Short said the team intentionally chose the term “factories” so as to have something of a controversial stance to emphasize how much of a sea change the technology represents.
“This does not limit the developer; it actually helps the developer to be able to do more creative work,” Rashid said.
“We can build demonstrably bigger systems than we could before. We can put 15,000 people on a software project, and we can build bigger systems more reliably than before,” he said.
Greenfield said the software industry will begin to build supply chains of people who build the software factories and people who use them.
Essentially, to get more value from an application, “you have to target a narrower footprint,” Greenfield said, thus the domain-specific nature of the strategy.
John Rymer, an analyst with Forrester Research Inc., of Cambridge, Mass., said Microsoft is “putting in place the prerequisites for domain-specific languages.”
“This is an opportunity of interest to Microsoft partners, but is still too far out for most IT development shops,” he said. “The first DSL tools will tell us a lot about the efficacy and efficiency of this concept. I dont expect much out of the first generation of these tools. But it is important for the industry to get started up this learning curve. For now, most shops should be reading and learning, in part through experimentation with the early tools. DSL is a massive change, something that will take five years to enter the mainstream.”
Meanwhile, Rashid said Microsoft continues to work on tools that improve application security by addressing it in the development phase of the application lifecycle. Rashid said Microsoft Research has been building tools to find software defects since 1998. Two of its first tools are Prefix and Prefast, which are heuristic modeling tools to detect defects in C and C++ programs. These are what Rashid called first-level tools. Prefix is available now, and Prefast will be available in the next version of Visual Studio, which is Visual Studio 2005.
Second-level tools include sound, declarative tools like SLAM— Software (Specifications), Languages, Analysis, and Model—checking tool. An example of a third-level tool is the KISS (Keep It Simple & Sequential) tool, which is a project to explore novel techniques for analyzing concurrent software. However, “tools arent enough,” Rashid said. “At the end of the day, tools will never solve critical design errors if youre doing software in a way that people dont want to use it.”
So Microsoft Research is working on a Microsoft operating system research project known as the Singularity Project that uses a verifiable language—known as Spec# (pronounced “Spec sharp”)—correctness tools, formal design specifications and modeling tools, error detection and recovery, systemwide security, real-time managed code, and other attributes.
A Microsoft description of the project on the companys Web site said: “Singularity is a cross-group research project focused on the construction of reliable systems through innovation in the areas of systems, languages, and tools. We are building a new OS (called Singularity), extending programming languages, and developing new techniques and tools for specifying and verifying program behavior.”
Meanwhile, Rashid said, “Were at a point in the cycle where mainline CPUs are stalling out,” thus he hailed “the rise of the GPU, or graphics processor unit, for general-purpose highly parallel program computation.”