New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Al Tenhundfeld on Apr 08, 2009
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.
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
Five Key Practices to Agile ALM
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
Getting Started with Stratos - an Open Source Cloud Platform
This makes me really glad I finally bit the bullet last year and switched from VB (since VB 1.0) to C#.
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
That was my first impression also. If you watch the Channel 9 video, it seems less heinous, though still a little mysterious.
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.
Although, Ruby and Python both have a "line termination scheme that applies some of the time"... ;)
Heh. Good point. I'm not a Ruby or Python programmer, but that's good to know!
I like the new syntax and I think the VB team has done a good job to eliminate the scenarios that would be ambiguous. The improved readability and aesthetics are worth it.
Although, Ruby and Python both have a "line termination scheme that applies some of the time"... ;)
As does many variants of SQL.
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#.)
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.
OK, you're right. I try to avoid working directly with COM; so it's not on my mind.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
9 comments
Watch Thread Reply