Skip to content

Blog

06/04/2013 public release


gmBasic
[+] 10.05B6 Various ASP/VB6 compiler improvements

MetaLang
[Change] lang\VB7Lang.xml default Setting to ExceptionHandling=Simple
[Change] lang\authortext.gmsl MigrationSupport naming changes
[Change] lang\VB6IDL.XML MigrationSupport naming changes
[Change] lang\VBASIC.XML MigrationSupport naming changes
[Change] lang\VBconstants.XML MigrationSupport naming changes
[Change] lang\VBcontrols.XML MigrationSupport naming changes

[Change] idf\asplang.xml additions
[Change] idf\Language.std.xml MigrationSupport naming changes
[Change] idf\mig.stdole2.tlb.xml MigrationSupport naming changes
[Change] idf\MigrationSupport.dll.xml MigrationSupport naming changes

gmStudio (Configuration Date = 6/04/13 22:48:01)
[+] Add Activate Project Specific config file feature to Settings form
[+] Improve Handling of VBPs that reference missing files
[+] Change Default Setting to ExceptionHandling=Simple
[+] Improve refresh of Details panel after logged operations
[+] Turn off translation log redirection when ShowSessionLog=false or MaxSessionLines==0
[+] Rename interop folder to runtime folder, also adding script variable %RuntimeFolder%
[!] Correct problem with Reference report libDesc field when library helpstring=""
[R] Standardize build platform to x86 (required for TLI implementation)
[R] Remove some dead codes

MigrationSupport
[+] Rename Lib class to Utils
[+] Add features to Utils class and to the UI and DataLib namespaces

Improve your ROI for Modernization

A couple weeks ago, I attended a webinar by Steve McConnell, CEO of Construx. Steve is a top author and speaker on software development practices.

The title of the webinar was “The Business Case for Better Software Practices”. It made a bold assertion:

Improved Software Practices are Business’s Last Great Frontier
Aka “There’s gold in them thar hills!

As far as I was concerned, Steve was preaching to the choir, I have seen both sides and I know how much process matters. In my prior role, I helped overhaul the SCM processes for an enterprise IT organization and those improvements increased work capacity and productivity by about 300%.

A couple things about Steve’s presentation really resonated with me:

  • The data shows that software development (SD) process improvements result in big productivity improvements (a lot bigger than one might think).
  • From the Agile Manifesto: Individuals and interactions over processes and tools.

As evidence of the first point, Steve presented SD process improvement ROI results from many organizations and summarized them in this slide: ROI_for_best_practices.png

Steve’s presentation went on to stress how building staff capability is critical to implementing improved software processes. This fact is known by anyone who has worked with SD teams for a while: the people and how they work together matters - a lot. Ultimately, process improvements require people to correctly and consistently use new skills in doing their work. While new tools and technologies facilitate advanced SD processes, the ability of people to use those new tools and technologies is essential.

Taken together, these two matters are very interesting to me as a software modernization evangelist. Many of our prospective customers are struggling to make a sound business case for upgrading their software assets. They struggle because the sponsor views the upgrade as a zero-feature release that does not help the bottom line. However, now we have a considerable body of data that shows SD process improvements can have a great ROI for the organization. Furthermore, moving your system and your people to a contemporary platform is a prerequisite for improving your SD processes. Two specific forces are at work:

  • Developing software using contemporary tools and languages will help you recruit and retain people who are most motivated to build their capabilities.
    Ask yourself this question: Can you successfully recruit and retain highly motivated and capable IT professionals if your software is maintained in VB6 or ASP classic?
  • Developing software using contemporary tools and languages positions you to take advantage of best practices. In the vast majority of cases, these best practices are designed for and around the newer tools and languages:
    Ask yourself this question: Are the latest SD tools, techniques, books, and articles designed for VB6 and ASP classic or for more contemporary platforms like .NET?

If you agree that people are important, you need to set the stage to attract them to your organization and ultimately that means moving your legacy systems into the present.

So, in summary, if you are struggling to make a compelling business case for a large scale software upgrade project, consider repositioning the upgrade as part of a more comprehensive SD uplift including staff training and process improvements. The improved productivity can be the “carrot” to go along with this “stick” business case outlined here.

I trust a lot of readers out there will read this and say: Really? It’s hard enough to make the case for these type of things by themselves; there is no way I can make the case for both at once. I admit, this is a valid objection, I have been there and I know we both appreciate that making process changes in the development organization is hard and getting funds to pay for changes in the development organization is really hard. I am not saying it will be easy; but I am saying it will be easier if you can offer increased productivity and quicker delivery as part of the answer to the question “What’s in it for me?”

Thanks go to Steve McConnell and Construx for permission to reproduce material from the webinar.

05/12/2013 public release

gmBasic
[+] 10.05B3
[+] Additional gmSL improvemetns
[+] Various base VB6 translation improvements: collections
[+] Various base ASP translation improvements


Metalang
[Change] lang\VB7Lang.xml
[Change] lang\authortext.gmsl
[Change] lang\GMSLANG.XML
[Change] lang\OPCODES.XML

gmStudio
[+] Include *.gmsl files in User and Lang search reports
[!] Correct filtering on task filter on multiple fields

gmStudioPlugin (beta)
[!] Correct form resize issue

VB6, Windows 8, and beyond!!

This blog is mainly about the future of Windows and VB6. According to this Microsoft article VB6 is supported up to Windows 8.

