Company predicts C will offer C++ developers greater productivity and help them maximize the potential of the new .NET Platform.
REDMOND, Wash., June 26, 2000 — John Crim wrote his first computer program when he was in second grade. It wallpapered the computer screen with his name. Three years later, he was creating programs to maintain his father's business records. Now 29, with almost 10 years of professional programming experience, Crim rattles off the list of programming languages he has used like a builder discussing the tools in his belt. And he isn't shy about discussing the strengths and weaknesses of each.
It takes something special to convince Crim, chief technology officer and co-founder of Seattle-based WebGecko Software, to make room in his belt for a new tool. But he is clearing space for C#, the new language Microsoft created to offer C++ developers greater productivity and to take full advantage of the Web services offered by the company's recently announced .NET Platform.
"I've probably programmed in about 15 languages," said Crim, a C++ diehard who tested an early version of C# recently. "As far as power and productivity goes, this new language is the best."
Microsoft announced the development of C# today. The new language will be included in the next generation of Visual Studio, which will be available in beta release later this year.
Microsoft is developing C# -- pronounced "C sharp" for the musically disinclined -- to provide the computing power of the C++ language and the ease of use of its own Visual Basic language. The software company predicts this power and function will allow developers to fully utilize the potential of its new .NET Platform, created to help developers more easily build and maintain Web applications.
"This is a language specifically designed for C++ developers who want to be more productive and who need to take advantage of the growing possibilities for the exchange of information and services over the Internet," said Bill Dunlap, Microsoft's lead product manager for Visual Studio.
Making it easier to work over the Web, multiple systems and devices
C# and the .NET Platform make it easier for developers to build Web applications that integrate with any operating system running on any device, Dunlap said.
Developers can make programming functions, such as a search mechanism of a system's programs, accessible over the Internet by typing one command, "Web Method," into their code. This advance -- which uses Web standards such as eXtensible Markup Language (XML) and Simple Object Access Protocol (SOAP), a method for programs to communicate over the Internet -- eliminates the numerous additional steps and lines of code that other languages require to allow distributed computing, Dunlap explained. This convenience allows developers to build on, rather than constantly duplicate, the skills of other programmers and organizations, reducing the time and cost to get new products and services to market, he added.
Mike Amundsen, senior consultant for Vertigo Software, Inc., in Point Richmond, Calif., envisions C# creating new e-commerce opportunities. Businesses will be able to easily provide access to a new world of computer services over the Internet, he said.
"You are going to be able to call my server and maybe pay a small fee to use my services," he said. "I can build all sorts of little services to solve other people's problems."
What's best, Amundsen said, is developers and computer users don't have to understand how C# creates these services to use them.
"I don't need to be a rocket scientist. I don't have to know all of the alphabet soup," he said. "I just write my regular function and put this" Web Method "code in front of it."
Other features of the language add additional speed and convenience for programming over the Internet. C# makes it easier to work with the emerging XML standard by eliminating much of the computer code developers had to write in other languages, Dunlap said. C# also supports ASP+ technology. This allows information to serve up faster over the Internet, thus providing Web services that can scale, or grow, to retrieve information faster and accommodate more users, he explained.
Crim estimates he saved days of programming when he used an early version of C# recently to create a new Web application.
Not only did he save time by using pre-existing services from other Web sites, the applications he created to access this content "were ridiculously easy to write," Crim said. "They would probably take two or three days to create in C++. With C#, it only took a couple of hours."
Winning formula: Ease of use + power
Before recently creating a sample application on C#, Amundsen had avoided the C and C++ languages, preferring f Visual Basic's ease of use.
"I was actually a little nervous to start coding in C#," he said. Not for long, though. He found the language was even more productive than Visual Basic with the powerful features of C languages.
"It turns out I'm writing less code than I would have written in other languages," he said. "It is actually fun to code in C#."
Many developers, Dunlap said, appreciate the power and flexibility of C++, as well as its object-oriented approach, which allows developers to adapt and reuse commonly used blocks of code. But this flexibility also presents numerous ways to write errors into the code that are hard to track down, increasing the time it takes to complete projects, he said. C# provides the power and flexibility of other languages, as well as the use of objects, Dunlap said, but it also eliminates many of the pitfalls that developers are often faced with when programming in C and C++.
"With C#, there are not numerous ways to do things. There is one way. The language is elegant, meaning it is clear and clean. Anybody can read code written in C# and understand what it means," Dunlap said. "This is especially important in a world where the code lives on for decades. People will be able to step into this code and immediately know what the business processes are and how to change them."
C# makes it easier to avoid many programming errors, Dunlap said, involving computer memory by eliminating pointers. Pointers, Dunlap explained, allow developers quick access to computer memory but can crash programs if the wrong block of memory is used.
C# still allows developers to directly manipulate memory. But it does so in a safe manner, Dunlap said, by ensuring they use the appropriate block of memory. The new language's Inline C function also provides direct access to the underlying system, eliminating the need to switch from one language for some applications to another language to access system capabilities.
"It's all about choice. C# gives developers a choice about when they need to do certain tasks. Some C++ languages are about mandating what developers can do," said Tony Goodhew, Microsoft technical product manager. "We believe developers know the specifics of the application better than the guy who designed the language years earlier."
Standardization, industry support
Microsoft recently submitted C#'s language specifications to the European Computer Manufacturers Association (ECMA) for its review. The company expects the ECMA's support will lead to standardization by the International Standards Organization (ISO).
Standardization allows multiple technology vendors to create their own versions of C#, thus allowing developers to use the language on more operating platforms and to choose the version of the language that best meets their needs, Goodhew said. Standardization also provides users, academics, vendors a say -- through the regional and international boards -- in determining future changes in the language, he added.
Although still months away from its commercial release, C# has garnered strong support within the technology industry, with numerous companies already employing the new technology. The companies include Apex Software, Bunka Orient Co., Component Source, devSoft, FarPoint Technologies, LEAD Technologies, ProtoView, Seagate Software, Sheridan Software Systems, Software Artisans, Stingray, VideoSoft, Andersen Consulting, Proxicom, Pandesic, Razorfish, Sapient, Rare Medium, Scient, USWeb/CKS, Viant, ActiveState, Dyadic Systems, Fujitsu Software Corp, Interactive Software Engineering, QKS, Skippi-Net, TMT Development, NuMega (Compuware) and Rational.
Crim believes C# will continue to grow in popularity as developers get an opportunity to experience its power and productivity.
"C#," he said, "is the language we've been looking for."