If I gave you $200 to spend on VB, how would you spend it?

If I gave you $200 to spend on VB, how would you spend it?

  • Comments 39

I spent the last few weeks using VB, and I kept thinking things such as “Wow, this is really awesome, I wish all other languages had that!” or “I’m sure there is an easier way to do this”. I simply can’t help it - just as with any other language, when I start using it I notice a few things that are really cool, and a few things that can be improved.

So, I had my very own list of what was really cool and what could be better, but then I wondered – how did other VB developers feel? And, what is a better way to answer a question like this than actually asking the community? Why not put a blog post and see what people think about the VB IDE/language features?

To make things really simple, I prepared two questions for you:
1. If you had $100 to spend on keeping existing VB features unmodified, how would you spend it?
2. If you had $100 to spend on adding new things to VB / improving existing functionality, how would you spend it?

And then if we take everyone’s $200 and add these numbers together, we will get a pretty accurate picture of what we are doing right and we could do even better. So, help us do our job better!

Just as an example, here is my answer to the first question. I tried to keep the list as short as possible, but there are some things that I really wanted to mention, so I couldn’t make it shorter than that :)

Preserving current functionality:
- $40 – Ubiquity. I can use VB to create Web apps, Windows Forms apps, Smart Device apps, MS Office scripts, etc. You can learn one language and pretty much do anything with it – that is really the best part about VB to me!
- $30 – Really smart Intellisense and instant feedback while I’m writing code – I can see syntax errors without explicitly compiling my project. I just love that!
- $20 – My! Yesterday I had to write a small script and I don’t really think I could have written less code in any other language. My.Computer.FileSystem.ReadAllText, My.Computer.Network.DownloadFile, My.Computer.FileSystem.SpecialDirectories.MyDocuments, etc. – just a few of the really, really cool things in My.
- $10 - The “dynamic” part of the language and the syntactic sugar – implicit late binding, optinal parameters, with…end with, etc. It makes a huge difference!

So, what are your lists?

