Nick Hodges

Best Language for .Net?

29 Aug

This guy wants to know which is better:  C# or VB.NET.  I think we can provide an alternative choice, can’t we?  ;-)

35 Responses to “Best Language for .Net?”

  1. 1
    Sebastian Ledesma Says:

    Done!

  2. 2
    Steve Teixeira Says:

    You mean C++/CLI, right? ;)

  3. 3
    Nick Hodges Says:

    Sorry it took me so long to comment back, Steve, but I had to re-attach my ass, as I had laughed it off.

    ;-)

    Nick

  4. 4
    Kent Mrowath Says:

    C#, no doubt. But if we speak about native RAD development…

  5. 5
    David Berneda Says:

    The best language for .Net will come soon to earth after a nice and High Landing. :-)

  6. 6
    David Clegg Says:

    I found the following response to be interesting :-

    "I started .NET development as a C# programmer and wrote C# code for 4 years. I did a little VB.NET but really hated the language style. Today Delphi is my language of choice for Win32 and .NET development." - Kirby Turner (http://www.whitepeaksoftware.com)

    It’s not often you hear of people starting out their .NET development in C# or VB.NET then migrating to and preferring Delphi for .NET. It would be very interesting to hear exactly what Kirby preferred about Delphi for .NET, and I could well imagine his story would sit nicely on marketing material too.

  7. 7
    Duncan Says:

    Not Delphi for sure :-(. I recomend against it on big projects after using it for the last two+ years.

    Borland (DevCo) need to raise the bar IDE (stability and peformance) and version control integration wise. 7 below par, 8 crap and waste of money, 2005 did not use extensively but little better than 8, 2006 are using and on par with 7 so there is a glimmer of hope. But where is .Net 2.0 support, and delegates? I want to use Generics too!

    Come on DevCo!

  8. 8
    C Johnson Says:

    C# was the language dotNet was designed around and for. VB.Net was adapated to it, making it a runner up - it has all the features, but carries only old problems and baggage.

    Delphi was also, poorly, adapted to it. Yes, I said poorly. Don’t bother attacking me for it, the Delphi adapatation has numerious weaknesses from namespace implementation to version support. The version support alone removes Delphi as a contentor completely when you evaluate what language is best for dotNet.

    Sadly, the roadmap as laid out so far does nothing to address these problems.

    So, if you want to keep using the OLD framework, Delphi.net will certainly get you there. If you want to use the newest framework and the newest features go get C# or VB.Net from MS, because you can’t get them from BDS.

    Kinda sucks as an advertizing statement for DevCo doesn’t it?

  9. 9
    Nick Hodges Says:

    C Johnson –

    Sorry, but’s false that .Net was designed around and for C#. .Net is designed to be language neutral. Here’s a quote from

    http://msdn.microsoft.com/netframework/programming/fundamentals/default.aspx

    The Common Language Runtime (CLR)

    A language-neutral development & execution environment that provides services to help "manage" application execution

    If you want to argue with Anders Hjelsberg, Brad Abrams, and the rest of the CLR team on this point, please feel free to do so.

    Obviously, I don’t agree that the Delphi implementation is "poor". It’s different than C#, yes, but of course, that hardly qualifies it as "poor".

    And my dream to hear a post from you that doesn’t sound like it came fom the Grinch lives on.

    Nick

  10. 10
    grant allan Says:

    For a software engineer, learning new stuff is part of the game. This makes "Best Language" not such a big part of the issue, as learning a new language is not such a big deal in the overall picture. A more important question might be which is the most productive IDE when writing for .Net - the answer to that question is determined in part on whether the product crashes multiple times every day.

  11. 11
    Eber Irigoyen Says:

    as much as I love Delphi I have to be realistic, Delphi is not the best language for .NET, if you had to chose one language right now it would probably have to be C#, Delphi is not a first class citizen in .NET, it is the king of Win32 we all know that, but .NET is a whole different story

    (&begin, &end anyone?)

  12. 12
    Diego Barros Says:

    I agree with C# being the first choice. Especially given that Delphi’s support for the latest versions of .NET is (and always will be?) lagging behind C#.

  13. 13
    Theodore Dennis Says:

    I put out a post on the aforementioned blog from Nick. On the subject of languages, .NET is not about languages. I have heard it said that with .NET the language wars are over. Now, I personally have a problem with C#. What it boils down to for me is the fact that you take .NET away from C# and it falls flat on its face. I don’t know if this is a Microsoft rule for anyone that wants to write a C# IDE, but that is a problem to me. You take the Delphi Language away from .NET, and you still have the choice of Win16/Win32/Linux. I much, much prefer to choose a language that gives me the flexibilty of platform while not having the intimidation factor that C++ carries for me.

  14. 14
    bee Says:

    Agree with Theodore. My company policy to support .Net is also in very low priority. Instead, Un*x platforms are on higher priority, including MacOS. Windows is still very functional without .Net, so why we need it then? :P

  15. 15
    C Johnson Says:

    Theodore -> That is perhaps the most spurious argument I have every heard. If you take anything’s ecosystem away, it’s litterally a fish out of water.

    To extend that metafore, just because Delphi can tread dotnet waters doesn’t make it the best swimmer.

    In fact, you could EASILY adapt C# to win32 if you were so inclinded. But just as Delphi’s deterministic destruction goes away in dotNet’s garbage collected environment, C# would have to adopt deterministic destruction, and indeed, it already has a mechanism will suited for that (just move IDisposable down to the base object like Delphi has). The language would be just as suited to Win32 development at that point.

    The claim that dotNet is not about languages really only holds for integration barriers. You can easily mix 2 well implemented, first class dotNet language products without a problem because of the common library and common type system. Unfortunately, Delphi already has implementation problems (namespace, depending on extra core libraries) AND it isn’t even playing in the same playground anymore - dotNet 2.0 vs dotNet 1.1/1.0.

    The only thing that simply can’t be argued here is that Delphi is falling further and further behind in the dotNet world. By the time dotNet 2.0 finally gets added, DevCo’s Xaml designer support will be so far behind MS’s support that their litterally will be no real to ever want to touch it again for a dotNet product.

    This is one of the reasons I saw Delphi having a better chance being sold to MS than anyone else. Sadly, that hope is long since been extinguished and we’ll just have to hope DevCo realizes it sooner and later and diverts all their efforts into creating the best win32 compiler they can rather than wasting resources trying to create the second or third best out of date dotNet compiler.

    Honestly, Delphi.Net died the moment Microsoft was explicitly excluded from buying it.

  16. 16
    Andrei Gerasimenko Says:

    Delphi .NET is marketed as the way to compile the same application to both .NET and Win32. How can anyone expect it can be the best for .NET it it is not designed to be the best for .NET?

    I wonder why C++ looks funny. In VS 2005, the .NET stuff finally looks like a natural part of the language. All Delphi "preserve your investment" bla-bla holds for C++. It can mix all .NET with all Win32. Maybe a bit too complex for a beginner, but why funny?

  17. 17
    Fritz Huber Says:

    C++/CLI is simply awesome, if you are coming from a C++ background and need to mix native and .NET for whatever reason. Very easy to use and very powerful.

  18. 18
    wpSlider Says:

    Agree with others that state that Delphi is not the best language for .NET. It definitely isn’t.

    I judge the worth of a language (for .NET) by the type of code it looks like when represented in MSIL.

    I rate in the order of C#, VB (with strict option ON) and Delphi.

    C++/CLI generates horrendous MSIL unless compiled with the /clr:safe command IMO.

    Delphi (the language) has awesome features and with the capability of producing code that compiles natively makes it FOR ME the Best language for .NET.

  19. 19
    Diego Barros Says:

    I agree with Fritz. C++/CLI is great in the latest release. Mixing managed and unmanaged code in this release is friggin’ sweet! :)

  20. 20
    Pete Goodwin Says:

    I’d say C#. Delphi.NET is still V1.1 not V2.0, same with C# builder.

  21. 21
    JavaMan Says:

    Why not C++Builder for JVM? It would be a nice choice.

  22. 22
    DANILO ZANAGA Says:

    The best languege is that one wich you’re best on implementing it - or the one you’re most famiiar with. Even its VB.NET, C# or Delphi .NET - Personally i love delphi, since 1996 !

  23. 23
    John Emery Says:

    Looks like DevCo has a challenge. Is is not true that the issues raised here are part of the reason that Borland set DevCo free? We use Delphi for Win32 and C# for .NET development. The new ‘company’ gives us hope for Delphi. But improvements must be ‘high’ in quality and features.

  24. 24
    Ken White Says:

    C Johnson,

    Everywhere I run across you, you do nothing but spout nonsense and spread FUD. If you’re so set against Delphi, why do you still post about it everywhere? Why waste your time (and ours) writing about something you so obviously detest?

    Do yourself (and the rest of us) a favor and just go away. You’ll be much happier and have so much more time on your hands to use in kissing MS’s butt.

    Ken

  25. 25
    David Howes Says:

    What do you mean by ‘Best’ ?. The language which:

    1. allows you to write the least lines of code to accomplish a task?

    2. that a C++ coder can understand the fastest.

    3. that results in the fastest executable without profiling and optimisation?

    4. that can be easilly deployed on the greatest number of platforms (not talking OS’s here, I mean web, desktop, mobile etc) Or

    5. the language that is most accesable and the one you get the feeling you can trust?

    I think that the answer is that points 1 to 4 SHOULD always be taken into account, but point 5 WILL always be taken into account; with this in mind I think that Borland/Devco needs to be doing much more to make the language accessable. I went into Waterstones in the U.K. today (biggest national bookseller in the U.K.) and there were at least 10 books about .NET platforms all of which included the express version on C.D. some of which were published by Microsoft. True, Devco is going to have a hard time doing this, but how about links from the IDE welcome page that provide sample applications? How about sending boxes of CD’s to universities to hand out at the start of courses, that contain Turbo Delphi .Net. along with tutorials? What about sponsored articles in magazines (’Learn .NET the easy way with Delpi).

    What concerns me about Devco’s current approach with all the retro stuff on the turbo web site etc, is that they are largely preaching to the converted and maybe trying to be a little too clever and trying to do the equivalent of creating a cult. I am not sure that lots of effort into ‘clever’ advertising and marketing is key with a product that a lot of new developers haven’t even heard of. I think it’s more about (after fixing the performance and stability, actually mainly stability, issues ) high-visibility high-volume advertising and giving people to chance to see for themselves how great Delphi is. I mean think about why Java was so popular so soon after its release? I remember lots of us at University considered it to be the ‘best’ language when we started learning programming; why? platform cross compatibility? I doubt it, it was never a requirement for coursework. Performance? yeah right!. the number of lines of code needed? No, you’d typically need to write more actual code than with Visual C++ or VB. So what made it the best? Basicaly it was the support from Sun, loads of high profile advertising that got you to the download site and some very good introductory documentation when you got there. With Delphi new developers currently need to go looking for a language they may not have heard of, download it, not knowing if it will fit their purposes or not and then go looking for introductory material (there may well not be a single book in their local bookstore). Yes there are introductory videos on the turbo site (good idea), but where does the new developer go from there? If nothing else there should be links to sites that will provide information, not just ‘here’s a bunch of links’ but a real explanation of why they should be going there and which of their objectives they can achieve. Also maybe Devco could talk to people like Marco Cantu etc about reproducing some of their basics material in a cut down Devco branded format for free distribution with reprocal links back to their sites, this would initially make Devco’s support a lot more credible than just web links and ultimately help to promote the real sense of community spirit attached to Delphi.

  26. 26
    David Howes Says:

    If you are a developer tasked with choosing a language and want a quick answer to the ‘which .NET language question’ above here goes:

    Delphi .NET will usually let you move accross from old versions of Delphi without too much trouble (basically it’s often just a recompile unless you are using third party components, in which case you may have problems);

    C# seems to be becoming the most popular .NET language and IMO gives you the best option of jumping ship to Visual Studio in future if you want to :-)

    Managed C++ is probably not the way to go unless you want to integrate legacy C++ code, and I bet that Microsoft aren’t as committed to it as some other languages either.

    VB.NET provides a relatively easy upgrade path from Visual Basic, but expect a learning curve as it’s definately not as seemless as the Delphi to Delphi.NET transition. Also if you know VB but not Delphi, bare in mind that a lot of VB developers think Delphi has quite a familiar feel to it.

    I guess J# is a possiblity if you are a Java Developer as well, although J# kind of misses the point in that it isn’t cross-platform unless you count Mono, and Mono and .NET compatibility is definately not something to count on.

  27. 27
    Diego Barros Says:

    David: Regarding Microsoft’s commitment to C++. I think that they truly are commited to C++, and managed C++.

    Just look at some of their blogs, and videos on Channel 9.

    C++ is the foundation of the operating system, office and a majority of their products. Even though .NET is touted as the great new thing, C++ is still their bread and butter. And of course when you have all that legacy code, C++/CLI is the way to expose it to the .NET world.

    Sure, a lot of application developers talk about .NET, some go all ga-ga over it. But were they to write something like, say, Windows Media Player today, I still doubt they would do it in something like C#. C++ is their language of choice for their products.

  28. 28
    MillKa Says:

    That easy:

    1) C#

    2) C++/CLI

    3) Delphi

    4..n-3) every other .NET language

    n-2) IL

    n-1) hex editing of .NET assemblies

    n) VB

  29. 29
    David Howes Says:

    Diego Barros, I agree that Microsoft are committed to C++ and do think that if you have legacy C++ code C++/CLI is a good solution. What I said was that I don’t think they are ‘AS’ committed to C++ as some other languages. When you look beyond the technical reasons for the .NET, the business reasons are clearly to tie developers into the Windows platform; obviously C++ can’t be used to do this in the same way that C# and VB.NET can. The whole point of the .NET strategy from Microsofts point of view is to create an ever evolving framework that they control, that puts them ahead of the game and leaves everybody else playing catchup. Yes they have submitted .NET technologies to standards commities, but the commercial and technical realities make it a Windows technology; despite people talking up MONO it isn’t a technology that is ever likely to provide a reliable compatible alternative to .NET. Yes it is possible to produce applications that are cross-compatible between .NET and MONO but it isn’t as clearcut as, for example, Java. This was the idea from the start. Microsoft is safe from anti-trust action, has a defence against the open source arguments against proprietry code but enough doubt will always exist to ensure that its implementation remains dominant. In the short to medium term it has to support C++, to extend its own applications and to support the huge amount of legacy code out there, but it has a very strong interest in trying to move developers away from C++ and onto C#. 1. The Windows lock-in factor 2. Higher CPU requirements support the sale of new computers (and therefore new OS licensing sales) so no they won’t try to write Windows Media Player in .NET today, but it will be as soon as they can get away with it 3. Some actual genuine technical advantages of the technology, not least that it should help to improve security in the long term.

  30. 30
    Robert Says:

    Interesting that nobody mentioned Chrome so far. ;-)
    It’s basically my main dev language for quite some time, and I really like that they made out of Pascal. Kind of Pascal on steroids. :-)

    Whatever C# can do, Chrome can, too. And then some.

    Ever worked with explicitly implemented interfaces in C#? Freakin’ horrible!

    Though, GUI stuff would be better done in C# as there is better tools support.

    Fortunately, I don’t do GUI stuff. :-)

  31. 31
    Susan Says:

    I think it’s well understood that F# is the best .NET language. ;-)

    http://research.microsoft.com/fsharp/fsharp.aspx

  32. 32
    Robert Ruff Says:

    Someone said they were surprised that MS did not buy Delphi. They did: they bought Anders Hjelsberg.

  33. 33
    Jeroen Says:

    I use Chrome as well for all my development.

    I also use it for GUI apps…

    I did gave D.net a try 2 years ago, but the many hacks to get it compatible with D32 were to much for me… for example Strings are "1"-based in D.net but all MS api functions are zero based…. very messy. for .Net dev Chrome any time… (generics etc…)

  34. 34
    Registered User Says:

    who in the earth uses Borland Products for

    delveloing .NET application……………………………………………………………………………………………………………………………………………………………………………………..

Leave a Reply

© 2008 Nick Hodges | Entries (RSS) and Comments (RSS)

Your Index Web Directorywordpress logo
Close