I am at the point that I need to consider purchasing my own development tools. I have been working with VB6 at work, and it is what I am familiar with.
However, I think the handwriting is on the wall, and VB .Net will be/is the future.
The issue I have is that I still see and hear a lot of talk about VB6. It definitly has not gone away, and, to me, appears to be as strong as ever. And I see where it is still available for sale.
Anyone have any opinions?
I am still confused about .Net and C# and C++ and VB6. Can anyone point me to some good articles that compare them all (if they are comparable; I still don't get the .Net and C# relationship)?
TIA
Lew Hundley
Comments
VB6
Pros:
- Many Legacy Applications Developed In VB6
- Good Support For Win32 API
- Many third party COM components written for it
Cons:
- Not fully object oriented (Only supports Implementation Inheritence)
- DLL hell (System locks dll and versioning problems)
- Too many strange intrinsic commands (#Input, #Put, #Get)
- Controls dont conform to standard property naming conventions
- VB6 is not easy to extend
- Some C++ wizardry is still required to get certain tasks done
- Single or Apartment threaded
VB.NET
Pros:
- Fully object oriented (Minus multiple inheritence - Only c++)
- Leverages .NET framework with over 3600 objects to work with for free
- No DLL hell, No Registry
- Easy To Extend
- Multi-Threaded
- Widely supported now
- Web development is event based now
- Once u learn VB.NET then C# is easy (all .NET languages share framework)
- Many companies nowadays will be looking for someone to convert VB6 to VB.net
Cons:
- Is new and lacks in third party support compared to vb6
- The language is still evolving
- Porting old VB6 apps is not as easy as Microsoft says
- Tapping into win32 api is more verbose and requires knowledge of how managed objects are marshalled
C# is a little more robust than VB.NET in that u can write unmanaged code and use c++ pointers in unsafe sections. C# also supports a language feature I wish they would have added to VB.NET, which is operator overloading.
VC++ Managed Extensions has the largest capabilites at the expense of longer code and stranger constructs. You can mix managed and unmanaged code.
In .NET version 2.0 I heard that all languages will support Template programming. A awesome feature C++ has supported for years. You will have the ability to write classes and functions that cover all data types. Instead of having to write the class for each data type.
:
iwilld0it got everything else so I'll just say:
C# is a .Net language; you can kind of think of it as C++.Net though that's not really too accurate...