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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

488 Day <strong>14</strong><br />

What Brought Us Here?<br />

For the past couple years, <strong>Borland</strong> <strong>C++</strong> users and <strong>C++</strong> users <strong>in</strong> general have been cry<strong>in</strong>g for<br />

a RAD tool that is based on <strong>C++</strong>. As great as <strong>Borland</strong>’s Delphi is, it is based on ObjectPascal.<br />

ObjectPascal is no less a language than <strong>C++</strong> <strong>in</strong> the hands of the average developer, but, as they<br />

say, image is everyth<strong>in</strong>g. There are many organizations (public, private, and government)<br />

that flatly refuse to use a product based on Pascal. Obviously, a <strong>C++</strong> RAD tool was needed.<br />

So <strong>Borland</strong> began work<strong>in</strong>g on a solution to the problem. It made sense to leverage both the<br />

popularity of Delphi and the exist<strong>in</strong>g Delphi IDE. After all, people were ask<strong>in</strong>g for “Delphi<br />

for <strong>C++</strong>,” so why not give them what they ask for? It was obvious that us<strong>in</strong>g the Delphi IDE<br />

would present no real problem. In fact, it was an immediate solution. There was no po<strong>in</strong>t <strong>in</strong><br />

try<strong>in</strong>g to modify the <strong>Borland</strong> <strong>C++</strong> IDE (or <strong>in</strong> try<strong>in</strong>g to hybridize the Delphi and <strong>Borland</strong> <strong>C++</strong><br />

IDEs) when the Delphi IDE had most of what users were ask<strong>in</strong>g for, not to mention the fact<br />

that it was a ready-made solution. So that part was easy.<br />

The hard part came when <strong>Borland</strong> began look<strong>in</strong>g at the PME model and at how to implement<br />

it and still stay 100 percent ANSI <strong>C++</strong> compliant. This was a dilemma for <strong>Borland</strong> because<br />

<strong>Borland</strong> <strong>C++</strong> has been one of the few PC-based <strong>C++</strong> compilers that has ma<strong>in</strong>ta<strong>in</strong>ed ANSI<br />

<strong>C++</strong> compliance over the years. (Microsoft has many extensions to Visual <strong>C++</strong> that preclude<br />

it from mak<strong>in</strong>g such a claim.) It didn’t take long to come to the realization that it just couldn’t<br />

be done—there was no way to implement the PME model, as it exists <strong>in</strong> Delphi, and stay<br />

with<strong>in</strong> current <strong>C++</strong> standards. The solution was to extend <strong>C++</strong> <strong>in</strong> order to leverage the power<br />

of the PME model and the already-exist<strong>in</strong>g Visual Component Library. At that po<strong>in</strong>t the<br />

question was not How can we do this? but rather Do we dare do this?<br />

When <strong>in</strong> doubt, ask the public. <strong>Borland</strong> conducted market<strong>in</strong>g surveys <strong>in</strong> an attempt to<br />

determ<strong>in</strong>e what developers wanted. The surveys were extensive. One important question<br />

<strong>Borland</strong> wanted answered was, “What is more important to you: rapid application development<br />

or ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>g <strong>C++</strong> standards?” The results of the survey <strong>in</strong>dicated that strict compliance with<br />

<strong>C++</strong> standards was not as important to many <strong>C++</strong> programmers as it once was. Apparently the<br />

overall feel<strong>in</strong>g is that RAD is more allur<strong>in</strong>g than strict adherence to <strong>C++</strong> standards. Armed with<br />

that <strong>in</strong>formation, <strong>Borland</strong> proceeded to add to the <strong>C++</strong>Builder implementation of <strong>C++</strong> those<br />

extensions that it would need <strong>in</strong> order to implement the PME model.<br />

NOTE<br />

It is important to note that there is noth<strong>in</strong>g to preclude compil<strong>in</strong>g 100<br />

percent ANSI-compliant <strong>C++</strong> code with <strong>C++</strong>Builder. The <strong>C++</strong>Builder<br />

extensions to <strong>C++</strong> are there if you need them, but that does not <strong>in</strong> any<br />

way affect <strong>C++</strong>Builder’s ability to compile standard <strong>C++</strong> code. If you<br />

want strict adherence to <strong>C++</strong> standards, you can still use <strong>C++</strong>Builder to

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

Saved successfully!

Ooh no, something went wrong!