REDMOND, Wash., July 11, 2000 — David Simmons has worked with almost every programming language there is — 20 of them, to be exact. In his 23 years in the software industry, he has seen developers spend countless hours making different programs communicate. For the first time, he now sees a solution on the horizon.
“The .NET Framework enables a renaissance for software development,”
said Simmons, president and founder of Quasar Knowledge Systems (QKS), a company that offers SmallTalk language products.
“In recent years, there has been a strong push within the industry to find a single-language solution, but from both a business and innovation standpoint that is stifling. Microsoft is providing a common foundation upon which all language tools can be built.”
Microsoft today unveiled the .NET Framework, a part of the .NET Platform, at its Professional Developers Conference in Florida. The .NET Framework unites programming languages and eases the complex details developers have to manage. In addition to dramatically simplifying the programming
“plumbing”
that developers must deal with today, the .NET Framework automatically turns every application into a reusable, interoperable Web service.
Web-based
“services”
can be used to build tomorrow’s software applications, much as
“components”
are used to build them today.
“Microsoft is committed to the vision of delivering software as a service, both over the Internet and the intranet,”
said John Montgomery, group product manager for Web Services at Microsoft. Montgomery is confident that Microsoft’s new programming environment will improve developer productivity and turn tomorrow’s computer applications into collections of software
“parts”
(or services). These parts can be accessed over the Internet or corporate network with greater ease than developers use component software today.
Eliminating the
“
Tower of Babel
”
effect
Microsoft is changing the way developers work. Gone are the days when a developer wrote an entire application from scratch. Over the past decade, applications have increasingly been built with off-the-shelf parts — software components — but the interoperability of these parts has been somewhat limited by a developer’s choice of programming language, object model and operating system.
“It has been a headache to take pieces from multiple languages and make them work together,”
said Bertrand Meyer, president of Interactive Software Engineering, which is best known for its Eiffel software development tools.
“Most developers give up and work in a single-language environment. They either get stuck with decisions they made a decade ago or undergo costly conversion efforts.”
Now, Microsoft is setting the pieces in place to mix-and-match parts. With Microsoft’s vision, developers are increasingly freed to use the best programming language for the job at hand.
“Language interoperability is a boon for developers,”
Meyer said.
“The .NET Framework brings the developer’s dream of language interoperability closer to reality than it ever has been before. Developers will be able to change to another language later and retain their investment.”
In effect, all programming languages, from the relatively simple JScript to the complex C++ language, become equals in the .NET Framework. Developers currently have to use different commands, called
“frameworks,”
depending on the programming language they have chosen. This creates a
“Tower of Babel effect”
when different languages collide. It also means developers face a steep learning curve when learning a new language, Montgomery said.
With the .NET Framework, developers use a unified set of commands regardless of their choice of programming language, he explained.
“Simply put, the .NET Framework unifies the disparate frameworks we have today. The result is more than developers no longer having to learn multiple frameworks. By creating a common set of APIs across all programming languages, the .NET Framework enables powerful cross-language inheritance, error handling and debugging. Now developers are free to choose the language they want to use. The .NET Platform welcomes everybody,”
Montgomery said.
Language interoperability will allow developers to build applications from parts written in any programming language. Furthermore, they’ll be able to take advantage of the Internet and intranet and access Web services over networks. Montgomery says developers will build and sell these Web services, creating a huge resource for others to draw from. Tomorrow’s applications will be powerful and easy to build.
Applications become software quilts
“It’s about productivity and choice,”
Montgomery added.
“Developers will be able to create applications using any combination of remote services, local services and custom code.”
These services will interact with the developer’s application using the lingua franca of the Web, the Extensible Markup Language (XML).
These Web services are easy to use, because they are self-describing — they tell the developer what information the service is expecting and what service it will provide, thus shielding the developers from needing to know how the parts work internally. These services can be combined. Any application using any language for any platform can use a service, Montgomery explained. Developers save time and create more powerful applications by
“quilting together”
parts from an entire world of Web services.
“Web services are useful in all sorts of situations — think of them as applications that live on the Internet or intranet instead of locally,”
Montgomery said.
“One example is a language translation service. You can take something like the Lernout and Hauspie translation engine, which lives on the Web, and build it into an email program to get a simple translation.”
Users can then send and receive email in foreign languages.
“Today, integrating different components and scripts into a cohesive, maintainable solution is a very complex problem,”
Simmons said.
“With Web services, Microsoft is providing the first vehicle where the developer can pick and choose technology with the confidence that it will all integrate smoothly.”
“Web Services are all about reusability. Microsoft has a lot of experience helping developers create reusable software,”
Montgomery said.
“Microsoft’s COM (Component Object Model), the most successful component model ever, has been evolving over the past eight years, allowing developers to create reusable chunks of code.”
These components can perform any task, from a single function to an entire application, such as Microsoft Word, he explained.
Dick Hardt, founder and CEO of ActiveState, a company that offers tools and services to work with the Perl and Python Internet programming languages, began programming with Windows 1.03. He’s seen programming change over the past 14 years.
“When I started programming, we didn’t have much reusability,”
he said.
“When COM was introduced, there was some interoperability between a few languages. Today, interoperability is challenging and entails significant overhead. With the Microsoft .NET Framework, however, you get very direct interoperability. You can easily use any language to create, use and extend components. That’s a huge shift for the better.”
Housekeeping details handled automatically
There are other ways Microsoft is making developers’ lives easier with the .NET Framework. Today, developers have to work too hard to keep track of a lot of plumbing details such as reference counting and memory management.. Dealing with these details is frustrating and costly — it keeps new software products from reaching market sooner, Montgomery said.
“Years ago, before COM, a developer could write a simple program in C in just five lines of code. That same program using COM takes hundreds of lines of code. COM adds a lot of value, but also adds overhead,”
said Jon Sanders, director of engineering for the developer tools group at Rational Software, a company that provides software development tools, services and software engineering best practices.
“Now with the .NET Framework, the developer again only needs five lines of code to write that same program. It’s like getting the value of COM for free.”
“Today, there is a lot of boilerplate code, in multiple places, that must be synchronized together in order for a program to work,”
Sanders said.
“But with the .NET Framework, those details are handled by the system — the boilerplate code goes away.”
Developers can rely on the .NET Framework to automate many tasks previously handled, and sometimes mishandled, manually, Montgomery said. The .NET Framework will manage tedious and complex programming details such as managing memory, starting up and killing threads and processes, enforcing security and satisfying dependencies.
Because the .NET Framework handles so many housekeeping tasks, developers can write less code and get their jobs done faster, Montgomery said. Their jobs will be much simpler. There is less chance they will make mistakes, and less chance that their mistakes could adversely affect other applications, he added.
Simmons likens today’s programmers to handcraft artists.
“Handcrafting today’s complex software takes time and a special sort of expertise,”
he explained.
“Now, Microsoft and other tools vendors can take that hand-building process and build it into technology. Developers will be able to focus more on providing services than handcrafting software. They’ll be able to produce more in less time.”
Additional built-in functionality saves developers’ time
Microsoft has gone a step further to increase developer productivity with the .NET Framework.
“Our new Active Server Pages + (ASP+) builds on the .NET Framework and adds even more higher-level functionality, providing an entire infrastructure for building complex, scalable Web applications and services without requiring developers to know more than a little Web coding in Hypertext Markup Language (HTML),”
Montgomery said.
“Developers can focus on writing a solution to their unique business problem and the ASP+ infrastructure handles the rest.”
By automating complex application features, such as saving information that will be needed later (state management), ASP+ can reduce the number of lines of code a developer must write by a factor of ten.
ASP+ also automates many of the features required for implementing Web services, including providing transparent XML access to ASP+ applications.
“We use Simple Object Access Protocol (SOAP), an XML grammar, to allow communication between applications,”
Montgomery said.
“SOAP is a good choice, because it is in an open industry standard to represent XML data and commands in an extensible way. ASP+ completely automates SOAP.”
ASP+ controls run on the Web server and project their user interface to a client. The application simply appears as a standard Web page in the user’s browser.
A group effort with the developer tools community
Combining all the elements of the .NET Framework, which consists of a common language runtime, unified frameworks and ASP+, Microsoft is enabling developers to take reusable software to the next level, Montgomery concludes.
The .NET Framework is a group effort.
”
We couldn’t have done this alone. The developer community has been generous with their time, helping us make sure all programming languages can work within the .NET Platform,” Montgomery said.
To create the .NET Framework, Microsoft talked to a lot of people. And listened. Microsoft worked with more than 200 companies, 20 universities and dozens of individuals, reviewing and improving the .NET Framework architecture.
“Microsoft’s welcoming, almost eager, efforts to invite the participation of developers representing many advanced and leading languages helped them build a good foundation for this new platform,”
Simmons said.
”
They worked very hard with third parties to solicit comments and design feedback. Microsoft has taken state-of-the-art programming concepts and integrated them into a new secure, deployable, cross-language programming model that will be great for tools innovation, developer productivity and choice.”