|
Member 7989122 wrote: As a general rule, people showing the kind of hashness as you do, toward one tool (or standard, or whatever) tend to have a poor understanding of how to use it. Or they consider it out of its intended scope of usage.
Or like me, they simply want to trigger the commie hippies that love it.
Member 7989122 wrote: A number of years ago ... blah f*ckin blah ... That the end users understand what's going on.
(yawn)
Member 7989122 wrote: I never used VB,
Count your blessings. I've had to use VB, VBscript, VBA, and VB.net. I've been a programmer for almost 40 years, and I think that makes me qualified to identify crap when I see it. It's like the MS Access of computer languages.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
John Simmons / outlaw programmer wrote: It's like the MS Access of computer languages.
Or as I like to call it "MS Abscess"...
Sincerely,
-Mark
mamiller@rhsnet.org
|
|
|
|
|
Just because you can use a shovel for pounding nails and "everyone" else is doing it too, doesn't mean it's a good thing.
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
Why shouldn't we?
All programming languages have their good and bad.
However, there's one thing certain. VB sucks big time.
The whole language is way too wordy.
It ruins my display with too many characters.
"If" must be closed by "End if"
"For" must be closed by "End For"
"While" must be closed by "End While"
How many characters are there in the last one? 9! 9 characters in order to close a code block!
I used VB as a beginner. I moved to C# when I got better. Nowadays I use C#, Java, PHP, Javascript (Jquery). I have never thought of going back to VB. It's like an embarrassing past I wan't to bury forever. Using {} is so much much better.
|
|
|
|
|
... except when you accidentally close the wrong block, and spends hours to find out why it is not working.
|
|
|
|
|
I have never experienced that.
You should never too.
If you indent parent block and children block properly.
|
|
|
|
|
I'm curious to know why you feel that way about VB.NET, which can express virtually everything that C# can; and like other .NET languages can make use of (almost all of) the types in the .NET Framework.
There are obviously various small differences (VB.NET allows inferring the delegate type, allows assigning a numeric string to a number, etc.) Generally, I have found only one reason to prefer C# over VB.NET -- VB.NET's syntax uses English words where C# would use symbols.
|
|
|
|
|
ZevSpitz wrote: I'm curious to know why you feel that way about VB.NET
Because the name starts with "VB".
ZevSpitz wrote: which can express virtually everything that C# can; and like other .NET languages can make use of (almost all of) the types in the .NET Framework.
The words "virtually" and "almost" should be indicators for you...
ZevSpitz wrote: There are obviously various small differences (VB.NET allows inferring the delegate type, allows assigning a numeric string to a number, etc.)
"Inferring" and being typeless do not make VB a better idea. Unless you're a commie... or liberal...
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
Some facts:
1. I am not a liberal or commie - in fact I think Atilla the Hun and Genghis Kahn were lily-livered pinko-liberal pooftahs.
2. I have written lots and lots of VB.NET - and got paid for it.
3, I have a 50 foot yacht in the marina. Sadly, the marine police have removed my small armoury therefrom until such time as I leave.
Your move!
|
|
|
|
|
Another VB fact:
I am retired on a tropical island in the Caribbean after 25 years of VB /VB.Net programming
Who's next?
|
|
|
|
|
I'm not retired because I'm busy replacing VB-based crap-ware with C#.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
So I got the money using VB and you got the crap and problems using C#.
Who did better?
|
|
|
|
|
I still do some projects - just for fun.
So If you want, I can enlighten your burden and take the project from you.
That is - if it pays enough of course.
|
|
|
|
|
A fact you missed:
0) Real programmers know enumerated lists start with 0.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
And 3 facts you missed:
0. Real programmers don't care what language they use; because they are able to solve the problem in any language.
1. Smart programmers solve the problem in the way it is the least work and pays the most.
2. Really good programmers won't be used on projects where they have to fix the crap of someone else (that's where juniors are for).
|
|
|
|
|
Reminds me of a 16 bit mini I knew in the 1980s: Fortran arrays are 1 based. This machine had a 48 bit float format, three 16-bit words. The CPU had a special instruction for calculating the memory address of an element in a float array: MIX3 would add one to the accumulator and multiply it by 3. The instruction had no other use than for Fortran float array address calculations.
|
|
|
|
|
John Simmons / outlaw programmer wrote: Because the name starts with "VB".
Because you don't like the name? It seems to me your dislike is far to strong to be justified by this.
John Simmons / outlaw programmer wrote: The words "virtually" and "almost" should be indicators for you...
I was referring specifically to pattern matching and types that make use of Span<T> , which are both relatively new features in C# and .NET in general. Unsafe code is also something that C# has which VB.NET doesn't.
IMO, pattern matching is as much a game-changer as LINQ, in writing expressive code, and it is quite unfortunate that it is not yet in VB.NET.
But I think the others are relatively edge cases. Your average business developer, targeting a Web stack or desktop application, doesn't need the higher performance of Span<T> , or unsafe programming -- not in C# and not in VB.NET.
Are you aware of other differences in day-to-day usage? Please feel free to correct me.
John Simmons / outlaw programmer wrote: "Inferring" and being typeless do not make VB a better idea.
I think that inferring the type in general is a good idea (using `var` in C# or `auto` in C++), because the code becomes more declarative -- focused on the intent of the code, and less focused on the mechanism the code will use. It's true that when every byte matters, it may be important to specify the type as byte , but again, I think these are relatively edge cases.
But I didn't say I think these are good things; only that these are things that work in VB.NET and will not work when transferring this knowledge over to C#.
(In fact, inferring delegate types from lambda expressions might involve a serious performance hit. If I have a database with a million records, and I use an ORM to extract the records which match a certain condition:
Dim qry As IQueryable(Of Person)
Dim filter = Function(x As Person) x.LastName.StartsWith("A")
Dim results = qry.Where(filter)
this code will use the Enumerable.Where extension method (which takes a delegate instance and not an expression), retrieve all the records in the database, and filter them in memory in the application code, all without any error. C# will not allow this, and force you to explicitly type filter as Expression<Func<Person, bool>> .
The automatic conversion that VB.NET does from a numeric string to an integer is also a bad idea, because the conversion might sometimes work in odd ways, and can be exceedingly hard to debug.)
John Simmons / outlaw programmer wrote: typeless
Note that VB.NET is not typeless, it just treats the type Object like C#'s dynamic .
modified 12-Nov-18 11:31am.
|
|
|
|
|
ZevSpitz wrote: I'm curious to know why you feel that way about VB.NET
ZevSpitz wrote: VB.NET allows ... assigning a numeric string to a number
I think you've just answered your own question there!
(Option Strict and Option Explicit should always be On . IMO, there shouldn't even be an option to turn them off.)
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Yes, they should always be on.
But C# still has the GoTo statement.
But that doesn't mean you have to use it
|
|
|
|
|
I even make use of it! In switch statements where two or more alternatives have the same (final) handling, it can be really useful, and far safer than the silent fallthrough of classical C (which is not allowed in C#).
It lacks a builtin ComeFrom, though; I had to implement that myself. It really is a must when you do more than the elementary exception handling.If you leave the stack dump to the standard library exception handling, you won't be able to pick up the output and process it in a reasonable way.
Of course you can't make a ComeFrom without support from the runtime libary. Given the StackTrace / StackFrame classes, it is trivial.
|
|
|
|
|
And so you see - everything has it use
|
|
|
|
|
Richard Deeming wrote: IMO, there shouldn't even be an option to turn them off.)
All of this is presuming that VB should be allowed to exist in the first place.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
Then stop financing its makers - oh wait, they build C# too ....
Oh wait again - its even the same compiler and toolset ....
|
|
|
|
|
I did stop funding them. The last thing I bought from Microsoft was a MSDN subscription a number of years ago. That got me Windows 7 and VS2013. Recently, I migrated almost completely away from Microsoft at home. I still have a VM running Win7 so I can write Windows code with VS2017 community), but that's it.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
Then there is only one thing left to do: find a job where you don't have to work with Microsoft either. If I see your rant, it would be really better for your heart.
|
|
|
|