Visual Basic Dead

0 views
Skip to first unread message

Carmelina Olden

unread,
Aug 4, 2024, 6:19:05 PM8/4/24
to gaibumidna
Goodold VB has been visited with some affection recently, as Reg sister site DevClass has discussed. Way back in 2014, Microsoft said it would go open source, but all that emerged is the rather less interesting Roslyn. For a long time, Microsoft has been focusing on .NET instead.

Perhaps because VB started off as a one-man project, multiple people and small teams have sought to recreate it, or something like it. The Reg has covered one of these, RAD Basic, a couple of times: first when it attempted to crowdfund its development, and later when it released its third alpha version.


Closely comparable is twinBASIC, which publishes weekly updates so you can track its progress. That's good, as there's as little to see on twinBASIC's Github as there is on the RAD Basic one. We reckon that the two projects should talk: they might benefit from teaming up.


There have been many such projects over the years, but sadly, many seem to have gone dormant. In alphabetical order, some we found include GLBasic, HBasic, KBasic and its descendant Basic for Qt, sdlBasic, and Janus Software's Phoenix. While Basic4GL has gone quiet, a port of it to the JVM, Basic4GLj is in active development.


Anywhere Software's Java-based B4J is proprietary but free, with a BASIC-like language and an IDE. It grew out of a PocketPC development tool called Basic4ppc, so its mobile support is strong. Sibling products are B4A for Android and B4R for Arduino, and the paid-for B4i for iOS.


RealBasic started off as a shareware tool for classic MacOS. It added Mac OS X support way back in 2001, went Windows native in 2002, then a couple of years later added support for Linux as well. Former vulture Tony Smith rather liked it, giving it a positive verdict in 2005.


It's still around, only these days, it goes by the name of Xojo. The company put out a new version at the end of last year, and now supports Linux on Arm64. It's a free download for personal and educational use, but compiling or distributing apps costs.


PureBASIC is more of a traditional, non-object-oriented BASIC, but it does have a graphical form designer. PureBasic started out in 1998 as an Amiga app, but that version is historical now and developer Frdric Laboureur released the source to version 4.0.


There are also tools for those who preferred the classic, less GUI-oriented forms of BASIC, such as VB's forerunner QuickBASIC. The standalone FreeBASIC compiler is in active development and aims to be compatible with QuickBasic. So does QB64, although the dust has yet to completely settle over a split among its developers. A community called QB64 Phoenix is actively developing a new Phoenix Edition.


Even more old-school, TrueBASIC, originally created by BASIC's original developers John Kemeny and Thomas Kurtz, is still on sale. Remarkably, the free community edition of Atari ST classic GFA-BASIC for Windows is still getting occasional updates. Also Windows only is the commercial Liberty BASIC.


The Reg FOSS desk's personal favourite, the original BBC BASIC, is still around and in active maintenance. There are now multiple editions, several of which are free to use. There's also a largely compatible multi-platform open source interpreter, Brandy BASIC, which has been forked and updated as Matrix Brandy BASIC. There are a number of much more limited FOSS BASICs indented for educational use, many of which are in the repositories of common Linux distros, such as BASIC-256, Bywater BASIC, and Yabasic. There are also two separate FOSS languages with very similar names: Microsoft Small Basic, and the separate, independent SmallBASIC.


One of the factors in the decline of the original Visual Basic was of course Borland's Delphi, the visual descendant of the company's Turbo Pascal. While Delphi itself is still around, there's a very complete open source implementation of the language, Free Pascal, complete with multiplatform graphical IDE Lazarus. The Ada language is also more lively than you might expect, possibly thanks to AdaCore and its SPARK project. The GNU Ada compiler GNAT has a visual development environment in active development, GNAVI .


It is a well-known fact that all versions of Visual Basic from 1.0 to 6.0 were to be retired by Microsoft, by 2008. This means that the Visual Basic development environment and associated runtime environments (except for Visual Basic 6) are no longer supported. In a way, VB6 is dead because it is no longer being developed by Microsoft. Microsoft released the .NET Framework in 2001, along with a new language C# and an updated Visual Basic .NET version. With this release, it acquired new capabilities via the .NET framework libraries. Most of the .NET framework libraries were written in C# making it far more accessible to developers than VB.


