Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Jonathan Allen on May 31, 2011
A prank during TechEd caused many to believe that Visual Basic 6 would be open sourced. While it turned out to be false, it did start a lot of conversations about the language, its legacy, and an open source implementation would mean.
Visual Basic undergoes significant breaking changes in every third version. The first major change was the transition from 16-bit to 32-bit programming in Version 4. While not much of a problem for “pure” applications, most Visual Basic programmers heavily relied on third party libraries and components. In cases where the 16-bit DLLs and VBX components didn’t have corresponding 32-bit DLLs and OCX components a major rewrite could be required.
The next major shift occurred in Visual Basic 7, also known as VB.NET. This replaced the natively compiled code and runtime libraries with .NET’s IL code and Common Language Runtime. In the process some core functionality was broken, the most notably being the resource model. Visual Basic 4 thru 6 used COM’s reference counting design, which requires setting a variable to null to free resources. Translating this to .NET’s non-deterministic garbage collection is not an easy task, especially with working with limited resources such as file handles.
The ramifications of this are still plaguing companies and developers. In the 90’s Visual Basic was by far the most popular language for writing internally used business applications. Faced with the prospect of more or less rewriting their applications from scratch, many developers gave up entirely on VB and switched to Java or C#.
The most recent change to Visual Basic comes with VB 10 SP 1. This removes practically all of the legacy features inherited from VB 6 such as unstructured error handling. This was done specifically to support Windows Phone 7 and other specialized platforms where you would be writing new code anyways.
Why Visual Basic 6 Matters
Companies like Citect (http://www.citect.com) and users thereof might. There's plenty of legacy stuff out there still being actively maintained that has VB6 in it. Maybe VB6 can now go 64 bit?
-- syousef
If they actually do this, VB6 will still be a popular language when we're all dead. I'm completely serious -- it's the next COBOL.
Whether that's a good thing or a bad thing, I don't know.
-- anonymous
There's a scary amount of legacy code in VB. When I was interviewing for a job recently (PS: anybody hiring coders in the DelMarVA area?), the interviewer was asking about some porting work I had done. There were a whole pile of VB projects in use, only one or two of which the budgeters could justify examining---and that only meant re-working them in VB.net, so that they could be extended in the future without needing a legacy development environment.
VB already *is* the next COBOL.
-- orangesquid
The hospital I work (and pretty much every hospital in the country) is dropping millions on a certain healthcare EMR system that is based on VB6.
-- anonymous
Seeing as half the world's business are still built on VB6 then yes, it'd have been a good thing, because it'd mean there was finally hope in creating something that'd pull them away from that unstable, poorly scalable [expletive] of a technology.
-- Xest
I spent the last ten years working supporting a VB6 project. I wrote the C++ code that it ran on top of. The non-CS engineers who wrote the VB stuff fought tooth and nail to keep that software going. At the time I left the job, they were trying to get it to work on 64-bit Windows so they wouldn't have to upgrade it. The scariest part is, this was a real-time test system.
If I were still there (and is this release had been true), I'm certain they'd be asking me to compile this source code into 64-bit.
-- anonymous
Oh and additionally, there are lots of companies still using VB6 as their main code source for enterprise sized applications. I work at one such company and we run a multi-million dollar business on VB6 desktop codebase. No the web versions are all .NET and services accessed by both versions are .NET based.
I see many jobs still with VB6 as a required skillset as well as some dedicated positions utilizing it. So I wouldnt say VB6 is anywhere near death... yet.
-- RobDog888
This is true also in Italy. Most of these companies are now switching to Delphi but I'm sure that they would love to keep using unmanaged VB if a software house whatsoever took care of upgrading it.
-- esposito
These quotes are from Slashdot and VBWire.
Where Visual Basic 6 Currently Stands
Visual Basic 6 still doesn’t have a 64-bit version available to the general public and, according to the March 2010 service bulletin, it never will. That isn’t to say it is impossible, there is a 64-bit version of Visual Basic for Applications included in the Microsoft Office product line; it merely means Microsoft has no intention of dedicating resources to it.
More distressing to some is Microsoft’s intention to stop shipping the VB 6 runtime after Windows Server 2008/Windows 7. While Visual Basic 6 originally required the installer to include the runtime, these essential DLLs have been shipped with ever version of Windows for the last decade. Going back to the old model will require rewriting the installer packages currently in use.
Automating Error Reporting for .NET Applications
Visual Studio vNext: ALM features for Agile Planning, Team Collaboration
RDBMS to NoSQL: Managing the Transition
Want to know how software releases can be stress-free and happen with one click? Try Go free!
Improving Software Delivery Cycles: Pre-requisites and Inhibitors
Go: Agile Release Management Solutions. Go enables predictable, defect-free and timely software releases.
VB 6 should disappear along with every other 6th version of anything Microsoft makes.
...Windows 6 (Vista)
...IE 6
:-)
At some point, organizations have to pony up and invest in the migration to dotnet.
scares me.
At some point, organizations have to pony up and invest in the migration to dotnet.
Why? There are still millions of lines of COBOL out there that "just work." The only philosophical difference between legacy COBOL and legacy VB is the difference in hardware and operating systems. Businesses can still run COBOL apps written thirty years ago side by side with COBOL apps written last year because the the hardware and operating systems still supports the old COBOL code.
VB is joined at the hip with its operating system (Windows), which is tied to the hardware. As long as businesses want to run old operating systems and old-style hardware (x86), they can run those VB apps forever. My guess is that a lot of them will.
...and with virtualization, they can upgrade the hardware and still run the old OS in a virtual environment.
Yeah, and then they end us digging themselves in a deeper hole because eventually they do have to upgrade. The difference with COBOL is that unlike COBOL these VB6 apps are running on people's desktops and eventually those desktops have to be upgraded. Hah, comparing VB6 to COBOL should give anyone pause for thought though.
Everyone seems to agree that there is a ton of VB6 code out there that is unmaintainable and ideally should be converted to .NET code.
The huge legacy of VB6 code is simply to big to be converted by hand.
VS2010 doesn't carry a vb6 converter anymore and in older versions the conversion was utter crap.
I found some tools and guidance for those who want to upgrade but haven´t tried them myself, but they seem a lot cheaper than hiring developers and testers to rewrite everything. They also have free tools so you can identify problems and try stuff out.
www.vbmigration.com/
www.artinsoft.com/
Muddling along with old VB6 code is costing money and causing frustration. Investing in a tool to alleviate development dept, seems like a quick and cheap way to squeeze more production from a development shop. In that way a converter is similar to a refactoring tool like Resharper or CodeRush, witch you probably need to improve the generated code a little further.
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
7 comments
Watch Thread Reply