Page 17 of 23 FirstFirst ... 714151617181920 ... LastLast
Results 641 to 680 of 914

Thread: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

  1. #641
    King of sapila
    Join Date
    Oct 2006
    Location
    Greece
    Posts
    6,073

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    The only time I used one was trying to pass a new data structure to a WCF service in VS 2015.Then I got a light breeze in my face and a smell of something rotten when I found out it was a read only structure.I think they fixed that in later versions but my company PC cannot handle one. I got a smile when I thought what the reaction of the IT manager would be when I tell him that I want a new PC so I can use tuples and moved on for now.
    .

  2. #642
    MS SQL Powerposter szlamany's Avatar
    Join Date
    Mar 2004
    Location
    CT
    Posts
    18,107

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    We are all standing on the shoulders of giants, some without knowing it.
    Thank you! I'm flattered!

    *** Read the sticky in the DB forum about how to get your question answered quickly!! ***

    Please remember to rate posts! Rate any post you find helpful - even in old threads! Use the link to the left - "Rate this Post".

    Some Informative Links:
    [ SQL Rules to Live By ] [ Reserved SQL keywords ] [ When to use INDEX HINTS! ] [ Passing Multi-item Parameters to STORED PROCEDURES ]
    [ Solution to non-domain Windows Authentication ] [ Crazy things we do to shrink log files ] [ SQL 2005 Features ] [ Loading Pictures from DB ]

    MS MVP 2006, 2007, 2008

  3. #643
    Super Moderator Shaggy Hiker's Avatar
    Join Date
    Aug 2002
    Location
    Idaho
    Posts
    36,735

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    We are all standing on the shoulders of giants, some without knowing it.
    That's because the giants are standing in holes.

    Of course, if you are standing on the shoulders of a giant, you had best be a giant yourself...or else, where are their heads?
    My usual boring signature: Nothing

  4. #644
    Frenzied Member PlausiblyDamp's Avatar
    Join Date
    Dec 2016
    Location
    Newport, UK
    Posts
    1,496

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by dday9 View Post
    Iím genuinely curious, what advantages do you gain using a tuple over a class or anonymous objects? The only time Iíve use tuples is to avoid typing a class which isnít a very good excuse to use them.
    Mainly it can avoid cluttering up your namespace with lots of trivial classes when you just want to pass around a couple of related properties, also you can't return an anonymous class from a method. I tend to use them as a way to avoid out or ref parameters. As an example something like Integer.TryParse returns a boolean to indicate if it worked or not but then actually returns the parsed integer as an out parameter. With a tuple you could just return a boolean and an integer without needing a specific class; that is useful when you then consider a TryParse for a byte, int, long, double, etc... you would end up with dozens of pointless little classes.

    Another possible use is some of the older Async methods (the Beginxxxx / Endxxxx ones) which take a state parameter as an object, if you want to just pass in a couple of variables you either need to create a class to wrap them or use an array etc. A tuple makes it easier to just group a couple of variables together.

    Then again C# also has much nicer syntax here for deconstructing tuples which might also explain why they do get used in C# more....
    Last edited by PlausiblyDamp; Oct 7th, 2021 at 10:24 AM.

  5. #645
    Super Moderator Shaggy Hiker's Avatar
    Join Date
    Aug 2002
    Location
    Idaho
    Posts
    36,735

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    I haven't bothered with tuples. There are always other ways to do that, so it's another feature that was added to make it possible to do the same thing with less typing. That's not a bad thing in itself, but it means that you don't need to go there until you want to. I haven't gone there....heck, I think I'm mostly using a framework that doesn't have them, though I'm not certain...including not being certain what I'm using, unfortunately. I keep changing that.

    However, I'm not opposed to lots of trivial classes, so long as they have interfaces. I've come to really appreciate interfaces.
    My usual boring signature: Nothing

  6. #646
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Sometimes, it is good to be reminded why it is useful to program closer to the metal.

    This youtube programme might take you back.

    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  7. #647

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    Sometimes, it is good to be reminded why it is useful to program closer to the metal.

    This youtube programme might take you back.

    I hear what you're saying but I'm going to go off on a limb and say that this post is leaning into the implication that VB6 is "closer to the metal" than VB.Net. Let's dispel this ridiculous myth right now.

    VB6 is every bit as high level as VB.Net. VB6 only seems lower level because of it's high dependency on VarPtr, StrPtr, ObjPtr and Win32 functions like RtlMoveMemory. This does not make VB6 a high level language. It just makes it a language that can call functions. VB.Net can call RtlMoveMemory just fine and the GCHandle class can do all the same things that VarPtr and it's family can do.

    Let's take a common low level operation like type punning. True low level languages like C and Assembly can do this naturally, but VB6 through VarPtr and RtlMoveMemory do it too. For example:-
    Code:
    Private Declare Sub MemCpy Lib "Kernel32" Alias "RtlMoveMemory" (ByVal dest As Long, ByVal src As Long, ByVal cb As Long)
    
    Private Sub Form_Load()
        Dim lng As Long
        Dim blob(0 To 3) As Byte
        
        lng = &HDEADDEEF
        
        'Pun the 32 bit integer into a byte array
        MemCpy VarPtr(blob(0)), VarPtr(lng), 4
        
        'Outputs DEADBEEF
        For i = 3 To 0 Step -1
            Debug.Print Hex(blob(i));
        Next
    End Sub
    The above is a contrived example of a very common operation in lower level programming where you bypass the language's type system to play with the actual bits that represents your data. This kind of thing is rampant in VB6 and leads to this ridiculous misconception that VB6 is some kind of low level language but it isn't. It must make function calls to do these things. A real low level language doesn't need to call functions. Let's examine this in more detail.

    The actually punning takes place at this line:-
    Code:
    lng = &HDEADDEEF
    MemCpy VarPtr(blob(0)), VarPtr(lng), 4
    It takes 3 whole function calls! Want to see what this looks like in assembly? Look at it here:-
    Code:
    mov [ebp - 4], 0xDEADBEEF; VB6 Equivalent of lng = &HDEADBEEF
    mov eax, [ebp - 4]; Copy the value of our local variable to the EAX register
    mov DWORD [ebx], eax; the EBX register would contain a pointer block of memory 4 bytes long
    No function calls, all it takes is two instructions. So you may be wondering so what? Well, VB6 makes 3 function whole function calls! Do you know how many instructions that would translate too? Let's talk about the MemCpy/RtlMoveMemory call. It would start with the instructions for making the call:-
    Code:
    Push [cb]
    Push [src]
    Push [dest]
    call RtlMoveMemory
    That's 4 instructions already! Remember all we needed in pure assembly was 2 instructions. Now lets talk about what happens on every function call. When RtlMoveMemory is called, a the stack frame has to be constructed. It would look something like this:-
    Code:
    push ebp
    mov ebp, esp
    After that there will be code to copy the memory and then when RtlMoveMemory is ready to return, it must destroy the stack frame. That would look like this:-
    Code:
    mov esp, ebp
    pop ebp
    ret 12
    So let's do a tally:-
    Code:
    Push [cb]
    Push [src]
    Push [dest]
    call RtlMoveMemory
    push ebp
    mov ebp, esp
    ;.....There would be more instructions here
    ;.....for copying the memory
    
    mov esp, ebp
    pop ebp
    ret 12
    That's 9 whole instructions just for the RtlMoveMemory call. We haven't even talked about the two VarPtr calls. Each of those calls would also have to set up and destroy stack frames, a minimum of 5 instructions each. That's 19 instructions minimum, just to do something that can be done in assembly language with 2 instructions! In reality it would be more than 19 instructions. We didn't even count the actual implementations of VarPtr and RtlMoveMemory but we could be looking at 25 to 30 instructions easily! Now, it is entirely possible that VarPtr, StrPtr and ObjPtr are actually implemented in the VB6 compiler as intrinsics which could eliminate the normal overheads of a function call when VarPtr is used, but even then, we are still looking at no less than 9 instructions for the whole punning operation. Let me re-iterate, it would only take two instructions to do this if you were hand-coding it in assembly.

    This is a lot of overhead for a "low level" language. So the next time someone tells you that VB6 is a lower level language, tell them they are talking rubbish and link them to this post. I'm not directing this at you but I really hate it when people use trash arguments like this to justify why they think VB6 is better than VB.Net. I have actually seen people say this garbage. VB6 is not a low level language. Sorry.

    Finally, to round this out, we lets show that VB.Net can also do this stuff:-
    Code:
            Dim i As Integer = &HDEADBEEF
            Dim hInt As GCHandle = GCHandle.Alloc(i, GCHandleType.Pinned)
            Dim blob As Byte() = New Byte(3) {}
            Dim ptr As IntPtr
    
            ptr = hInt.AddrOfPinnedObject()
    
            'Pun the 32 bit integer into a byte array
            Marshal.Copy(ptr, blob, 0, 4)
    
            For i = blob.Length - 1 To 0 Step -1
                Debug.Write(blob(i).ToString("X2"))
            Next
    The above does the same thing as the VB6 code posted earlier. It takes two extra lines of code to do it the exact same way that VB6 does but here's the beauty, there is a way to reduce this:-
    Code:
            Dim i As Integer = &HDEADBEEF
            Dim blob As Byte() = BitConverter.GetBytes(i)
    
            For i = blob.Length - 1 To 0 Step -1
                Debug.Write(blob(i).ToString("X2"))
            Next
    The above is yet another way to do it in VB.Net. Neither of the two methods requires that anything be imported. No Win32 API or any extra library, it's all build into the framework.

    One final thing. This whole talk about "bare metal".......No. If you are writing Windows applications, you are not programming against the bare metal. You must go through the Windows API to access your hardware. Don't let anyone fool you with this nonsense. Only Windows and it's drivers have access to the "bare metal". The only people doing programming against the bare metal are the ones writing things like drivers or operating systems. No VB6 application is running against the "bare metal". Again, if anyone tries to fool you with this, tell them Niya said they are talking trash. Don't listen to such garbage.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  8. #648
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    "Closer" to the metal.
    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  9. #649

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    "Closer" to the metal.
    It is absolutely not closer to the metal. This is just a myth.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  10. #650
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Niya View Post
    It is absolutely not closer to the metal. This is just a myth.
    Yes it IS
    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  11. #651

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Aside from the VarPtr/ObjPtr/RtlMovememory stuff I mentioned, this myth also comes from the fact that VB.Net programs tend use a lot more objects instead of being coded against the Win32 API heavily as VB6 applications are. But make no mistake, you can do the exact same thing in VB.Net. You can write your applications against the Win32 API as much as you want.

    Also, while coding against the Win32 API does put you at a lower level of abstraction, it is not closer to the metal in any meaningful way. Windows sits atop a stack of a lot abstractions itself and the closest you can get to the bare metal is the Win32 API. This doesn't give you any meaningful advantage in and of itself. Using the Win32 API allows you access to things you may not get from whatever framework or 3rd party libraries you're using but it is certainly not an advantage when you rely on this heavily.

    One more thing, I find it interesting that a lot of VB6ers try to sell this myth, yet whenever the topic on a "new VB6" comes up, one of the first thing people ask for is multiplatform support. You certainly don't want to be writing Win32 code if you hope to run your applications on something else besides Windows one day. There is no GetWindowRect on Android.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  12. #652

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    Yes it IS
    Tell me why.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  13. #653
    Smooth Moperator techgnome's Avatar
    Join Date
    May 2002
    Posts
    33,522

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    "Closer" to the metal.
    I'm so close to the metal, I can feel it. So cold, soft, smooth.... like a shark.

    -tg
    * I don't respond to private (PM) requests for help. It's not conducive to the general learning of others.*
    * I also don't respond to friend requests. Save a few bits and don't bother. I'll just end up rejecting anyways.*
    * 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??? *

  14. #654
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Niya View Post
    Tell me why.
    No, absolutely NOT. There is one thing you learn very quickly in these forums, not to get into a discussion with Niya re: VB6 and VB^.

    Some never learn this lesson.
    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  15. #655
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by techgnome View Post
    I'm so close to the metal, I can feel it. So cold, soft, smooth.... like a shark.
    -tg
    That was almost sexy, I feel aroused...
    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  16. #656
    Super Moderator Shaggy Hiker's Avatar
    Join Date
    Aug 2002
    Location
    Idaho
    Posts
    36,735

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Sharks aren't smooth.

    VB6 is closer to the metal because it's more painful to work with, and that equals closer to the metal to most people.

    In fact, VB6 never was close to the metal, and was derided for that specific reason before .NET came along and gave the VB6 crowd somebody they could say was even more abstract. That didn't change anything for them or anybody else, though.
    My usual boring signature: Nothing

  17. #657
    PowerPoster
    Join Date
    Jun 2013
    Posts
    5,683

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Shaggy Hiker View Post
    VB6 is closer to the metal because it's more painful to work with...
    Nobody would disagree with the statement, that "C/C++ is close(r) to the metal".

    And VB6 is using the VC6-compiler under the covers, to produce its native binaries.

    In this regard, the VB6-language is just a different (easier to understand) "convenience-dialect" on top of C/C++.

    It just auto-generates its COM-compatible Classes with less code-lines than "handwritten C++ COM-defs" would require.
    (at the cost of some "fine-tuning" on these COM-Classes).

    COM provides a quite thin Class- (or Object-) layer directly on top of the systems Flat-API -
    with deterministic behaviour when it comes to Instance-teardown...
    (and no GarbageCollector means: "closer to the metal").

    A whole lot of .NET-classes are implemented on top of System-provided COM-objects -
    (and therefore at least one level above of what we use in VB6 - and therefore "less close to the metal").

    Also - due to "everything is an Object", you end up with all this "boxing/unboxing" nonsense -
    as well as e.g. "immutable Strings" - which is just another instance where .NET works "less close to the metal".
    (cannot count the amount of optimizations in the RC-libs, where I made good use of "mutability of String-allocations").


    Olaf

  18. #658

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Schmidt View Post
    as well as e.g. "immutable Strings"
    Come on Olaf what are we doing here. You know good and well that BSTRs are also immutable by convention. Just because you can use StrPtr to manipulate the buffer directly doesn't change this fact. You can do the same thing in .Net:-
    Code:
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim myStr As String = "hello world"
    
            ToUpr(myStr)
    
            'Outputs: HELLO WORLD
            Debug.WriteLine(myStr)
        End Sub
    
        Public Sub ToUpr(ByVal s As String)
    
            'Pin the String in memory and obtain a handle to it
            Dim handle As GCHandle = GCHandle.Alloc(s, GCHandleType.Pinned)
    
            'Obtain a pointer to the String's buffer
            Dim basePtr As IntPtr = handle.AddrOfPinnedObject
    
            'Loop through String's buffer 2 bytes at a time
            'since a .Net String is 2 bytes per character
            For i = 0 To s.Length * 2 Step 2
    
                'Get a pointer to the current character
                Dim ptr As IntPtr = IntPtr.Add(basePtr, i)
    
                'Read the chacter code into a Short 
                Dim ch As Short = Marshal.ReadInt16(ptr)
    
                'If the character code represents a letter
                'make it upper case by subtracting 32 from the code
                If ch >= 97 AndAlso ch <= 122 Then ch -= 32
    
                Marshal.WriteInt16(ptr, ch)
            Next
    
            handle.Free()
        End Sub
    The above code also bypasses the immutability of .Net Strings and alters the buffer in place, just as you would in VB6 using StrPtr.
    Last edited by Niya; Oct 13th, 2021 at 12:36 PM.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  19. #659

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Schmidt View Post
    Also - due to "everything is an Object", you end up with all this "boxing/unboxing" nonsense
    Come on man, seriously?

    You only incur boxing when you assign a value type like an Integer or Long to a variable of type Object. This is literally the same as assigning an Integer or Long to a Variant in VB6. The only difference between them is that in .Net, the boxed value would be stored on the heap instead of the stack.

    If anything, the nonsense is in VB6 because in VB.Net we have the option of getting away from it through the use of generics. You can't do this at all in VB6. For example the Collection class uses Variants so when adding items to it you're always forced to "box" in VB6. You can't get around this without writing your own strongly typed Collection class based on arrays.

    This complaint literally makes no sense. This line of argument favors VB.Net over VB6.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  20. #660

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Shaggy Hiker View Post
    VB6 is closer to the metal...
    Don't buy into this garbage Shaggy. This isn't true. Just because you need to import half the Win32 API for a typical VB6 application doesn't make it closer to the metal. We could do the exact same thing in VB.Net.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  21. #661
    Super Moderator Shaggy Hiker's Avatar
    Join Date
    Aug 2002
    Location
    Idaho
    Posts
    36,735

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Niya View Post
    Don't buy into this garbage Shaggy. This isn't true. Just because you need to import half the Win32 API for a typical VB6 application doesn't make it closer to the metal. We could do the exact same thing in VB.Net.
    If you included the rest of the statement, you'd realize that, at worst, I left out a single word.
    My usual boring signature: Nothing

  22. #662
    PowerPoster
    Join Date
    Jun 2013
    Posts
    5,683

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Niya View Post
    You know good and well that BSTRs are also immutable by convention.
    They are not:
    Code:
      Dim S As String: S = "abc"
      
      Debug.Print "Before: ", StrPtr(S), S
      Mid(S, 2, 1) = "B"
      Debug.Print "After: ", StrPtr(S), S
    The above prints out:
    Code:
    Before:    8830804      abc
    After:     8830804      aBc
    Olaf

  23. #663
    PowerPoster
    Join Date
    Jun 2013
    Posts
    5,683

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Niya View Post
    Don't buy into this garbage Shaggy. This isn't true.
    It is, Niya, it is...

    Quote Originally Posted by Niya View Post
    Just because you need to import half the Win32 API for a typical VB6 application...
    Well, there we have someting, that isn't true... (a huge amount of your postings contains such parts).

    Olaf

  24. #664

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Schmidt View Post
    It is, Niya, it is...
    Come on Olaf. I'm 100% sure you know better than this. Stop misleading folks:-


    VB6 applications aren't anywhere close to anything we'd call "the metal"....In fact, no user mode Windows application is, no matter what language it's written in, even C. If you said VB6 has a overall lower level of abstraction than VB.Net, you'd be correct but neither is anywhere close to the metal.

    VB6 applications just like any user mode Windows application sits atop a whole bunch of Windows abstractions. The one extra layer .Net adds doesn't apply in every case and even in the cases where it does, that won't make any meaningful difference. You still have a whole bunch of abstractions just from being a Windows application. The difference between a .Net application and a VB6 application is like the difference between 19 and 20. 19 is smaller, but both 19 and 20 are much larger than 4 or 3.
    Last edited by Niya; Oct 15th, 2021 at 04:55 AM.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  25. #665
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    We should all be very familiar with that image especially if we work with operating systems most of our lives and if we are involved in the maintenance or development of oses such as ReactOS or Windows - but in the context of the conversation here, it was quite understood by most of us what 'closer' to the "metal" means. I know what I mean by it.

    I think you are being a little too literal. It isn't really shiny and metallic lumps of iron that we have to beat into shape.... though I'd quite like it if it was.

    No-one here imagines for a moment that we are actually running programs directly on the CPU hardware itself so I'm not quite entirely clear what you are meant to be showing us.

    In this context, in your head, do you think that we truly believe that VB6 is running on the metal?

    Shall we pick holes in the word "closer" next?
    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  26. #666

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    No-one here imagines for a moment that we are actually running programs directly on the CPU hardware itself so I'm not quite entirely clear what you are meant to be showing us.

    In this context, in your head, do you think that we truly believe that VB6 is running on the metal?
    If I'm being 100% honest, I don't think some of you get it. This isn't directed at you specifically but anyone makes claims that VB6 is better than .Net because it is closer to the metal is misleading you. I'm simply making it clear exactly why this line of argument is just rubbish. .Net has a few extra abstractions here and there but in the end, it makes almost no difference in terms of quality when compared to VB6. You gain nothing meaningful by choosing VB6 over VB.Net if you're looking for a low levels of abstraction. Here's where the rubber meets the road, if abstractions were really such a big deal to VB6 programmers, they would be using CreateWindow to make their GUI instead of VB6 ThunderForms. That's about the closest you can get to the "metal" so to speak and we can do that in VB.Net too. This whole line of argument is just trash.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  27. #667

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Remember this? This is about as bare metal you can get in Windows writing user mode applications. This application could be written the exact same way in VB6 and VB.Net. This alone invalidates any arguments that VB6 is somehow superior to VB.Net with regards to how close to the metal each language can take you.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  28. #668
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Niya View Post
    If I'm being 100% honest, I don't think some of you get it. T
    Who? Who are you trying to teach? I didn't see them, Olaf does not need it, I am guessing he is cleverer than me... just guessing though.

    For me, being closer to Windows APIs is the benefit of VB6. It is also the limitation. That is what I mean by being closer to the metal, in this case, Windows is the metal.

    In my involvement (albeit puny) with ReactOS, my direction is definitely closer to the metal whilst anything that abstracts away from that is an irrelevance in that context. Learning the Windows APIs through a language that acts as mere logical glue to bind together those calls is very beneficial in that context.

    The fact that VB6 can do very little without those APIs is the limitation for most but I now see that in the context I find myself, it is in fact, a benefit.

    We could now start to define "closer".



    or this

    Last edited by yereverluvinuncleber; Oct 15th, 2021 at 05:46 AM.
    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  29. #669
    MS SQL Powerposter szlamany's Avatar
    Join Date
    Mar 2004
    Location
    CT
    Posts
    18,107

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    The past few posts by Niya and yer... exposes to me exactly why VB6 is considered a hobbyist tool by so many - and even myself to some degree.

    Back to DEC and PDP's and VAX's.

    If the original implementors of these $400,000 boxes didn't give us ample documentation on how to talk to the metal, we would have nothing to offer clients.

    By ample - I mean huge. Take a look at the book shelf in the back left of this image. Those are 3 or 4 inch binders with incredible detail on the inner workings. They came in three flavors, ADMIN, USER and SYSLIB, or something like that. There was no internet - no VBForums, no SO...

    This doc set gave you the power, for example, to create you own I/O code to interact with the keyboard - all in MACRO (ASM), of course!

    Now take an outside observer and show them this level of detail and compare it to being dropped into to the VB6 world where you see an API - surely have no clue how to work it, and have to basically take apart the engine to see where the oil and water goes! (they never mix, btw!)

    Actually back to serious...

    VB6 - very difficult API to work with - and you end finding out, that if you subclass this or that, you can't even have that running while in the IDE!

    That shows a certain level of "we don't care to make this a professional product", like other products before us - going back to 1950!

    Now walk that same outside observer into the .Net room. Forget the VB vs C# syntax - just the library. That is a work of art. Self documenting in a way I've never seen before right in the IDE.

    That is forward growth.

    Eliminate a $3,000 documentation set and replace it with a self guided tour!

    Bravo!
    Attached Images Attached Images  

    *** Read the sticky in the DB forum about how to get your question answered quickly!! ***

    Please remember to rate posts! Rate any post you find helpful - even in old threads! Use the link to the left - "Rate this Post".

    Some Informative Links:
    [ SQL Rules to Live By ] [ Reserved SQL keywords ] [ When to use INDEX HINTS! ] [ Passing Multi-item Parameters to STORED PROCEDURES ]
    [ Solution to non-domain Windows Authentication ] [ Crazy things we do to shrink log files ] [ SQL 2005 Features ] [ Loading Pictures from DB ]

    MS MVP 2006, 2007, 2008

  30. #670
    Super Moderator Shaggy Hiker's Avatar
    Join Date
    Aug 2002
    Location
    Idaho
    Posts
    36,735

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    We should all be very familiar with that image especially if we work with operating systems most of our lives and if we are involved in the maintenance or development of oses such as ReactOS or Windows - but in the context of the conversation here, it was quite understood by most of us what 'closer' to the "metal" means. I know what I mean by it.
    Yeah, that's what I meant: If somebody sees it as being harder to do stuff with, then they perceive it to be closer to the metal.

    I was being sarcastic, of course, but it's true. VB6 isn't closer to the metal, it's just harder to use.
    My usual boring signature: Nothing

  31. #671
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Shaggy Hiker View Post
    VB6 isn't closer to the metal, it's just harder to use.
    Well, I'd agree with that and still say it is - closer due to that additional complexity. You need to know what is going on and you learn what the O/S might be doing by working with that API.

    On the other side of things I keep my head immersed into the ReactOS scene and I see the same APIs being re-developed by both the Wine team and the ReactOS teams. I can get to see the API code from the inside and see what is really going on. If it wasn't for VB6 failing to protect me from these APIs they would be far less familiar to me.

    I am currently servicing my mini tractor, John Deere x125. I can remove, repair and replace the jets, solenoid, swap the fuel filter and pump, remove and gap the plugs, remove the oil filter and drain the oil. I can do that to countless devices with ease all because I once stuck my head under the bonnet of an old Vauxhall VX4/90 and in so doing became familiar with the internal working gubbins.



    My boys will drive a Tesla and they will never acquire this type nor level of knowledge as it will all be done for them.

    Just like my VX4/90, VB6 as an educational tool is perfect for getting your hands dirty. This aspect is NOT a negative and in my recent immersion back into VB6 I have come to respect VB6 for what it can teach me and others, doing things the hard way - or not.

    Last edited by yereverluvinuncleber; Oct 17th, 2021 at 06:23 AM. Reason: added pictures to cheer up these bleedin' awful thread
    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  32. #672
    Frenzied Member PlausiblyDamp's Avatar
    Join Date
    Dec 2016
    Location
    Newport, UK
    Posts
    1,496

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    Well, I'd agree with that and still say it is - closer due to that additional complexity. You need to know what is going on and you learn what the O/S might be doing by working with that API.
    If anything VB6 makes it even harder to understand API as you now have to contend with differences in data types (Integer in VB6 is not an int in the API), harder to handle windows messages directly etc.

    If you want to learn the API it is probably better just dealing with it directly and bypass VB completely.

  33. #673

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by szlamany View Post
    Now walk that same outside observer into the .Net room. Forget the VB vs C# syntax - just the library. That is a work of art. Self documenting in a way I've never seen before right in the IDE.
    This is such a good point. Like half of what I learned about .Net in the early days of me using it was from right in the IDE. Microsoft really did a fantastic job with the .Net APIs. It so well organized and self-documenting. I don't think anyone comes close in this regard with the notable exception of Java. I don't use Java but I do like looking up stuff in Java and it's interesting how much it resembles .Net in terms of the way they organize and name things in their APIs.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  34. #674
    Super Moderator Shaggy Hiker's Avatar
    Join Date
    Aug 2002
    Location
    Idaho
    Posts
    36,735

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by yereverluvinuncleber View Post
    I am currently servicing my mini tractor, John Deere x125. I can remove, repair and replace the jets, solenoid, swap the fuel filter and pump, remove and gap the plugs, remove the oil filter and drain the oil.
    Why bother? John Deere stands behind all their equipment....except the manure spreader...they don't stand behind that.
    My usual boring signature: Nothing

  35. #675
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by Shaggy Hiker View Post
    Why bother? John Deere stands behind all their equipment....except the manure spreader...they don't stand behind that.
    Doh!
    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  36. #676
    Frenzied Member PlausiblyDamp's Avatar
    Join Date
    Dec 2016
    Location
    Newport, UK
    Posts
    1,496

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Just saw this crop up in the VB6 side of things... https://www.vbforums.com/showthread....Array-is-Empty is that honestly how you check if an array is empty in VB6?

    I would have thought checking if it wasn't nothing and had a length of 0 would have been enough, pretty sure that is all you need under VB.Net...

  37. #677
    Super Moderator Shaggy Hiker's Avatar
    Join Date
    Aug 2002
    Location
    Idaho
    Posts
    36,735

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    That's a weird thread. It was started in 2003, was dead until a single post in 2012...and now it has come back. There's a pattern there. The thread seems to come back every 9 years.

    See you in 2030.
    My usual boring signature: Nothing

  38. #678
    PowerPoster
    Join Date
    Feb 2006
    Posts
    22,956

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    I'm still laughing too hard about all of that flexing about DEC. Not the smallest kid on the block, DEC was never even on the block. They were over playing in the ball pit with HP, Data General, Prime, et al. They were the PCs of their day.

  39. #679

    Thread Starter
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    6,662

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by PlausiblyDamp View Post
    Just saw this crop up in the VB6 side of things... https://www.vbforums.com/showthread....Array-is-Empty is that honestly how you check if an array is empty in VB6?

    I would have thought checking if it wasn't nothing and had a length of 0 would have been enough, pretty sure that is all you need under VB.Net...
    Yep, that is actually real. That is the kind of trash that people actually believe is better than .Net.

    You've never used VB6, have you PD? If the answer is no, then let me tell you, there's way worse.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  40. #680
    Frenzied Member
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    1,235

    Re: Why is VB.Net/C#/XAML + VS2019 is better than VB6? Here's why.....

    Quote Originally Posted by dilettante View Post
    I'm still laughing too hard about all of that flexing about DEC. Not the smallest kid on the block, DEC was never even on the block. They were over playing in the ball pit with HP, Data General, Prime, et al. They were the PCs of their day.
    Dil ,I can send you some more pills if you are running short.
    By the power invested in me, all the threads I start are Niya and Olaf free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

Page 17 of 23 FirstFirst ... 714151617181920 ... LastLast

Posting Permissions

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



Click Here to Expand Forum to Full Width