Is Visual Basic really that bad? VB had a legacy base when it started out and anyone writing code at that time had more than likely used VB. VB.NET was so vastly different from legacy VB that it had a problematic upgrade path. VB and VB.NET syntax look visually identical even though they are two entirely different languages.


During that period, C# was favored by Microsoft, because it was the one language most frameworks are written in and it is more concise than VB.NET. VB.NET and C# have similar libraries, meaning anything that can be done in one language is also possible, in the other. C# has some exclusive functionality like multi-line lambdas, and VB.NET has optional and named parameters which are specific to each. These differences are likely to reduce with every new release of the .NET framework and moving forward developers will be able to work on either platform seamlessly.


One main drawback with VB.NET is that it lacks some core functionality which is easily made available in C#. As a result, many programming languages prefer to use the C# method more than the VB.NET method. When you consider VB, it deliberately hides some paradigms which cause just as much confusion to developers as enthusiasm. There is a general myth among programmers that VB.NET is a more comfortable language though it does not make the development process any better than other programming languages.


With Microsoft planning to go big on cloud and mobile, more VB developers will continue to switch to C#. Mainly, this shift is due to Xamarin which has a C# shared codebase for iOS and Android and are not supported in VB. Apart from this, there was a notion that C# was the primary language of .NET framework. Most of the libraries were written in C# as it shared richer documentation and sample C# code. All these factors created a feeling among VB developers that if they were going to switch to the .NET platform, they might as well change to C#.


Despite all this, VB continues to exist as it is the macro language of Microsoft Office. Additionally, the transition from VB to C# code is much more convenient with a .NET Framework. Nowadays, VB is mostly used for Windows Forms applications and a few ASP.NET Web Forms. Many of the new VB developers have been switching to C# after discovering its rich ecosystem. C# will keep evolving as a state-of-the-art programming language that will be used by programmers globally, in the days to come.


Linq2SQL is quite a nice, but limited, ORM - if you want to map your objects in more complex ways than the basic ones provided by Linq2SQL then you're going to be stuck. Microsoft did fix a few bugs when they came out with .net 4 but have stated that they're not going to be devoting resources to extending it.


I'd say if you have a fairly simple project which possibly has a limited lifespan then Linq2SQL is a decent lightweight choice so long as you're careful not to leak dependencies to Linq2SQL all over the place. For anything more I'd go with something else (NHibernate or EF for example) as Linq2SQL is pretty much a dead end.


I've used LINQ to SQL on small projects, and it's quite nice as a lightweight data-layer and i'd consider using it again on similar sized projects. The LINQ implementation itself is really good and until recently much better than the NHibernate LINQ project. On the larger project I used L2S on, I found it hard to come up with a unit-of-work pattern that I was happy with, due to limitations with the L2S 'DataContext' class. Trying to implement something like 'Session per request' with L2S seems either very difficult or impossible.


I also wouldn't really consider L2S as a true ORM, as it really doesn't give you many mapping options. Your class design really needs to follow your database schema (table-per-class) otherwise it will fight with you every step of the way. Another thing I don't like about L2S is the need to use specific types (EntitySet and EntityRef) to handle collections, references and lazy-loading. This means it's not possible to keep your domain model ORM agnostic without adding another layer of abstraction.


My other issue with L2S is the sole reliance on LINQ to generate queries. The LINQ provider is very well written and generally creates decent SQL for the majority of queries but I have my concerns that there are more complex queries that can't be expressed well with LINQ. Using L2S you basically have to revert to calling stored procedures in these cases, whereas (for example) NHibernate has several API's (LINQ provider, QueryOver, HQL etc) that can be used when you want more control over the generated SQL.


Otherwise, when the requirements are simple - like merely opening a PDF document to a specific page, with no requirement that the document be subsequently controlled by VB code, then I tend to take the least complex, lowest maintenance approach.


From: visual...@Groups.ITtoolbox.comTo: ibst...@hotmail.comSubject: RE: [visualbasic-l] Open PDF to a page using VB/ExcelDate: Thu, 7 Aug 2008 09:10:02 -0400

Why not use one of the free PDF libraries that can be downloaded from Source Forge and skip SHELL() altogether? John Warner


5Y and no update, when it was promised? There are some later supporter-only posts, but none for a couple of years as far as I can see. I hope the poor chap is not dead, but it does not look like he won much support, sadly.

3a8082e126
Reply all
Reply to author
Forward
0 new messages