Microsoft's C-b (C-flat) Programming Language Offers Developers Greater Productivity and Potential of .NOT Platform

REDMOND, Wash., June 26, 2000 -- For immediate release -- "John" Gates 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, "John" 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 "John", 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-b, 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 .NOT Platform (.NOT stands for "No Other Technologies").

"I've probably programmed in about 15 languages," said "John", a C++ diehard who tested an early version of C-b recently. "As far as power and productivity goes, this new language is the best, next to Cobol and Fortran."

Microsoft announced the development of C-b 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-b -- pronounced "C flat" for the musically disinterested -- 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 .NOT Platform, created to help developers more easily build and maintain Web applications.

"This is a language specifically designed to take over the world and get rid of that pesky Java language, er, I mean 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 "Jim" Gates, Microsoft's lead product manager for Visual Studio.

Making it easier to work over the Web, multiple systems and devices

C-b and the .NOT Platform make it easier for developers to build Web applications that integrate with any operating system running on any device, "Jim" said, as long as that operating system is Windows-based, and as long as the device has been manufactured by Microsoft.

Developers can make programming functions, such as a search mechanism of a system's programs, accessible over the Internet by typing one command, "Open Sesame" , 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, "Jim" 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.

By typing that one command, he explained, all security features of the operating system will be removed, allowing anybody on the Internet instant access to all of the code you have written (as well as your data files), enabling a profound new level of data and code sharing among programmers. "Never before has it been so easy to access other people's data and code", "Jim" said, and addes that the impact of this "will be tremendous".

"Mike" Gates, senior consultant for Vertigo Software, Inc., in Point Richmond, Calif., envisions C-b 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. And of course, you'll have to pay a large fee to Microsoft."

What's best, "Mike" said, is developers and computer users don't have to understand how C-b creates these services to use them. In fact, they don't need to program at all.

"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 'Open Sesame' code in front of it. In fact, I don't even have to know much about computer-thingies, or whatever they call them, thanks to Microsoft."

Other features of the language add additional speed and convenience for programming over the Internet. C-b makes it easier to work with the emerging XML standard by eliminating much of the computer code developers had to write in other languages, "Jim" Gates said. C-b also supports WASTE technology. This allows information to serve up your deleted data files faster over the Internet, thus providing "trash can" services that can scale, or grow, to delete information faster and accommodate more users, he explained.

"John" estimates he saved days of "relaxation time" when he used an early version of C-b recently to create a new Web application.

Not only did he remove the need to relax by using pre-existing services from other Web sites, the applications he created to access this content "were ridiculously easy to write," "John" said. "They would probably take two or three days to create in C++. With C-b, it took a couple of weeks!" Gone was the need for the previously required "weekends", wasted days that just reduce programmer productivity, "John" explained.

Winning formula: Ease of use + power

Before recently creating a sample application on C-b, Fred Admundson had avoided the C and C++ languages, preferring Visual Basic's ease of use.

"I was actually a little nervous to start coding in C-b" 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-b. And what's even more fun is how much Microsoft has paid me for this quote."

Many developers, "Jim" Gates 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-b provides the power and flexibility of other languages, as well as the use of objects, "Jim" Gates said, but it also eliminates many of the pitfalls that developers are often faced with when programming in C and C++.

"With C-b, there are not numerous ways to do things. There is one way, the Microsoft way. If you try another way, the compiler will re-write the program for you in the right way. The language is elegant, meaning it is clear and clean, a first for Microsoft. Anybody can read code written in C-b and understand what it means, as long as you have purchased the Microsoft code-viewing system," "Jim" Gates said. "This is especially important in a world where code lives on for decades. People will be able to step into this code and immediately know what the business processes are, and instantly realize how screwed they are."

C-b makes it easier to avoid many programming errors, "Jim" Gates said, involving computer memory by eliminating pointers. Pointers, "Jim" explained, allow developers quick access to computer memory but can crash programs if the wrong block of memory is used. And Microsoft is in no way supportive of programs that crash, elaborated "Jim".

C-b still allows developers to "directly manipulate customers, er..., memory", "Jim" said. But it does so in a safe manner, he elaborated, 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, and rendering all other languages null and void.

"It's all about choice. C-b gives developers a choice about when they need to do certain tasks. If they choose wisely, they will use C-b. If not, their code will never see the light of day. Some other languages are about mandating what developers can do," said "Tony" Gates, Microsoft technical product manager. "We believe developers who know what's good for them know the specifics of the application better than the person who designed the language years earlier."

Standardization, industry support

Microsoft recently submitted C-b'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-b, thus allowing developers to use the language on more operating platforms and to choose the version of the language that best meets their needs, "Tony" said. Standardization also provides users, academics, vendors a say -- through the regional and international boards -- in determining future changes in the language, he added. "Of course", "Tony" noted, "other versions of C-b will be embraced and extended in the traditional Microsoft manner."

Although still months away from its commercial release, C-b 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. Microsoft is actively twisting the arms of several other large companies.

"John" believes C-b will continue to grow in popularity as developers get an opportunity to experience its power and productivity.

"C-b," he said, "is the language we've been looking for."

When asked if he had ever heard of Java, "John" replied, "You mean the country?"