Calling all Programmers...

It actually doesn't :) Unmanaged code for eample, is something VB.NET can't do, while late binding (without reflection) is something VB.NET can do (and I would smack whoever uses it)


http://support.microsoft.com/kb/308470
From the site you linked:
Although there are differences between Visual Basic .NET and Visual C# .NET, both are first-class programming languages that are based on the Microsoft .NET Framework, and they are equally powerful.
They are equally powerful. Our Overlords at MS has deemed it so :P As for unmanaged code - why on earth would you want to? All your code should be managed. If you need to use a non-.NET dll that can be done via VB.Net but most of what you need can be found in the .NET namespaces. Late binding has its purposes, and I have used it (with reflection) on projects where I needed to leverage its ability to load classes that it does not know the type of at runtime.

++ or -- to that ! oh, vb can't do that ;)

there used to be a lot of compiler differences that made perfomance differences between the two - so, VB was definitely more verbose at the IL level for a while. I believe this has changed quite a bit between 1.x and 2.0, but I assume there still are some differences.
Why would I need "++"? I can just as easily use the "X += 1 " Sure, I have to type an extra letter, but if I need to change my incrementer from 1 to 10, I can just have a variable plugged in there, and then I don't have to modify my logic structures.

Now, I will say this. If I have a class that has to do BIT operations, I'll build that class in C# and then use just include it in VB. The reason is that BIT operations are easier to do in C#, and I'm nothing if not lazy.

That is how I would format it, the brackets under the statements leads to much better reading. Also for single statements you can drop the brackets to use less space.

VS actually does the brackets under the statement by default. I use a modified version of the ANSI standard of layout across everything I write. The main difference being that I indent whenever there are brackets, because I find it easier to read.
And for single statements you can drop the END IF to use less space.

Code:
If foo = true then
do_something
end if
is the same as
Code:
if foo then do_something
I don't like how VB relies on the if/end if type system, closing brackets is much, much easier IMO.
And that's the crux of the issue. I don't like how C# relies on the closing brackets & semi-colons to delimit blocks of code and ends of line. I like how VB uses the END X construct and a NEWLINE character. They are much, much easier, IMO. :cool:
 
They are equally powerful. Our Overlords at MS has deemed it so :P As for unmanaged code - why on earth would you want to? All your code should be managed. If you need to use a non-.NET dll that can be done via VB.Net but most of what you need can be found in the .NET namespaces.

Performance - particularly in image processing and mathematical applications. Matrices + Pointers = love.

Late binding has its purposes, and I have used it (with reflection) on projects where I needed to leverage its ability to load classes that it does not know the type of at runtime.

I'll put on my object/code review bigot hat here and say you should be using interfaces or abstract classes for this - that is not late binding, whereas

o.GetType( ).Invoke( "SomeMethod", BindingFlags.whatever, null, null, null )

(sad that i can remember most of that signature off the top of my head)

is and is bad due to the lack of strong typing as well as having extremely negative performance implications

Factories are your friends :)


Late binding as it exists in VB.NET is a carryover from old VB days in which, while you could implement OO systems, it was generally pretty limited in what it could do. I can't remember...could you even define an abstract class or interface in VB6 or earlier? I'm pretty sure you couldn't...but I could be wrong on that.


Now, I will say this. If I have a class that has to do BIT operations, I'll build that class in C# and then use just include it in VB. The reason is that BIT operations are easier to do in C#, and I'm nothing if not lazy.


I thought they introduced support for this in 2.0? IIRC...they're just words, like AND = bitwise, whereas ANDALSO = logical or something to that effect, which isn't as pretty as & imo. We should >> that to another thread (my clever use of shiftr?! ;) )

+10000 for this thread...this is a fun topic..or collection of them :)
 
