Hacker News new | ask | show | jobs
by Immortalin 4269 days ago
Their greatest mistake(s) were the removal of visual basic 6 line of products and windows 10. Visual basic 6 is my first programming language and is probably still my favourite. The problem with lua and python and most other "beginner friendly" languages is that it is hard to do anything useful when u are just starting other than printing hello world to terminal. My intro to vb6 was creating a simple calculator, it was amazing knowing that i could create an application simply by dragging and dropping some elements and writing some code. I never had to worry about things like gtk bindings and makefiles etc. The earlier version of visual studio started up in less then a second and I never experienced any lag. The killer feature was probably the combination of both an just-in-time interpretator and a full-blown compiler. I could simply click play and the app would run, if i need an exe, it would also export one. This feature put most modern "repl-based languages" and "test-driven development" to shame. A lot of people complain that vb 6 is not object-orientated enough, but remember, C is not object-orientated either, and it still tops the tiobe programming list. Windows is sorely in need of an Rapid application development framework. Although vb6 still installs on windows 7, a lot of its features are broken. I really miss having an IDE that doesnt get in your way, starts up quickly, and allows you to get things done fast. The argument that vb6 encourages bad programming practices etc. is not really that valid when the user is not an professional programmer. After all, would you rather teach your kids to code by teaching him about build tools and commandlines and gui bindings or would you simply give them an environment where they can create whatever they want in a fuss-free way? Now, lets just hope that microsoft isnt stupid enough to nerf asp.net web forms.......
11 comments

It is still fairly early in the morning for me on a Saturday, so please excuse me if I missed that your comment was sarcasm. I still have an MCSD in VB6 and programmed millions of lines of code in it but honestly I haven't used it in about a decade and would never consider using it again.

ASP.NET WinForms are just as obsolete in my book. I programmed dozens of applications using it but I would never consider using it today for modern web development.

I still use Microsoft development tools. C# and ASP.NET MVC are great, modern technologies that allow me to make stable and scalable web applications very rapidly. The modern versions of Visual Studio fulfill all the things you said you liked about VB6 and are otherwise incomparably superior.

Same here, used VB6 in the past and pushed it to its limits, then .NET came along and ate its lunch, far superior in all ways, including speed of development.
I've personally watched an essentially-non-programmer take VB.NET, drag-n-drop, write some event handlers, and have a functioning little app. So while VB6's IDE is faster than the ".NET" Visual Studios, most of your other complaints are really not valid.
Yeah the complaint is ridiculous and this coming from someone who learnt on VB 6. VB 6's IDE cost $500+ at the time and even getting the education edition was a huge PITA (it was HEAVILY pirated by students).

VB.net and C# (and F#) are free [legal] downloads from the internet and both just as capable as VB6 was back in the day (the things Visual Studio Pro and above add aren't really relevant to beginners, except the testing framework perhaps).

Plus back in the day I found VB 6 quite limiting. For 101 level stuff it is plenty fine, but once you want to go beyond simple applications (e.g. games) you're left almost fighting the language and libraries itself.

With C# in particular, while it is certainly slower than Go/C/C++/D/etc, that's really the only major limitation. You can definitely access much more of Windows' API infrastructure, it supports unsafe code, the .Net framework is more comprehensive, and the language features are extremely modern (F# more so). There really is no limits except execution speed.

Honestly kids today are extremely lucky. I would have killed to be learning on C# back in my day. Fuck VB 6.

"Plus back in the day I found VB 6 quite limiting. "

This, exactly this.

The transition to .NET was a blessing, VB6 is really useless for anything else than "basic business apps" and even then!

IIRC you could only read/write a file (raw data) byte by byte (ok, that was before VB6, still...)

