Board index » cppbuilder » Re: Borland has broken it's promises once again

Re: Borland has broken it's promises once again


2005-11-25 02:44:22 AM
cppbuilder99
David Erbas-White wrote:
Quote

The folks taking the survey don't 'know' that Borland has something like
the VCL in the works, that's just what the Borland internal folks know.
The biggest complaint of folks at that time was ANSI compliance, and
that was what was harped on the most.

Actually a second survey was done after Delphi 1 was released so yes they (the
survey takers) did know. There was research done again when the BCB was decided
to be done. The original surveys were about whether to do a C++ RAD tool first
or a Pascal based one.
Quote
In my mind, if Borland had come out with the most 'ANSI compliant'
compiler, but added extensions for the VCL (as they did), that would
have satisfied any concerns.
At the time the C++ compiler was the most compliant in the market. People left
the more compliant compiler for the less one over in VC++. History doesn't back
up your claim. BCB1 compiler was more compliant than the VC++ compiler at the
time. It wasn't until VS 2003 that VC++ became the more complaint compiler.
Quote
It would have been far easier for C++
programmers to have 'bought into' a product with better ANSI compliance,
that had a RAD front end written in a C++ VCL that used extensions, if
that product had been both marketed and supported well.

Borland fell down in all of those areas - they dropped the ball on the
compiler, they didn't write the VCL in C++, they took a great support
system and tanked it, and their marketing went to hell in a handbasket.

All their research stated that a non standard C++ VCL would not increase sales
of any significance and indeed would lose them some of their existing customer
base (which is why there are still people out there using BC++ 5.02 and OWL).
And yes BC++ still has sales every quarter at Borland. There is no indication
at all that the language the framework is written in has had a significant
impact on BCB sales at all.
Quote
It astonishes me that these problems are now being 'blamed' on the
results of surveys of users more than a decade ago -- there is
absolutely no 'reality check' in place for understanding that the
results of the survey are OFTEN driven by how the survey is written --
and Borland (IMHO) got the results they WANTED because of how they wrote it.

