by chwolfe on 6/23/19, 12:50 PM with 149 comments
by gus_massa on 6/23/19, 1:32 PM
I still sometimes program in Classic VB, (aka VB6). Each year it is more difficult to install the IDE, but the runtime is still installed by default.
It is incredible easy to build a nice one screen application with not very a very complicated background logic. Normal people like a nice graphical interface with a few buttons, and with Classic VB you can create them very easily and iterate and customize the form.
My last big problem was that it doesn't have a build in sort function, so you can use a n^2 sort or write a good sorting function by hand :( . When the logic start to be not so easy, there begin to apear problems.
--
About the article: I agree with most of it.
> Also on the big side: There was no more edit-and-continue feature.
I still miss that when I program in other languages. It kills so many (all!) optimizations possibilities, but it's extremely handy.
> VB.Fred and the .NET Solution
I call it VB# or VB#.Net instead of VB.Fred.
by jasode on 6/23/19, 1:56 PM
I agree that Edit-&-Continue was a nice debugging feature but I disagree that it was the main draw to VB. The main attraction to VB really was the easy-to-use graphical widgets which was exposed to the programmer via an abstraction called "windows forms".
If one takes a look at a 1990s era Win32 "hello world" app[0] written in raw C Language, it has tons of complicated boilerplate. Lots of complexity with CreateWindow(param1, param2, etc, param11), GetMessage() loop, WndProc() callback. The Win32 HelloWorld example doesn't even handle a click event. One would have to add a switch case statement for the "WM_LBUTTONDOWN" message.
The VB "winforms" IDE eliminated all that and let a programmer "drag & drop" UI elements onto a "form" and put code on a "click" event. It was a clever simplification of raw Win32 API calls for business-oriented user interfaces. In the ~1991 era, the winforms abstraction empowered a bunch of 1980s 4GL programmers (e.g. dBase, Clipper, Foxpro) and business language programmers (e.g. COBOL) to immediately be productive writing apps for Windows -- without the steep learning curve of C/C++ and the raw Win32 API.
A lot of VB programmers I knew were not even aware of Edit&Continue but they nevertheless were able to drag a command button from the UI toolbox and add code to the button_click() event.
Another VB feature that I believe was more utilized than Edit&Continue was the VBX components ecosystem. Lots of programmers would buy add-on VBX widgets from various companies to enhance the UI such as calendar date picker, datagrids, charts & graphs, etc.
by EdgarVerona on 6/23/19, 3:12 PM
That combined with the easy to use WYSIWYG editor and the edit and continue functionality were, to me, what made it such an amazingly useful language for creating quick utilities or small programs. It was truly a "Rapid Application Development" language.
I also saw some nightmares in my days, though I don't blame VB as much as the people who created the app. The most notable one was a document management system that I'd been asked to port from VB3 to VB6 (so that it could run on win32 among other reasons) and to turn the system from a batch system for document processing facilities into a desktop DMS for home use. I will never forget when I opened up the project and there were 60 some-odd "forms" in it, and when I opened any one of them up not a single one defined a variable. They all - every last one - was defined as a global variable in a single globals.bas file. There were thousands of global variables. Every single one in the entire application declared there, and edited at will in any of the myriad forms wherever they fancied. My first task became "untangle the global variable mess."
by pjmlp on 6/23/19, 3:05 PM
Their researchers aren't using R, Python or even eyeing on Julia.
They use Excel with VB macros and those skillful enough, get IT to install them Visual Studio Professional and carry on using VB.NET.
Also remember that VB.NET, contrary to F#, enjoys equal footing with C# across all .NET deployment scenarios and Visual Studio graphical tooling.
by gumby on 6/23/19, 6:44 PM
Umm, cough Lisp environments from the 1960s, Lispms, Smalltalk etc...
by ryanmarsh on 6/24/19, 2:13 AM
VB was the pinnacle of software development.
Nothing about it was perfect, except it was easy for anyone to build anything. I saw everything from kids making shareware to phd’s building multi-hundred-million dollar ERP systems.
A lot of nice-enough and useful software was built in VB that remained useful and editable over long lifetimes.
I pine for something like that in the mobile or web worlds. Everything else I’ve tried is an absolute mess in comparison.
by ravenstine on 6/23/19, 1:55 PM
by kerng on 6/24/19, 2:23 AM
Something tells me that this could be a quite successful community project. Possibly for building cross platform apps for phones.
I like how we are at least talking again about Visual Basic recently - maybe it inspires the industry to build a super easy to learn language/environment for UI and data apps again.
VB had an extremely low barrier of entry, it was truly empowering for many non techies.
by FigmentEngine on 6/24/19, 2:26 AM
to me it had these big draws 1) REALLY good documentation, this was the peak of MSDN.
2) object orientation for ui component reuse just made so much more sense than message queues in c/c++
3) out of the box ui that looked like a windows app. easy to make something that looked like users expectation of a windows app
4) speed of design and iteration. you could build new ui really quickly, and iterate with the edit/continue feature
5) it was cheap compared to other products, and continued to evolve with new versions on a regular basis. it had momentum
by jimmcslim on 6/24/19, 4:45 AM
RAD Basic, a new IDE for Visual Basic 6.
Personally, I’ve always thought there was a niche for a VB6 runtime implemented on .NET that could intercept method calls an enable a system to be slowly rewritten in C#; issues with COM interop esp. visual components might be a challenge.
by Doubl on 6/23/19, 3:35 PM
by JeanMarcS on 6/23/19, 3:07 PM
So due to emergency we rewrote all in a week in VB6 (or maybe it was 4 or 5 I don’t really remember) with the Internet Explorer browser object.
And thanks to the simplicity of Visual Basic it was possible to do so !
And then the demos lead to sales and we are still here 22 years later
by jboles on 6/23/19, 7:24 PM
It was not as powerful as VB, but being able to display graphical widgets in as few lines of code as VB got me hooked. Funnily enough RapidQ also supported writing CGI apps, which was my gateway into server-side programming.
by projektfu on 6/24/19, 2:44 AM
Error handling was dismal. It was painfully obvious very few VB developers understood it and most applications would crash on failed IO. I’m talking production applications sold to third parties with 10+ years in the field. Syntax was incredibly clumsy. String manipulation was painful. It had classes but no inheritance. Small programs required complicated installers because OLE was the basis of all libraries. Most components came from for profit ISVs, and community sharing was actually rare. Many components had confusing license terms enforced by software that was as buggy as VB code often was.
by raintrees on 6/23/19, 5:28 PM
And my search through FOSS has been for a similar environment, preferably supporting Python 3, now that I reflect upon it. Kind of a hold-over from working in Borland's ObjectVision back in the day, or FoxPro before that (the jump to Visual FoxPro caused me to stumble), or Paradox before that (as well as Ashton-Tate's DB2-3 and variants).
And yes, I am a hack who still manages to comment my code, at least at first. One of those "bad examples" I imagine c-corp professional programmers cite in TedX talks. But I do get paid :)
by holri on 6/24/19, 4:55 AM
by karmakaze on 6/23/19, 2:59 PM
I had recently taken OS/2 Presentation Manager courses at Microsoft and started to tinker with making an OS/2 version. The toy turned into a client/server product for the company that produced code generator and analysis tools for enterprise. It eventually because a cross-platform tool running on OS/2 or Win NT and targeting OS/2 and Win32/Win16. A separate X11 editor targeted several Unixes using the same document format and generator templates.
Good times.
by ilaksh on 6/23/19, 6:53 PM
I'm saying that as someone who did quite a lot of VB6 programming many, many years ago but now generally creates UIs with some HTML or Vue or whatever inside of vim.
I think a lot more of what we do is related to fashion as much as any technical reason.
It's definitely not cool to program in VB6. People will assume you are not a programmer or just write awful code.
But that happens with any tool that really significantly makes programming easier, if it touches on the core paradigm of colorful cryptic text.
by fopen64 on 6/23/19, 6:23 PM
Due to this factor, and others, VB had the typical Microsoft learning curve: extremely easy to do simple things, and then exponentially difficult to do big things. It was the same in MS-Access that many people thought it was the future of client/server apps, ERP apps, etc.
This limitation was lifted in VB6 or so (dumped VB for Delphi when left win16 for win32 so I am not sure).
by wolfspider on 6/24/19, 5:59 AM
by AdrianB1 on 6/23/19, 3:24 PM
by bastawhiz on 6/23/19, 6:04 PM
This led me to JS and PHP (asp.net drove me away from .NET for web) which ultimately led to my current career.
Granted, there was a lot to learn after I left VB, but for a self-directed ten year old, it was the perfect tool. Whenever I see someone trying to teach a youngster C or C++ instead of VB, JS, or Python (or Ruby) I cringe because there's so much there that they don't seriously need to learn, especially if they're just interested in dipping their toes in software.
by lostmsu on 6/23/19, 4:18 PM
by lostgame on 6/24/19, 2:34 AM
I was lucky enough to be playing Sonic 3 and Knuckles on my Sega Genesis enough that I eventually asked my youth pastor, whom I knew was in IT, 'how do I make a game like this?'
He responded 'I dunno' and handed me a copy of Visual Studio 6 on a CD, and I grabbed a bunch of books from the library, and foolishly (but also correctly) tried to start with C/C++. The frustration of simply getting graphics to appear on the screen was enough to drive me away from it. While I understood the logic, what I really needed was a basic-level 2D graphics API like Cocos2D, likely.
Visual Basic was a very nice balance between code and it's visual link - I get the same feeling in a great way with Xcode and Interface Builder today. I owe it my career. :)
by jacquesm on 6/23/19, 3:02 PM
by cm2187 on 6/24/19, 7:23 AM
The problem rather is that VB6 is a 1990s language and that not only Microsoft has never made a more modern scripting language available in Office (and I mean pre-installed on everyone's machine, with an integrated IDE, etc. I know there are all sorts of hacks and addins) but if anything they seem to consider scripting nothing more than a security risk and are doing anything they can to lock office down and make it hard for people to script it.
by zubairq on 6/23/19, 3:10 PM
(Full disclosure: I work at Red Hat but my views do not necessarily reflect my employers views)
by uchman on 6/23/19, 10:38 PM
by bluedino on 6/23/19, 9:57 PM
Objects were never embraced. Libraries are shunned. The project started to encompass every part of the company. It’s truly a picture of “persistence over skill”.
The worst part is that a couple years ago, the VB programmers started writing PHP code that is just as bad.
by pier25 on 6/23/19, 6:17 PM
by oceanghost on 6/23/19, 5:45 PM
And this was a critical system. It certified the units we made were configured correctly-- which were then installed in semiconductor fabs.
Also, VB6 is responsible for my favorite bug ever-- an if statement: no more than "if count=0 then" that opened a dialog box, somehow. It was reproducible as well.
by rkagerer on 6/24/19, 7:02 AM
by ocdtrekkie on 6/23/19, 11:44 PM
by heelix on 6/23/19, 5:57 PM
by robomartin on 6/24/19, 5:41 AM
We wrote plenty of code in VC++, but I have to admit that VB had massively better ROI.
by soup10 on 6/23/19, 2:35 PM
by uchman on 6/23/19, 10:39 PM
by mpalfrey on 6/24/19, 1:13 PM
It wasn't bad. If you wanted a quick app with a few forms and a backend DB, then this was a decent choice.
I quite like it.
by smitty1e on 6/23/19, 5:14 PM
With the Regex and Scripting runtim COM objects, tools like a string interpolator are within reach.
by xpil on 6/24/19, 8:31 AM
by tomc1985 on 6/24/19, 6:19 AM
by dvdhsu on 6/23/19, 2:01 PM
I’ve been working on “VB, but hosted in the cloud, and built specifically for developers”: https://tryretool.com. We’re still early, so I'd appreciate any feedback :). To use Retool, you’re ideally an engineer who knows both SQL and JS. We connect to most databases, as well as any arbitrary REST / GraphQL APIs.
(Our docs are at https://docs.tryretool.com.)
Edit: removed a part I didn’t fully agree with, but paraphrased.
by chunsj on 6/23/19, 1:43 PM
by gautam1168 on 6/24/19, 5:15 AM
by eeZah7Ux on 6/23/19, 5:24 PM
Then the company decides to bend it out of shape or slow down the development. People cannot do anything about it because it's corporate-driven.
And yet, people have not learnt the lesson.