As a counterpoint, since doing anything advanced in VB6 (game-making-wise - that's what I learned it for) required low-level calls to GDI, OpenGL, or DirectX libraries, I feel I obtained a better picture of how the OS operates at that level than if I had started on C#. C#'s nicer, for sure, but if you're just doing it to learn how computers work anyway...
"With C# in particular, while it is certainly slower than Go"

Source? C# should be much faster than Go.

I was a huge fan of Delphi 5 at the time, and hoped it would win over VB6 (I guess it's a Coke/Pepsi thing). Now I'm in the same boat as you, because it seems both Delphi and its competitor, VB, have lost. I'm not even sure if there are any winners.

I wish someone would build a robust OS & GUI toolkit and ship it with developer tools...

Well, I'm a Qt fanboy, but I think a Linux distro + Qt5 + KDE5 will probably be quite close to what you want. Take a look at Qt Quick and especially QML, which is being used for developing KDE 5.

QML is basically a Javascript-based declarative language for building user interfaces in which you can use full Javascript to augment them. It has its own IDE (Qt Creator) with a visual designer and it's pretty easy to learn, and Javascript is not a hard language at all for newbies. You can even use C++ to extend your applications. KDE 5 is not ready yet, but Qt5 is mature and improving with every release.

I would recommend that combination to a young aspiring programmer without a doubt.

> I wish someone would build a robust OS & GUI toolkit and ship it with developer tools...

I think that's the web. The development that used to happen in VB6 & Delphi simply has migrated there, desktop apps from that segment are dead.

I think you're right, and it's a huge indictment. The web, as an application platform, is worse than VB ever was.

Think about that for a moment: We've regressed from VB.

The usual tradeoff is: easy to write, hard to extend and maintain. But the web is hard to write and hard to extend/maintain.

We have some of the smartest people in the world in our industry, and evidently we're all idiots.

This, a million times. I'm a bit further down the abstraction chain but I am thoroughly glad I sit there all day writing C/C++ for Windows native (win32) GUI applications.

I know once I've tested it on one machine it's going to work fine on all the other ones. It's the most stable API and platform I've ever seen. Code we wrote for Windows NT4 works fine on Windows 8.1 and behaves exactly the same.

Compare that to our poor web guy who spends at least 50% of his time trying to get everything working on a selection of browsers going from IE6 to the latest Chrome while necking red bull, using the F word a lot, smoking and going bright purple.

I completely agree with you guys. The tone deafness in this thread with regards to why VB6 appealed to beginners is striking.

No, beginners don't want to layout things in CSS, a declarative XML language, or any other 'text' way. They want to drag and drop components with the sort of ease of use that Visual Studio or Interface Builder offer. And they want a language coupled with that which features the simplicity of Python.

I too did some of my first serious programming in a VB like language in the 90s (RealBasic for Mac). I now develop beginner training materials in web development as a side gig and while we have fun - it's definitely not as satisfying as laying out a form in VB and having a real GUI in a matter of minutes that "Just Works."

Which makes you wonder, could you bolt a language like Python onto an interface builder a la Xcode IB, Visual Studio Forms designer, etc?

I agree with you, I think the bigger picture here is how well the IDE, GUI, and code hang together as a complete unit; focusing on any in isolation (e.g. "VB sucks, use Python") misses the point.

I agree, but if your coworkers is anything like mine and you asked him if there is a fundamental problem with web development as a platform choice for internal apps, I expect he would suddenly forget all the pain he goes through on a regular basis. I've watched my company burn about a million dollars unnecessarily in the last two years because of choosing a 100% web interface for an entirely internal project (of dubious value in the first place).

The zealotry in this field is getting close to unsustainable in my opinion. Companies thought the proliferation of ms access apps was bad, wait until they try to do something with the proliferation of overarchitected web apps based on a wide assortment of fashionable at the time but now unpopular languages and frameworks that hardly anyone has experience on and is most certainly not interested in working on.

The frameworks are the problem. There is no such thing as a "JavaScript guy" really, everything is about the framework, every app is some dev's first in that framework before it drops out of fashion, and knowing framework X doesn't give you any leg up onto framework Y. Experience counts for nothing.

In the old days, you could learn C or SQL and for every hour of learning get a hundred or a thousand hours of real use, and you have at least a fighting chance of picking up some other guys code, or vice versa.

I used to work at Microsoft (SQL Server). It goes without saying, but getting here is an intentional, conscious thing Microsoft spends billions of dollars to achieve.

Working in SF in earlier-stage companies, I've never seen anything even close to the rigor with which Microsoft approached testing. Definitely consider working there if you want to learn from some of the best QA/QE/verification engineers in the industry.

Sadly many of the recent layoffs from MS have been in their QA and SDET/test engineering teams. The days of a strong testing discipline might be over for the company.
Reminds me of the great talk by Joel Spolsky[1].

Perhaps automated systems have become much better since Joel wrote this, but something from the talk I really liked -

"The old testers at Microsoft checked lots of things: they checked if fonts were consistent and legible, they checked that the location of controls on dialog boxes was reasonable and neatly aligned, they checked whether the screen flickered when you did things, they looked at how the UI flowed, they considered how easy the software was to use, how consistent the wording was, they worried about performance, they checked the spelling and grammar of all the error messages, and they spent a lot of time making sure that the user interface was consistent from one part of the product to another, because a consistent user interface is easier to use than an inconsistent one."

[1] http://www.joelonsoftware.com/items/2007/12/03.html

A common complaint, but I don't think it's true: Web applications are _much_ more flexible as far as screen size and device types are concerned and they are multi-user, networked by default. If you would want to achieve both of these with a VB-like approach, it would be just as complex.

I think the most important issues with the web that are not already being addressed (and winning) are a statically typed Javascript replacement and a way to locally isolate the effect of CSS in large applications with many modules (web components don't solve this correctly).

You're focusing on what's good about the Web and not addressing what's good about VB (that's what this thread is about): a stable API platform, and easy WYSIWIG GUI design. The Web (or at least the tools for it) largely lacks those two things.
> But the web is hard to write and hard to extend/maintain.

The web is distributed and distributed is hard. The problem is that it is also what people want. We haven't regressed from VB6 -- we've advanced, but the demands of the market may have gotten more complicated faster than the popular tools have advanced in their ability to simplify them.

But the web isn't hard because its distributed. Its mostly because HTML and CSS were not designed for making applications.
Exactly. If Microsoft had written Outlook in VBA as a plugin for Word, they'd have been laughed out of the room. But that's exactly what Google did with Gmail...
Weird to see people complaining about the web all the time. The fact that it can do things ranging from typesetting to form applications, to marketing sites, to full blown games is pretty amazing. If you feel that you would like to make a SaaS providing a SQL backed drag and drop form editor, you can do this on the web. The fact that nothing like VB exists any more is a reflection of the fact that the market simply does not find these things useful.
I concur, the combination of css + js + html is an nightmare especially if you are are trying to design a simple database-backed website for your startup. Webforms might have been hard to maintain for some, but at least it worked well. There was no need to figure out all the background stuff if you are not a professional developer. If I need a fancier website based on mvc, I would have hired a fullstack django developer instead.
Yup, and if you are trying to do the full stack, you had better toss in some node.js or Ruby on Rails, plus SQL. Web development is really hard for non-developers to grok.

I keep thinking back to an Access application that I threw together in a couple of days, back in the 90s for managing a team of about 40 technicians. It was being used for task tracking, and had some wiki-like features as well. When I started that project I knew nothing about Access or VB, and yet in two days I had a bunch of forms and tables that allowed managers to get a quick feel for what their staff were up to. The thing ran over the LAN, and could handle 10 simultaneous connections without any dramas. If I were to try the same thing in the web world, I might lose myself in getting just one table view working correctly for a week. Getting an http server configured and up and running, and talking to a db server would be at least two days. And there would be many potential roadblocks just waiting to trip me up along the way.

These days, rather than dealing with that mess, many companies just go for an off-the-shelf hosted solution that sort of fits their needs, such as Basecamp, or Jira, or Igloo. The existence of these products is a sign that we've gone off in the wrong direction somewhere - the sorts of products they make are very similar to that online apps you could make with Access 20 years ago.

> These days, rather than dealing with that mess, many companies just go for an off-the-shelf hosted solution that sort of fits their needs, such as Basecamp, or Jira, or Igloo. The existence of these products is a sign that we've gone off in the wrong direction somewhere

No, its a sign that the web has enabled easier application delivery with greater reach at lower cost; Access is still around, after all, and most businesses have it right at hand, so if the alternatives were worse, they'd still be using it.

You're idealizing Access for reasons unknown. If there actually was demand for such a tool, one would exist and would be making a ton of money. The fact that people use off the shelf SaaS is an indication of the fact that off the shelf SaaS is what they want. My suspicion is that Access is too hard for most business people, yet not powerful enough for actual developers to make something unique with.

Salesforce has made a huge business out of business apps in the same category as whatever would have been cobbled together in the basement with Access by some 'IT guy' 20 years ago. The fact that this is the case is a reflection of the fact that people prefer the hosted, turnkey, polished experience that web-based SaaS provides over some half-baked internal app.

The web has its own equivalent of the gtk bindings issue. For a new programmer, gluing together a load of different languages and libraries is a nightmare. For experienced programmers too.

http://tilomitra.com/the-crazy-world-of-code/

Modern day WinForms in .Net work just as well for coding up simple GUIs.
Winforms is fine, not as powerful as what came before it but otherwise good. The problem with winforms is WPF supposedly deprecating it.
WPF has a much steeper learning curve though. For non customer facing desktop programs, WinForms is fine.
I don't think WPF has been successful in replacing winforms, more that it was a hard sell to management to use winforms after WPF was announced.
> I think that's the web. The development that used to happen in VB6 & Delphi simply has migrated there, desktop apps from that segment are dead.

A lot of the internal desktop LOB application development that used to happen in VB or Delphi still is done on the desktop, but happens in Excel with VBScript. That trend was very much visible when VB (pre-VB.NET) was still current.

AFAICT, what displaced plain VB for much of its commercially-significant use wasn't VB.NET, or anything web-based, but -- and this was happening when VB was still current -- Excel (with VBScript), which was and is in many ways superior to VB as a visual rapid-application-development platform because you could do more without context-shifting out of the visual paradigm.

Of course, VB programmers may look down on Excel the same way lots of other programmers looked down on VB.

The irony is that the present day version of delphi is the best it has ever been, and competitive feature wise with other platforms, but because it has a non-trivial price tag everyone pretends it's defunct. The reality is that the only programming languages which remain are either open source, or the default solution for a mass market OS, and all of them are free. You can't build an entry level dev solution like classic vb or Delphi and sell it to hobbyists these days, so unless some open source developers make it happen for free, it won't happen.
There is Free Pascal[0] and their Lazarus IDE[1], which are free, open source, cross-platform and largely Delphi-compatible – but they still don't seem to be taking the world by storm.

[0] http://www.freepascal.org/

[1] http://lazarus.freepascal.org/

That is true, but I suspect it is due to Pascal style languages falling out of fashion more than anything else.
Have a look at Lazarus (http://www.lazarus.freepascal.org/), which is basically Delphi 7 in a cross-platform open source version. It's not as stable as I'd like it to be, and some components are still missing, but it works well enough to be a more than viable alternative to '98 VB 6.
I cut my teeth with VB 5/6. I still think there is nothing on the market that is as fast in creating applications.

If you did things properly (MVP! remember that?) it was quite maintainable. I still know of several VB apps still in service.

If you do things properly, PHP is maintainable... C is maintainable...

The problem is "properly" is surrounded by a lot of people who slap stuff together, reinvent the wheel (NIH syndrome) or just plain don't know how to program.

I shudder when I look at old VB code... and thank God that I have VS2013, resharper and C#.

I think the issue people have is "it's never as good as it used to be". You remember the good, forget the bad and glorify what used to be the pinnacle of technology. Windows 75. XP. Blackberry. Palm. OH WHY CAN'T THEY HAVE JUST LET US STAY WITH PERFECTION!!!

Sorry... Let me get off your lawn before that becomes an issue as well. :)

I really like Resharper but had to uninstall it.

I have an i7, 16 GB RAM machine (with a 7,200 RPM HDD though), and when I had Resharper running Visual Studio 2013 would take 10+ seconds longer to load and lag horribly every time I opened a large class.

I tried all of their repair tips, but ultimately I think it it is just that laggy and slow by its nature and drags Visual Studio down with it.

I just couldn't justify the $149/year (effectively, due to the way upgrades work) cost. Plus Visual Studio 14 CTP adds many of Resharpers features natively and without any lag at all.

> I think the issue people have is "it's never as good as it used to be"

Part of it is probably that the computing world has become more complicated: A significant share of developers have left Windows, and clients want to play around on their iPads and Samsung tablets. It was much easier to be a "perfect" dev environment when absolutely everyone was running Windows.

VB6 supported classes, [standard] modules, and forms if I remember correctly. So while on paper it would possible to do things properly I'd say that was more the exception than the rule.

The main problem with VB6 was the modules. Modules were "any code here is thrown into the global scope" areas. Worse still they would execute with the caller's context, so you could mix in things like form logic (which would break if the form wasn't the caller).

This sounds great to newbies: "Ohh nice I'll just write a bunch of helper procedures/functions, throw them into a module and use them all over!"

However as projects grew so would the global scope of the application. You then have module function A which calls procedure B, and so on. So when it comes time to refactor some of this global craft into nice streamline classes it is pure hell as the application was never written with that in mind.

MVP in VB6 is largely a myth. I've never seen a legit VB6 application written in that style, and I've only seen it in context of articles talking about how things SHOULD be done. You want something like MVP? Then pick up a framework which enforces it or it won't happen.

Check out Oracle Application Express (APEX) - very quick for standing up applications, and provided free (as part of the DB) by a company that won't go away any time soon.
Note that Lazarus (http://www.lazarus.freepascal.org/) (Delphi clone, based on Free Pascal) works today and is somewhat like that. And it's Open Source and cross-platform (works on Windows, Linux, MacOSX).

But maybe it's still not simple enough. Also, Object Pascal is probably harder to learn than VB6, esp for a beginner.

I also started mostly with VB6 and still somewhat miss it... Nowadays I mostly use C++ and Python on Linux or MacOSX and have tried many many other languages in the meanwhile. But I still miss VB6 somehow.

Young programmers today tend to start with the Javascript family. There have probably never been languages with the same visual tools built in, rapidness of feedback and ease of sharing with friends.
Not true, I am a young programmer and I learned vb6 as my first language. It ran perfectly well on windows xp.
VB6 (the last release of VB) is 16 years old, and has been unsupported for 6 years.

Even if it was your first language, you can't possibly be a typical new programmer.

Out of interest, why did you choose vb6? I'd have thought you would need to go out your way to learn such an old platform.
My dad wasn't much of a programmer, he was a businessman. he had an old copy of vb6 that worked perfectly well and that was my first exposure to programming. Because of that, most other languages with their non-existent gui frameworks and messy IDEs seemed inferior in comparison as getting anything useful done on them was a pain. The jit interpretation allowed me to test my code without having to wait for compilation, at the same time, I can also export it as an compiled executable. Compiled vb is much faster than languages such as Python and Ruby that supposedly allow you to code fast. The current generation of .Net languages take ages to compile making test-driven development a huge pain sometimes.
Being an exception doesn't make what he said not true. What he said is absolutely true for the vast majority of new programmers.
I used to share similar feelings when VB.Net was first introduced. I couldn't believe there was no VB 7 and Visual Studio .Net was the official replacement. Having worked with .Net, winforms, MVC, webforms etc for over 10 years now, there is absolutely no comparison between the latest versions of Visual Studio and the archaic tools from VB 6 days. Yes, VB 6 starts faster, but that's pretty much where the pros end these days.
I hear ya about VB6, I think that making it incompatible with VB.Net was a mistake. But ASP.NET webforms? Ugh. I maintain a slightly older website using webforms, and it feels like I'm in the web development dark ages. Its a literal ghetto of tech that is used no where else.
Dunno. There's certainly a large appeal in being able to drag-n-drop controls out, double click a button and write "someControl.BackgroundColor = Red" and having it all just work.

I agree it isn't a great way to develop for the web, as in embracing web tech, but it's a very convenient way to make forms. Even having your controls keep state (the terrible viewstate) is quite convenient.

Have you ever been to corporate america? ASP.NET webforms is used heavily everywhere including but definitely not limited to marketing agencies, the financial sector (investment and banking down on through collection agencies), healthcare, call centers, etc etc etc.

If you approach a lot of those places and show them something like AngularJS they'll be like "where are all of the high-level tags and rich components that I can just drag and drop"? And then you'll realize that you're not actually in the ghetto.

There's a reason that webforms didn't die when Microsoft introduced MVC, but instead they started bringing MVC features into webforms because so many people use it.

Yes I work for a stereotypical .Net shop. Just because it's ubiquitous in the Enterprise doesn't mean it's not crap. I generally love MSFTs dev tools, but web forms are still a ghetto compared to MVC.
"Just because it's ubiquitous in the Enterprise doesn't mean it's not crap."

This. Look at Java, and the bloated mess it has become. Look at XML and the bloated mess it is.

Popular doesn't mean it's good. There are plenty of individuals at the top that don't know cisco from crisco.

Sure, but it's crap that gets those Enterprises from A to B.

What I want to know is, what better crap is there that offers the ease of use that webforms does? If there's nothing better then this is the best crap we have.

It's kind of like how gas-guzzling, environment-ruining automobiles in general are crappy, but what practical alternatives exist that actually cover all of the use cases?

From my own perspective, I don't want to limit my career choices to the MSFT (enterprise) ghetto. At least with ASP.NET MVC you're at least using a paradigm that's common outside the enterprise-verse, and translates into being able to learn and pick up other stuff. As for web forms, unless you want to be limited to a niche, they don't seem that great for career advancement.
Programmers seem to as a matter of principle be vehemently opposed to the notion of cost / benefit being at least as important as "technical correctness" or whatever you want to call it. If its cheap, sustainable, and satisfies user requirements, that should be enough, should it not?
I see it as the same reason chefs don't like cutting carrots with table knives. It's a lot cheaper than a nice knife, and the carrots get all mushed up in the stew either way. But a nice knife is just a joy to use, and when you cut carrots all day, you want something that is a joy to use.
I think AngularJS is going to be the next WebForms for enterprise 5 years down the road.
My first programming experience was in VB6. A local college had a week-long camp for middle-school kids to learn various things. A few of my friends and I took the programming unit as one of our two choices, and they taught VB6 (this was probably about 1999). We came back home with source code and executables, but missing the VB6 runtime and disappointed that we couldn't continue working on our programs. We even made screensavers! Anyways, one of my friends' uncles gave that friend a copy of VB6 that he pirated from the company he worked at. We made some other programs, but I haven't looked at them for a long time. Recently I found back the source code, but was disappointed to find that it could not be opened in VB.NET. Furthermore, it's stored mostly in binary files, so I can't even read much of the code.

It's probably for the best though - the code we wrote is almost certainly quite ugly and hacky, and I could certainly write the same programs much better today.

When i talk to people who want to start programming, especially young high school kids i often hear that they want to stay flexible. Flexible both in the platform/stack they are working with and flexible in what they can do with the language and toolset.

VB6 offered none of this.

You may have stumbled upon a strategic product category: VB6 like development tools compiling to iOS Android and web, backed by Office, Azure and other Microsoft software and services. Has the potential to get businessesand developers back onto the Microsoft platforms.
I don't really miss vb6 as a language, but its IDE is so pleasant to use, no matter you're a beginner or a seasoned programmer.