Results 1 to 11 of 11

Thread: Why people prefer VB.NET or C# instead of Delphi?

  1. #1
    Addicted Member
    Join Date
    May 07
    Posts
    225

    Question Why people prefer VB.NET or C# instead of Delphi?

    I have read a lot and still can't understand why people prefer VB.NET or C# instead of Delphi? And why Delphi is losing popularity?

    1) Delphi is easy to understand (not like C++ or ASM).
    2) Because it is easy to understand, you can reduce coding time and build applications faster (not like C++ or ASM).
    3) Delphi has less limitations than VB.NET or C#.
    4) Delphi is not .NET based.
    5) Applications written in Delphi runs faster than VB.NET or C# applications.
    6) It is much harder to decompil Delphi applications, not like VB.NET or C# applications.

    At the moment I think that Delphi is something between C# and C++ or maybe I'm totally wrong?

    Delphi isn't Microsoft product, is it the case why people prefer VB.NET or C# instead of Delphi?

  2. #2
    Loquacious User Shaggy Hiker's Avatar
    Join Date
    Aug 02
    Location
    Idaho
    Posts
    20,390

    Re: Why people prefer VB.NET or C# instead of Delphi?

    Delphi has MASSIVELY less exposure than any .NET language. That, alone, might be the cause of the choice. There are plenty of Microsoft shops out there, and TONS of .NET jobs out there, but how many Delphi shops are there, and how many Delphi jobs?

    Throughout history, especially tech history, it has not been the case that the best competitor always won, so you need look no farther than that. However, I would address your points like this:

    #1) Delphi is easier to understand than ASM? I should bloody well hope so. There's a reason that ASM is not a very popular language for RAD. The same could be said, to a lesser extent, about C++. Both of those languages are all about speed and not so much about ease of use. Delphi was never intended to be a head to head competitor to either.

    #2) Again, so what. Why would you compare development time to either C++ or ASM. If you are writing in either of those languages, development time is not a driving interest. You are generally after the absolute fastest possible speed....or you are writing low level device drivers.

    #3) Like what? Less limitations? How about fewer opportunities to get paid for your efforts? That seems like the biggest limitation driving most of this, but I'd be interested to hear what other limitations you see that .NET languages have that Delphi doesn't have, other than the next three points you list.

    #4) How is that a benefit? Delphi isn't pasta based, either, but that just means that I don't intend to try it with spaghetti sauce and cheese.

    #5) Can this be compared accurately, or is it just marketing hype? Has anybody ever written a well-coded app in both Delphi and one of those .NET languages? In the end, all languages end up as machine code. I'd be more than a bit surprised if you could make a blanket statement that one high-level language created better machine code than another high-level language, so where does this point even come from?

    #6) That's not a concern for 99% of people writing in .NET languages. Heck, it isn't even a concern for 99% of people writing in C++ or ASM. Most people write for internal apps (which have little concern for decompilation), hobbies (which have little concern for anything), trivial (it could be stolen, but who would bother), or other (such as me, where everything I write is technically public domain, so don't bother decompiling, just ask for the source code).


    Most people want to put food on the table, and aren't particularly partisan about the language they use. Quite often, it is the employer who tells them which language they will be using, and they have no particular reason to complain. Look at the fact that C# developers, on average, earn more than VB.NET developers. Considering that the two languages create the same IL, and the languages have almost entirely converged, by now, there is no rational reason for this disparity, yet it persists, and because it persists, there will be an emphasis on C# simply because you can make more cash that way.

    Another point you might consider is: What is the cost for a Delphi development environment. Both C# and VB have pretty complete free versions available, so the cost of learning, trial, and even real use, can be $0. What is it for Delphi?
    My usual boring signature: Nothing

  3. #3
    Addicted Member
    Join Date
    May 07
    Posts
    225

    Re: Why people prefer VB.NET or C# instead of Delphi?

    • Delphi's compiler generate Native Code that's mean more speed no JIT (just-in-time compilation).
    • VB.NET and C# depends greatly on .NET framework, anything that is not found in the .NET framework will be difficult to implement. Delphi doesn't require a huge framework to be installed for applications to work. Your compiled result is your application.
    • Delphi binds its RTLibraries (very light ones) directly to WinAPI (which essentially does .Net as well but on one more additional-managed layer).
    • More power with semi-manual memory management (which in many cases is a plus, where on .Net side GC (garbage collector) does not allow you enough freedom or flexibility, apart being non-deterministic in lot of situations...).
    • In C#, all the 3rd party components have to be included and some even have to be registered in the GAC (That on its own is a problem).
    • In .NET for example, you just never know when the GC (garbage collector) will trigger or if a framework update will break your code/security causing your application to no longer work.


    P.S. Not everything is about the money.

  4. #4
    PowerPoster techgnome's Avatar
    Join Date
    May 02
    Posts
    21,636

    Re: Why people prefer VB.NET or C# instead of Delphi?

    Delphi hasn't exactly had the best of histories... changing ownership several times... there was more than once when it's future was in doubt. And that's probably what did it in. The other aspect about it, is what shaggy mentions... cost of entry... I'd love to get into Delphi - I cut my teeth on Pascal, it's predecessor - but I don't have the money to plunk down on an IDE just to play with it.

    -tg

    edit - ps - sometimes yes, it is all about the money....
    * I don't respond to private (PM) requests for help. It's not conducive to the general learning of others.-I also subscribe to all threads I participate, so there's no need to pm when there's an update.*
    *Proof positive that searching the forums does work: View Thread *
    * How to get EFFECTIVE help: The Hitchhiker's Guide to Getting Help at VBF - Removing eels from your hovercraft *
    * How to Use Parameters * Create Disconnected ADO Recordset Clones * Set your VB6 ActiveX Compatibility * Get rid of those pesky VB Line Numbers * I swear I saved my data, where'd it run off to??? *
    * Use Offensive Programming, not Defensive Programming. * On Error Resume Next is error ignoring, not error handling(tm).
    "There is a major problem with your code, and VB wants to tell you what it is.. but you have decided to put your fingers in your ears and shout 'I'm not listening!'" - si_the_geek on using OERN

  5. #5
    Fanatic Member BlindSniper's Avatar
    Join Date
    Jan 11
    Location
    South Africa
    Posts
    865

    Re: Why people prefer VB.NET or C# instead of Delphi?

    Well, I'm 16 Years old and have been programming in delphi 7(last unmanaged version ?) at school and vb.net at home, so I think I'm a good person to compare them.
    • First of all, the .net standard library dwarfs anything delphi can muster
    • Declaring all the variables at the top of a procedure is not logical, and makes code harder to read.
    • The IDE is ****
    • Debugging is a pain I.E. Very vague error messages. No code highlighting or indentation. Exceptions are also not very informative.
    • The only thing I like about delphi is it's windows(module/class) because it contains almost all windows API declarations.

    Useful CodeBank Entries of mine
    Expand Function
    Code Compiler
    Sudoku Solver
    HotKeyHandler Class

    Read this to get Effective help on VBForums
    Hitchhiker's Guide to Getting Help at VBF

  6. #6
    Addicted Member
    Join Date
    May 07
    Posts
    225

    Re: Why people prefer VB.NET or C# instead of Delphi?

    Quote Originally Posted by BlindSniper View Post
    Well, I'm 16 Years old and have been programming in delphi 7(last unmanaged version ?) at school and vb.net at home, so I think I'm a good person to compare them.
    • First of all, the .net standard library dwarfs anything delphi can muster
    • Declaring all the variables at the top of a procedure is not logical, and makes code harder to read.
    • The IDE is ****
    • Debugging is a pain I.E. Very vague error messages. No code highlighting or indentation. Exceptions are also not very informative.
    • The only thing I like about delphi is it's windows(module/class) because it contains almost all windows API declarations.
    But what about Delphi XE2 ?

  7. #7
    PowerPoster techgnome's Avatar
    Join Date
    May 02
    Posts
    21,636

    Re: Why people prefer VB.NET or C# instead of Delphi?

    Must be nice to have a job that pays well enough that you can afford to play around with something like that... I looked at the price of it... geezes! It's no wonder Delphi can't gain any traction... it's only for the big boys...

    -tg
    * I don't respond to private (PM) requests for help. It's not conducive to the general learning of others.-I also subscribe to all threads I participate, so there's no need to pm when there's an update.*
    *Proof positive that searching the forums does work: View Thread *
    * How to get EFFECTIVE help: The Hitchhiker's Guide to Getting Help at VBF - Removing eels from your hovercraft *
    * How to Use Parameters * Create Disconnected ADO Recordset Clones * Set your VB6 ActiveX Compatibility * Get rid of those pesky VB Line Numbers * I swear I saved my data, where'd it run off to??? *
    * Use Offensive Programming, not Defensive Programming. * On Error Resume Next is error ignoring, not error handling(tm).
    "There is a major problem with your code, and VB wants to tell you what it is.. but you have decided to put your fingers in your ears and shout 'I'm not listening!'" - si_the_geek on using OERN

  8. #8
    Addicted Member
    Join Date
    May 07
    Posts
    225

    Re: Why people prefer VB.NET or C# instead of Delphi?

    Quote Originally Posted by techgnome View Post
    Must be nice to have a job that pays well enough that you can afford to play around with something like that... I looked at the price of it... geezes! It's no wonder Delphi can't gain any traction... it's only for the big boys...

    -tg
    Yes, I agree, looking from financial side it is disadvantage...
    But what you think about technical side of Delphi comparing it to C# or VB.NET ?

  9. #9
    Fanatic Member BlindSniper's Avatar
    Join Date
    Jan 11
    Location
    South Africa
    Posts
    865

    Re: Why people prefer VB.NET or C# instead of Delphi?

    I See Delphi as stuck between two worlds, can't develop applications as fast as vb.net, and it is also slower than C++ or ASM, so why is it here ?

    Useful CodeBank Entries of mine
    Expand Function
    Code Compiler
    Sudoku Solver
    HotKeyHandler Class

    Read this to get Effective help on VBForums
    Hitchhiker's Guide to Getting Help at VBF

  10. #10
    Addicted Member
    Join Date
    May 07
    Posts
    225

    Re: Why people prefer VB.NET or C# instead of Delphi?

    Quote Originally Posted by BlindSniper View Post
    I See Delphi as stuck between two worlds, can't develop applications as fast as vb.net, and it is also slower than C++ or ASM, so why is it here ?
    I think that coding time with Delphi is somewhere between VB.NET and C#.

    Talking about application speed Delphi is slower than C++, but faster than VB.NET or C#.

  11. #11
    Loquacious User Shaggy Hiker's Avatar
    Join Date
    Aug 02
    Location
    Idaho
    Posts
    20,390

    Re: Why people prefer VB.NET or C# instead of Delphi?

    If you are in .NET, application speed isn't your primary concern. If speed is your concern, then C++ is a better language. After all, if that is your criteria, why settle for a half measure?

    You initially asked why people prefer .NET or C# to Delphi, and that was what I was answering. I have written in C++, VB6, and .NET (along with a few strange, proprietary, languages). I haven't tried Delphi, and based on the price TG alluded to, I don't think I ever will. After all, my job is in .NET, so that's what I will be using for work, and it isn't up to me. Does that mean that I prefer .NET? No, it doesn't really mean anything, nor can I even compare to Delphi, but neither can I justify buying it, since it would have to come out of my own pocket and only be for hobby/personal use. That's probably what drives most people. Arguing about the merits of a language are pointless if you don't get to choose which language you use.

    As for my hobby, which is robotics, what tools does Delphi have for interfacing with robots? MS has the Robotics Lab (which I haven't used), and there is an excellent robotics brain that has a robust library of .NET classes for interacting with it. Given that the tools are .NET, would it make any sense to use a different language?

    However, let me mention, again, my reply to point #5: How are you testing performance? What test would you cite to show that a well coded Delphi app runs faster than a well coded .NET app? I can think of one obvious test, because I don't like the way that .NET performs integer addition, which Delphi may very well do better, but that's an extremely narrow test. Don't go on about JIT, either, because the compiled code is compiled. The cost is paid only once, not every time you run the program.
    My usual boring signature: Nothing

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •