questions about VB.NET, and uses in education

D

D H

Hi,
Hi, I was looking for your opinion on VB.NET - its long-term
prospects, etc. Sorry this is vague, but it's not meant to be a troll.
It's a pro-VB.NET post actually.

I haven't used VB or VB.NET really, but I have used Realbasic (a vb
clone), Java, C#, C, and Python.
I work in education, and I'd like something that is easy enough for
teachers and students to use to develop real, usable applications, not
just to learn programming for programming's sake. We used to use
Hypercard/Supercard for this kind of stuff, and Realbasic was ok, too,
but they are commercial, not cheap, and also lock you in to their
environment. Nowadays most in education use Java and flash.

I didn't really consider VB.NET before because it is also proprietary
and I didn't want to force teachers or students to have to buy Visual
Studio even if there is academic pricing. But now we have the free
SharpDevelop IDE as well as Mono's mbas and MonoDevelop IDE for other
platforms.

MY QUESTIONS:
But I'm wondering why there seems to be a lot of negative opinions about
VB.NET when it is very well designed and much easier to learn and use
than even python for example.
And secondly, is there a real waning interest in VB.NET, or is VB.NET's
long-term future in any jeopardy? Will VB.NET ever become an open
standard like C#? Is Microsoft going to do anything with .NET to
compete more with java and flash's features like easier animations,
better scientific/numeric libraries, and running in any browser (not
just IE)? Avalon seems too limiting.

Thanks for any feedback.


I have a lot of appreciation for the design of VB.NET now.
When I've looked at ways to make other open source languages like python
or boo easier for beginners, the ideas turn out to be the same as what
VB.NET uses. Things like using "as" for types: "i as String" (seen in
boo), case-insensitivity, real division (7/4=1.75 instead of 1 like in
python and C#), WYSIWYG form designer, etc.

So I'm listing some other nice features in the design of VB.NET and then
some drawbacks, but I don't see why VB.NET deserves so much heat.

NICE FEATURES OF VB.NET:
-you can use GUI designers and code completion when coding VB in an IDE,
including the free SharpDevelop IDE (you have nothing as good as this
for python or javascript for example)
-uses just = for both assignment and equivalence tests, instead of = and
==, which can cause errors in other languages.
-use of understandable English keywords like "MustInherit" instead of
obtuse keywords like abstract or virtual. Although I'm sure this is a
significant drawback when you already have learned java or C#, and the
upper-casing of all keywords hurts readability a little I think.
-case-insensitive syntax (unlike C# or python), which definitely helps
beginners
-no semi-colons at the end of the line, no curly braces for blocks
-don't have to worry about perfectly indenting everything like in python
-flexible options that let you for example not have to declare every
variable first if you don't want to
-the My.Computer stuff added for .NET 2.0
-default values for parameters

DRAWBACKS:
-missing some advanced features that C# has, but many were added for
VB.NET in .NET 2.0. It even supports generics.
-sometimes difficult for classic VB programmers to switch to VB.NET
since it is quite different with its new OOP java-like features.
-my main reason for not considering VB.NET before was because it wasn't
open or free. But now we can use SharpDevelop or Mono's mbas and
MonoDevelop, although I believe its vb implementation is behind on .NET
2.0 features.
-The array index thing is a bit strange, like this creates a 5 item
array, not 4: Dim names(4) As String
-the popularity of VB and VB.NET seems to be waning. Book sales have
dropped a good bit over the past couple of years. People are switching
to C# instead of VB.NET I guess. It seems like most every .NET code
sample out there is in C# too instead of VB.NET.
-both VB.NET and C# have no type inference. If the compiler were open
and flexible we could add this ourselves (see the boo language for .NET
for example) as well as other useful new features that may take
Microsoft years to add if they add them at all.
-event handling is clunky, "AddHandler MsgArrivedEvent, AddressOf
My_MsgArrivedCallback"

GENERAL DRAWBACKS OF .NET FOR EDUCATION
-can't run apps in any browser like java, only IE on Windows
-not as geared to animations and simulations like java and flash are
-Mono hasn't caught on as much yet as hopefully it will
 
B

Bernie Yaeger

Hi DH,

I won't begin to answer all of your questions, but vb .net is here to stay;
it's robust, cutting edge, capable of anything, provides data access and oop
features as effective as found in any language, and MS will be supporting it
for a long, long time. It's not only in itself feature rich, but the 3rd
party support is remarkable. It is the future, no less than any of the
visual studio languages, namely c#.

HTH,

Bernie Yaeger
 
C

Cor Ligthert

DH,

The last week took something remarkable place in these newsgroups.
There is a crossposted message between VBNet and C# in this link.

http://groups-beta.google.com/group...103ad55820c/ac40dd84ef286452#ac40dd84ef286452

The remarkable part is that I saw for the first time that C# adapts were
strongly defendable discussing about benefits of VBNet. (Although they keep
it with C#)

This thread above should give you a lot of information. I point you on my
first answer, which is not mine, however again a link to a message from
somebody who gave in my opinion on of the best (complete) answers about this
questions I have seen in this.

However, VBNet is the same as mature natural languages is, a not consistent
language. You can do (say) a lot of things in different ways, and you cannot
tell that one is better than another. For starting teaching simple
programming, I would therefore use a C derived language. It does not
directly confuse a student. Showing him/here this mature situation is in my
opinion however something that should be done in the same time, to give not
a wrong idea.

By the way, VBNet has (as C#) a free compiler in every framework. For VBNet
it is VBC.exe. You have than to create programs with by instance a notebook.
Probably does the IDE's that you mention use that one.

(The big benefit for me from VBNet above C# is its extremely helpful IDE as
it is in Visual.Studio.Net)

I hope this helps something,

Cor
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top