Wednesday, December 15, 2004

My take... The Borland C++Builder Open Letter

The Borland C++Builder Open Letter

It's here and was posted a day early.  So far the reaction seems to be one of guarded optimism.  Not surprising, really, given all that has transpired for the last couple of years on the C++ front.  For me, personally, this is exciting news.  This is an opportunity to once again work with some folks for which I have a ton of respect. 

Internally, we've all been lobbying (dare I say, pleading ;-) with management to take this step.  We, on the Delphi team, have always held a certain kinship with the C++Builder community, and for good reason;  We've gone through at least four release cycles together, wrestled with binary compatibility and even benefitted from each other's innovations.  In fact, the initial driving force behind the rearchitecting of the IDE into the Galileo codebase was because of the desire to eventually merge the Delphi and C++Builder products into a single, simultaneously shipped, unified environment.  It was not Delphi for .NET or C#Builder that sparked that effort, but C++Builder.

Of course I cannot comment with any more detail than was revealed in the open letter... mainly because, quite honestly, we don't actually know yet.  We are in the midst of planning, scoping, and scheduling the next release of Delphi, in conjuction with the C++Builder team to create a common roadmap.  Whether or not there is an off-ramp on that roapmap for a release of C++Builder sooner than the next Delphi release is currently an unknown.

Hmm... it's a good thing we kept all that C++Builder code warm and on “hot standby” within the Delphi codebase ;-)...  So bring out the fatted calf, prepare the feast!  The prodigal son has returned!

