VB.NET vs. C# (0 -1) & depression?!?.... [modified]
-
IMHO they are essentially the same. Personally, I do not care for some of the VB idioms but I figure I could get used to it.
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long
The next several months of your life will involve removing a lot of semi-colons and curly braces... Oh, and adding funny little things like "then" and "end if". Good luck.. I don't think there is much difference between the languages (besides the obvious) other than VB runs slower than C#, generally.
Bart A. Edgerton www.ewebdev.net
-
The next several months of your life will involve removing a lot of semi-colons and curly braces... Oh, and adding funny little things like "then" and "end if". Good luck.. I don't think there is much difference between the languages (besides the obvious) other than VB runs slower than C#, generally.
Bart A. Edgerton www.ewebdev.net
bartedgerton wrote:
The next several months of your life will involve removing a lot of semi-colons and curly braces... Oh, and adding funny little things like "then" and "end if".
Exactly what I mean. It seems superfluous to me.
bartedgerton wrote:
Good luck.. I don't think there is much difference between the languages (besides the obvious) other than VB runs slower than C#, generally.
Generally I almost never code in .net these day but thanks for the good wishes.
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long
-
The next several months of your life will involve removing a lot of semi-colons and curly braces... Oh, and adding funny little things like "then" and "end if". Good luck.. I don't think there is much difference between the languages (besides the obvious) other than VB runs slower than C#, generally.
Bart A. Edgerton www.ewebdev.net
VB.NET is not slower then C#. this is the VB IL of Hello World .method public static void Main() cil managed { .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() .entrypoint .maxstack 8 L_0000: nop L_0001: ldstr "Hello World" L_0006: call void [mscorlib]System.Console::Write(string) L_000b: nop L_000c: call int32 [mscorlib]System.Console::Read() L_0011: pop L_0012: nop L_0013: ret } This is the C# IL of Hello World .method public hidebysig static void Main() cil managed { .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() .entrypoint .maxstack 8 L_0000: nop L_0001: ldstr "Hello World" L_0006: call void [mscorlib]System.Console::Write(string) L_000b: nop L_000c: call int32 [mscorlib]System.Console::Read() L_0011: pop L_0012: ret } As you can see it, there is nothing which justifies the fact that VB.NET is slower than C #. VB6 was slower then everything but not VB.NET. Marc Robitaille
-
VB.NET is not slower then C#. this is the VB IL of Hello World .method public static void Main() cil managed { .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() .entrypoint .maxstack 8 L_0000: nop L_0001: ldstr "Hello World" L_0006: call void [mscorlib]System.Console::Write(string) L_000b: nop L_000c: call int32 [mscorlib]System.Console::Read() L_0011: pop L_0012: nop L_0013: ret } This is the C# IL of Hello World .method public hidebysig static void Main() cil managed { .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() .entrypoint .maxstack 8 L_0000: nop L_0001: ldstr "Hello World" L_0006: call void [mscorlib]System.Console::Write(string) L_000b: nop L_000c: call int32 [mscorlib]System.Console::Read() L_0011: pop L_0012: ret } As you can see it, there is nothing which justifies the fact that VB.NET is slower than C #. VB6 was slower then everything but not VB.NET. Marc Robitaille
Which version of the runtime is this? I remember some of the early .net 1.0 and 1.1 benchmarks that showed vb.net was at times slower.
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long
-
VB.NET is not slower then C#. this is the VB IL of Hello World .method public static void Main() cil managed { .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() .entrypoint .maxstack 8 L_0000: nop L_0001: ldstr "Hello World" L_0006: call void [mscorlib]System.Console::Write(string) L_000b: nop L_000c: call int32 [mscorlib]System.Console::Read() L_0011: pop L_0012: nop L_0013: ret } This is the C# IL of Hello World .method public hidebysig static void Main() cil managed { .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() .entrypoint .maxstack 8 L_0000: nop L_0001: ldstr "Hello World" L_0006: call void [mscorlib]System.Console::Write(string) L_000b: nop L_000c: call int32 [mscorlib]System.Console::Read() L_0011: pop L_0012: ret } As you can see it, there is nothing which justifies the fact that VB.NET is slower than C #. VB6 was slower then everything but not VB.NET. Marc Robitaille
The IDE is, with a sufficiently large solution (say 6+ medium sized projects). The VB back ground compiler can bring my quad core dev box to it's knees at times. That one feature makes VB.Net a lousy choice for enterprise development, well that and the lack of anonymous methods. And lack of ++ / -- operators. Oh, and the appalling casting syntax. Err, the appalling generic syntax too .. I should stop now :)
I'm largely language agnostic
After a while they all bug me :doh:
-
Hi all, still trying to find a good IT job in the country side (i.e. less than 80.000 people in town). I might move to Ireland soon... :( But there is one last chance I stay in warm and sunny queensland (Australia), I just applied to a job requiring.... VB.NET. The job looks potentially interesting, in Cairns (which might be a bit too big for my health, but the company is right on the border). Now my problem is the job looks midly interesting but they want a ... VB.NET developer. Do you think I will get depressed? Or is VB.NET quite similar save for a different syntax? (I mean does it have the same functionality: i.e generic, LINQ expression, event, attibutes, field, method, lambda expression, operator overriding, I would miss any of those...)
modified on Thursday, December 13, 2007 11:47:09 AM
You'll put your eye out (or at least want to).
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001 -
Hi all, still trying to find a good IT job in the country side (i.e. less than 80.000 people in town). I might move to Ireland soon... :( But there is one last chance I stay in warm and sunny queensland (Australia), I just applied to a job requiring.... VB.NET. The job looks potentially interesting, in Cairns (which might be a bit too big for my health, but the company is right on the border). Now my problem is the job looks midly interesting but they want a ... VB.NET developer. Do you think I will get depressed? Or is VB.NET quite similar save for a different syntax? (I mean does it have the same functionality: i.e generic, LINQ expression, event, attibutes, field, method, lambda expression, operator overriding, I would miss any of those...)
modified on Thursday, December 13, 2007 11:47:09 AM
I get paid a living to code with VB.NET. Moving to it from a plethora of C based languages was hell condensed into human consumable form. It is such a pain not using the curly braces and using round brackets instead of square and the casting. Eventually though you get used to it. This is why now at home or for my MSc I ONLY code in C++ or C#. Because otherwise, I'm going to have a hell of a time going back. However, as much as I'm loathe to admit it, under the hood, there isn't much difference between VB.NET and C#. Indeed, they are one and the same. The IL is practically the same. I do believe that you can code faster with C# constructs and syntax. With regards to the list you named, I can vouch for the existence of all except lambda expressions, and that's because I haven't been able to make the time to see the differences (if any) between C# and VB.NET 3.0.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook "There is no wealth like knowledge, no poverty like ignorance." Ali ibn Abi Talib "Animadvertistine, ubicumque stes, fumum recta in faciem ferri?"
-
Hi all, still trying to find a good IT job in the country side (i.e. less than 80.000 people in town). I might move to Ireland soon... :( But there is one last chance I stay in warm and sunny queensland (Australia), I just applied to a job requiring.... VB.NET. The job looks potentially interesting, in Cairns (which might be a bit too big for my health, but the company is right on the border). Now my problem is the job looks midly interesting but they want a ... VB.NET developer. Do you think I will get depressed? Or is VB.NET quite similar save for a different syntax? (I mean does it have the same functionality: i.e generic, LINQ expression, event, attibutes, field, method, lambda expression, operator overriding, I would miss any of those...)
modified on Thursday, December 13, 2007 11:47:09 AM
VB.NET and the tools are geared a bit more towards RAD development. That's about the only difference other than the syntax that I'm aware of.
Todd Smith
-
The IDE is, with a sufficiently large solution (say 6+ medium sized projects). The VB back ground compiler can bring my quad core dev box to it's knees at times. That one feature makes VB.Net a lousy choice for enterprise development, well that and the lack of anonymous methods. And lack of ++ / -- operators. Oh, and the appalling casting syntax. Err, the appalling generic syntax too .. I should stop now :)
I'm largely language agnostic
After a while they all bug me :doh:
MidwestLimey wrote:
The IDE is, with a sufficiently large solution (say 6+ medium sized projects).
Sometimes the difference REALLY makes me angry. I don't understand why I can open a solution of 10 C# projects in under 5 seconds, but a solution of 4 VB.NET projects takes OVER a MINUTE to open. WHY? Oh, and then there was that 500MB folder of temp files the background compiler creates that I found one day while hunting around in my Application Data folder. Why doesn't it delete these when VS exits? WHY? It's such a stilted language. Things that are so elegant in C# (like delegates and anonymous methods) seem to PURPOSELY be difficult in VB.NET. There's simply no clarity to it at all. Yeah, simple things are fast. Anything you actually want to be well written, isn't. The language is so obfuscated that at least for me, clarity of thought is nearly impossible. C# on the other hand, reflects my internal thought processes almost perfectly. The "Then" and "End If" are superfluous features of a language, and yet they feature prominently in VB.NET. It's like trying to walk down a hallway and crashing into every single potted plant along the way. In short, it is not a language I will use for enterprise development. Its predecessors were envisioned as R&D tools, and that is where it should stay. And the fact that the IL is the same is misleading. Anything compiled in VB.NET also loads several associated VisualBasic assemblies which usurp the normal operation of the CLR, even if you don't actually use anything that calls into the VisualBasic assemblies (that is, all standard .NET classes, none of the VB interop functions). In short.. I hate VB.NET. It is the bane of my existence.
It has become appallingly obvious that our technology has exceeded our humanity. - Albert Einstein
-
Hi all, still trying to find a good IT job in the country side (i.e. less than 80.000 people in town). I might move to Ireland soon... :( But there is one last chance I stay in warm and sunny queensland (Australia), I just applied to a job requiring.... VB.NET. The job looks potentially interesting, in Cairns (which might be a bit too big for my health, but the company is right on the border). Now my problem is the job looks midly interesting but they want a ... VB.NET developer. Do you think I will get depressed? Or is VB.NET quite similar save for a different syntax? (I mean does it have the same functionality: i.e generic, LINQ expression, event, attibutes, field, method, lambda expression, operator overriding, I would miss any of those...)
modified on Thursday, December 13, 2007 11:47:09 AM
You will adopt to the syntax in no time, I have used both and can easily switch between them now, after about an hour I stop typing semi colons. ;P There are several on-line convertors out there, very useful for converting any helper classes etc that you may have and want to use in the other language. I've used these a few times: CodeTranslator[^] and DeveloperFusion[^]
Declan Bright www.declanbright.com
-
Hi all, still trying to find a good IT job in the country side (i.e. less than 80.000 people in town). I might move to Ireland soon... :( But there is one last chance I stay in warm and sunny queensland (Australia), I just applied to a job requiring.... VB.NET. The job looks potentially interesting, in Cairns (which might be a bit too big for my health, but the company is right on the border). Now my problem is the job looks midly interesting but they want a ... VB.NET developer. Do you think I will get depressed? Or is VB.NET quite similar save for a different syntax? (I mean does it have the same functionality: i.e generic, LINQ expression, event, attibutes, field, method, lambda expression, operator overriding, I would miss any of those...)
modified on Thursday, December 13, 2007 11:47:09 AM
If you stay away from the Visual Basic namespace, which is where VB6 stuff that MS wanted to ditch but were pressured not to lives, you should be reasonably OK. The main thing is to remember that VB is weakly typed, which can create some very bizarre bugs. And of course, you get optional parameters and what I think is a really nice way of hooking up events. You lose some other stuff, pointers most notably. VB is nasty, I hate it, the syntax is ugly, but it's capable of doing almost anything C# can do, anything it can't do, it can call a C# dll and do it that way.
Christian Graus - Microsoft MVP - C++ "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
-
Hi all, still trying to find a good IT job in the country side (i.e. less than 80.000 people in town). I might move to Ireland soon... :( But there is one last chance I stay in warm and sunny queensland (Australia), I just applied to a job requiring.... VB.NET. The job looks potentially interesting, in Cairns (which might be a bit too big for my health, but the company is right on the border). Now my problem is the job looks midly interesting but they want a ... VB.NET developer. Do you think I will get depressed? Or is VB.NET quite similar save for a different syntax? (I mean does it have the same functionality: i.e generic, LINQ expression, event, attibutes, field, method, lambda expression, operator overriding, I would miss any of those...)
modified on Thursday, December 13, 2007 11:47:09 AM
Super Lloyd wrote:
I mean does it have the same functionality: i.e generic, LINQ expression, event, attibutes, field, method, lambda expression, operator overriding, I would miss any of those...)
Yeah, it's got those, like women all have certain common features. It's personality that matters in the long run, and VB is lacking a compatible personality. Regardless of features, that's sufficient for depression to set in if you were considering a long term relationship. Marc
-
Hi all, still trying to find a good IT job in the country side (i.e. less than 80.000 people in town). I might move to Ireland soon... :( But there is one last chance I stay in warm and sunny queensland (Australia), I just applied to a job requiring.... VB.NET. The job looks potentially interesting, in Cairns (which might be a bit too big for my health, but the company is right on the border). Now my problem is the job looks midly interesting but they want a ... VB.NET developer. Do you think I will get depressed? Or is VB.NET quite similar save for a different syntax? (I mean does it have the same functionality: i.e generic, LINQ expression, event, attibutes, field, method, lambda expression, operator overriding, I would miss any of those...)
modified on Thursday, December 13, 2007 11:47:09 AM
I did VB .NET for over a year after formerly doing C#. Now I'm back to C# again. To be honest, despite the many complaints you read on CP about the syntax, I find the most irritating thing about it is the poor IDE code editing integration especially in VS 2005 re: intellisense and code snippets - and one or two other things. I don't know whether VS 2008 has improved in this respect.
Kevin
-
I get paid a living to code with VB.NET. Moving to it from a plethora of C based languages was hell condensed into human consumable form. It is such a pain not using the curly braces and using round brackets instead of square and the casting. Eventually though you get used to it. This is why now at home or for my MSc I ONLY code in C++ or C#. Because otherwise, I'm going to have a hell of a time going back. However, as much as I'm loathe to admit it, under the hood, there isn't much difference between VB.NET and C#. Indeed, they are one and the same. The IL is practically the same. I do believe that you can code faster with C# constructs and syntax. With regards to the list you named, I can vouch for the existence of all except lambda expressions, and that's because I haven't been able to make the time to see the differences (if any) between C# and VB.NET 3.0.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook "There is no wealth like knowledge, no poverty like ignorance." Ali ibn Abi Talib "Animadvertistine, ubicumque stes, fumum recta in faciem ferri?"
Thanks for checking my list! :-D
-
Super Lloyd wrote:
I mean does it have the same functionality: i.e generic, LINQ expression, event, attibutes, field, method, lambda expression, operator overriding, I would miss any of those...)
Yeah, it's got those, like women all have certain common features. It's personality that matters in the long run, and VB is lacking a compatible personality. Regardless of features, that's sufficient for depression to set in if you were considering a long term relationship. Marc
ho.... you can't span your method call on multiple line unless you add a trainling '_' at the end of the line... I wonder if I should call that weird or annoying?!? :omg:
-
I did VB .NET for over a year after formerly doing C#. Now I'm back to C# again. To be honest, despite the many complaints you read on CP about the syntax, I find the most irritating thing about it is the poor IDE code editing integration especially in VS 2005 re: intellisense and code snippets - and one or two other things. I don't know whether VS 2008 has improved in this respect.
Kevin
I also perfer to code and do initial debuging in C# if I am using .net interfaces. Though since the majority of our bread and butter product is in C++ I use tangible sofware solutions converters to move it to the target language. There are things that do not translate but you learn to work around them. Your mileage will vary but I think their C# to VB converter does a better job then the C++ one.