Visual basic express edition

dd1313

Expert Member
Joined
Jul 23, 2005
Messages
1,552
Reaction score
0
Hi Guys

Is this version only for students or can you create application with it

THanks
DD
 
Hi

All the Express Editions are free to develop and distribute applications. It's a bit limited in features compared to the other versions, but should be sufficient for most basic projects. Depending on what you want to code or if you're just starting out, Netbeans or Eclipse could alse be considered alternatives...
 
Netbeans is superior to Visual Studio IMHO. I used to hate but then my friend forced me to use it, now I don't use anything else.

Naturally with .NET one doesn't have much choice, it's VS or nothing.
 
Hi

All the Express Editions are free to develop and distribute applications. It's a bit limited in features compared to the other versions, but should be sufficient for most basic projects. Depending on what you want to code or if you're just starting out, Netbeans or Eclipse could also be considered alternatives...

My one collegaue mentioned he heard http://www.eclipse.org/ is suppose to be good.

I am actually quite interested in learning to program, but don`t know where to start.
Are there any down-loadable pdf books or websites you guys would recommend.
I`m also a bit caught between which language to pick.
C++ apps are always damn fast!!! and also appear popular to access external hardware devices/electronics
Delphi vs. C++ vs. VB vs. C# (I think those are the main ones right)

