Difference between VB6.0, VB2010, VB.NET [closed] - vb.net

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I have studied VB 6.0 but have hardly any knowledge of .NET. Can someone please tell me the difference between the three versions namely VB6.0, VB 2010 express and VB.NET?

Now this is a somewhat wide question, but in short, VB.NET is the language and VB 2010 is a VB.NET version released with Visual Studio 2010 and .NET 4.
So the main comparison should really be between VB6 and VB.NET because that's where you'll find the big differences.
VB.NET includes a lot of functionality that has been around in other languages like C++ for ages, and is by some considered way to different from VB6 even to be called VB anymore. But let's set aside the arguing for a moment, what are those new shining thingies? Well, among other you have this:
True object oriented inheritance
Overloading
Free Threading
Strict type checking
and alot more. Then there are some changes that might be a bit harder to adjust to since they're to close to the old one, like zero-based arrays, returning values from functions using a
return statement instead of using the function name, passing of parameters by value instead of by reference, new error handling (using try, catch, finally etc), usage of namespaces etc. The list goes on and on.
The shear breadth of the .NET Framework which VB.NET makes use of makes it a more versatile platform (IMO). It also runs in the CLR (Common Language Runtime) which is more or less a virtual machine with a just-in-time compilation engine.
When it comes to compiling, VB6 compiled to native code while VB.NET compiles to CIL (Common Intermediate Language) which makes it a lot easier to reverse engineer, however you can obfuscate the code in order to make it less readable.
As you can see from what I just wrote it's quite a wide subject, but if you have a more precise question, feel free to ask, otherwise I hope you have a bit clearer image of the differences now. :)

Related

Linkers and Loaders for Objective-C [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 9 years ago.
I recently came across John Levine's book "Linkers and Loaders." This book was written in the year 2000. If anyone has read his book, is everything the author says still relevant for Objective-C in the year 2013? I am asking, because it looks like a good book to have on my shelf, but if the info is out of date I probably don't want to really study the book.
Thanks!
Yes & no...
I don't know that specific book, but if it was up-to-date in 2000 then the material in it should still be valid to learn about how things work under the hood.
However, you do not really need to know anything about linking and loading to understand variables and pointers.
Nor do you need to understand symbol tables as such. A symbol table is a data structure used by compilers to track variables during compilation as part of translating the program code your write into the instructions the CPU understands.
The concepts of variables and pointers in programming languages are abstractions of the concepts of memory locations and memory addresses at the CPU level (which themselves are in some sense abstractions of lower-level stuff, ending up with circuits and, if you dig deep enough, electrons! ;-))
What you should be looking for is a book on programming language concepts rather then compiling, linking and loading. A good book will introduce variables and types, then composites such as arrays and records, and end up with objects (which are essentially just variables you'll discover). Types and variables go together, one says how to interpret a collection of bits the other provides somewhere to keep collections of bits. A pointer is a value (collection of bits) of some pointer type, just as an integer is a value of some integer type.
Variables and pointers are not difficult concepts, but they are often misunderstood - plenty of questions on SO stem from misunderstandings of these concepts - so your quest is good, go and read! Apologies, but I've no reference to hand.
Given that ObjC has been in active use as a natively compiled language since the late '80s (prior, it was largely a precompiler generated language + runtime) and has supported linking/loading since then, too, it'll be as applicable as the book can be to any language derived from C. With that said, it is likely largely a waste of your time to dive too deep in that linking/loading are details that are taken care of by the system with little [OS X, OpenStep] to no [iOS] configurability to the developer.
Certainly, an interesting divergence, though, and a deep understanding of linking/loading is relevant to any work related to compilation and execution tool chains.

Seeking compilers, any idea? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
This semester, I'm learning database using the isql*plus (oracle10g), but that needs to install a server on the pc first so it will function well. That really lags my pc, and I just need to write simple code snippets, and view the output.
I've searched the internet for the isql*plus, found something called (altova database), but needs money.
Searched again for a C compiler, but found an old compiler (that's fine by me!) and found the dll libraries for the openGL, but don't know how to bind the library with that lousy compiler program I'm using; maybe a C compiler suitable for game programming is the best.
And I've been starving to find a C programming language compiler (World Widely Known), with the suitable OpenGL dll libraries.
If you have to have Oracle, then check with your school to see if they've got a test Oracle server setup for students to use. If not, then get together with some friends in the same class and dedicate one machine to be your shared Oracle server. Alternately, just spin up the Oracle instance on your local box when you need it, and spin it back down when you don't.
If you are just learning SQL, then try something lighter like MySQL or SQLite. Both are free and much less resource intensive than Oracle. From a student perspective, the SQL language is similar enough. When you get into big applications and database administration, the differences between the different flavors of SQL servers becomes more important.
GCC is your go-to C/C++ compiler. Whether there is OpenGL support for it depends on the platform you are using. I can't tell if Visual Studio is free for students or not, but there is a 90-day free trial. That should be more than sufficient for a semester's worth of coding.
This semester, I'm learning database using the isql*plus (oracle10g),
but that needs to install a server on the pc first so it will function
well.
Every version of Oracle you install locally will need to install a server to function at all, not just to function well.
And I've been starving to find a C programming language compiler
(World Widely Known), with the suitable OpenGL dll libraries.
iSQLPlus is a web-based utility that you can use to a) connect to a server, not necessarily running on your local PC, and b) enter SQL statements to be run on that server. It's not a compiler in any sense of the word. Whether you can connect to an instance of Oracle running on a different computer depends on a lot of TCP/IP and database security settings.
As a rule of thumb, it's pretty odd to need a C compiler when your goal is learning any SQL database, including Oracle.

