Thoughts on Using C#.NET or Borland's C++ Builder 6?


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 5 of 5

Thread: Thoughts on Using C#.NET or Borland's C++ Builder 6?

  1. #1
    Dan Guest

    Thoughts on Using C#.NET or Borland's C++ Builder 6?


    All,

    I am undertaking a project in my "free time." At this point, I have all of
    the database tables and object design ready to go. However, I have a bit
    of a dilema. What development tool do I use?

    Looking at Borland's C++ Builder 6, it has a lot. First, the data access
    method I'm looking at using compiles right into the exe. Second, it compiles
    to a standalone exe - no ActiveX controls or DLLs required. Third, some of
    my test exes compile to about 1.2MB; they compress to 700KB. Yes, this is
    not the final exe. However, it is useful as a comparison to other tool's
    redistribution requirements. The bad aspect is in the "outside" world, there
    is little demand for C++ Builder developers.

    Moving over to C#.NET, it has (last I heard) a 20 MB runtime. With this,
    how does one convince potential customers, some on slow connections, to download
    my program? Yes, the runtime will eventually get out there to everyone. However,
    some people stuck on Windows 95 will never be able to use my application.
    Also, my informal observation has been C# is slower than C++ Builder. The
    plus here is gaining more experience with .NET; this will improve my career
    prospects.

    I was wondering if anyone had any thoughts or comments. I do not wish to
    start a religious war over which tool is better. I'm looking more for which
    tradeoffs seem more palatable.

    Thanks,

    Dan


  2. #2
    Michael Q. Gautier Guest

    Re: Thoughts on Using C#.NET or Borland's C++ Builder 6?


    I just recently dealt with this issue on some level.

    I've been building this batch processing system for the last few months.
    It accepts xml files (ranging between a few kilobytes to well over 50MB with
    the average being 5MB), validates them, creates output files and stores the
    input file data and output file data in an Oracle Database. I am using C#.NET,
    Windows Services, etc.,

    This was by first real backend project since I've only been doing web development
    in the 4 years I've been a professional programmer. So after several initial
    tests the application was processing 5MB files in about a 4 hours on my workstation
    (733MHZ, 256MB). So over 2 weeks I eliminated most file IO, reduced xml parsing,
    consolidated assemblies, etc. Anyway, I was able to get it (5MB files) down
    to 5 minutes (Dual 1.2GHZ, 3GB) on a single thread. Anyway, I learned alot
    about backend system development, performance and building scalability into
    the application.

    My bosses were wondering how can they get even more performance, I started
    telling them about thread pools and Managed C++.NET and they gracefully conceded.
    In any event, I do think that for application components that have to run
    at the topmost speed, C++ should be considered first rather than second.
    I would advocate C#, Java, and VB.NET in most cases for reasons of productivity
    and reduced complexity and in cases where highest performance and scalability
    isn't the top goal or #1, #2.

    According to Microsoft, the Visual C++.NET compiler creates the most effecient
    managed code. Second, C++.NET is the way to make applications that have a
    greater degree of code control between native and CLR managed code. I would
    go further to say that C++ should be in the arsenal of any supposedly top
    end developer or those working nearer the higher range of technical leadership
    on projects. For most other stuff, however, I have found C# to be more than
    sufficient. Things like forms (web/windows), background services, web services,
    etc. In general, I would reserve C++ for those specific components that require
    higher speeds and machine level capabilities, not for the overall software
    base or application architecture.

    Admittedly, I was looking at C++ Builder just last weekend, but I have decided
    that for Windows based development, Visual Studio and by extension, C++.NET
    is much more applicable. However, if Linux, Unix, BSD, etc is and option
    then I would weigh much more in the direction of C++ Builder or JBuilder.


    .NET does require a 20MB runtime and the only way I could sell it is based
    on the benefits in both "deployment" and "capability" of ".NET smart clients".
    If your customer is not concern in "both" of those capabilities, then they
    may be inclined toward either thin client web applications or something else.
    Whatever the case, if the user base of the application is well under internet
    usage numbers, then the .NET smart clients are actually a better options
    since they give you both the updateability of the web and the richness of
    a desktop application.

    I've done compiles of C++.NET code (native and managed) and have compared
    it to C#.NET code and yes, C# is slower, but that is to be expected since
    its Intermediate Language Code is not as effecient as the C++ version and
    that native C++ is just faster. However, like I've discovered, you can overcome
    the potential performance bottlenecks in C# through best practices and research.


    I haven't done C++ programming in a professional capacity so I do not share
    the horror stories of those that have and ran to VB as a result. I still
    don't understand that. I got my real start (after a year of maintenance work)
    when a C++ programmer (Mechanical Engineer) gave me a chance to do higher
    level work. He was very, very technical and seemed quite masterful in his
    ability to quickly turnaround mission critical e-commerce components (and
    write backend systems). He was joined by two other C++ developers who performed
    in the same way. My team and I were ASP/VB/SQL developers then (they still
    are), but I've come full circle and see the benefit of C++ and the mentality
    expressed by those who apply it.

    I would say that the following are considerations between C# and C++:

    C# and C++ is likely to remain language stable over the course of time.
    I base this on the fact that most C++ code/projects written in Visual C++
    6 will open right up in Visual C++ 7 and that C#'s status as an ECMA standard
    may make is less suceptible to changes. Further, C++ look little different
    than the C I've seen and C#/JavaScript looks little different from the C++
    and Java I've seen as well. Think about how much Java has remained relatively
    the same compared to versions of VB.

    C++ has a proven track record regarding performance and scalability when
    in the hands of a capable professional.

    Majority of .NET Framework classes and pilot/early .NET applications are
    written in C#. The remaining part of .NET are written in C++. I downloaded
    the published CLI code and was able to verify this among other things.

    On Windows, C# is a good alternative to C++ in the area of business applications
    that have to be delivered more quickly and consistently (mainstream code)
    and maintainably. Also, if you ever had to move parts of the application
    into C++, it is likely that you can copy and paste the source code of the
    "to be replaced" components into a C++ project and further "C++ asize" it.


    To paraphrase C#'s creator, "C# does for components, what C++ did for objects".


    C++.NET is currently the only language in Visual Studio where you can build
    native COM components in the IDE as well as seamlessly mix native and managed
    code within the same source.

    C++ Builder has Linux in its immediate future and thus would be a boon
    to those directing development to the OS platform. C++ Builder has more code
    creation features than Visual Studio .NET. C++ Builder looks like it would
    generate faster code than C#. C++ Builder (last I remember with version 3)
    has a visual builder. The C++ component of .NET doesn't have that (you still
    have to do it by hand).

    For Windows applications, C# will allow you to use a well designed language
    to quickly and consistently deliver results and functionality at the tradeoff
    of a runtime layer (small as that layer may be).

    In conclusion, I'd say there is very little to consider in C++ versus C#,
    it ultimately reverts back to a matter of need and objective.


    .NET Performance Tips:

    http://msdn.microsoft.com/library/de...etperftips.asp

    http://msdn.microsoft.com/library/de...asp?frame=true



  3. #3
    simon Guest

    Re: Thoughts on Using C#.NET or Borland's C++ Builder 6?


    Dan,

    I am not trying to start a flame war here, but I really cannot think of anything
    that is worthwhile to build to run on Windows 95. Especially when you want
    to "improve your career prospects". =)

    Anyhow, if your application has to run on multiple platforms, go with C++
    Builder (you don't have a whole lot of choices). Otherwise, tell your clients
    to move on to the 21st Century and use C#. The "evil" Microsoft Empire is
    not going to fall (as many might wish, ha), and C# is the centerpiece of
    .NET. Again, it will be good for your "career prospects".

    Hope this helps.

    simon.


    "Dan" <Dan@spmmfree.com> wrote:
    >
    >All,
    >
    >I am undertaking a project in my "free time." At this point, I have all

    of
    >the database tables and object design ready to go. However, I have a bit
    >of a dilema. What development tool do I use?
    >
    >Looking at Borland's C++ Builder 6, it has a lot. First, the data access
    >method I'm looking at using compiles right into the exe. Second, it compiles
    >to a standalone exe - no ActiveX controls or DLLs required. Third, some

    of
    >my test exes compile to about 1.2MB; they compress to 700KB. Yes, this is
    >not the final exe. However, it is useful as a comparison to other tool's
    >redistribution requirements. The bad aspect is in the "outside" world, there
    >is little demand for C++ Builder developers.
    >
    >Moving over to C#.NET, it has (last I heard) a 20 MB runtime. With this,
    >how does one convince potential customers, some on slow connections, to

    download
    >my program? Yes, the runtime will eventually get out there to everyone.

    However,
    >some people stuck on Windows 95 will never be able to use my application.
    >Also, my informal observation has been C# is slower than C++ Builder. The
    >plus here is gaining more experience with .NET; this will improve my career
    >prospects.
    >
    >I was wondering if anyone had any thoughts or comments. I do not wish to
    >start a religious war over which tool is better. I'm looking more for which
    >tradeoffs seem more palatable.
    >
    >Thanks,
    >
    >Dan
    >



  4. #4
    Dan Guest

    Re: Thoughts on Using C#.NET or Borland's C++ Builder 6?


    Simon,

    I appreciate your insight. Unfortunately, my target customers are "technically"
    challenged. To give an example, when I visited one of my target customers,
    they handed me a printout that was ASCII text. It looked like something I
    could have created in Turbo Pascal or QuickBasic in the 80's. Yes, they were
    using Windows 95. After discussing this with friends and relatives who work
    in this field, they confirmed these businesses do not "keep up."

    I think here, it may be best to side with Microsoft and build for today and
    tomorrow. Here, the initial opportunity cost is losing some customers on
    Windows 95 and those unwilling or unable to download the .NET runtime. However,
    the long term advantage is it is built with the latest technology and it
    arguably makes the product more viable in the future.

    Just out of curiosity, if you had to guess, how long will it take for end
    users to have the .NET runtime on their 98, ME, NT, XP machines?

    Example

    9/2002 50% of all users have runtime
    12/2002 60% of all users have runtime
    3/2003 70% of all users have runtime
    6/2003 80% of all users have runtime


    Dan


    "simon" <substring0NOSPAM@hotmail.com> wrote:
    >
    >Dan,
    >
    >I am not trying to start a flame war here, but I really cannot think of

    anything
    >that is worthwhile to build to run on Windows 95. Especially when you want
    >to "improve your career prospects". =)
    >
    >Anyhow, if your application has to run on multiple platforms, go with C++
    >Builder (you don't have a whole lot of choices). Otherwise, tell your clients
    >to move on to the 21st Century and use C#. The "evil" Microsoft Empire

    is
    >not going to fall (as many might wish, ha), and C# is the centerpiece of
    >.NET. Again, it will be good for your "career prospects".
    >
    >Hope this helps.
    >
    >simon.





  5. #5
    simon Guest

    Re: Thoughts on Using C#.NET or Borland's C++ Builder 6?


    Dan,

    Since your target businesses are technologically in the Stone Age (and I
    am not going to ask you what kind of businesses they are), maybe you should
    maintain a "classic" version to support them. This version will have minimal
    changes... maybe just a service pack or two. Meanwhile, you will develop
    a new version using C# (or whatever tools you decide).

    IMHO, once your clients have seen what the new software can do (in your demo
    session), they will change. Quite frankly, computers are dirt cheap nowadays.
    And if they are afraid of technologies, hey, I can see another money-making
    opportunity for you. You can set up training classes to bring them to the
    21st Century.

    It is part of running your own business, you have to be a good salesman.
    Make them realize what technologies can do for them, and it will open a
    lot of doors for you.

    As of how long it will take for users to adopt .NET, I could be dead wrong
    but I think it is pretty much up to the developers. If we can build great
    software in a short time frame (it is what Microsoft claims the .NET tools
    will help us to accomplish that, but yet to see) that can help the clients'
    business to grow (it should be the main reason for anyone to buy your software),
    they will upgrade whatever they need to upgrade to handle the .NET framework.
    If we the developers fail to achieve that goal, there is no reason for anyone
    to upgrade their system.

    Just my $0.02.

    simon.


    "Dan" <DAn@danthemanspam.com> wrote:
    >
    >Simon,
    >
    >I appreciate your insight. Unfortunately, my target customers are "technically"
    >challenged. To give an example, when I visited one of my target customers,
    >they handed me a printout that was ASCII text. It looked like something

    I
    >could have created in Turbo Pascal or QuickBasic in the 80's. Yes, they

    were
    >using Windows 95. After discussing this with friends and relatives who work
    >in this field, they confirmed these businesses do not "keep up."
    >
    >I think here, it may be best to side with Microsoft and build for today

    and
    >tomorrow. Here, the initial opportunity cost is losing some customers on
    >Windows 95 and those unwilling or unable to download the .NET runtime. However,
    >the long term advantage is it is built with the latest technology and it
    >arguably makes the product more viable in the future.
    >
    >Just out of curiosity, if you had to guess, how long will it take for end
    >users to have the .NET runtime on their 98, ME, NT, XP machines?
    >
    >Example
    >
    >9/2002 50% of all users have runtime
    >12/2002 60% of all users have runtime
    >3/2003 70% of all users have runtime
    >6/2003 80% of all users have runtime
    >
    >
    >Dan
    >
    >
    >"simon" <substring0NOSPAM@hotmail.com> wrote:
    >>
    >>Dan,
    >>
    >>I am not trying to start a flame war here, but I really cannot think of

    >anything
    >>that is worthwhile to build to run on Windows 95. Especially when you

    want
    >>to "improve your career prospects". =)
    >>
    >>Anyhow, if your application has to run on multiple platforms, go with C++
    >>Builder (you don't have a whole lot of choices). Otherwise, tell your

    clients
    >>to move on to the 21st Century and use C#. The "evil" Microsoft Empire

    >is
    >>not going to fall (as many might wish, ha), and C# is the centerpiece of
    >>.NET. Again, it will be good for your "career prospects".
    >>
    >>Hope this helps.
    >>
    >>simon.

    >
    >
    >



Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center