26 comments:

  1. Thank you for this "addendum" to the Open Letter. While I am heartened by the fact that C++ Builder lives, I was disappointed by the brevity of the Letter we had all been waiting for. Your notes here make me realize why it was so short and why it was not as specific as I would like.


    In the end, though, this can only be good news. In my 26 years of programming, my most productive years have been since using C++ Builder. I am glad that this will continue (as I'm sure my employer is, too:-)

    ReplyDelete
  2. I think I speak for everyone when I say that *any* additional details, even if it's just conjecture, would be welcomed by all (and that's not just you, but anyone else at Borland). =) Hopefully the new levels of openness we've seen from the Delphi team will make it's way into the C++Builder side of things.


    ReplyDelete
  3. Congratulations to all the Borland Developers for making this happen. "It was the right thing to do."


    -d

    ReplyDelete
  4. This is indeed good news, Allen. Thanks to you and everyone at Borland who worked to make this happen.


    Some may be disappointed that BCB will live on only as a personality in BDS, but I see this as a very positive move. Finally, BCB will be on a level playing field with Delphi. I think this also offers BCB a better chance of long-term survival as it will surely be less expensive to maintain and evolve a BCB personality than it was to maintain and evolve the stand-alone product.


    I also see this as a positive for the Delphi community. The addition of BCB to BDS will surely make BDS a more powerful competitor in the development studio market.


    This announcement, in concert with the rather spectacular D2005 release and the opening lines of communication between Borland and its customers is regenerating the warm feelings I’ve had toward Borland for nearly 20 years. Good Job!

    ReplyDelete
  5. I'd love to see Win32 C++ added to D2005 rather than wait for D2006. I don't need .NET support. I don't need feature equivalence of all the new stuff in Delphi that requires language support to make it work. I just want a less buggy IDE.


    Also, please keep CodeGuard as part of the product.


    Also, I'd love to see better template support.


    Also, the one thing I really want that is probably not going to come automatically from moving to the latest BDS is better build configuration management. I do not like having to copy a project file to a different directory to get it to compile a different build configuration.

    ReplyDelete
  6. Great News!

    I'm really looking forward to it being released.

    Two items that I would like are a better debugger with support for debugging template contents (try debugging auto_ptr<> and list<> and see what you get - std::strings aren't much better). Also, as Randall says, the build configuration management could be improved. I use 4 builds in one project group and they are the same except for defines.

    ReplyDelete
  7. The Open Letter was very good news!

    I have absolutely no problems with C++Builder being merged with Delphi. In fact, I'd say it's a bonus for both products.

    But I have to say, I'm disapointed by Borland. You have to take care of your costumers if you want them to stick around.

    ReplyDelete
  8. That's *great* news. Congratulations! :)

    ReplyDelete
  9. I have been an exclusive user of the Borland C++ products for 10 years, even when management and my co-workers thought I was crazy for not using VC. (I still think they are crazy to use VC.)


    But this is great news for a different reason. If we can get C++ Builder *combined* with Delphi in the next release, it is the best of both possible worlds. That's what I want, a combined Delphi/C++Builder product that you use from a common IDE. Who knows, us old Turbo Pascal users may become Delphi converts. There is certainly a huge library of numerical methods source code in Delphi I'd like to tap.


    My main reason for keeping in the Borland camp on C++ is that they care about ISO standard compatibility. This is the great thing about C/C++, it's about as cross platform in a language as your going to get, short of Java.


    Thanks Borland for listening to the users and your internal technical staff. C/C++ ain't dead yet!


    ReplyDelete
  10. Great :) i want a bug-free IDE , bug-free Compiler , bug-free VCL , and oolso BCB :) hope you got it ;)

    ReplyDelete
  11. That is great news for C++ builder and hope that borland release this new BCB product as soon as possbile. And hope borland consider Windows CE/.Net Compact Framework together in the next release (May be Developer Studio 2006)

    ReplyDelete
  12. That is good news for C++ builder and I hope that borland release this new BCB product as soon as possbile.

    I belive BCB does not need .Net dependency.

    BCB must be stand alone.

    ReplyDelete
  13. Great news! I've been programming with Borland for my entire 10 year career, starting with Turbo C++. You guys have had the best IDE and the only real RAD products for many years now. I have used C++Builder since its inception in 1997, and our Healthcare company has used it since C++Builder 3. Thanks to all at Borland who urged the continuance of this great product! Cheers!

    ReplyDelete
  14. Good news!

    How about VCL C++.Net?

    It would be fine :-)

    ReplyDelete
  15. Good news that Borland will continue with Win32 C++, CBuilder is a great tool, but as I see it at least this gives me more time to begin to transition my code base to VC++, while using BCB awhile longer.

    Borland has no real direction for this product, and I really think in the end I'll end up having to begin using VC++, I don't have anything again VC++, I just hate to give up on BCB, but the insecure future of this product makes it a mistake to continue with it.

    ReplyDelete
  16. Really great news that BCB will continue to support the VCL as part as the Delphi2005 suite. I was already looking at other IDE's.


    But what about the BuilderX line. Will this be abandoned completely or never have a GUI designer? I really liked the C++ standard compliance attempted originally but only if it is easy to design a GUI with it. This Open Letter is awfully quiet about BuilderX unfortunatelly.

    ReplyDelete
  17. Great news - I too had lost faith in Borland and was starting to dread the inevitable long port of a large code base to VC++.


    Can I put in a request for the long-overdue update#5 to BCB6? There are a lot of minor bugs, particularly in the IDE and debugger that make life more frustrating than it should be. I'm sure they've already been fixed in the Delphi IDE so it can't be too hard to find and apply the fixes... This would be a great first move to rebuild trust with Borland's customers.


    My priorities for BCB7 would be:


    1. Less bugs (or at least a committment to fix identified bugs quickly).


    2. Faster release executables.


    3. Faster debug builds (I don't care if the optimized release builds are slower).


    4. Code-completion tools that are usable in large projects.


    I'm happy for wait until BCB8 for .NET support.

    ReplyDelete
  18. And what about Kylix ?

    Another dead product...

    ReplyDelete
  19. I like my CppBuilder6 but it is not "State of the Art" anymore -- and more important no more fixes and upgrades :-(

    How can I convince a contractor to use CppBuilder for a project? When Borland does no active support with fixes?

    My investment in CppBuilder (and Kylix by the way) is rotting away...


    C++ within the Delphi-IDE is ok for me. I like the Borland IDEs much better than the other ones. Cross-language projectes are fine also.


    Please Borland, more open development! Give us betas, rc1, rc2, rcX and update VCL and compiler (for fixes!) more often. To publish a beta for an update is ok (as long as I can remove the beta!) -- this is the right step in the right direction. Let US test the code, if WE want! (I guess many of us are willing to test such updates, if this leads to more and faster updates! I for sure will do!)

    This Open Letter is very welcome.

    Now make the next step.

    ReplyDelete
  20. Congrats to Borland for finally coming through, even if it's just at the "intention / demonstrable progress" stage instead of "release".


    Other than simply doing a relatively bug free release, the only other thing that I really hope Borland supplies with this BCB in Delphi Solution is...


    Remote Debugging, Remote Debugging, Remote Debugging!


    I'd use WinDbg (and do for my drivers and other non BCB stuff), except it is incompatible with Borland stuff (and is likely to CONTINUE to be).


    Also, I hope that Borland notes that MS doesn't charge extra for WinDbg/KD.


    BTW: I've used TP/Delphi/BCB since TP 1.0 on CP/M. Not to say that I'd go back to OP, as I can't use it for embedded stuff or drivers, so I've decided to standardize on one (ok, two C/C++) languages just to keep my life simpler.

    ReplyDelete
  21. I use borland since turboc, and updated my tool since BCB1, 3, 4 and 6.


    In short, I am faithfull to borland since 80's.


    so please don't break my heart and my head.


    your lover from tropical paradise.

    ReplyDelete
  22. My big question is when will they release the Delphi with C++ Builder build in? In Delphi 2006 or sooner? Way to Go Borland for making that decision a reality soon.

    ReplyDelete
  23. Way to go with the decision to merge in one product BCB and Delphi.


    I just hope that articles and discussions in the (bdn) community including all its soap boxes would not only focus on Delphi code but with C++ Builder examples as well. Its as if that you want the C++ Builder customers to learn how to do stuff in Delphi first before they could learn how to do it in BCB.


    Doing so would probably improve your C++ market share.


    ReplyDelete
  24. Although I'm a Delphi dev, I just to see the

    day where borland dare to Build a Interbase version in their C++ Builder and get it work

    as fast it is in with MS VC++.

    Until v6, IB was build with MS compiler - which

    is a shame for a compiler maker in the level of Borland... When I see this, I could trust Borland about C++ future. Hey, I have developed some little things in VC and hated it... But it's runtime IS fast like the devil running from the cross......

    ReplyDelete
  25. Oh noes. You honstly beleive in that product you made there? Stop it. Stop developing it now before you upset the next generation of C++ developers.


    Let me give you some examples why I'll never ever tell my boss to buy a borland product again:

    It's a Ansi/ISO compliant compiler. I expect it's default to be ISO compliant, yet it's default behaviour is not compatible with any other compiler on the market.


    1.

    vclControl1->Enabled = vclControl2->Enabled = true; // error


    2.

    inline int foo(int a)

    {

    if (a<0)

    return 42;

    else

    return 0815;

    } // warning functions with for, while and multiple returns cant be inlined


    3.

    char c = 42;

    c = ~c; // warning loss of significant bits


    4.

    TObject x; // Error TObject must be allocated by new


    5.

    AnsiString

    // no C/C++ developer in the world will use a 1-based string class, yet you enforce them within VCL


    6.

    foo (const TControl *p)

    {

    bool b = p->Enabled; // warning enabled is not const (this has to be an error, guys!)

    }


    7.

    make project

    make project again

    binary compare both outputs -> they differ!


    8.

    make project

    -> linker error

    make project again (without any changes of any kind)

    -> ok


    9.

    TLabel *l; l->Caption = "";

    TEdit *p; l->Text = "";

    (Nice class hierarchy guys...)


    10.

    __property

    Good RAD tools don't need to extended the C++ language. They parse the code and know what it means.


    11. (long)

    the incompatibility between std::string/AnsiString sucked in may ways, so I decided to write this code:

    string& operator<<(string &s, const AntiString &r)

    {

    s=r.c_str();

    return s;

    }


    AntiString& operator<<(AntiString &s, const string &r)

    {

    s=r.c_str();

    return s;

    }


    It's easier to use "<<" than "... = ...c_str()", I though.

    But guess what, this didn't work for:

    TLabel *p;

    p->Caption << std::string("");


    And why? Well, I know it... because of reason 10. However, what I did there IS C++ an it IS valid code. ... but not for Borland...


    I think I should stop now.

    It'll be deleted anyway, however... the program I wrote with Builder is 700k code + 160k dfms. It's small, I know. I'd never ever recommend builder to anyone. Not even for 1000-liners.


    Rant End.

    ReplyDelete
  26. Is that the end of story ?

    Of course not, there will be always people that will be unhappy about something.In fact most of the things the guy was talking about happened due to Pascal nature of the VCL.If you can't get over those things go write MFC applications and rant on their forums.VC++ 6.0 isn't a primer of what a pure ANSI/ISO compiler should be.I hope you don't like/use STL...

    C++ Builder is the most universal tool availible in the Win32 world.

    Delphi code/components , VCL itself, MFC , STLport , lots of database engines(Borland/MS),It's the only true C++ RAD out there.Use AnsiStrings, C kind char arrays,or std::string. Use StrToInt , atoi ,

    AsniString.ToInt() or std::string.toint() - the choice is yours, no need for bitching around.

    I would like to see a linker that accepts COFF as well as OMF lib/obj formats, in the future C++ Builder releases.

    ReplyDelete

Please keep your comments related to the post on which you are commenting. No spam, personal attacks, or general nastiness. I will be watching and will delete comments I find irrelevant, offensive and unnecessary.