Is learning VB6 now a complete waste of time?

  • (8 Pages)
  • +
  • « First
  • 6
  • 7
  • 8

109 Replies - 41572 Views - Last Post: 08 January 2014 - 04:44 AM Rate Topic: -----

#106 AdamSpeight2008  Icon User is offline

  • MrCupOfT
  • member icon


Reputation: 2240
  • View blog
  • Posts: 9,411
  • Joined: 29-May 08

Re: Is learning VB6 now a complete waste of time?

Posted 07 December 2013 - 08:08 PM

It isn't too hard to customise the look of the IDE. (VS Themes). So if you want green text on a black console then you can.

What the change to .net from vb6 was improved tooling, analysis. Wait till the "Roslyn" based compiler technology and infrastructure gets fully integrated into VS. (Some of it already there.)

It also doesn't matter what language the library was used to make (so long as it compiled as IL / .net). I've in the past used 5/6 different programming language in one project!
I'm a poly-linguist programmer, I choose the language best suited for each part of the solution. Processing lots of XML use VB.net (as it has XML Literals.).
I enabled the language to evolve and advance, take Generics, LINQ Async & Await, DLR (Dynamic Language Runtime) which VB.net uses, PPL (Parallel Patterns Library) and NUGET.

If we include MONO it even has support for exploiting the GPU for processing. (Akin to CUDA). The MEF (Managed Extensibility Framework) has made writing Plugin code simpler. Even the current versions VS utilise it, and even Windows8
It has allowed us to test, and verify the code.
It has allowed us to exploit the power of multiple cores. (PPL)

Still we have to look at vb6 in context of when it came out, a the limitation of the hardware of the time. Even the C++ compiler and linker is held back by design decisions made long ago. Have a look a CLANG as compared against other compilers, how starting from scratch utilize that knowledge we learnt and do thing in a better way.

In pre-Vista OS being an Administrator meant you could do almost anything, but then Vista changed that. If you follow the guidance and respect which folders put things it, it'll work on either OS. Which doesn't necessary sticking everything in My Documents. Stop treating C:\ as if the user as Write Access, or that there even is a C:\. The OS as the ability lie to your application which can find where it put things. Treat Program Files as Read Only. The goal is that get your program to run under Standard User. Why you typical office workers need administrative rights? To do their jobs.

You can still program console applications in VB.net, if you stick to .net methods and don't us OS specific API calls, you're application can easily run that exact same code (over pre-compiled) on Linux with Mono. (which is an implementation of the CLR).

It's usually better to write you code in a GUI agnostic way, so you can put what ever UI you want on top of it. (Example)

I've written applications in VB6, I would want to go back and look at the code now. As it contains lots of hacks, spaghetti code. very little or no separation of the different layers Data, Processing, Control, Input, Output.. A lot of the programmers have a bias to what I call "GUI Control based Thinking" everything has be in a control. The have difficulty not think about them, show them an example that has no reference to a control and they are lost.

Visual Basic gets a bad reputation because of this. VB.net is a different beast to vb6 but is still gets tarnished. It's just as powerful as C#, even that little bit it can't do isn't a major problem (unsafe code), cos we can do that little bit in C# and utilise it in VB.net.

You can still program in vb6 style (mostly) in vb.net it is a descendent of vb, but if you do you lose of a lot of the benefits .net brings.

If I remember there was no free version of VB6 at the time, unlike now with the Express editions.

This post has been edited by AdamSpeight2008: 07 December 2013 - 08:20 PM

Was This Post Helpful? 0
  • +
  • -

#107 trevster344  Icon User is offline

  • The Peasant
  • member icon

Reputation: 224
  • View blog
  • Posts: 1,499
  • Joined: 16-March 11

Re: Is learning VB6 now a complete waste of time?

Posted 07 December 2013 - 08:42 PM

Honestly what's it matter? I love vb6 and love vb.net even more. My father still continues to make a great living off of the things he creates in vb6. If it's not your ball game then what's the point in bashing it? When it comes down to it, being sophisticated, up to date, flawlessly designed, etc never made me or my father a dollar. In fact most his deprecated trashy spghetti patch work is running today, competing with new age software because it's not the language that writes the program. It's the person behind the keyboard. So go ahead and bash it, but remember you're wasting your time. I learned a lot from vb6. Made transitions easier and who cares if that was a mistake or not. That's not anyone's call but mine and considering where I am today I don't think anyone has room to talk.

I'd also like to remind everyone that no matter how sophisticated things have gotten the truth is a lot of the world still runs on legacy systems. That's not to say it's a good thing either. That just means knowing how to work with them could be important especially considering how many programmers I've met including myself that have had to deal with modernizing and replacing legacy systems in a working environment. It's natural, but until all the legacy systems are gone there will be a place for some of that knowledge.

This post has been edited by trevster344: 07 December 2013 - 08:53 PM

Was This Post Helpful? 0
  • +
  • -

#108 AdamSpeight2008  Icon User is offline

  • MrCupOfT
  • member icon


Reputation: 2240
  • View blog
  • Posts: 9,411
  • Joined: 29-May 08

Re: Is learning VB6 now a complete waste of time?

Posted 07 December 2013 - 11:12 PM