Leave a Comment
  • Please add 1 and 2 and type the answer here:
  • Post
  • I give US$100.00 to keep language write facility. And I would give you another US$100.00 to keep getting better intellisense on the next versions. Just it. Quite simple.

  • I'd give you $400 to get rid of it.

  • $100 on keeping features:

     - $50 on Intellisense and the instant feedback system, it's really slick.

     - $50 on the cool shortcuts - "With", "CXX (ie:  CDate, CStr, etc.).

    $100 on new stuff:

      - $20 - Ternary operator (oh wait, that's coming in the next version.)

      - $50 - This is an IDE thing, but it would be nice to have a VB equivalent to the Refactor context menu in C#.

      - $30 - Education for those C# snobs out there.  Seriously.  ;o)

    Thanks for all the great work!

    - Greg

  • $50 for creating an ecma standard for VB.NET (like C#).

    $50 for supporting open source and cross-platform versions of vb.net, such as the mono one: http://www.mono-project.com/VisualBasic.NET_support

    Support a cross-platform IDE to develop visual basic and C# apps in (like eclipse).

    Create a pluggable compiler framework based on the vb compiler for people who want to create statically typed languages for the clr.  This is different from the DLR, which is basically the ironpython compiler framework generalized a bit for other scripting languages.

  • $100 - Being able to use VB on any platform. It isn't fair that I can't use it to program non-Intel platforms like the XBox 360.

    $50 - Select Case on Objects and Types. This trivial little feature would save me a ton of time.

    $50 - Dynamic Interfaces. Without this LINQ is far less useful than it could be. And besides, explicitly declaring interfaces is lame.

    $50 - All the Dynamic/DLR-related goodies, including a "Dynamic Object" type that would work even with option strict is on for the rest of the file.

  • There are exactly two features that I have been literally *begging* for since Whidbey Beta 1. It never made it, nor did it make it for Orcas. Thus I have been ultimately disappointed with both VS 2005 and 2008.

    1) Generic variance: $95

    Ref:

    http://blogs.msdn.com/rmbyers/archive/2005/02/16/375079.aspx

    http://blogs.msdn.com/rmbyers/archive/2006/06/01/613690.aspx

    http://research.microsoft.com/research/pubs/view.aspx?type=inproceedings&id=1215

    2) Generic operator overloading: $5

    (Not possible because overloaded operators are static and an interface can be defined with static methods, thus no way to constrain a generic type.)

    I am mainly a C# developer; however, I must constantly drop down to the IL level to implement these features. If VB can get this implemented correctly, I will switch to VB.

    There are other things that I would like to see, however implement nothing but these two features and I will be very, very satisfied. Drop Linq and anything else for these two features and I would still be extremely satisfied. Until then, I remain extremely dissatisfied.

  • I would like to see something original. As a language, I can simply convert VB and C# code without any difficulty. The differences are so minor that I do not see the point in maintaining two nearly identical languages differing only in syntax. There are even automated tools to do this for you.

    Give me unique language features (not IDE) that entice me to use VB over, for example, C#. I'll put my full $100 there.

  • Wow, thanks a lot for the awesome feedback everyone, looking forward to seeing more!!!

  • $100 Ability to use VB on any platform.

    $50 for creating an ecma standard for VB.NET (like C#).

    $50 CLI optimizing.

    $50 Improved FX Cop features.

    $50 Help Simplify language even more.

  • 150$ get rid of the underscore continuation character.

    50$ posibility to outline:

    dim Test     as string  = "..."

    dim Testing as string  = "........"

    even when pritty listing is on.

    50$ comments after parameterlist:

    private sub Test(A as interger  ' 50$ No byval  

                           B as long        ' is the default  

                           C as string)    ' .............

    50$ make all End If => End (less verbose)

    50$ overloading on return value

    I use Basic from MBasic and VB from v1.0 and I love it.

    Keep up the good work, thank you guys

  • $50 to bring back my VB6 Immediate window behavior (i.e. looping in the immediate window while in design mode/debug mode.) For instance:

    Dim i as Integer: For i = 1 to 100: Debug.Print i: Next

    $50 to make features available in C# and VB at the same time. (Think anonymous delegates)

    $100 to defend VB as a valuable language. Even with the CLR folks still bash VB. Why doesn't MS take a stand? Why are advanced features (XNA?) only available in C#? Are parts of the CLR written in C#? Why not VB? Is there really a problem with VB? I love using VB. It is a good fit for my thought processes. VB6 had the biggest install base, yes? Why does it seem like nobody cares? Can anybody even name some major software that was written in VB.NET? Is it really just a TOY language? Should I just give up and switch to C#? Or worse, C++/CLI? Is the C# team really three times the size of the VB team?

  • Similar to one of the comments above.

    $100 for making unique VB features instead of duplicating all of the new features of C# with a different syntax. If all you do is copy C# with each new version, then there is no need for both.

  • $100 on keeping features:

    + $30 on Intellisense and the instant feedback system.

    + $20 on the implicit block structure so “Begin End” and/or “{ }” is not needed.

    + $20 on using CR as implicit statement separator so semicolon is not needed.

    + $30 on most of the syntactical sugar like “If someLogic then DoIT” , “End If”, “End sub” etc. (But see below.)

    $200 on new features:

    + $10 on removing the redundant DIM keyword.  This should be legal code: “Int32 ix = 42”.

    + $50 on better implicit documentation of sub/function variables. ‘=could replace the clumsy XML style now in use for Intellisense,

    + $40 on an optional “Catch” functionality in the uppermost  level in sub and functions so less block intends are needed.

    + $10 on more meta information like “Function.name”.

    + $10 on clear distinction between arrays and function/sub variables; someArray[ix] and  SomeSub(aVariable) respectively.

    + $25 on all the best dynamic goodies from Ruby that makes Rails possible

    + $25 on simpler but more powerful framework by using dynamic goodies.

    + $30 to the VB team so this will be implemented! Keep going!

    /Csaba

    (Q: Is there a size limit for comments?)

  • $100 on keeping features:

    + $30 on Intellisense and the instant feedback system.

    + $20 on the implicit block structure so “Begin End” and/or “{ }” is not needed.

    + $20 on using CR as implicit statement separator so semicolon is not needed.

    + $30 on most of the syntactical sugar like “If someLogic then DoIT” , “End If”, “End sub” etc. (But see below.)

    $200 on new features:

    + $10 on removing the redundant DIM keyword.  This should be legal code: “Int32 ix = 42”.

    + $50 on better implicit documentation of sub/function variables. ‘=could replace the clumsy XML style now in use for Intellisense,

    + $40 on an optional “Catch” functionality in the uppermost  level in sub and functions so less block intends are needed.

    + $10 on more meta information like “Function.name”.

    + $10 on clear distinction between arrays and function/sub variables; someArray[ix] and  SomeSub(aVariable) respectively.

    + $25 on all the best dynamic goodies from Ruby that makes Rails possible

    + $25 on simpler but more powerful framework by using dynamic goodies.

    + $30 to the VB team so this will be implemented! Keep going!

    /Csaba

    (Q: Is there a size limit for comments?)

  • This example may clarify some of the suggestions above. It would be nice if this function was valid code:

    Function ListAllSerialPorts(  ''= Purpose: …

           '= Assumptions: …..

           ByVal aCombo as ComboBox '= …

           ) as Boolean '= true if …

    '=  Effects …

    '=  Remarks …

           hasFreePorts = False

           aCombo.Items.Clear()

           For each aSerialPort in My.Computer.Ports

    If not aSerialPort.IsOpen then

    hasFreePorts = True

    aCombo.Items.Add(aSerialPort.PortName)

    end if

             next

    Catch function ex as Exception

            MsgBox("EXCEPTION  " & Function.name & ": " & ex.Message)

    Finally function

            If not hasFreePorts then aCombo.Items.Add(noFreePortId)

           aCombo.SelectedIndex = 0

           Return hasFreePorts

    End try function

    (I apologise for the messed up indention and the duplication above. )

    /Csaba

Page 1 of 3 (39 items) 123