No blame, only that there is research that was done then and still being done
now indicating that a C++ VCL will not drive increases in revenue. This was
researched again for CBX on exactly this. Whether a C++ VCL would improve the
C++ revenue stream. The reality was that it wasn't going to.
Funny that the few who have clamored for a C++ VCL over the years ignore the
fact that they would lose 100% of the Delphi component market which is what make
the VCL so enticing in the first place. A C++ based VCL would not be able to
work with Delphi based components. These reasons have been gone into in the
past and I don't intend to discuss that again, use google for reasons why you
can not do things like descending from a Delphi component in C++ and then
descending from the C++ back in Delphi doesn't work.
The BCB market is way too small for DevExpress to write a C++ equivalent of
their components and now maintain two different code base. They have the same
resource problems (not enough revenue to justify the expenses) that Borland
has. So who wants to lose all ability to use DevExpress, ReportBuilder, Rave,
InfoPower, Orpheous, JEDI VCL and every other 3rd party Delphi based VCL
Components (100's of thousands of these) in exchange for a C++ VCL?
--
Jeff Overcash (TeamB)
(Please do not email me directly unless asked. Thank You)
Your friends will know you better in the first minute you meet than your
acquaintances will know you in a thousand years. (R Bach)
 
 

Re:Re: Borland has broken it's promises once again

Quote
I've been a Borland user starting from the CP/M days with Turbo Pascal,
bought every version up through D5/BCB5.

<snip>

Again, IIRC, there were plenty of comments in the users groups at the time
that elucidated the rationale for wanting better ANSI compliance as the
primary need -- but Borland didn't pay attention to that.

David Erbas-White
Thanks David, for taking your time to elaborate on this. This is something I
have been trying to point out to Jeff, but apparently to no avail... :(
I guess he got offended when I questioned his wisdom in blindly believing in
survey numbers...
 

Re:Re: Borland has broken it's promises once again

Wow you love to jump ahead of yourself don't you...
Quote
Funny that the few who have clamored for a C++ VCL over the years ignore
the
fact that they would lose 100% of the Delphi component market which is
what make
the VCL so enticing in the first place.
When we said VCL in C++, we mean VCL in C++. Delphi would have to be the one
using C++ VCL.
In doing so, Borland would have lost its Pascal users. This is the reason --
Pascal has more users and it's too much of a risk to go the other way. Not
some surveys you were saying. That's all I was pointing out. And that's the
reason I was saying you confused my post with the rest. I was not saying if
VCL was written in C++, Borland would have dominated C++ market share.
A C++ based VCL would not be able to
Quote
work with Delphi based components. These reasons have been gone into in
the
past and I don't intend to discuss that again, use google for reasons why
you
can not do things like descending from a Delphi component in C++ and then
descending from the C++ back in Delphi doesn't work.
Extended Delphi language then. Extend it far enough.
Again, not the point of my original post.
Quote
The BCB market is way too small for DevExpress to write a C++ equivalent
of
their components and now maintain two different code base. They have the
same
resource problems (not enough revenue to justify the expenses) that
Borland
has. So who wants to lose all ability to use DevExpress, ReportBuilder,
Rave,
InfoPower, Orpheous, JEDI VCL and every other 3rd party Delphi based VCL
Components (100's of thousands of these) in exchange for a C++ VCL?
DevExpress reportbuilder rave etc. will still be here... as well as 100's of
thousands of VCL components. Except now they'll be in C++.
 

{smallsort}

Re:Re: Borland has broken it's promises once again

"Jeff Overcash (TeamB)" < XXXX@XXXXX.COM >wrote in message
Quote
Funny that the few who have clamored for a C++ VCL over the years ignore
the
fact that they would lose 100% of the Delphi component market which is
what make
the VCL so enticing in the first place. A C++ based VCL would not be able
to
work with Delphi based components. These reasons have been gone into in
the
past and I don't intend to discuss that again, use google for reasons why
you
can not do things like descending from a Delphi component in C++ and then
descending from the C++ back in Delphi doesn't work.
Some of us may have ignored this but some of us may have decided that
the savings we get from Delphi components are lost by the time we
have to spend with bugs in the VCL.
Remember that some of us were looking into CBX. Besides, what would
prevent the advent of a new C++ component market?
 

Re:Re: Borland has broken it's promises once again

Jeff Overcash (TeamB) wrote:
Quote

[...]
No blame, only that there is research that was done then and still being done
now indicating that a C++ VCL will not drive increases in revenue. This was
They perhaps have missed an interesting point. A standard C++ compliant
framework could have been used by different compilers and platforms.
But since that would contradict the BCB sells perhaps regarding revenue
basing VCL on Pascal was the right decision - I don't know.
Quote
researched again for CBX on exactly this. Whether a C++ VCL would improve the
C++ revenue stream. The reality was that it wasn't going to.
? ->CBX ? - they made a survey, created CBX with a (preview) standard
compliant framework and then dropped CBX because of that survey ?
Having bought an enterprise version of CBX I better don't continue
writing statements about that issue.
Quote
[...]
Andre
 

Re:Re: Borland has broken it's promises once again

Zach Saw < XXXX@XXXXX.COM >wrote in message < XXXX@XXXXX.COM >
Quote
If it had been a
product of which the apps it creates has the robustness and stability of
those created from MSVC using MFC, developers would have bitten the bullet
and made the jump.
I find it amusing when people assume that customers will automatically adopt
the best solution, as if most market participants are working with perfect
information. The fact of the matter is that developers are usually clueless as
to all the alternatives available in the marketplace, and tend to organize
themselves into primitive tribes based on those tools in which they have
acquired significant skills due to past experience. Rational analysis is a
luxury seldom affordable to the typical customer, no matter how much they may
fancy themselves to be devotees of rationalism, the cheap knock-off known as
Objectivism, or any of the related philosophies that people learn about in
Philosophy 101 but never actually apply in real life. The realist knows that
failure in the marketplace does not mean a product was inferior, just that it
did not achieve enough mindshare with customers.
You can build a better mousetrap, but only a hopeless idealist would think the
world will then beat a path to your door.
--
Check out the latest beta preview of
JSNewsreader at
www.jsnewsreader.com/Preview3.zip
Posted with JSNewsreader Preview 1.0.4.1684
 

Re:Re: Borland has broken it's promises once again

Andre Kaufmann wrote:
Quote

Jeff Overcash (TeamB) wrote:
>
>[...]
>No blame, only that there is research that was done then and still being done
>now indicating that a C++ VCL will not drive increases in revenue. This was

They perhaps have missed an interesting point. A standard C++ compliant
framework could have been used by different compilers and platforms.
But since that would contradict the BCB sells perhaps regarding revenue
basing VCL on Pascal was the right decision - I don't know.

>researched again for CBX on exactly this. Whether a C++ VCL would improve the
>C++ revenue stream. The reality was that it wasn't going to.

? ->CBX ? - they made a survey, created CBX with a (preview) standard
compliant framework and then dropped CBX because of that survey ?
No, I didn't say that. Borland had talked about porting the VCL to CBX. They
also looked into the possibility of actually doing a C++ VCL for CBX. This is
what the research (not survey) showed that they would not drive sales due to
having this so that idea was shelved. CBX not being actively developed right
now has more to do with the fact Primetime (the IDE it is based on) is being
replaced with Eclipse than any other factor. When CoreSDP comes out with the
C++ stuff, I would not be surprised at all if CBX comes back to life then.
Quote
Having bought an enterprise version of CBX I better don't continue
writing statements about that issue.
CBX was not designed to be a RAD tool initially, although adding RAD elements
was always a plan. CBX real was market target was the 72% of the C++ developers
that are not Windows developers.
--
Jeff Overcash (TeamB)
(Please do not email me directly unless asked. Thank You)
Your friends will know you better in the first minute you meet than your
acquaintances will know you in a thousand years. (R Bach)
 

Re:Re: Borland has broken it's promises once again

Rudy Velthuis [TeamB] wrote:
Quote
First, there are several stages to being "created". I guess you meant
initialization, i.e. filling the object with values.
This why we would prefer use a simpler language, like standard C++ that
only has one stage of 'creation' <g,d,rlh>
--
AlisdairM(TeamB)
 

Re:Re: Borland has broken it's promises once again

Duane Hebert wrote:
Quote
:-) That's why I asked Rudy what he meant. As usual, he answered
in Delphispeak which I'm not quite fluent int. I didn't even want to
ask with "filling object with values" meant.

Actually, in a way this makes the point of the conversation. C++ is
a difficult enough language to master without having to learn Delphi
AND the gotchas caused by sticking it under C++.
In most ways Delphi is a simpler language than C++, but constructing
objects is an interesting exception. Note that 'initialization' is far
from trivial when you read all the rules in C++, but most of those
cover corner cases, such as initializing objects without a
user-declared constructor (eg ints!)
IIUC Delphi construction correctly, the following stages happen:
i/ Object is allocated enough memory to hold all data
ii/ allocated memory is initialized to zero
iii/ ctor is called for most-derived class
iv/ most derived ctor chains a base class ctor
v/ and so on down to TObject ctor
vi/ AfterConstruction virtual function is called
vii/ Object is fully constructed, return control to calling function
Note that the OnCreate event is a property of TCustomForm, and so will
typically fire during phase (iv)
Also note that (i) is an interesting problem when dealing with virtual
constructors, as VCL allows constructing for class-type objects and
relies on this when streaming in from the form DFM files - hence the
need for virtual ctors in the first place!
At all times, virtual functions dispatch on the most derived type,
which is why Delphi calls the most derived ctor first. During
construction, you should prepare all members of your class that may be
required to handle and overridden virtual function before chaining your
base class ctor. This is why Delphi allows you to control timing of
chaining the base ctor call - it is your responsibility to make your
class usable in event of a virtual function call. This is where C++
has a problem, as there is no way to hook in that initialization stage
prior to chaining the base ctor.
Microsoft have an interesting solution to this in C++/CLI, where they
change to order of construction for ref classes, so they construct
members before bases, and destructors destroy bases before members.
This allows you to guarantee your members during virtual dispatch, just
as with Delphi. You still lack Delphi's flexibility to add code in the
ctor either side of the base call though.
--
AlisdairM(TeamB)
 

Re:Re: Borland has broken it's promises once again

"Alisdair Meredith [TeamB]"
< XXXX@XXXXX.COM >wrote in message
Quote
Rudy Velthuis [TeamB] wrote:

>First, there are several stages to being "created". I guess you meant
>initialization, i.e. filling the object with values.

This why we would prefer use a simpler language, like standard C++ that
only has one stage of 'creation' <g,d,rlh>
:-) That's why I asked Rudy what he meant. As usual, he answered
in Delphispeak which I'm not quite fluent int. I didn't even want to
ask with "filling object with values" meant.
Actually, in a way this makes the point of the conversation. C++ is
a difficult enough language to master without having to learn Delphi
AND the gotchas caused by sticking it under C++.
 

Re:Re: Borland has broken it's promises once again

"Jeff Overcash (TeamB)" < XXXX@XXXXX.COM >wrote in message
Quote
CBX was not designed to be a RAD tool initially, although adding RAD
elements
was always a plan. CBX real was market target was the 72% of the C++
developers
that are not Windows developers.
I thought that a cross platform CBX would be a good thing. Especially
if some sort of GUI/RAD was added. Too bad it was dropped (or
temporarily dropped or whatever). A cross platform C++ ide with
Dinkumware and GUI/RAD. I would think that would sell.
 

Re:Re: Borland has broken it's promises once again

Edward Diener < XXXX@XXXXX.COM >writes:
Quote
C++ not having a reflection mechanism that is part of the language
specification makes it more difficult to implement RAD in standard
C++. It means that RAD must either be done through language extensions
and/or through extensions to a given compiler at compile time which
allow the equivalent of reflection data to be written to persistent
storage and read back again at run-time.
Not necessarily. It could also simply pass the work onto the user, to
provide a function that returns a name-to-factory table, or somesuch.
Then component developers would just have a little more boilerplate
code to write in order for it to work. Not attractive, but doesn't
require a change to a compiler.
--
Chris (TeamB);
 

Re:Re: Borland has broken it's promises once again

Jeff Overcash (TeamB) wrote:
Quote

[...]

CBX was not designed to be a RAD tool initially, although adding RAD elements

I've ordered CBX because of different promised features, one of them was:
Quote: "New, pure C++ RAD visual design environment"
bdn.borland.com/article/0,1410,31277,00.html
Quote
was always a plan. CBX real was market target was the 72% of the C++
developers that are not Windows developers.
These developers had and still have gcc and QT and Eclipse. I don't
think that this market creates enough revenue for another compiler vendor.
But CBX is history and a new P/BCB version is shipped in a few days,
which I currently need very badly, since I've been hit by Helena again.
Andre
 

Re:Re: Borland has broken it's promises once again

At 13:31:19, 25.11.2005, Alisdair Meredith [TeamB] wrote:
Quote
Rudy Velthuis [TeamB] wrote:

>First, there are several stages to being "created". I guess you meant
>initialization, i.e. filling the object with values.

This why we would prefer use a simpler language, like standard C++ that
only has one stage of 'creation' <g,d,rlh>
Actually, that is not true. AFAIK, you can also overwrite new() or use
placement new or whatever you call it. So the C++ mechanism is different,
and not necessarily tied to the class, but it can affect the same stages.
Since in Delphi, all objects are derived from TObject, it made sense to
put the functionality there. This greatly simplified language design, I
guess.
--
Rudy Velthuis [TeamB] velthuis.homepage.t-online.de
"In science one tries to tell people, in such a way as to be understood
by everyone, something that no one ever knew before. But in poetry, it's
the exact opposite."
- Paul Dirac (1902-1984)
 

Re:Re: Borland has broken it's promises once again

At 15:04:03, 25.11.2005, Duane Hebert wrote:
Quote
:-) That's why I asked Rudy what he meant. As usual, he answered
in Delphispeak which I'm not quite fluent int. I didn't even want to
ask with "filling object with values" meant.
"Filling with values" is not Delphi speak. It means the initialization of
values that happens in the contructors and their ancestor constructors,
i.e. the initialization of the members with meaningful values.
Delphi objects, like C++ objects, are allocated (in C++, this can be in
different places, in Delphi it is always on the heap). Then the allocated
memory is filled with 0, then the constructor code is called, which sets
the member values, opens resources, etc. In Delphi, for each of these
stages there are hooks, virtual methods, that can be overridden. There is
even one additional one, that is called when the code of the constructor
has finished. In C++, these hooks are partly covered by the "new"
mechanism.
ISTM that you saw construction purely as the part where the constructor
code runs.
--
Rudy Velthuis [TeamB] velthuis.homepage.t-online.de
"In this world, nothing is certain but death and taxes."
-- Benjamin Franklin.