12.12.2012 Views

Teach Yourself Borland C++ in 14 Days - portal

Teach Yourself Borland C++ in 14 Days - portal

Teach Yourself Borland C++ in 14 Days - portal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

490 Day <strong>14</strong><br />

Pascal. After all, they had a loyal base of customers that might not take k<strong>in</strong>dly to<br />

enhancements to the language they had come to know and love. Still, <strong>Borland</strong> was <strong>in</strong> a solid<br />

position <strong>in</strong> the Pascal market and went ahead with their plans. The result was the smash hit<br />

Delphi (the <strong>Borland</strong> <strong>in</strong>ternal code name stuck and became the official product name).<br />

But modify<strong>in</strong>g <strong>C++</strong> is another matter entirely. As I said at the beg<strong>in</strong>n<strong>in</strong>g of the chapter, the<br />

world had been cry<strong>in</strong>g for a RAD <strong>C++</strong> product for a long time, so it was not a question of<br />

whether such a product was needed, but more a question of how to go about it. Simply put,<br />

the component model that was so brilliantly implemented <strong>in</strong> Delphi could not be emulated<br />

<strong>in</strong> <strong>C++</strong> given the current structure of the language. Someth<strong>in</strong>g had to give.<br />

The problems associated with modify<strong>in</strong>g the <strong>C++</strong> language are many. First, there is a <strong>C++</strong><br />

standards committee. It is this committee’s job to decide what features should be <strong>in</strong> the <strong>C++</strong><br />

language and how those features should be implemented (there is no such committee for<br />

Pascal or BASIC). I could write an entire chapter on whether this system actually works, but<br />

I’ll spare you the details. Suffice it to say that simply because a <strong>C++</strong> standards committee exists<br />

means that mess<strong>in</strong>g with the <strong>C++</strong> language can be expected to be met with some criticism.<br />

On the other hand, compiler vendors all implement extensions to the <strong>C++</strong> language <strong>in</strong> some<br />

form or another. The theory is that you should be able to take an MFC program, for example,<br />

and compile it with any <strong>C++</strong> compiler. After all, that’s why there is a standard, right?<br />

Unfortunately, it doesn’t work that way. For whatever reason, MFC conta<strong>in</strong>s a fair number<br />

of nonstandard extensions to <strong>C++</strong> so you cannot, for <strong>in</strong>stance, compile MFC with the<br />

<strong>Borland</strong> compiler without some tweak<strong>in</strong>g (<strong>Borland</strong> <strong>C++</strong> 5.0 does have the ability to compile<br />

MFC programs, although <strong>Borland</strong> had to bend a lot of <strong>C++</strong> rules to allow compil<strong>in</strong>g of MFC<br />

programs). So, as you can see, it’s a less-than-perfect world <strong>in</strong> which <strong>C++</strong> operates to beg<strong>in</strong><br />

with. S<strong>in</strong>ce all <strong>C++</strong> compiler vendors extend <strong>C++</strong> <strong>in</strong> one way or another, the debate then gets<br />

to be one of degree. Company A extended <strong>C++</strong> more than did Company B, so Company A<br />

has the better <strong>C++</strong> compiler. A po<strong>in</strong>tless debate, <strong>in</strong> my op<strong>in</strong>ion.<br />

One of the other problems with extend<strong>in</strong>g the <strong>C++</strong> language is public perception. S<strong>in</strong>ce <strong>C++</strong><br />

is rumored to have a “standard” (yes, I use the word loosely), modify<strong>in</strong>g it <strong>in</strong> any way might<br />

unnerve some dyed-<strong>in</strong>-the-wool <strong>C++</strong> programmers. This is probably a better reason to tread<br />

lightly when th<strong>in</strong>k<strong>in</strong>g about <strong>C++</strong> language extensions than the standards issue. After all, those<br />

people are your customers and you better have a handle on what they th<strong>in</strong>k before you start<br />

extend<strong>in</strong>g their programm<strong>in</strong>g language of choice. As I said before, <strong>Borland</strong> conducted<br />

surveys to determ<strong>in</strong>e the public’s feel<strong>in</strong>gs on this issue. Rest assured that they did not arrive<br />

at their decision without a great deal of corporate soul search<strong>in</strong>g. The result of the surveys<br />

<strong>in</strong>dicated that many programmers would be will<strong>in</strong>g to accept language extensions to have a<br />

true RAD product for <strong>C++</strong>. To them the language debate was not as important as the prospect<br />

of <strong>in</strong>creased productivity.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!