Visual Basic
Now that we’re past the PDC, there are a bunch of video resources coming out on VB 10.0 and Oslo. Here’s a roundup of what’s available so far: Channel9 has a video that I did with Don and Chris on M called, “Don Box, Paul Vick, and Chris Anderson: Introducing M” Channel9 also has a video Don and Chris did on their own covering Oslo, “Don and Chris explain Oslo in 5 minutes” The Pearson folks also recorded some vidcasts they call OnMicrosoft. If you go to the previous link, you can see all the videos posted, but the...
Yesterday I gave my valedictory address on Visual Basic at the PDC. I think the talk went well and it was a lot of fun, if not a little sad that it’s one of the last times I’ll be giving a talk about Visual Basic. We covered a lot of exciting stuff, some of which should be familiar to readers of the blog. I’ll let people know when the video is up on the Channel9 page for the talk, should be some time today. For those of you who don’t want to sit through the talk it went something like...
I just wanted to give a shout out to my fellow Oslo employee Vijaye Raji whose Small BASIC project just launched on the new DevLabs site. It’s a version of BASIC targeted at truly beginning programmers, and I think it’s a great example of how BASIC can be utilized to make things very simple and easy to use. I got the chance to see Small BASIC in action being taught to high schoolers and it was wonderful to see the kids start to make the connection between what they were doing and what they could do. It’s a great project,...
I didn’t realize I’ve been so silent about the PDC! I’ve been struggling to get off of .Text and on to Subtext for my blogging engine, and so I’ve been avoiding posting because “I’ll wait until I get moved over to the new engine.” Pffffft! Anyway, I’m going to be doing a number of things at the PDC, so if you’re going to be in LA next week, stop by and say hi! I am co-presenting “Future Directions for Visual Basic” with Lucian on Tuesday at 5:15pm in room 406A. Do stop by and let’s chat about where Visual...
Hi all, I wanted to take a moment to introduce the new specification lead for Visual Basic, Lucian Wischik. Lucian has been getting to know the user community over the past few months, and now you’ll have even more contact with him as he’ll be taking over my responsibilities in terms of owning the language spec! He’s already been an enormous help in ironing out some of the trickier aspects of the Dev10 spec, and I feel very confident that the specification will be in good hands. Here’s a short bio: Lucian Wischik is the Visual Basic specification lead....
As difficult as it is to say, I wanted to let my loyal readers know that after a decade spent working on Visual Basic, I’ve made the decision to change jobs at Microsoft. It's somewhat hard for even me to imagine just how long I've worked on Visual Basic. I joined the Developer Division (VB's home) over 11.5 years ago to work on OLE Automation. A year and a half after that, I moved over to the VB team proper to work on the compiler's code generator just as we started the move to what would become .NET. In...
WARNING: This is a speculative post. Caveat emptor. Actually, in this case I don't thing the above warning is strong enough. This is a super speculative post, because I believe the chance of it appearing in the next version of the language is not extremely high, not because it's not a worthy feature but because it's more than a little work and we've got a lot of other very worthy features we're considering. However, since it's something that's valuable and something we keep getting requests for, we have decided to at least generally sketch out what iterators would look like...
WARNING: This is a speculative post. Caveat emptor. I haven't finished reading through all the comments from my previous post yet, but I did think it was worth stating that we are considering improvements to lambda expressions in the next version. Specifically, we're looking at allowing single-line lambdas that don't actually return anything, something like:Dim x = Sub() Console.WriteLine(10)
This was something we wanted to support in 2008, but just ran out of time for. We're also thinking about multi-line lambdas that contain statements instead of just a single expression. So something along the lines of:Dim y = Function(x)
...
While I was out on vacation last week, Beth posted a video that she did at one of our language design meetings on Channel9. Check it out. If you get confused about the joke about the gray shirt, Beth also explains that on her blog. I had a little more to say in this video than I did in the one of the design meeting that I go to as a guest...
WARNING: This is a speculative post. Caveat emptor. It's been a while since I've had much of anything to say about our thinking about VB10 (well, it's been a while since I've had much of anything to say) and I wanted to give a quick update on our thinking: Implicit line continuations: we're still considering it. Automatically implemented properties: we're still considering it. Implicitly implemented interfaces: we've put this on the back burner. The feedback we got on my post was helpful in identifying problems with the idea and it seems like we have bigger fish to fry. Collection...
WARNING: This is a speculative post. Caveat emptor. When we last left collection initializers, we were discussing default types for collection initializers. Since then we've thought further about the feature and are considering changing the design. The problem is that as nice as type inference is, as we started to dig into what that practically meant it started to become more and more difficult to figure out what a particular collection initializer might mean. Because the meaning of the initializer in the original design depends on the context, it's meaning could change dramatically in different contexts. Of particular difficulty...
Random musing for the day: I was thinking about reserved words in programming languages and whether they're really necessary at a lexical level. As you know, most programming languages define in their lexical grammar a set of words that cannot be used anywhere in the language except when explicitly specified in the grammar. For example, VB reserves the word "Object". So you can't just say: ' Error: Keyword is not valid as an identifier.
Sub Object()
End Sub
Many languages (such as VB) allow you to work around this by providing some...
WARNING: This is a speculative post. Caveat emptor. Well, I appear to be on a rhythm of about once a month posts, which seems OK for the moment. Moving on to another "future" topic, one of the most annoying things that we cut (at least, from my perspective) from VB 2008 was collection initializers. Collection initializers were a little different than the corresponding C# feature, because our plan was to introduce stand-alone initializers that didn't have any intrinsic type. Instead the initializers "snap to" a particular type when they're converted to it, just like lambdas and AddressOf expressions. For...
WARNING: This is a speculative post. Caveat emptor. This one is a little more speculative than the others, but it’s something that we’d like to get some feedback on. One complaint that we get from time to time has to do with interface implementation. A lot of people like the fact that there’s a nice explicit interface implementation syntax in VB, but sometimes it starts to feel, well, a little verbose. Even if you let the IDE create all the interface implementations for you, there’s still a lot of extra characters with all those “Implements IFoo.Bar”s, especially when the implementing...
WARNING: This is a speculative post. Caveat emptor. I apologize for the long silence, things have been a little busy around Panopticon Central these days! Anyway, I wanted to go back to talking about some of the things that we’re thinking about for the next version, and I thought I’d go over a small one: automatically implemented properties. As the name implies, these would be basically the same thing you get in C# 3.0’s auto-implemented properties. What we’re talking about is allowing you to have a simple property declaration like so:Public Property x() As Integer
This would generally expand under the...
WARNING: This is a speculative post. Caveat emptor. One of the things that we'd like to address in the next version is line continuations. We know that they tend to annoy many developers who want to break their logical lines across multiple physical lines, and we've gotten many requests to get rid of them altogether. Unfortunately, there's a reason we haven't just dropped them--they actually are needed in certain scenarios. For example, take the following contrived example: Sub Main()
End _
Sub
If I remove the line continuation, I'll now get a...
WARNING: This is a speculative post. Caveat emptor. Several weeks ago, I gave a presentation entitled Bringing Scripting (Back) to Visual Basic at the Lang .NET 2008 conference. A video of the presentation has now been posted, so you can check it out for yourself. (The presentation was also covered by EWeek in an article entitled Bringing Sexy Back to Visual Basic.) The main theme of the presentation is the same one I've been talking about on and off over the past year or two: moving Visual Basic back towards it's scripting roots. The main thrust of this presentation was...
A month or two ago, Paul Yuknewicz and I sat down to record a Hansselminutes podcast with Scott Hanselman, talking about the past, present and future of Visual Basic. It was a lot of fun, check it out!
Also, here's a little holiday love for VB from some Microsofties you might recognize:
I wanted to let people know that an (almost) final VB 9.0 language specification has been posted on the download center. The spec is missing some copy-edits from the documentation folks, but is otherwise complete. Since I'm not going to get a chance to incorporate the copy-edits until I am back from vacation in January, I wanted to get the spec out there for anyone interested in documentation of the XML features that weren't present in the previous version of the spec. (I apologize for the lateness of this vis-a-vis the release of the product itself, it's been a busy...
Oh, yeah, that's right. We shipped. Hard to believe we've finally reached the finish line...
Most everyone who's steeped deeply enough in the culture of Visual Studio has probably run across some mention of Mort. Mort is one of a triumvirate of personas that the Visual Studio team uses to describe the developers that they are targeting. The other two members of this group are Elvis and Einstein. (I got complaints from internal people the last time I mentioned the personas, so let me take a moment to say that they are open knowledge.) Love them or hate them, the personas have become an integral part of the way that many people talk about VB,...
One piece of conventional wisdom that I hear now and again is that "nobody uses Visual Basic." When someone's giving a talk and asks people to raise their hands if they use VB, they say VB'ers are in the minority. In the buzz-o-sphere, Visual Basic seems to be only discussed when debating whether some other language is the "new" Visual Basic. Even Microsoft has been accused on occasion of seeming to favor C# over VB in things like samples or documentation. We were having a discussion internally about this piece of conventional wisdom and whether the numbers really backed this...
While I was visiting MSR Cambridge this week with some other people from Redmond, Beth put up the Beta 2 version of the Visual Basic Language specification on our developer center--so she got to beat me to the announcement! This updated language specification corresponds to Visual Studio 2008 and covers the following major new features: Friend assemblies (InternalsVisibleTo) Relaxed delegates Local type inferencing Anonymous types Extension methods Nullable types Ternary operator Query expressions Object initializers Expression trees Lambda expressions Generic type inferencing Partial methods The following features are not covered but should be shortly: XML Members...
WARNING: This is a speculative post. Caveat emptor. I know that I'm running a great risk of touching the third rail of the VB community by even speculating about this, but it seems like the right time to have a bit of a conversation about the big "D"-word. That is, deprecation. Yes, deprecation. Now before anyone starts freaking out, foaming at the mouth or writing a petition, let me emphasize that my thinking along these lines is entirely within the guidelines discussed in the language specification, which mandates a long and gradual process of deprecation that involves continuing to support...
WARNING: This is a speculative post. Caveat emptor. Last week, one of the VB MVPs asked on a private alias what our thinking was about VB10. As I kind of indicated in my previous entry, I don’t think we have a clear idea yet of what’s going to be on the table for the next rev—VB 2008 was kind of an aberration in that LINQ was in gestation long before VB 2005 even shipped. But I can say what’s at least on my mind: Hosting or, more generally, opening up the compiler services to the outside world....
Things have been pretty quiet around Panopticon Central since I did a bit of talking about "VBx" back in May. Partially this has reflected the fact that we're at a pretty early stage of thinking about the post-VS 2008 world, so there isn't a lot solid to talk about. Partially this has reflected the usual shifts in emphasis and strategy that occur around the end of a major product cycle as more and more people start to get freed up to think beyond what they're delivering next month. And partially this has reflected that I've got two kids at home...
For all you VB programmers who'd like to extend VS, check out the newly announced Visual Basic Pack for Visual Studio 2005 SDK. This adds the missing functionality that makes working with VS really easy with VB. You can also check out a video discussing the support for now and in the future.
It's been a little quiet around here lately, I realize, but if you're reading my blog because you're a fan of VB, let me just say you really need to be reading The Visual Basic Team blog and Beth Massi's blog. There's lots of good VB stuff there, too much for me to even consider reposting it here. So subscribe!
I'm back from vacation and finally got a chance to wade through the 47 comments on my previous entry on lowercase keywords. Anything that touches on lexical or syntatic issues usually provokes a pretty strong response, and I was glad (?) to see that this still held true. Reading through the comments, I think there are a few things that I should add to my previous entry: I was only musing about changing the appearance of keywords and was saying nothing about changing case insensitivity. I like case insensitivity and there are absolutely no plans to propose changing that...
One of the raps that VB sometimes gets is that we're too "verbose." There are a few things that we think might contribute to this perception that we're looking at for the future, but I had an interesting flash the other day. I wonder how much the fact that we uppercase our keywords affects our perception? So I built a bootleg of the compiler and tried it out on some code of mine. Before: Private Function ParseSimpleNameExpression() As SimpleNameExpression
Dim start As...
From eWEEK: Another big hit with SL 7 is the fact that it's the first suite in the Dynamics pantheon to be rewritten in .Net. "We cheated a little bit. It was in Visual Basic, so using Microsoft tools we moved from Visual Basic to Visual Basic .Net," said Jon Pratt, senior director of Microsoft's Dynamics GP, Dynamics SL and Dynamics Retail Management System. The .Net rationale is that it "extremely improves the enhancement of the developer environment," said Pratt. It also paves the way for much easier on-demand development by providing a multitier architecture that's native, according...
As you may remember, a while back I solicited questions for MSDN Japan's "Ask the Experts!" page. Well, now the video I shot answering some of those questions is up. Check it out!
As a medium of communication, blogs have their strengths and weaknesses. The informal nature of the communication makes it incredibly easy to communicate information on an ongoing basis. The down side, of course, is that the very informality of blogs can also trip you up if you don't pay enough attention to follow up. I've certainly been guilty of that on this blog (there are still some loose ends I think haven't really been tied up), and we've been guilty of that as a team. One thing we haven't always done a good job of is keeping people apprised of...
One of the problems that we've run into when trying to get new platforms such as the Compact Frameworks or Silverlight to support Visual Basic is getting the VB runtime supported on the new platform. The VB runtime, besides having a bunch of user functions such as Left and MsgBox and such, contains a number of language helper functions that are required for the correct functioning of the language. For example, when you convert an Integer value into a String value, we emit a call to a helper that does the conversion for you, since there is no native IL...
As many people know by now, Microsoft has decided to reschedule the PDC that was planned for later this year. This was very disappointing for me personally, since I was looking forward to seeing a bunch of the people that I usually see there and was one of the consolations I had for myself for not being able to go to MIX. It also means that our plan to talk more about VBx at the PDC is going to have to be shifted around. Not clear where/when our focus is going to move to, but stay tuned, we should have...
As is always the case in a major release, there are a number of smaller features that don't get very publicized because they're not as big or sexy as the major features. One that someone asked me about privately in email was partial methods. VB will support them in pretty much the same way that C# does. In fact, rather than writing a big, long entry about it, you could just check out Scott Wisniewski's excellent entry on them. You can also check out Wes Dyer's excellent entry on them for C#.
How's that for lazy?
Updated 05/30/2007: Somehow I'd missed the...
Yes, it's true, as Miguel found out at the compiler lab: Another interesting detail: the new Javascript compiler is written in Visual Basic.NET. The compiler he's talking about is the Silverlight-based Javascript compiler that we released in Silverlight 1.1. Of course, we're also writing VBx in VB as well, so...
About a month ago, the C# team announced that they were making anonymous types immutable in C# 9.0. The issues with mutable anonymous types are pretty well described in Sree's blog entry, but what it boils down to is this: in several places in LINQ, anonymous types are used as keys for things like grouping and filtering. For example, if you group customers by state and country, then the grouping is done on a composite key made up of the State field and the Country field in an anonymous type. To enable keys to be used to do grouping efficiently,...
Many months ago, I discussed the fact that we were finally planning to come up with a true ternary conditional operator that would allow short-circuited conditional expressions. (Just as a quick recap: the current problem with the IIF function is that it evaluates all the arguments since it is just a regular method call. So "IIF(x Is Nothing, "Empty", x.Name)" will throw an exception if x is Nothing, because we still evaluate x.Name.) At the time, we were considering taking the IIF function and making it intrinsic. In the end, this looked like it would just be too big of...
One of the other announcements from MIX was "Project Jasper," which is (in the words of the guys who wrote it): [...] a set of components aimed at fulfilling the need for a rapid and iterative development experience for data. With Jasper, you are able to just point at a database and immediately begin coding against its data using intuitive, domain-specific data classes. No configuration and no source code generation are required. Jasper works with existing application frameworks (including ASP.NET, WinForms, and WPF) and existing, real-world databases. One of the ways that Jasper does it's "point and code" magic...
One. Just one. VBx is the next version of Visual Basic, not a new version of Visual Basic. Part of the confusion stems from the fact that there are TWO ways you can use Visual Basic in Silverlight, and one uses Orcas and one uses VBx. So let me see if I can clarify a little bit... As everyone should be aware now, Silverlight is a cross-platform version of the CLR. This means that Silverlight, with some limitations, can run any compiled IL application or library that the desktop CLR can run. This also means that (again, with some limitations) Visual...
There was a semi-announcement as a part of the Silverlight 1.1 discussion at MIX07 yesterday that people might be wondering about. If you check out the Silverlight poster that Brad posted a pointer to, you'll see that on the right hand side under the box that says Framework Languages, there are TWO listings for Visual Basic. First, there's "Visual Basic" and then down at the bottom there's a "VBx" with a little icon "Soon." Then, if you look at Jim Hugunin's blog entry on the Dynamic Language Runtime (DLR), you'll see that he says (emphasis mine): We're initially building four...
My +1 link postings are always the last ones in to the pool, but in case you haven't seen it elsewhere, Beta 1 of Visual Studio Orcas is now available for download! This has a large majority of the Orcas features for VB in it, although there are still some features that will be coming in post-Beta1 (lambdas, nullable types, etc.) because of the way the schedule came together. (You can find more details about new features in Beta1, such as "Intellisense everywhere" on our team blog.) I've been writing a LOT of Visual Basic code in the past couple...
For those readers of my blog in Japan (or who can speak Japanese), I'm being features on MSDN Japan's "Ask the Experts!" page this month. There's a short introductory video I shot, plus the opportunity to submit questions (or so I'm told) which I will answer later this month. So, if you've got something to ask, submit it and I'll be happy to answer!
...to Beth Massi, who's transitioning from an MVP and blog writer to full-time content person and blog writer for the Visual Basic Developer Center. Beth's been a great member of the VB and FoxPro communities, and it'll be great having her as a devoted resource to the developer center!
For those of you who might be curious about how the XML integration features in VB9 work, there's now a great screencast up on Channel 9 that walks you through them while building a sample application: The next version of VB .Net adds Xml as a built in data type using the new LINQ to XML API. As a built in data type, VB 9.0 provides the ability to create XML using XML Literals and to query XML documents using XML properties. This webcast contains a demo by David Schach, the lead developer in this project, of creating a...
Maybe you've seen this elsewhere, but the big news of the week (VB-wise, at least) is that the March 2007 Orcas CTP is now out. Those of you who've been following along with the previous Orcas CTPs will have noticed the paucity of new VB features relative to some of the other VS languages. This has been largely due to the different implementation strategies of the languages--since the Visual Basic compiler is so closely tied to the IDE services, we needed to really plumb the features all the way through before we could consider them "complete." Anyway, many of these features...
Well, I have to say that in some ways it's great to be back at work, and in some ways, not so much. Everything's going great at home, and now it's time to get back into the swing of things. Two links for people who might have missed them (but I doubt many people did): A series by Scott Wisniewski on extension methods in VB9 A post by Avner Aharoni on XML changes in the Feb CTP of VB9 More as I dig through my email!
One of the things we've been discussing for VB 9.0 is adding a true ternary operator to the language. It's been a persistent source of annoyance for myself (and many others, to judge from suggestions and complaints we've gotten over the years) that there is no short-circuiting conditional expression operator in the language. True, there's the IIF method which does most of what you want, but it doesn't short-circuit. If you evaluate "IIF(x Is Nothing, 10, x.Foo())" and x is Nothing, then you'll get an exception because we always evaluate all of the arguments of a method call (since IIF...
In case you missed the announcement, VS 2005 SP1 is released. You can get it here. Beta support for Vista coming soon!
Random question for people: how many people out there actually ever look at the VB language specification? The original purpose of writing the language specification was purely for internal use, done so we'd have a reasonably authoritative explanation of the language aside from "whatever the compiler does" and "whatever MSDN happens to say." And to have a place where historical thinking could be preserved for future generations of VB team members, so there'd be some chance in hell that we could avoid making the same mistakes twice. But how useful is it for the public? Not that much, I would...
Well, I'm glad to see that even with my writer's block, people still seem to be reading the blog! Although there is definitely a diversity of opinion, the majority of people seem to prefer the "Function" syntax of the choices I laid out, which is not exactly what we expected. (We were wagering people would go for the more cryptic, compact syntax. Shows what we know...) That's the syntax you should expect to see in the beta, and if public opinion shifts over time in the beta, we'll deal with that feedback if and when we come to it. After...
I discussed a little while back that we've made a few hotfixes available to address some performance issues people have seen with VB. There's now a program that makes these hotfixes available as a regular download, rather than forcing you to call support. I'd recommend anyone running into performance problems give them a try...
Lots of code has been flowing out of Redmond recently: Two Visual Basic 2005 Power Packs have been released. The Microsoft Interop Forms Toolkit 1.0 and Microsoft PrintForm Component 1.0 are both targeted at people who use COM and VB6 and should make migration of code easier in many cases. You can get them here, and more are likely to come. Beta 1 of VS 2005 Service Pack 1 has been released. This service pack includes a significant amount of work on the part of the Visual Basic compiler team and addresses a lot of the major issues (performance or...
Interesting how random things sometimes come together. I was checking out Chris William's pre-beta rogue-like game Heroic Adventure! on CodePlex and noticed that although most of the game is written in VB, he had included some C# code in there. The motivation was the fact that the pseudo-random number generators that VB and the .NET platform provide (i.e. VB's Rnd function and .NET's System.Random) are not strong enough to satisfy the random number needs of his game. So he borrowed some C# code that implements the Mersenne Twister algorithm, which is a much better pseudo-random number generator.
I thought it was a...
If you are curious about my talk at the Lang .NET symposium that I talked about a while ago, you can now download the video of the talk here. As is usual, I can't bear to watch the damn thing since I think my voice sounds just awful--it's so much nicer sounding in my head. Oh well. Overall, I think the talk was only OK. I kind of switched around what I was going to talk about late in the game and so I don't think it was as interesting as I was hoping to be. It talks some about some...
Omer van Kloten's entry on Internationalization of Programming reminded me of a (possibly apocryphal) story that I was told when I started working on OLE Automation. I asked why IDispatch::GetIDsOfNames takes an LCID and was told that once-upon-a-time, the VBA team conducted an experiment in localization with VBA in Excel (which was the first application to host VBA). Apparently, they attempted to localize the entire language--keywords, function names, etc.--into French, and possibly other languages. This mean you could write code along the lines of what Omer outlines in his entry, except in French instead of Dutch. The problem was that because...
As I intimated a few posts ago, I'm going to be back on the East Coast at the end of the month. Part of the reason is to visit family (my family this time), but part of it is to give a talk at the Capital Area .NET Users group. You can find their website at http://www.caparea.net/, and here's the blurb: Visual Basic 9.0: Language Integrated Query (LINQ), XML integration and beyond... Tuesday, September 26, 2006 at 7:00 PM With its second version on the .NET Framework, Visual Basic has largely completed the process of moving from its previous...
Normally, I don't promote videos and stuff that I haven't actually watched, but since I'm still buried under vacation emails, and I know that it's just got to be good stuff, I recommend checking out: Erik Meijer: Democratizing the Cloud and Brian Beckman: Monads, Monoids, and Mort Erik and Brian are just two crazy guys with lots of crazy ideas who've been a lot of fun to interact with over the past couple of years... Without Erik, there'd be no XML support coming in VB and he's added a lot to our LINQ discussions. And, well, I haven't quite figured...
This is, unfortunately, only a test post to ensure that only posts tagged as "Visual Basic" are posted to the MSDN Visual Basic developer center. We now return you to your regularly scheduled programming.....
Despite the fact that we made what I still feel is a solid release, we've been clearly seeing some customers having problems with the performance of the VB 2005 compiler when used on large VB projects. In response to a number of problems that we've isolated, we've released a QFE that addresses many of the major problems people are having. To quote the announcement in the forums: We've received feedback, both directly from developers and in the forums, regarding slow performance of the Visual Basic 2005 IDE in certain situations (larger projects, projects with many errors, etc.). I’m sorry that...
Interested in working for Microsoft? Want to build a compiler? Want to work on the coolest programming language ever? (Note for the humor-impaired: that last statement includes an implicit self-deprecating wink and a smile.) Don’t want to mange managers? We’ve also opened a new position on the compiler team that involves working directly on the compiler/language and doesn’t require managing people:
Want to help chart the future of one of the most popular programming languages in the world? Interested in building a highly interactive tool that brings programming to the masses and makes professional programmers even more productive at the same time?...
Back in April, I mentioned that we’re going to have a compiler/languages symposium here in Redmond in August called Lang .NET 2006. Erik just announced that registrations are open, so sign up! As it turns out, I’m going to be giving a talk at the symposium. Ignore the title currently on the site (“Visual Basic 9”), here’s my current proposed title and abstract:
Visual Basic: Where are we going, where have we been?
With its third version on the .NET Framework, Visual Basic has largely completed the process of moving from its previous home in COM to its new home in the...
Interested in working for Microsoft? Want to build a compiler? Want to work on the coolest programming language ever? The Visual Basic compiler development lead position is open and we’re looking for someone with the right stuff to fill it:
Microsoft Visual Basic is used by millions of developers worldwide, and is widely acclaimed for both its power and ease-of-use. As the next Development Lead of the Visual Basic Compiler and Editor team, you will be the guiding hand behind the development of the next version of Visual Basic's powerful programming language. Data/Language integration -LINQ-, advanced IntelliSense and other editor features,...
For those readers who also read French, Grégory Renard (a.k.a. Rédo), one of our MVPs, just published a book (along with others) called “Visual Basic 2005: Le Guide Complet”:
And I don’t think I mentioned this before, but my book has also been translated into French, so check it out:
Wow, where does the time go? I can remember when VB was just this tall. Soon it’ll be driving!
Microsoft Announces Visual Basic at Windows World '91 General-Purpose, High-Productivity Programming System for Microsoft Windows
ATLANTA -- May 20, 1991 -- Microsoft today announced MicrosoftR Visual BasicTM programming system at the Windows World '91 industry trade show. Visual Basic is a graphical application development system for Microsoft WindowsTM graphical environment version 3.0 that combines visual design tools with a powerful, general-purpose programming language and Windows .EXE compiler. It provides a simple solution to the complex task of creating real Windows-based software applications.
"We set...
FYI, we just released an updated community preview of our LINQ support for both VB and C#, entitled “Microsoft Visual Studio Code Name “Orcas” Language-Integrated Query, May 2006 Community Technology Preview.” Or you could just call it “the May CTP.” Anyway, this new CTP has a lot of new goodies for VB programmers, as our LINQ support is greatly expanded. To crib straight from the readme, here’s some of the stuff we did:
Enhanced DLinq Support: This CTP adds support for Inheritance, Stored Procedures, User-Defined Functions, and Optimistic Concurrency Conflict Resolution (OCCR). The new DLinq Designer provides a visual design surface...
John Montgomery’s entry on “Express “Orcas” Principles” got me thinking about the whole “principles” thing. Just like you should always be able to give an elevator pitch for your product, I think you should always have a clear idea of your product’s principles. I particularly liked Bjarne Stroustrup’s description of C++’s principles in “A Brief Look at C++0x”:
C++ is a general-purpose programming language with a bias towards systems programming that:
is a better C
supports data abstraction
supports object-oriented programming
supports generic programming
By "systems programming", I mean programming the kind of tasks traditionally associated with the operating system and fundamental...
As the eagle-eyed may have noticed, I recently added a new post category called “VB/Script.” In it I have collected a number of posts that I’ve written over the years concerning VB, scripting, dynamism and so on. Specifically, I’ve pulled together (in chronological order from earliest to latest):
Why do hobbyists matter?
Simpler IDE + more permissive VB language = script magic?
Boo to you, too!
Time ever marches on...
Dynamic languages/dynamic environments
The Tyranny of the Suite
VB as a dynamic language
Introducing LINQ!
See me on Channel9...
I haven't gone AWOL...
I’m doing this because I expect that in the coming months/years I’ll be talking more about these kinds of...
We’ve been hard at work on an updated CTP of the LINQ work, and when you get it (no comment on dates at this point), you’ll notice several new things about the VB LINQ support. One the biggest is going to be the fact that, after trying all the Intellisense tricks we could think of, we’re throwing in the towel on Select/From and adopting the “Yoda style” From/Select syntax. As in:
Dim WACusts = _
From c In Customers _
Where c.State = "WA" _
Select c
instead of:
Dim WACusts = _
...
As you may remember, I asked last year whether C# programmers are masochists for using C# to program against the Office model since VB deals with COM much better in a number of cases. My comment was prompted by the publication of Eric Lippert’s and Eric Carter’s book “Visual Studio Tools For Office Using C# with Word, Excel, Outlook and InfoPath.” Well, now you don’t have to be a masochist any more! You can read “Visual Studio Tools For Office Using Visual Basic 2005 with Excel, Word, Outlook and InfoPath”. As Eric Carter says:
This edition of the book focuses on using the...
For a long time, I’ve been trying to write an entry entitled “I Hate Mort” that captures everything that I think is wrong with the current “Mort, Elvis, Einstein” taxonomy of developers that Visual Studio uses. And, for a long time, I’ve been failing miserably. I think it’s that I tend to want to be very fair-minded on the subject—by and large, people are extremely well-meaning when they talk about Mort and Visual Basic, and I feel bad bad-mouthing something that a lot people have invested a good chunk of thought into. However, Scott Bellware has no such qualms:
The Microsoft...
At the end of his entry on the concatenation operator, Bill observes some strange behavior around types that have a user-defined conversion to String but can’t be used with the concatenation operator. This is actually a design bug in our operator overloading resolution logic that we’re planning on fixing, since it won’t impact compatibility at all. To quote almost verbatim from the preliminary spec I wrote on it:
Consider the following program:
Module Module1
Sub Main()
Dim CI As New C()
' Error: '&' is not defined for 'String' and 'C'
Console.WriteLine(CI & "world")
Dim S As String...
Erik Meijer has posted an announcement for Lang .NET 2006, a Microsoft-sponsored language conference, over on Lambda the Ultimate that I thought I would point out to any readers who might be interested. A bit of the announcement:
Lang .NET 2006 is a forum for discussion of programming languages, managed execution environments, compilers, multi-language libraries, and integrated development environments. It provides an excellent opportunity for programming language implementers and researchers from both industry and academia to meet and share their knowledge, experience, and suggestions for future research and development in the area of programming languages.
Lang.NET 2006 will be held from...
Over on his blog John Montgomery shares how some of Microsoft’s internal research puts the lie to the old canard that VB programmers aren’t as smart as other programmers. A short quote:
If you ask VB developers how much education they have, about the same have college degrees as C/C++ developers (we ask what their primary language is and cross reference by level of education attained), and only negligibly more C/C++ developers have graduate degrees. More than that, more pro developers who primarily use VB say they have an undergrad CS degree than pro developers who use C/C++ primarily (though more...
I was on a thread today where a VB MVP asked if VB was ever going to integrate regular expression-type functionality directly into the language to make it easier (and more comprehensible) to work with strings. The immediate reaction in my head was, “Well, it’s in the pipeline, but no telling if it’ll ever come out…” Which bears a little explanation…
The traditional model for software development at Microsoft is something I’d call “punctuated insanity.” That is, you start a product version by running around like a chicken with your head cut off, trying to come up with what you think you should...
There is a saying that “no one is more zealous than a convert,” and I think Erik is out to prove that in spades… <g> Check out his two new papers: “XML Support in Visual Basic 9” (with Brian Beckman) and “Confessions of a Used Programming Language Salesman.”
Over a month ago, I asked what a particular chunk of code should do:
Module Module1
Sub Main()
For i As Integer = 0 To 2
Dim x As Integer
Console.WriteLine(x)
x += 1
Next
Console.ReadLine()
End Sub
End Module
I purposefully left the question open and vague because I wanted to see what the community feedback would be without any kind of preconceived notions. I didn’t expect for it to take me so long to return to this question, so I apologize if people got frustrated waiting, but I do want to get...
OK, it took a while, but my updated version of the VBParser source code sample is finally up! Since the 7.1 version of VBParser ended up being essentially a read-only project on GotDotNet, I’ve decided to eschew GDN and just go with a straight source download. I’ve added a new set of links on the left hand side of my blog entitled “Samples,” and put both the 7.1 and 8.0 version of VBParser there.
Things that are new or changed in VBParser 8.0:
I’ve updated the source to take advantage of VB 8.0 features such as generics, IsNot, etc. Because of this, VBParser...
Avner has posted some information on updates that we’re planning on making to the XML integration feature in our next VB 9.0 CTP. Check them out and let us know what you think!
I found Guido van Rossum’s meditation on Language Design Is Not Just Solving Puzzles quite on target and relevant to what we’re going through right now as we consider how to design the myriad of language features that make up LINQ. (Thanks to Lambda the Ultimate for the pointer.) If you look at all the possible kinds of language features that you can stick into a programming language, it often seems like there’s an inexhaustible supply of them and many of them are quite interesting or compelling. But the problem is that, in the end, a programming language has to...
OK, I’ve got a question for y’all. Take a look at the code sample at the end of this entry and leave me a comment on what you think the output of the program should be. Note that I’m looking for people’s opinions here and this isn’t one of those “how well do you know VB” trick questions. Once you’ve put in a comment on what you think the output should be, then feel free to run it and see what it does, but do hold off commenting on the actual behavior until people have had a chance to comment....
I know this is old news, but I’ll say it anyway: several weeks ago, we released an updated preview of our proposed 9.0 features. The preview is enhanced in four primary ways:
We now support some Intellisense for Select expressions. This is a step forward in our investigation of the Select/From vs. From/Select question, so we’re definitely interested in feedback here.
We now support a lot more LINQ, specifically DLinq and variable capture (so you can now access local variables in queries). A huge chunk of my November/December went towards implementing lambda expressions and expression trees in Visual Basic and that, combined with...
As Raymond says, most development teams face some kind of “tax” in their day-to-day work. Taxes are things that a programmer has to do or take into consideration that are usually: a) not specifically assigned for him to do, b) not specifically accounted for in his schedule, and c) not specifically very much fun. The first example Raymond used was power management — something that pretty much every Windows application should take into account but which a very great many applications don’t.
One of the wonderful things about working on a compiler is that, by and large, you escape most of...
This has been bouncing around a bit on blogs, but I thought it was funny… Billy Hollis, a longtime VBer, has posted some of his historical ruminations on VB and C-style languages:
If you like VB, look at the history of the C family [of languages] first. If you like C#, Java or C++, look at the history of the BASIC family first.
But who’s got the Star Trek game? I loved that game…
Just a FYI, I’ve changed the title of the “VBParser” category to “Samples,” in preparation for what I hope are several new samples in the coming months. The main thing I’ve been working on so far is an update of the VBParser sample that I wrote for VB 7.1. Besides updating the parser to parse VB 8.0 language features, I’ve also changed it to use nifty CLR 2.0 features like generics. My hope is to have it out in the next few weeks. Unlike last time, I don’t think I’m going to use GotDotNet as a distribution medium — since...
Someone recently sent me a question that comes up every now and again:
C# has been submitted and approved by the ECMA, will Visual Basic ever be submitted?
Well, never say never, but there are no current plans to submit Visual Basic to a standards body. The idea has certainly been discussed internally from time to time, but we’ve usually gotten stuck on several points:
By and large, the demand for this from developers has been very low, at least in terms of the people that we talk to in customer visits, trade shows, conferences, online, etc. Now, it’s always possible that there’s a...
This is a bit of old news, but I did want to point out that we have heard the feedback about the relative dearth of VB samples in the past few releases and now MSDN and Microsoft as a whole has been consciously shifting their focus. Tom makes some interesting observations about the readability of the different languages for different types of developers and there’s some lively discussion in the comments, well worth checking out!
On a happier note… Brad McCabe passed along some info about free training that MSDN is offering for VB 2005 and/or ASP.NET 2.0. To quote him:
With the holiday’s coming lots of people have some extra time on their hands, with this in mind MSDN and Microsoft Learning got to together to give you something to do, free training!We were trying to figure out what course to give away and decided to let you pick. That’s right pick one of 6 courses about Visual Basic 2005 or 9 courses about ASP.NET 2.0. In addition, after you have completed your free online...
In addition to my interview with the ITPro website, I’ve also got a personal webpage on MSDN Japan. It has links to things like an interview I did with Takashi Tsujigo, an evangelist from MSDN Japan, and an interview with @IT. I believe there are also going to be some webcasts up before long. Unfortunately, I don’t believe there are any English translations available for any of the content, although I don’t think I said anything secret that I haven’t said elsewhere… <g>
For my Japanese readers, you can now read an interview that I did with the ITPro website. We had a wide-ranging conversation, so we covered some interesting points…
I get the question “Why does Visual Studio target only one version of the .NET Framework?” occasionally, and now John Rivard, a new VB blogger, answers. John is the other Technical Lead on VB, and I’m looking forward to him blogging more in the future!
OK, well, now that I’ve had a chance to recover a bit from the jet-lag from flying back and forth from Tokyo in just three days, I thought I’d give a short update on how the launch went there.
Executive summary: Great!
This was my first experience presenting outside of the US, and it was very interesting. My main presentation on VB 2005 was simultaneously translated, but everything else was done sequentially. So I spent a lot of time saying one or two sentences, pausing, saying one or two more sentences, pausing, saying one or two more sentences, listening to the reply...
While I was at the Japanese launch (more on that soon), one of the questions that came up often was, unsurprisingly, about migration from VB 6. We continue to have the resources available on the VBRun website, but we’ve also had some new migration resources released recently by the MS Patterns and Practices Team (thanks to Jackie Goldstein for the link). Check them out!
We’ve now got the final version of the Visual Basic 8.0 Language Specification now up and available on MSDN! And, as it seems with everything these days, I’ve already gotten several bug reports for the samples. I guess I can go ahead and commit to shipping a service pack for the language specification in the near future…
Updated 11/26/05: Corrected link to language specification. (Thanks Roger!)
The VP for the division that VB is a part of, S. Somasegar, recently sat down with Ken Levy for Channel9 and had a chat about VB, the future and other stuff. Ken asks him a lot of the frequently asked questions about VB, like:
How much does Microsoft use VB internally?
How much does Bill Gates care about VB?
Why wasn’t there an unmanaged VB upgrade from VB6?
What are the plans for the future?
And more…
I’d encourage people to check it out…
(Funny side note: To deal with the persistent annoyance of comment spam, I instituted some extra filters in the...
In the comments to my notice that we shipped, karl asks:
I haven't played with VB.Net 2005, but are all of the bugs also causing problems? Most seem CLR related, but with a hint of IDE link, and I know C# and VB.Net don't share all the IDE code. The list of reported issues has put a halt, possibly permenantly, on my push to upgrade the entire team to 2005.
I’m guessing Karl is talking about a lot of the blog entries that came out around the release of VS 2005 to MSDN subscribers, some of which are summarized by MiniMSFT.
So, is...
In case anyone missed it, we launched Visual Basic 2005 this Monday (along with a couple of other small products like SQL Server and the rest of Visual Studio)! This means everyone can now get their mitts on VB 2005 — you can also get trial downloads and the free-as-in-beer-for-a-year Express version.
We’ve also updated the VB Dev Center, so check it out! Now the fun can begin…
Since it’s been a long while since I’ve been really closely involved with VB2005, this seems like a strangely anti-climatic announcement, but: we’ve shipped!
Visual Studio 2005 (Standard, Pro, and Express versions) and SQL Server 20005 are now available for download on MSDN if you’re a subscriber, otherwise you’ll have to wait until after the November 7th launch event.
For a good overview of the new features in Visual Basic 2005 check out Ken Getz's article. You can also find a collection of VB 2005 articles at our developer center.
Updated 10/27/05: Corrected MSDN link. Thanks Serge!
You’ve probably seen this elsewhere, but… The PDC05 videos are now online and available to anyone who wants to watch them for (I believe) the next six months. You can catch my sessions there in case you missed the fun the first time around!
TLN308: Visual Basic: Future Directions in Language Innovation
PNL03: Scripting and Dynamic Languages on the CLR
PNL11: .NET Language Integrated Query End-to-End
Dan Mabbutt has some very nice things to say about The Visual Basic .NET Programming Language. Keep it up and maybe there'll be a new edition sooner rather than later!
I think Rico’s spot on when he says that the real way you win the performance war is 5% at a time. Actually, I think he’s been overly optimistic — a lot of the time, it seems like you win the performance war 1% at a time. It’s much more like trench warfare than blitzkreig.
There’s also a larger idea at work here. Rico’s point is that in a mature product, you shouldn’t be able to come up with a huge performance win in most cases because, if you can, why didn’t somebody think of it before? The thing is, this...
Just announced, we’ve got an upcoming chat on the VB 9.0 language enhancements we’ve been talking about:
Visual Basic 9.0 Language EnhancementsDescription: Have you been hearing and reading about many of the exciting new features being planned for a future version of VB beyond the new version VB 2005? Would you like to get more details on what is planned for VB 9.0 directly from VB team members? Would you like to provide the VB team with feedback based on what you have seen coming in VB 9.0? Join the Visual Basic language design team to discuss some newly announced VB...
I just noticed from Duncan that the announcement for the new vb:feeds site is up, courtesy of vbCity. It’s an aggregated feed of many of the top VB bloggers, screened for content (so you don’t get random entries about the blogger’s dog or something). It’s looking to be a good way to keep up with what’s going on in the VB blogsphere!
Over the past several months, I’ve been getting questions as to whether I’m going to be updating my book, The Visual Basic .NET Language, for VB 2005. The unfortunate answer is: not at the moment.
The first problem is that the VB .NET book market has been quite soft over the past year or two. This is not entirely surprising — although uptake on VB .NET has been very good considering the fact that the shift from VB6 to VB 2002 or VB 2003 was significant, it’s been (as I’ve always said it would be) a long-term process. We’re seeing continuously growing...
I’m glad to see that Brad and Krzysztof’s Framework Design Guidelines book is finally now in stock on Amazon! Not coincidentally, I just received my own copy of it in the mail yesterday and I know it’s going to be one of the books that’s not going to make it to the shelf because I’ll be referring to it all the time… It’s a great resource for anyone who designing .NET libraries that other people have to use (i.e. most of us at one time or another) because it distills thousands and thousands of man-hours worth of experience writing .NET...
Looks like Carl and Co. have put up a .NET Rocks show that Amanda, Erik and I recorded at the PDC. We had a very interesting discussion, ranging from LINQ to what it was like for Erik to be a “Head in a Box,” definitely something for everyone! Check it out!
Two new videos, timed to coincide with the PDC are now up:
Paul Vick and Erik Meijer - Dynamic Programming in Visual Basic – This is me and Erik talking about dynamic stuff in VB. We were planning on talking about some of the new XML stuff as well, but didn’t even get to it! Another video, I’m sure…
Paul Vick and Amanda Silver - VB Language Futures – This is me and Amanda talking about a lot of the future stuff we talked about at the PDC. Check it out!
Hopefully more to come. If you have specific topics you’d like to...
Apropos of the previous entry, I should add that I agree wholeheartedly with Eric’s contention that parameterless default properties were almost entirely evil. They did make working with some objects much easier, but they came at such a cost of understandability that I don’t believe that, in the end, they were worth it. When I started working on the VB compiler as we were porting to .NET, I tried to get a coherent explanation of exactly how parameterless default properties worked, especially in situations like functions that returned objects that had parameterless default properties that returned objects that had parameterless...
Eric Lippert recently talked about some of the fun and exciting things that go on when you use parameterless default properties in VBScript. He notes that the fact that VBScript is always late-bound means that the behavior of code in VBScript is often different than early-bound code in VB6. He goes on to say:
I hear you exclaiming "The fact that a difference in available type information leads to a difference in run-time behaviour violates a basic principle of programming language design! Namely, the principle that late-bound calls have exactly the same semantics as early-bound calls!" […] Indeed, as I've mentioned before, VB6 and VBScript...
Yes, Jeff, yes indeed… That’s a pretty cool idea, isn’t it? I mean, I’m just sayin’…
(This was an ironic thing to show up in my aggregator given the demo that I’m working on today for the PDC. Assuming the demo comes together the way it should, you’ll see why in LA…)
Tag: PDC05
In my recent entry on dynamism, I noted that one person we’ve been working a lot with lately is Erik Meijer, late of C?. Although Erik appears to be retaining a healthy dose of language agnosticism, it appears that we’ve started to turn him over to the dark side as he’s become quite enthusiastic about VB… In fact, he’s going to be giving a talk at JAOO this year on some of the stuff we’re going to be discussing at the PDC and a few speculative ideas he’s been working on beyond that. Here’s the abstract:
Moving forward, the dominant costs for IT projects are people costs more...
As longtime readers may remember, I suggested a long time ago that if/when VB added refactoring we might not call it “refactoring.” This immediately raised a hue and cry about how I was saying that VB users were “dumb,” how I was turning my back on an industry term that “everybody knows,” how this was just another example of how out of touch we were. I tried to turn in a good defense, but in the end it didn’t really matter, since first refactoring was cut and then it was an add on, and the add on uses the term...
So with tongue firmly in cheek, I complain about how some people get their names in their session titles and some don’t and then Brad has to go call my (fake) bluff and put my name in my abstract. So now I get to see just how little name recognition I really have out there compared to Anders and Raymond…
Well, I’ll show him! I now command each and every loyal reader of the blog and all their friends to sign up for the PDC and register for my session! Bwahahaha! That’ll really show him!
Or just confirm my place in the...
More information about the PDC continues to drip out drop by agonizing drop. As Brad notes, most of the PDC session abstracts are online, including:
Visual Basic: Future Directions in Language InnovationVisual Basic is designed to be the most productive language for writing data-centric, solution-focused applications. Meet with the designers of VB and learn about upcoming language features that will improve developer productivity, including new features that enable optimized queries over objects, XML, and databases in a consistent way.
I'm going to be giving this talk along with Amanda Silver and we're going to cover some really cool stuff that we've been...
Joel Pobar has posted an excellent start of what should be an interesting set of blog entries on how dynamic/scripting languages work on the CLR. When listing out the dynamic languages available on the CLR he includes among them VB, which may come as a surprise to some people. In many places the cult of Option Strict may have convinced people that VB is an entirely statically typed language like C# is, but they’d be wrong. In fact, a decent chunk of our Whidbey time was spent rewriting our late binder to handle all the new language features in this release:...
Joe Binder, one of our PMs, has written an article on MSDN on how you can extend the ‘My’ namespace. The ‘My’ namespace is one of the cool new features that we’re introducing in VB 2005. If you’ve ever been interested in adding your own stuff to ‘My,’ check it out!
Thanks to Brad for pointing to a cool little console roguelike written in VB called “Heroic Adventure!”. Certainly brings back the memories, and I’ll be looking forward to more code release to see how one might play around with it. I always thought that a roguelike would be a fun project…
It’s a little later than planned, but we’ve now got the 8.0 VB language specification posted up for downloading. It covers all the new language features in VB 2005 and should be completely current with Beta2. Please let me know of any errors or corrections – it is a beta document, so it’s not going to be perfect.
In case anyone is wondering about 8.0 vs. 2005, the language itself is referred to by a version number, but the product has a year. So:
VB 2002 product contains Visual Basic 7.0 language
VB 2003 product contains Visual Basic 7.1 language
VB 2005 product contains Visual...
Since Brad’s already started the teasers, I guess I can add that my semi-hiatus this summer has a lot to do with the VB PDC05 session that Brad mentions. I know that PDC sessions are supposed to be about “the future,” but given the blinding amount of hype around PDC03 and the resulting blowblack I do feel a little funny about talking about future innovations on a product that won’t have actually shipped yet (although it will be very close at that point). Anyway, I think we’re going to have some stuff to show you that’s going to blow your...
…that the book I was talking about in my entry “Are C# Programmers Masochists?” was Eric Lippert’s and Eric Carter’s book “Visual Studio Tools For Office Using C# with Word, Excel, Outlook and InfoPath.” Many kudos to the two Eric’s on the impending completion of their efforts! (Although I still think you’d be crazy to choose C# over VB when working with Office…)
Matt Gertz, the compiler development lead, has written an article in the latest edition of MSDN Magazine about VB’s background compiler technology. It’s a good expansion on the entries (part 1, intermission, part 2) that I wrote last year. Check it out!
In one of the comments on my Community Can Be Cruel entry, Karl said:
One of the problems with custom engagement in the forms of these blogs is that it makes the customer believe he or she might be able provide input which will ultimately have an effect on decisions taken. While this may be true in some cases, it certainly isn't in others. This isn't anything wrong on your part, and I certainly don't want you to stop, it's just hard sometimes for the community to accept that decisions have been made and that our arguments via feedback are, at...
As someone very wise once said, the problem with making confident predictions about the future is that time has a way of making a liar out of you despite your best intentions. The good news in this case, in case you haven’t heard it elsewhere, is that VB 2005 will have refactoring features! Both Brad and Cory have some good discussion on this and you can check out the official announcement on MSDN. Personally, I think this is just great and kudos to the VB folks and the Developer Express folks who made this happen.
I will also observe that the...
Lisa Feigenbaum asked me to pass along the info that the VB IDE team (those responsible for the VB portion of the Visual Studio development environment, as opposed to the core compiler/language) has put up a new blog! It’s already got some interesting content there, so check it out!
You’d have to be living under a rock not to have noticed by now, but I thought I’d add my voice to the chorus: VB 2005 Beta 2 has shipped with a Go-Live license. Take a look, check it out, let us know what you think!
Just a quick note – it looks like I’m going to be headed to Orlando in June for TechEd 2005! At this point, I think I’m just going to be doing booth duty and other fun stuff like that, more details as they become available…
A long, long time ago I riffed a little bit on the question of “why do we have VB and C#?” The idea I was trying to struggle towards was that even though two languages may share many similar constructs and be able to express roughly the same thing, design decisions on little things can make a big difference in the experience of using the language. Now I learn from Dave Remy that this is hardly a new idea and even has a name: the Sapir-Whorf hypothesis. There’s even a discussion about how it might or might not apply to...
Just a quick note: Jay Roxe has announced a new MSDN site dedicated to VB 6.0 content and migration. Check it out!
Bill Vaughn reports that there were hard feelings and veiled threats from some Microsoft people in response to his signing of the MVP petition. I think Michael Kaplan captures my feelings about that situation pretty well. Forget the question of whether Bill’s an MVP or not – the bottom line is that no one should ever be criticized or penalized for speaking their mind, as long as it’s done in a respectful and honest manner (as it was in the petition). Although I think that the aims of the petition are unrealistic, I can understand why someone might sign it and...
As an example of how VB .NET threw its lot in with the MSDN camp instead of the Raymond Chen camp, Joel points to the example of the disappearance of Set and parameterless default properties. (I should add that Joel slightly misspoke again – VB still has default properties; now, though, they can’t be parameterless.) This is an interesting design point to pick because it was one of those that unambiguously showed the dilemma that we faced when moving to .NET. Namely, how do you do two mutually exclusive things at the same time?
You see, when we started out on the grand...
In my previous entry on the VB6 petition, I explicitly avoided the question of support as something that I knew little about. So, for those of you who missed it, you can check out what Rob or Jay have to say about it. They know far more than I about it.
A few days ago Scoble emailed me with the heads up on his post talking about the MVP revolt spurred on, in part, by the fact that VB 6.0 mainstream support is ending this month. Then life intervened and I’m just now getting some time to get back to the whole brouhaha. In the meantime, this has roiled through at least a few corners of the blogsphere. I’d throw in a couple of gratuituous links, but if you read any number of .NET or VB blogs, you’re going to have seen them. Well, OK, two entries that stand out in my mind were those of...
One of the things that would be amusing if it wasn’t so annoying is the way that a step forward can be perceived by people as a step backwards. Case-in-point: the commonly heard refrain that C# is the “official” language of .NET (and Microsoft) because so much of the frameworks are written in C#. Scott has a pretty good set of arguments against this canard framed in the context of the present day, but the thing that I find really ironic is how all this hand wringing is so woefully ignorant of history and how it is backhanded evidence of the...
I don’t usually just link to other entries, but sometimes people just say thing that I’ve been meaning to say but just never found the right words for. Scott’s entry on the joys of VB, .NET style, express pretty well the answer to the question of “why VB in .NET?” And I particularly liked Paul Kimmel’s article “Has Visual Basic Lost Its Way?” As I’ve said many times, so much of the past two releases (and the upcoming one) has been just about getting VB onto .NET, which has been a huge endeavor. Not to mention being, for the most...
To leave aside patents for a moment, if you're having problems with large (>100K lines of code) projects in VB, this KB article might help. The problem is fixed in VB 2005, but if you're using VB 2002/2003, there is a hotfix for it. Thanks to Eric Harrison for publicizing the problem!
So every time someone whose blog I read would get Slashdotted, I would wonder to myself, "I wonder if this will ever happen to me?" And then I would start speculating, "Hmmm... If so, I wonder what kind of thing I'd have to do to get myself Slashdotted..." Well, now I know: have Microsoft submit a patent for the IsNot operator, listing me as the principal inventor. Wonderful. Glad to see it's over something that I can be really, really proud of...
(It's not a full Slashdotting I suspect, because the blog is only mentioned in the comments, not the main entry, but even a tertiary flood is...
Another common comment around refactoring has been: why do we have to wait for a whole other release to get refactoring? Why can't you just do the features and then ship them when they're ready?The answer, for the moment, is that we are subject to the "tyranny of the suite." Which is to say, we are so tightly bound to the rest of the suite of products that we ship with (C#, C++, J#, debugger, IDE, SQL Server, CLR, etc.) that it is extremely difficult for us to ship separately from the rest of them. In effect, it's like we're...
Yes, everyone should get out and vote for the big kahunas today, but also take a moment to pop by http://www.duncanmackenzie.net/visualbasicsurvey/ and let us know how you use VB! This information will help us with future planning as well as planning for VB 2005...
Just don't make me watch myself!
Some thoughts on leaky languages.
Where to find Declare statements.
And why VB doesn't have them.
Vamos a la playa, la playa, la playa...
Will the circle be unbroken...
Different thoughts on the operators.
Further thoughts on VB and C#.
Some thoughts on static imports and other stuff...
Je ne parle pas Francais.
A veritable panoply of new things!
May the source be with you...
Thoughts from the Java side of things.
Some new controls to use, in VB.
Correcting a mistaken impression.
...and were afraid to ask!
More on language choice and Microsoft.
Thoughts on the relation between VB and the CLR.
We want to fix your crashes.
How is learning C# like learning German?
Hail, hail, the gang's all here...
Another question answered.
Accidental or intentional?
Another feature and some musings.
I had nearly forgotten that we're approaching a major milestone this weekend - the 40th anniversary of the first BASIC program! Happy birthday, BASIC!
I only remembered the occasion because the AP Newswire did a story on the anniversary and they wanted to get a quote from someone at Microsoft about BASIC. They wanted Bill Gates, but they got me - too bad for them! Anyway, I had a very pleasant chat with the reporter about BASIC and Microsoft and such. Although I see where he's coming from with the idea that BASIC is no longer with us - certainly not in...
Some basic information (if you'll excuse the pun!).
Some of it will work, some of it won't.
Check out the great new feature!
I haven't always thought that, though.
I'm in talks with K-Tel about them.
I won't be able to go after all. Bummer.
One of the reason things have been slow around here is that I was preparing a presentation yesterday to the VB MVPs yesterday at the MVP Global Summit. Since we've been talking about the VB 8.0 language for quite a while now (and we've had several semi-public releases), there wasn't a lot new to talk about so we just discussed the new language features in more detail. It reminded me yet again that I need to get more detail on some of the new features up here and out in public.
My only regret was that I ended up missing most of the...
Something to look out for.
Yes, it's a Visigoth invention.
Be there or be rectangular.
A question we get occasionally.
An honest difference of opinion.
They're coming out of the woodwork!
Suggestion from a reader.
Talk about touching off a firestorm!
Make some new operators...
Paul is dead. Paul is dead. Paul is dead.
Just something I noticed.
In case you've missed it.
Harnessing the power of the Internet
Why some things don't make it in.
Why things are the way they are.
Something we fixed in VB.NET.
I don't really sound like that, do I?
It's nice when someone says nice things about you.
More musings on technology and Edit and Continue.
One question that remained unanswered.
The joys of floating point numbers.
The language designers are in.
An article in reply to VB's "uncertain future."
A little part of the Try...Catch syntax.
Be there or be rectangular.
I am joined by another team member.
A sadly neglected operator.
"...have been greatly exaggerated."
Don't believe everything you read.
A short discussion of Visual Basic codenames.
Shedding light on a more obscure corner of the language.
Frans asks the question: why do we have both VB.NET and VC#.NET?
Just an interesting story from Robert Scoble.