What does Microsoft mean by “supported”?

Section titled “What does Microsoft mean by “supported”?”

“The Visual Basic team is committed to “It Just Works” compatibility for Visual Basic 6.0 …“1 Visual Basic 6.0 IDE has not had extended support since 2008. Support is split into three categories 2. Mainstream Support, Extended Support, and custom support. During the lifecycle of support, the type of support switches over time in phases. Mainstream support includes full support, such as the current release of Visual Studio. When a product switches over to extended support, hotfixes (unless purchased within 90 days of mainstream support ending), No-charge incident support, Warranty claims, Design changes, and feature requests are no longer offered. Extended support is provided for a maximum of 5 years after mainstream support ends. “Microsoft offers custom support relationships that go beyond the Extended Support phase. These custom support relationships may include assisted support and hotfix support, and may extend beyond 10 years from the date a product becomes generally available.”3 Support is basically categorical fixes based on the phase of the product lifecycle.

Certain runtime files are still in extended support. The list of these can be found here as well as a list of known unsupported COM libraries. Runtimes that are not supported by Microsoft are 3rd party components. Over the years software companies have merged, sold, closed doors, moved on, but a handful still support their COM components. Knowing which ones are still supported and maintaining that support can take a lot of effort. The Visual Basic 6.0 IDE has had no mainstream support since 2005 and has not enjoyed mainstream support on a Windows OS since Windows 20004. The Visual Basic 6.0 IDE is the only product that can be used to build VB6 systems. The forms editor and compiler are highly guarded proprietary technologies and if they fail in your environment, your VB6 application maintenance and development work will come to a standstill.

Is “supported” good enough for an Enterprise application?

Section titled “Is “supported” good enough for an Enterprise application?”

VB6 Enterprise applications are built heavily on COM libraries. When VB6 was booming in the programming industry, COM libraries were the answers to all your needs. Pop in a new COM library and you have a new solution to some problem. Custom controls were easy to find and readily available for use. As a result, we have very large applications tightly coupled with these COM libraries. Should an Enterprise application still rely on COM components that are no longer supported? What if a security hole is found? Since 3rd party COM libraries are not supported by Microsoft, who knows when they will no longer even run in Windows. Microsoft takes a mainstream approach when moving their products. COM libraries are no longer in their path.

Windows 7 was a very nice release of Windows. The Windows XP of its time, it brings a beautiful look to a very stable sub system. Performance and flexibility are in high marks for this version of Windows. Windows 8 however, is a different animal altogether. Microsoft is pushing their interfaces to a more mobile platform. Azure, Silverlight, Cloud Services, WPF, and other web-based technologies are on Microsoft’s forefront. Windows 8 even has a web style coding behind their touch user interface. When Windows 8 was released Microsoft attempted to remove the start button from the taskbar and the desktop interface altogether. As Microsoft moves forward with their OS development we can only see their path leading away from the classic desktop application format. This path spells the end of VB6 desktop applications in the future.

What would a current VB6 team look like in 10, 20, 30 years from now?

Section titled “What would a current VB6 team look like in 10, 20, 30 years from now?”

Most people think about the technology as the only resource that will expire. There is more to the equation.

Quoted from Support Search VS6

Products ReleasedLifecycle Start DateMainstream Support End DateExtended Support End Date
Visual Basic 6.0 Enterprise Edition1/27/19993/31/20054/8/2008
Visual Basic 6.0 Standard Edition1/27/19993/31/20054/8/2008

Based on these dates, the training of new developers would have started to fade out right after 3/31/2005. At the time of this blog that would be over 7 years ago. The most senior VB6 developer would have 14 years of experience (not including VB4 and VB5). Even developers that started on VB6 around 2005 would have more than likely switched over to another language soon after. The point is that if VB6 is able to be ran for 30 more years, a company’s programming team might not be here to use it. A team of VB6 programmers currently would have 7-20 years of VB experience. In 10 years that team would range from 17-30 years of experience. In 20 years that team would range from 27-40 years of experience, and at around 30 years of experience that team would mostly be retired or moved on. Mathematically the team is going to become very small, or non existent within 20 years. Some might think that 20 years is a long time to wait, and that the application will be upgraded by then, but they need to remember a few things. VB6 is now a set pillar in time as technology goes. As OS advancements and coding language/tool advancements take place VB6 teams will become more and more left behind in the newer world of technologies. Consider that the longer they wait, the harder it will be to upgrade their application to today’s technology.

Eventually, either by the natural progression of technology or by developer resources dwindling over time, companies will need to move away from VB6. The typical solutions for moving away from VB6 are to buy an off-the-shelf solution, hand code a new app, or migrate your business code. Whatever the needs are, gmStudio and Great Migrations can assist in merging old and new applications. The migration from VB6 should happen sooner than later, because one day, you will have no choice and no time to migrate. The gmStudio trial can be found here.

04/30/2013 public release

gmBasic
[+] 10.05B1 (patch)
[!] suppress MigrationSupport.UI assembly references when not needed

gmStudio
[+] Retain VirtualRoot in gmProj folder even if Migration Type is VBP
[+] Add logic to log gmProj path repair process in startup log and session log

gmSamples
[+] No more samples installer, just unzip samples and go (thanks to new gmStudio automatic gmProj path repair feature)

This will allow us to add more samples faster and make it easier for users to learn and use advanced features.


Download: