No More Underscores in VB 10
Visual Basic 10 will have an improved compiler that makes underscores optional for most line continuations. This represents a significant change for VB, traditionally a line-terminated language. The Visual Basic team has an in-depth explanation of Implicit Line Continuation.
VB 1-6 and VB.NET (7-9) used the carriage return as a statement termination token, similar to the explicit semicolon ";" in C#. By moving to an implicit termination token, Visual Basic language readability will be greatly improved, especially when writing multi-line LINQ queries.
Dim dates = from d in listOfDates _ where d.Year > 2009 _ select d _ distinct _ order by d
Could become:
Dim dates = from d in listOfDates where d.Year > 2009 select d distinct order by d
The VB team explanation mentioned above covers specific cases where implicit line continuation is not supported:
We don’t capture every scenario. Given our cost and time constraints around the feature, we tried to capture the most common cases that would provide the most bang for the buck. We also avoided the ones that just led to problems. Here are some examples of problems you could have if we had decided to allow implicit continuation anywhere. I take these from some analysis that Lucian Wischik (also on the VB compiler team) did on our grammar:
With y
A=x
.xfield
End With
If we allowed implicit continuation before the ‘.’ we would have problems knowing what the period belongs to. For example, it could be interpreted as:
With y A=x.xield End With
Or
With y
A=x
.xfield
End With
Channel 9 also has an excellent interview with Tyler Whitney, a developer on the Visual Basic compiler team.
Huh?
by
Steve Macdonald
What could be more confusing than a line termination scheme that only applies some of the time?
Phase out VB. Keep C# lean. Bring Ruby and Python fully into .Net
Re: Huh?
by
Al Tenhundfeld
But if they want to go this route, why not just make VB have an explicit terminator, like ";". Yeah, it breaks backwards compatibility, but the upgrade process would be a fairly trivial text replace.
And it's time for VB to lose some of its cruft. If you're programming in VB.NET without Option Strict, you're doing it wrong, IMO.
Re: Huh?
by
Jack Singleton
Re: Huh?
by
Steve Macdonald
I Like It
by
Casey Joyce
Re: Huh?
by
Jonathan Allen
Although, Ruby and Python both have a "line termination scheme that applies some of the time"... ;)
As does many variants of SQL.
Re: Huh?
by
Jonathan Allen
And it's time for VB to lose some of its cruft. If you're programming in VB.NET without Option Strict, you're doing it wrong, IMO.
Wait a second. If you are working with COM, using Option Strict is downright painful. (Though not as bad as C#.)
Re: Huh?
by
Jonathan Allen
What could be more confusing than a line termination scheme that only applies some of the time?
I know!
Having lines broken at random like they are in C#. Then spending weeks arguing over coding conventions, only to repeat the argument every time a new team member is hired.
Educational Content
Concurrency in Clojure
Stuart Halloway May 17, 2013
Confessions of an Agile Addict
Ole Friis Østergaard May 16, 2013
Web Development: You're Doing It Wrong
Stefan Tilkov May 16, 2013
Programming The Feynman Way
Ben Evans May 15, 2013





Hello stranger!
You need to Register an InfoQ account or Login to post comments. But there's so much more behind being registered.Get the most out of the InfoQ experience.
Tell us what you think