Why do IDEs have Projects? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
Why do IDEs structure code as "Projects" or "Solutions"? And no, I'm not trying to troll, I really want to know what people use them for.
It always seems to me like "Project" is just a redundant alias for "executable", and I find the "Project" structure tends to get in my way when I want to share code across several executable processes. This is especially true in languages like Java, where there's already a rigorous packaging system for organizing code with, but it applies to pretty much every IDE I've seen. So why do they always adopt this structure? Is there some trick to using it?
It always seems to me like "Project" is just a redundant alias for "executable",
I actually tend to think of "project" more as a "compilation unit" or a "deployment item" - at least for most compiled languages. Projects typically map to a single executable or library (or other compilation unit in languages where that's supported).
As such, a "project" is a very valuable method of organization.
Not all IDEs use these names, but in general, they are a way to organize code.
This is needed in any code base of a certain size - some sort of hierarchy that helps and logically separate code components from each other.
A solution can contain multiple projects. This concept is very much useful when you have a tiered software achitecture.
e.g. A solution can have following projects:
Data Access Layer Project
Business Layer Project
Presentation Layer Project
Every Project (tier) has a specific purpose in the same website.

What are the differences between VB.NET and previous versions of VB? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm reasonably familiar with the various forms of VB that existed prior to .NET (VB6, VBA, VBScript...), but have yet to delve into The Sweet New Flavor that is VB.NET.
So I would very much appreciate it if someone would provide a quick summary of the major differences in the language brought about by VB.NET.
Assuming when you say vb you mean vb 6.
Pretty big. The original visual basic does not use the .net runtime environment, and although they have similar names, they are pretty much too different languages. Visual Basic is not fully object oriented, but VB.net is. Error handling is vastly different between the two. VB.Net has try catch blocks where traditional vb uses On Error GOTO statements. These are just a few differences. The list goes on and on.
Here is a link describing the "Visual Fred" Name.
Oh the horror.
Sorry, but all existing answers are wrong in some way or another. Joel’s is actually the best of the bunch but its poor wording encourages misunderstanding (sorry, Joel – but just look at your comments!):
contrasting VB.Net with VB is not possible, because they are the same thing.
That’s exactly like saying that “contrasting apples with fruits is not possible because they are the same thing,” and as such not very helpful; especially since many people (still) use “VB” synonymously with “VB6.”
So, to clear things up a bit: both VB6 and VB.NET are dialects of the Visual Basic language family (let’s call it that). Their resemblance is superficial at best; someone who has actually used them both (and not only looked at some source codes) will have noticed that apart from a cursory syntactic similarity, they are completely different beasts. Using them are fundamentally different experiences.
The only aspect in which they actually resemble each other (apart from said syntax similarity) is that they both are very well suited for rapid application development (RAD) … at least until you’ve tried dynamic languages such as Python or Ruby in combination with GUI agile frameworks such as Shoes. But even as RAD environments go there’s a huge difference.
VB6 was basically developed to do RAD, nothing else. And in its time, VB6 was the best thing on the marked to do RAD, by a large margin. VB.NET, on the other hand, was not singled out for RAD development – any more than C#. Both are high-end languages backed by a general-purpose framework, much like Java but with the aspiration to improve on some of Java’s faults, such as its over verboseness by cutting a lot of boilerplate code (introduction of delegates, events, properties, operator overloading, autoboxing to name but a few such features).
And while VB.NET is to a large degree backwards compatible, this is very misleading. First off, no sane person would say that C and C++ are the same languages just because a lot of C programs compile fine on C++ compilers. The differences between VB and VB.NET are even bigger by some metrics because no complete VB6 code is valid VB.NET. It needs an automated “upgrade assistant” to produce valid .NET code, and experience has shown that this upgrade assistant is unsuitable even for medium-sized projects, mainly because its literal translation breaks many guidelines and assumptions of the .NET world.
Saying, like Kibbee, that the compilers of VB6 and VB.NET are “basically the same” is flat out wrong. Likewise, claiming that “the .Net runtime is not a change to the language” misses the point completely. Of course it’s a change in the language. VB.NET was completely build around the .NET framework, it’s not just any other library.
He claims that
If VB.Net was meant to be a new language, and not just a new version of an old language, they would have got rid of "On Error Goto" which they didn't.
– which is likewise misleading. “On Error Goto” was included solely for backwards compatibility (the upgrade assistant cannot convert old-style error handling into exception-based error handling).
Let me sum up the main point of this rather long posting so it doesn’t get lost: Just like Java and JavaScript, VB6 and VB.NET have very similar names (and for very much the same reason, too: marketing) but this is entirely misleading. There are a few syntactic similarities. Apart from that, superficially as well as under the hood, they are completely different languages.
VB.Net is just the version of Visual Basic intended to work with the .Net framework. It also makes other changes and additions to the language, but contrasting VB.Net with VB is not possible, because they are the same thing.
What you can do is contrast with VB.Net with VBA, or VB6, or VBScript, or some other variant of Visual Basic. But VB.Net still IS one possible variant of VB. In fact, if you look at the language part of the product by itself, they're now calling the latest version VB9, with VB10 due out later this year.
In the same way, you can't contrast "Pespi" and cola, because Pepsi is a cola, but you can contrast Pepsi and Coke.
That said, the VB.Net dialect of VB brings a significant number of changes and improvements to the language, including true support for object oriented and functional paradigms, to the point where idiomatic VB.Net code is often very different from VB6-era code.
There are quite a few - too many to list I think. You could almost consider VB.Net a completely different language that shares some similar syntax to VB. The biggest change is becoming familiar with the .NET classes.
VB.Net is a newer version that uses the Dot Net Framework / managed code.
VB is the old version.
VB compiles to p-code or native code, VB.net compiles to MSIL. Also the syntax differs a bit. As VB.net is the upgrade path for VB users and programs, there are a bunch of helper objects and functions that makes moving code from VB to VB.net easier, these objects and functions aren't normally used in programs written in other .net languages.

What language to use [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I've programmed in VB5 (and a little VB6) in the past, used MS Access at a 'writing code' level but this was all a few years ago and I've only used PHP more recently. I'd like to get back in to programming for the PC (Windows...) but not sure where to go with a choice of language. VB.Net? C#? ....any suggestions? Something easy to pick up, simple to use for creating 'small' desktop utilities, that sort of thing.
VB.NET is conceptually different enough from VB5/6 that you might almost be better off going with something completely new.
Plus, Jeff says he gave up on VB.NET because he had such a hard time finding decent code examples. C# is everywhere.
I use C# if I'm in .NET. I like it well enough, but then I got here via Java, without a whole lot of VB experience.
At the risk of getting downvoted to oblivion, I disagree with the many C# and VB.NET suggestions. Whilst I've played with C# (not VB.NET) and it's a very impressive and versatile language/toolkit, if I were you I'd attempt to broaden your horizons by going for something with decent cross-platform portability such as Python.
It's a fun language to play with, easy to learn, teaches good habits, and if you find yourself looking for a new job in a couple of years time, at least if it's a non-Windows development job, you've got a skill you can take to the party.
I think that if you have used VB6 and Access in the past, picking up VB.NET should be a breeze. In many ways VB.NET will let you do what you've done before, but with much more structure and a "real language" feel rather than a "scripting" feel compared to the past.
A .NET language - VB.NET or C# is a good idea. Lots of information available, and you can get the Express versions for free. VB.NET may be an easier transition, based upon your previous experience. Be warned though: C# is more popular, which means there are more tools and code samples available.
Check out related questions:
Which language should I pick up: vb.net or C# and
Usage Statistics: C# versus VB.NET
If you like to build 'small' desktop utilities, that sort of thing that does not require the .NET framework to run, you might want to check out BCX. It is free.
BCX is a small command line tool that inputs a BCX BASIC source code file and outputs a 'C' source code file which can be compiled with many C or C++ compilers.
Using BCX and a C compiler enables you to produce powerful 32-bit native code Windows console mode programs, windows GUI applications, and Dynamic Link Libraries (DLL's) without having to incur the costs of an expensive commercial BASIC compiler. The programs that you create will be among the smallest and fastest 32 bit executable programs around, requiring no additional distributed runtime modules.
URL: http://bcx-basic.sourceforge.net/
if your already familiar with vb5 and vb6 and your just building small desktop utilities then I would recommend vb.net
if you have used VB, VB.Net seems like the natural choice.
If you wanted something specifically for creating simple desktop applications you could look at a scripting language with Tk such as ruby or python which also might also give you a change to learn a new language with different features.
Most probably VB.NET would be best for you, although I prefer C# when write for Windows and C++ with Qt when application has to work on other platforms as well.
The conventional wisdom says that the programmer "upgrade path" from VB6 leads to VB.NET...I do not agree with the conventional wisdom. I used VB6 day in and day out for almost 10 years. Now I use C# very comfortably.
Compared to the conceptual differences between COM (VB6 is based on COM) and .NET, the syntax differences between VB.NET and C# are minor. On the other hand, there is much better support (from both MS and the community) for C#.
I heartily recommend that you give C# a try.
While it might be a little more difficult for you to pick up than VB.NET I think you'll appreciate the gains in the maintainability of the code you produce.
If you have used VB5/6 and VBA before, VB.NET should feel pretty familiar. However, VB has become object oriented after version 6, so there is some new things to learn.
If you want to broaden your knowledge a bit, C# is a good alternative.
I would recommend learning some C# even if you want to go on to VB.NET. They both use the .NET framework and compile into nearly identical IL code, so most of what you learn in C# is useful in VB.NET also. It's also quite useful to be able to translate between them, as you then can use coding examples in either language.