I prefer C style languages, pretty much everything Ive learned uses that style (PHP, Perl, Python, C++, C#, LSL, Java). VB's style is within the minority for modern day languages and I hate typing and reading code in that format. To me less trash makes it easy to read and reproduce, I purposely format my code such that vertically there is little collisions when it is practical on logic statements, which is easier to read IMO. Nothin against VB, just the fact that it is in the minority, microsoft screws the developers of it and there is no reason to use it in unix systems (which I spend a large portion of my time developing on).
 
So, I think I am choosing C#, but there is a problem...I cannot find any good tutorials online, and my library carries everything BUT C# programming books...
 
So, I think I am choosing C#, but there is a problem...I cannot find any good tutorials online, and my library carries everything BUT C# programming books...


wutwutwuuuut? dofactory.com, plenty of tutorials available online for free

msdn.microsoft.com - the c# or .NET section in general

www.codeproject.com - lots of stuff out there

www.codeplex.com

google c# tutorials

resources abound for .NET and C# in particular
 
msdn is pretty good if you know how to shift through all the trash and get to the actual references. The search is a piece of trash most of the time, usually it pulls up articles first which contain nothing useful, and you have to scour for the class reference.
 
VS 2008 is out! rejoice! I haven't checked to see if the express versions are out or what have you...but for all of you MSDN lovers...it's up...now go crash the servers!
 
I wish they would teach the basic skills of proper requirements gathering, using version management, unit testing, build scripts, issue tracking and documenting. If I see another resume with someone submitting their poorly written Computer Science 101 Hello World final project as a professional code sample I might just blow up...

Hmm....so let's see what I covered in my 400 level classes in IST at PSU...

requirements gathering (doing that right now since I'm writing my group's requirements document)
version management (I had to use a subversion thing last semester and this semester while working on code for a classwide project both of which are on google code)
unit testing (did that last semester too)
build scripts (haven't really played around with that yet but maybe I will in the future)
issue tracking (google code was great for keeping a list of issues we were having with the project last semester)
documenting (HA! I get to do that all the time)


Can I have a job now? =D
 
Could I basically turn HTML into some crazy programming?...because I love HTML...

Could I suggest maybe Ruby on Rails? I'm using it for one of my jobs at school and I really like it. Although I use it on a MAC (running things in Terminal ftw!) so I don't know about it being on a PC. It probably can, my professor just wanted to have it on MACs. I wish I could give you an example of what I've been doing with it but I don't have my MAC with me. ^^;; Just as a plugin, I'm programming a Fantasy Basketball engine with it. =)
 
OH oh....and I LOVE Java! My other "job" at school is to help answer questions about Java in my major's Intro to Java class. I come across a lot of people who don't know the basics of programming (like formatting their code and commenting!! >.< ) so I've gotten pretty good at answering questions about Java to anyone. Everytime I want to make a program, I usually think of it in Java first. ^^;;
 
Could I suggest maybe Ruby on Rails? I'm using it for one of my jobs at school and I really like it. Although I use it on a MAC (running things in Terminal ftw!) so I don't know about it being on a PC. It probably can, my professor just wanted to have it on MACs. I wish I could give you an example of what I've been doing with it but I don't have my MAC with me. ^^;; Just as a plugin, I'm programming a Fantasy Basketball engine with it. =)

For the most part RoR functionality is available with any language, most people just don't realize it. It is mostly personal preference as to what language you use and as to what is available so you don't have to reinvent the wheel.

Of course there will be various things to consider like memory usage (java sucks for this, seriously), whether you will have access to libraries which can cut days out of programming time, and script performance, caching, etc which either varies little or can be negated.
 
Could I suggest maybe Ruby on Rails? I'm using it for one of my jobs at school and I really like it. Although I use it on a MAC (running things in Terminal ftw!) so I don't know about it being on a PC. It probably can, my professor just wanted to have it on MACs. I wish I could give you an example of what I've been doing with it but I don't have my MAC with me. ^^;; Just as a plugin, I'm programming a Fantasy Basketball engine with it. =)

BASH ftw, it makes life 100x easier. Oh and locate is the best command ever, search the entire filesystem in < 1 second. Windows development is a lost cause IMO, once you get used to writing stuff in unix based systems it is annoying to go back.
 
Back
Top