I know I can google comparisons and whatever but what are your thoughts/experiences...
I just don`t know where to start really. I am leaning towards C++/C#
 
Last edited:
nothing stops you from learning two languages at the same time :) instead of VB i'd rather recommend you go for C#, maybe its just my circle but I know very little vb developers. also C# is similar in syntax to Java. so you should be able to read and understand both.
 

The only problem I have with Netbeans is that the 'window' doesn't keep focus when alt-tabbing back and forth. Irritating. I'm using the PHP version.
 
Delphi vs. C++ vs. VB vs. C# (I think those are the main ones right)
Delphi very structured which is good for start. Its losing supporters though atm so I'd give it a miss.

VB is just plain nasty.

C++ is fairly hardcore as you have a lot of direct access to memory & need to manage it. Would also be a good choice if you feel up to it.

C# would be a good choice imo.

Make your own thread & wait a bit. Teh programmer crowd will rock up and give solid advice.
 
Who's the programming crowds? Naturally, most people will recommend C# because, you know, it's just that good... ;)
 
Last edited:
Another C# recommendation here. C# and VB are both build on the CLR, with no real difference between them, and they're both going to be maintained by the same team (if they aren't already both under Anders). With C#, you will find the port to java / c / c++ MUCH easier. There's no reason in my opinion to start off in VB. Go look around the net and see how many samples and demo apps are in C# only. I moved over to C# from VB a few years ago, and won't go back.

Don't get pulled into that trap that c++ is faster than C#. If you are writing complex, high performance applications where you think you can handle memory better than the garbage collector, fine, go ahead, but that'll most likely never be required. For the extra headache, it's not worth it in my opinion. Unless you find yourself wanting to join some open source linux based communities and want to contribute. Then you'll have to learn it.

On the Delphi note, Anders Hejlsberg who architected Delphi, is the lead architect for C#. I'd go with his latest product:P
 
What are you okes on about? The OP asked if VB Express could be used to make (commercial?) applications - nothing was said about learning VB...

I say leave the poor bloke alone. VB is as powerful as C#, and in some cases it's actually more productive to use VB.Net. We have a particular app that uses VB.Net simply because of an ActiveX DLL we have to encapsulate - it turns out that VB (2.0) releases the DLL memory better than C#.
 
I'm going to vote Java for beginner for one important reason:

C++ is far too difficult for someone to learn on their own with no prior knowledge, you have to learn about the heap and stack to be able to use C++ whereas in Java/.NET you can be oblivious to those facts. C++ doesn't have the user friendliness in terms of the development tools (IE. making a GUI application in C++ and making a GUI application in Java/.NET, are 2 very different things). Even using console applications you miss lots of built in functions in C++, for example reading XML files, dealing with reading in from the console is tedious, converting between types is tedious, dealing with pointers and deletions are tedious.

Why Java instead of .NET: In .NET you have all these "HANDY" things, like objects without types, yes ok they have types but your declaration doesn't require a type, now I can already see bad habits forming. Say what you will, declaring variables without type makes maintenance more difficult and its a bad habit using it unless absolutely necessary (and I can't see where it is necessary).

Overloaded operators, you know how many times I've seen people use the == in Java/C# and have no idea what's going on behind the scenes? Rather learn to use .equals when objects need to be compared and == when you want to compare object references. Yes it can be done in .NET but in Java you are forced to recognize that the actual reference lives on the stack and == compares the references whereas .equals compares the actual object on the heap/stack.

These stupid value types in .NET (structs), just confuse a beginners, value types aren't OO, Java isn't completely OO either because they have primitive types but at least you only have to deal with those few that Java already has, in .NET they just go ahead and allow the creation of more value types, not good idea for a beginner I reckon.

There probably are others, I just can't think of them yet...

The only 2 things I can think of that I wish Java had that .NET has is 1. Get/Set and 2. Delegates

Not true. There's SharpDevelop (Windows) and MonoDevelop (Linux)

I've used SharpDevelop and it's not bad. Until they release v4 (no date set), you probably better off with Visual Studio 2010 Express.

That's what I meant, there are "options" but they all suck. Its kinda like saying BlueJ is an alternative to Netbeans (yeah maybe if you are smoking crack) ;)
 
What are you okes on about? The OP asked if VB Express could be used to make (commercial?) applications - nothing was said about learning VB...

did u see ingeon's request? I should have been clear that my response was to his. dd1313's request was answered in post 2 by Paradigm.
 
What are you okes on about?
We're participating in ingeon's derail.

We have a particular app that uses VB.Net simply because of an ActiveX DLL we have to encapsulate - it turns out that VB (2.0) releases the DLL memory better than C#.
Of course ActiveX and VB will work well together...they are both nasty. /jk
 
Why Java instead of .NET: In .NET you have all these "HANDY" things, like objects without types, yes ok they have types but your declaration doesn't require a type, now I can already see bad habits forming. Say what you will, declaring variables without type makes maintenance more difficult and its a bad habit using it unless absolutely necessary (and I can't see where it is necessary).

Sorry what? Please show me how you can declare a variable without typing it in C#? The closest thing I can think you might be refering to is the use of "var =" which is merely sugar coating the syntax in order to infer types from the object you are assigning to it. The compiler will fill in the type for you. It was designed for anonymous types, which are also very useful. It is not however the same as declaring a variable without a type. I'm not sure of anything else that you could be refering to, so please elaborate. I fail to see the merit in your argument

Overloaded operators, you know how many times I've seen people use the == in Java/C# and have no idea what's going on behind the scenes? Rather learn to use .equals when objects need to be compared and == when you want to compare object references. Yes it can be done in .NET but in Java you are forced to recognize that the actual reference lives on the stack and == compares the references whereas .equals compares the actual object on the heap/stack.

I don't see anything wrong with operator overloading. I think it's essential that developers understand how to implement IEquatable and IComparable properly, and for those that need it, how to overload an operator. It can make life a whole bunch easier for some specialised classes. Here's an article with a valid argument on this topic: http://visualbasic.about.com/od/usingvbnet/a/opovrld01.htm. I have used operator overloading for one of my own classes which is essentially a new datatype. Without operator overloading, the meaning of the class would have been lost, and I would have had to create methods called "GreaterThan" and "LessThan" etc.

These stupid value types in .NET (structs), just confuse a beginners, value types aren't OO, Java isn't completely OO either because they have primitive types but at least you only have to deal with those few that Java already has, in .NET they just go ahead and allow the creation of more value types, not good idea for a beginner I reckon.

Creating value types that have less overhead and live on the stack instead of pushing everything onto the heap is a bad thing? For small pieces of data that are very simple, structs can give a performance boost. Who cares if they don't adhere to strict OOP concepts when they can bring about a performance benefits. They can implement, just not inherit.

I don't think you can want something removed from a language just because a beginner might not understand it. That's ridiculous. Where would software development be if people didn't have the option of using things that can improve their applications just because someone felt they were not easy for beginners.
 
Sorry what? Please show me how you can declare a variable without typing it in C#? The closest thing I can think you might be refering to is the use of "var =" which is merely sugar coating the syntax in order to infer types from the object you are assigning to it. The compiler will fill in the type for you. It was designed for anonymous types, which are also very useful. It is not however the same as declaring a variable without a type. I'm not sure of anything else that you could be refering to, so please elaborate. I fail to see the merit in your argument
If you read further you'd see I said it does have type, but you can declare without specifying type, its bad practice and allows for sloppy coding with decreased readability. I was talking about the var = you clearly got what I was saying. I cannot think of a single time I have ever required the use of a WHATEVER you call that var = thing in C#.

Since you can't think of why it is bad, clearly you aren't well schooled in programming languages so I'll spell it out for you:
If you declare variables like this:
var x;
var y;
var k;
x = new Int32();
//20 lines later
y = "Hello World";
//50 lines later
k = DateTime.Now;

Now you wrote that code and its running on a system. A few weeks later something breaks, and you have to fix that code. Even if it isn't someone else who has to fix it, I hardly think you'd remember what was happening there. If you still don't understand it then you probably just aren't very experienced yet and you'll see. Its the same as trying to debug JavaScript (which only uses inferred types) VS. Java, not nearly the same experience.

Readability suffers, with minimal or no increase in write-ability and your debugging becomes exponentially more difficult.

I don't see anything wrong with operator overloading. I think it's essential that developers understand how to implement IEquatable and IComparable properly, and for those that need it, how to overload an operator. It can make life a whole bunch easier for some specialised classes. Here's an article with a valid argument on this topic: http://visualbasic.about.com/od/usingvbnet/a/opovrld01.htm. I have used operator overloading for one of my own classes which is essentially a new datatype. Without operator overloading, the meaning of the class would have been lost, and I would have had to create methods called "GreaterThan" and "LessThan" etc.
Hmm, I don't want to cover this, we covered it thoroughly in programming languages while I was a student and it is thoroughly covered in programming language literature, it is generally excepted that for beginners overloaded operators are a bad thing for a number of reasons. Operators aren't always intuitive and the meaning of an operator isn't always clearly deductible, not to mention that it is commonly abused by beginners in ways that decrease readability rather than increase it (which is the only reason for the existence of operators). There is an entire section on it in the book I used as pre-grad, Concepts of Progamming Languages Eighth Edition, Robert W. Sebesta, you are welcome to take a look if you wish.

Creating value types that have less overhead and live on the stack instead of pushing everything onto the heap is a bad thing? For small pieces of data that are very simple, structs can give a performance boost. Who cares if they don't adhere to strict OOP concepts when they can bring about a performance benefits. They can implement, just not inherit.

I don't think you can want something removed from a language just because a beginner might not understand it. That's ridiculous. Where would software development be if people didn't have the option of using things that can improve their applications just because someone felt they were not easy for beginners.
You infer that Java objects cannot live on the stack when in fact they can, the GC will place an object on the stack if it determines that it is prudent, so that point is moot.

Strict OO concepts are important for beginners whom are still learning, so as not to pick up bad habits, that is why it is important. Ingeon asked what language is good for someone whom is beginning and I answered with what I believe are valid points why Java is better than .NET for a beginner.
 
Last edited:
If you read further you'd see I said it does have type, but you can declare without specifying type, its bad practice and allows for sloppy coding with decreased readability. I was talking about the var = you clearly got what I was saying. I cannot think of a single time I have ever required the use of a WHATEVER you call that var = thing in C#.

Since you can't think of why it is bad, clearly you aren't well schooled in programming languages so I'll spell it out for you:
If you declare variables like this:
var x;
var y;
var k;
x = new Int32();
//20 lines later
y = "Hello World";
//50 lines later
k = DateTime.Now;

please try compile "var x;" in c#. You can't. None of what you typed there will compile. And i'm not schooled in programming? The error you will receive is "implicitly typed local variables must be initialized". var in c# is not the same as var (varient) in VB6 where you could stick anything in it. var in c# is strongly typed (implicit typing). There is some more reading here in case you'd like to try again: http://msdn.microsoft.com/en-us/library/bb383973.aspx

I cannot think of a single time I have ever required the use of a WHATEVER you call that var = thing in C#

lol... "I never needed it, so therefore it's crap". Like I said, it's for Anonymous Types. I take it you do not use Linq. var was created primarily for use with linq.

var productQuery =
from prod in products
select new { prod.Color, prod.Price };

more reading for you here: http://msdn.microsoft.com/en-us/library/bb397696.aspx

Now you wrote that code and its running on a system. A few weeks later something breaks, and you have to fix that code. Even if it isn't someone else who has to fix it, I hardly think you'd remember what was happening there. If you still don't understand it then you probably just aren't very experienced yet and you'll see. Its the same as trying to debug JavaScript (which only uses inferred types) VS. Java, not nearly the same experience.

Readability suffers, with minimal or no increase in write-ability and your debugging becomes exponentially more difficult.

As I said above, you can't compile what you wrote, so your argument fails. The code you wrote was for a varient type (which does not exist in .Net).

In fact, .Net 4.0 now has the DLR (Dynamic Language Runtime) to deal with compatability issues when integrating with dynamic languages like javascript, which allows you to keep your code strongly typed. C# is all about strongly typing. Go read up on the DLR and dynamics.

Hmm, I don't want to cover this, we covered it thoroughly in programming languages while I was a student and it is thoroughly covered in programming language literature, it is generally excepted that for beginners overloaded operators are a bad thing for a number of reasons. Operators aren't always intuitive and the meaning of an operator isn't always clearly deductible, not to mention that it is commonly abused by beginners in ways that decrease readability rather than increase it (which is the only reason for the existence of operators). There is an entire section on it in the book I used as pre-grad, Concepts of Progamming Languages Eighth Edition, Robert W. Sebesta, you are welcome to take a look if you wish.

Again.. the beginner argument. Once you pass that step and are no longer a beginner? Oh wait, you still can't do it, because operators can't be overloaded, because they thought it was bad for beginners.

You infer that Java objects cannot live on the stack when in fact they can

No, i did not. I do not know Java inside out. In fact I know very little about how Java works. You infer that because I counter your posts on how bad .Net is, that i dislike Java. I have a lot of respect for Java, and use a number of applications built in Java on a daily basis.

Strict OO concepts are important for beginners whom are still learning, so as not to pick up bad habits, that is why it is important. Ingeon asked what language is good for someone whom is beginning and I answered with what I believe are valid points why Java is better than .NET for a beginner.

We're not talking about a structured language here, C# is OO. The fact that you can create your own value types is a plus in my books... even if that's not OO in itself.

I tend to prefer the C# route because it opens the door to a number of other really interesting platforms (Silverlight, WPF (with MultiTouch), WCF, WF, ASP.Net, DirectX and XNA etc.). I can use the same language to code for my xbox, my desktop, my phone, my robotics, and my webserver. While Java is doing quite well in the server and mobile markets, it's still catching up on the desktop environment, and has a long way to go before it can come close to competing with the likes of WPF and Silverlight.

I'm not going to shred Java. It's a fantastic language.. one that I quite respect. I do believe that you do not have a deep inderstanding of .Net.

I am also not going to sit here and banter back and forth with someone that does not want to put in the time to research what they are writing.

Java and .Net are both good options.
 
please try compile "var x;" in c#. You can't. None of what you typed there will compile. And i'm not schooled in programming? The error you will receive is "implicitly typed local variables must be initialized". var in c# is not the same as var (varient) in VB6 where you could stick anything in it. var in c# is strongly typed (implicit typing). There is some more reading here in case you'd like to try again: http://msdn.microsoft.com/en-us/library/bb383973.aspx
I see, now I like it even less, you can just go and create types on the fly, LOL, damn. That is bad.

lol... "I never needed it, so therefore it's crap". Like I said, it's for Anonymous Types. I take it you do not use Linq. var was created primarily for use with linq.

var productQuery =
from prod in products
select new { prod.Color, prod.Price };

more reading for you here: http://msdn.microsoft.com/en-us/library/bb397696.aspx
Just because I haven't used it doesn't make it crap. Its crap because it is. Why not write in Javascript then, you can do the same thing there.

In fact, .Net 4.0 now has the DLR (Dynamic Language Runtime) to deal with compatability issues when integrating with dynamic languages like javascript, which allows you to keep your code strongly typed. C# is all about strongly typing. Go read up on the DLR and dynamics.
I never said it is not strongly typed, I SAID IT MAKES IT LESS READABLE, IE. maintenance becomes more of an issue. I'm sorry but there is no point arguing, I don't agree with the .NET way of doing things, every time I read it I'm reminded of Javascript and its a nightmare, time will tell if these new "features" will catch up in the industry.

Again.. the beginner argument. Once you pass that step and are no longer a beginner? Oh wait, you still can't do it, because operators can't be overloaded, because they thought it was bad for beginners.
I don't miss operators, especially with a modern IDE you can simply scope and then start typing the name and its there. No room for ambiguity. Regardless, my and your opinions differ. The Java creators believed, as I do, that overloading operators are a bad idea, MS on the other thought otherwise. For beginners I think it is even more important, naturally you don't care either way.

No, i did not. I do not know Java inside out. In fact I know very little about how Java works. You infer that because I counter your posts on how bad .Net is, that i dislike Java. I have a lot of respect for Java, and use a number of applications built in Java on a daily basis.
You say that the advantage is that it is a stack type, I say that it is not an advantage because Java can do the same with POJO's. What was the point of saying that it is on the stack then? Of course that is what you inferred. We are talking about Java and .NET, what you think we are talking about C++?

We're not talking about a structured language here, C# is OO. The fact that you can create your own value types is a plus in my books... even if that's not OO in itself.
And I can't see the advantage, the GC has been shown to be more effective at memory management than humans. In the early days of GC it was an advantage, now its just a burden IMHO.
I also found this article a long time ago: http://www.ibm.com/developerworks/java/library/j-jtp09275.html
Very enlightening, GC is the way of the future for sure and I personally believe (THAT MEANS IT IS SIMPLY MY OPINION!), that structs will soon fall out of favor. Especially the part on "Stack allocation", which is what I base my opinion on, you'll notice he says that in Java the GC can even throw away the object part entirely and just put data directly into CPU registers, all that without so much as a struct or special word from the programmer. So much for the struct "advantage", objects all the way man ;)

I tend to prefer the C# route because it opens the door to a number of other really interesting platforms (Silverlight, WPF (with MultiTouch), WCF, WF, ASP.Net, DirectX and XNA etc.). I can use the same language to code for my xbox, my desktop, my phone, my robotics, and my webserver. While Java is doing quite well in the server and mobile markets, it's still catching up on the desktop environment, and has a long way to go before it can come close to competing with the likes of WPF and Silverlight.
On Windows and Microsoft products you mean, remember .NET pretty much means Microsoft. Yes yes, we all know about Mono but let's be realistic, people on other platforms aren't bothered by Mono. Its mostly Java and C/C++ on *nix platforms as well as embedded (or Java as you say). Btw. JavaFX is similar to Silverlight, time will tell to see which catches on, I haven't seen Silverlight used much (at all actually) but neither have I seen JavaFX used. Just wish there could be some kind of open standard that all platforms can use, because I *HATE* Adobe flash. Its a pain in the ass.

I'm not going to shred Java. It's a fantastic language.. one that I quite respect. I do believe that you do not have a deep inderstanding of .Net.
I used .NET up until 3.0, since then I haven't been keeping up too much, my work is largely in web-development and we don't use .NET, I did however write some AI applications in .NET (3rd year) so in terms of the language, you couldn't be more wrong. The "features" like var x = bla bla, I only noticed when a guy I had to do a project with in 3rd year used them, then when we were debugging we had endless problems, hence the reason I brought it up. He was 3rd year and he still fell into that trap, God forbid, I'm sure others have done the same and MS will keep touting it as feature.

I am also not going to sit here and banter back and forth with someone that does not want to put in the time to research what they are writing.

Java and .Net are both good options.
And I think that Java is better for BEGINNERS!!! Once again, he asked for a beginner, I gave my opinion. C# and Java both have their place, I just like Java when you start out, I like that they force the safe approach on you (yes you can still write bad code, but its so easy in .NET), that and Pascal :p (I started with Basic in primary school but it was hardly proper programming, Pascal on the other hand, learned how to properly code in that language, so I have much respect for it, but its a bit old now).

I actually think we should nip it in the bud here because the both of us are derailing the thread quite heavily.
 
Last edited:
Top
Sign up to the MyBroadband newsletter
X