Top Minds Are Working On It

Mike Schinkel writes a long, rambling blog about a long, rambling conversation we had regarding VBScript, novice programmers and .NET

I don't have time to respond at length today, but I wanted to make a couple quick points.

First, as Peter noted in a comment to my entry the other day, I made the rhetorical mistake of conflating "Mort" with "Matt".  Matt is the “knowledge worker” developer who produces personal productivity applications in order to get his "real" job done.  Mort is also a line-of-business programmer, but Mort's job title has "Developer" or "Programmer" in it somewhere.  Much of Mike's article is about tools for the Matts of the world, not so much the Morts. 

I've decided that for the purposes of my blog, these whimsical names create more confusion than they prevent -- I'm going to eschew using them from now on.

Second, I absolutely 100% agree that there is way, way more we can do for knowledge workers, LOB developers and novice programmers in the tools space -- both in terms of the "framing" user interface (the menus,   windows, buttons, panels,…) and language design.  My team in particular is thinking very hard about these issues.  I can't talk much about our ideas at this time, but if you guys have suggestions, I'm happy to hear them, and a big thanks to Mike for bringing up his ideas. 

And Mike has good ideas -- of course, I only say that because I proposed most of them to the VB.NET team years ago. 🙂  Back then I spent a lot of time working with the VB .NET language designers to see if these ideas from VBScript would work in VB .NET, thereby giving VB .NET a better backwards compatibility story with VBScript.

Regrettably, by and large, they don't.  (I may go into details in future blogs as to some of the crazy ideas we had for making VBScript work in the .NET world.) Based on that experience, I absolutely 100% disagree that fracturing VB into a FOURTH variant -- VB6, VBScript, VB.NET and the proposed VBScript.NET -- is a good way to achieve the laudable goal of lessening the VB learning curve.  We can improve VB without fracturing it into yet another variant. 

However, I'm not the person to ask about that -- if you want to know what's happening in VB land, well, top minds are working on it.  Talk to Paul, he's your man.


Comments (18)

  1. Tarjei T. Jensen says:

    Bunching the documentation would help a lot. I really hate the way documentation is organized on microsoft sites. No nice pdf files to print.

    It is extremely annoying when you have to print the documentation one page at a time. And you have to search for documentation under several versions of the product.


  2. Tarjei T. Jensen says:

    Having thought a bit more on this, my conclusion is not that I want more language features. I want more ability. I want to be able to do more, not have more interesting ways of doing what can be done now.

    It may be that being a system administrator skews my point of view, but those are my needs.


  3. Alex Angelopoulos says:

    Eric, could you go into a little more detail about this point: " I absolutely 100% disagree that fracturing VB into a FOURTH variant — VB6, VBScript, VB.NET and the proposed VBScript.NET — is a good way to achieve the laudable goal of lessening the VB learning curve."

    My initial reaction to that was to disagree, but reading what you said carefully, there are some very complex topics wrapped up in that one sentence. Do you mean you think there is no role for a language which uses the same VB-style language core but behaves in a more scripty way?

  4. Eric Lippert says:

    > Do you mean you think there is no role for a language which uses the same VB-style language core but behaves in a more scripty way?

    No, that’s not what I mean. I mean that yes, that sounds great, but the way to get there is not to create another language that is 99% like VB.NET. If that’s what we want to do then lets add features to VB.NET that make it more like what we want.

    VB.NET already is somewhat scripty, if you turn off Option Strict and Option Explicit. It’s got a bunch of features that are not very scripty. Like, if you have a file that just says

    Console.WriteLine("Hello world")

    it sure would be nice if it would figure out that it ought to wrap that thing up in a class and create a Main method for you. JScript .NET does that.

  5. Tarjei T. Jensen says:

    If VB.NET is scripty, what is the point of creating VBS.NET?

    Would it not be better to just add a few tools to the development so that those who don’t know much can create working programs. E.g. adding a class and creat the Main method.


  6. Peter Torr says:

    One can always hack together the basics of "VBScript .NET" using the ICodeCompiler interfaces. Wrap the "Hello World" with a Module and a Sub (and maybe some Imports and some custom library functions) and then execute it. Far from fool proof, but it would work for simple things.

  7. Peter, this I don’t know: with ICodeCompiler can one modify the parser too? For example could I create my own simple datatypes and have it recognize them, for example a "Number" and have it convert to my own special datatype behind the scenes? (I *wish* I had time to actually try to build a "VBScript.NET" but I unfortunately have to make sure I run the business to ensure the revenues are there to cover payroll every month! 🙂

  8. Peter Torr says:

    No, you can’t, but you can do some simple Regex replacements for :s/Number/Double/g before passing off to the compiler. Obviously you want to be a bit smarter than that in case the user has "Number" inside a string… but you get the idea.

    Anything you do will be pretty fragile, but if you only have some limited scenarios then it might work for you.

  9. James Hugard says:

    So after many years of frustration and dispair, I finally installed QBasic on my kids computer. Know what? He took the first program we developed together (solving quadratic equations for his homework) and modified it mostly himself (!) to solve for a later homework assignment.

    That’s a lot more than he has done with: Smalltalk (Squeak), JScript & notepad, Logo, DarkBasic, and a few others we have started on over the years.

    Pains me, though, because I see JScript as far far superior a teaching language than Basic.

    But, nowhere can I find it (or anything similar) hosted in a qbasic/turbo-pascal/quick-c like IDE: simple, self contained, concise help, useful object-set like turtlegraphics, turtle3d, or even a graph window. I can’t imaging sticking him in front of Dev Studio.NET and turning him loose.

    I keep threatening to write my own using JScript.NET or Rhino/Java, but with all the spare time I have my kid will be out of high school before I am done.

  10. M. says:

    I teach a Windows network administration scripting course to about 1500 admins and auditors each year. I’ve been using VBScript all along mainly because it’s a good transition language to VBA/VB.NET (and I thought maybe a VBScript.NET would eventually come out) but I will likely switch the courseware to ActiveState’s Win32 Perl instead.

    It seems like MS is going to let VBScript die a slow death and I’m doing a disservice to my students by making them invest their time in it. I think MS should definitively state its intentions for the future of VBScript on the Script Center website and perhaps start doing all of its example administration and ResKit scripts in JScript (or Perl) instead so as not to trick new scripters into wasting their time.

    It’s too bad, I still think VBScript is easy to teach and a gentle intro to VBA/VB.NET, but if the language isn’t going anywhere, then I have to look out for my students’ long-term interests. Perl looks like it will become the de facto cross-platform administration language (if it isn’t already) and there’s a gigantic and solid community of support behind it (whereaas MS seems to just abandon its user base sometimes).

    If I’m wrong here about VBScript’s future, then please tell me otherwise. Thanks for being straightforward and honest in this blog.

  11. A long rambling rant about why Microsoft’s Developer Division is failing to meet

  12. Clarifying my Microsoft Developer Division rant from the other day by responding

Skip to main content