I started to learning programming on a Spectrum 48K and sometimes even assembler.
Didn't start writing proper stuff till I got and school got a Acorn Archimedes. Eventually I got an Acorn myself (still have all my old computers) an A3010.
I programmed WIMP (Windows Icons Mouse Pointers) application in ARM BBC BASIC they ran almost as fast as Assembler because the Runtime fitted inside of the on chip cache. Programming them involved writing code to construct to windows, you also be cooperative if you want to multitask as the RISC OS was a Cooperative Multitasking os the program decides when to release control back to the OS. (Unlike Windows). Later this changes. I could programming in ARM assembly code, write extensions for the OS. RISCOS is very modular in its design.

It probably still boot faster the most modern OSs due the OS being in ROM, making harder for virus to seriously damage the os. Turn it off and back on again would fix the problem (or in to supervisor command prompt.

I've successifly made to transition from VB6 to VB.net (maybe took a couple of months).
MSDN Guidance

I'm still learning as different additions to the language, have made the writing of difficult code to write (asynchronous code) easier and more importantly less chances of it containing bugs. Try writing asynchronous code which includes loops and exceptions. It lot simple now because of addition of only two keywords to the language (Async & Await) which makes job creating it, down to a compiler transformation.
It as also as a side-effect allowed VB.net coders to create Iterators.

Going back to coding in VB6 from VB.net is harder, and slower (for me) because I'm used to
the syntax, grammar and patterns from coding in it.

vb.net
Dim x = 0 
with Option Infer On
X is typed as Integer (not Object)
vb6
Dim x As Integer 
x = 0



Module Module1

    Sub Main()
    REM These are still valid in VB.net
    Dim a$ = "Dream.In.Code"    ' String
    Dim b% = 123                ' Integer
    Dim d@ = 1.2345             ' Decimal
    Dim c! = 1.24               ' Single
    Dim e# = 1.23               ' Double
    Dim f& = 12                 ' Long
    End Sub

End Module


But using them are likely throw "modern" VB programmers which tend to use the Named Type
Dim A As String = "Dream.In.Code" or inferred type deduction. Dim a = "Dream.In.Code"

(S, I, L, D, F, R, C) are still valid type identifiers on literals.

VB.net almost all of the vb6 language constructs. What different is the GUI designer.
You can't do Control Arrays like we did back in the vb6 days.
I haven't missed having that ability anyways.


Have you looked at Small BASIC?

This post has been edited by AdamSpeight2008: 07 December 2013 - 11:14 PM

Was This Post Helpful? 1
  • +
  • -

#109 darkpoetcc  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 34
  • Joined: 07-January 14

Re: Is learning VB6 now a complete waste of time?

Posted 08 January 2014 - 04:36 AM

View PostAdamSpeight2008, on 07 November 2012 - 11:31 PM, said:

It's reasonably simple to communicate with COM objects.
PInvoke Example
If you're using VS2010 or later there is http://www.red-gate....pment/pinvoke/.

But I think the trend is more toward abstracting the OS away, so it can be used across platforms. Portable Libraries
Windows Runtime is essentially an updated COM

vb6 is supported in Windows8 (sadly)
Microsoft should make a stand and say they killing vb6 support in the next OS release.


While the sentiment makes sense, the logical practice of it does not. Consider mainframe applications -- these are behemoths like the woolly mammoth; relics of a by-gone age. Yet we keep them around (and the very few and far between developers who can support them) because the cost or time investment to migrate away from them is not tolerable. This is very true in the insurance and banking world, where a decent amount of stuff is still done in mainframe systems and legacy applications(read VB6/cobol).
The same is true for a lot of businesses who are still waiting until the last minute to update the Windows 7/8 -- while it sounds like a "no-brainer" to upgrade, there are costs associated with updates, upgrades, migrations and overhauls, and most businesses do not want to invest in such things -- that cuts into the bottom line, and someone's bonus has to be a little smaller (the horror!). In the end, those business entities are what drive the major decisions in companies like Microsoft, Sun, Redhat and IBM. That being said, the businesses will more or less tell such companies what they will or will not accept, and those companies, who really want other major companies to pay them large sums of money and retain their customer base, will do as they are told.
Was This Post Helpful? 0
  • +
  • -

#110 darkpoetcc  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 34
  • Joined: 07-January 14

Re: Is learning VB6 now a complete waste of time?

Posted 08 January 2014 - 04:44 AM

View PostBobRodes, on 07 November 2012 - 11:02 PM, said:

It seems like there is a lot of sentiment that VB6 is pretty much useless to learn anymore. I'm not sure I agree with that position personally, but I wanted to throw it out there and see what sorts of responses we got. I particularly want to explore reasons other than the "maintain the vast body of legacy code out there" reason.

A couple of things that occur to me personally are the ease of creating and using COM objects, and the ease of creating wrappers for the Win32 API. Would anyone else care to share a point of view?


Bob, my $0.02 USD is that while it is not as spiffy or nice as the newer versions of programming languages out there, it is still used more than some people expect. I know multiple business units I work with still have old VB6 coded applications laying around. And to be honest, having the skillset could make or break you with those companies, as they have to have at least one person who knows the older language. So although you want to skip over the logical argument (vast amounts of old code), it is a highly valid point and one to consider. If I were someone completely new to programming, I would honestly try to learn the newer languages and the older ones also -- you never know when the old will be needed, and usually, they're not too difficult to learn if you are able to understand programming constructs and abstract principles. Anyway, just my $0.02. Thanks for the interesting topic after a very long night! :)

Best Wishes!
Was This Post Helpful? 0
  • +
  • -

  • (8 Pages)
  • +
  • « First
  • 6
  • 7
  • 8