“Microsoft recently extended ‘It Just Works’ compatibility for Visual Basic 6 applications through the full lifetime of Windows 8. Visual Basic 6 first shipped in 1998, so its apps will have at least 24 years of supported lifetime. Contrast that with the Microsoft .NET Framework 1.0 (2002), which is incompatible with Windows 7 (2009).”
VB6 was one of several programming languages I studied in college, and I actually really enjoyed it. I remember writing a custom MP3/CD player for my best friend for his birthday; I believe I still have the source files archived somewhere.
Unfortunately I never was very good at anything more complex than that, and shifted to the networking and web design classes. What I did learn helped with PHP and JavaScript though.
Now I want to dust off those old files and eBooks, and start coding again! It’s nice to know Microsoft will allow me to run those buggy, insecure apps in Windows 8.
Duh… http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html
(but more seriously: if you want to revisit it, you might also look into Gambas or, particularly, XNA …yeah, VB.net in the latter, not exactly the same – but OTOH easy dev on Windows Phone, among other targets, and IIRC you want to get WP handset)
Actually my lack of programming skill stems directly from my issues with math beyond basic calculus. While I understand logic and program flow, I don’t have a good enough foundation for math-heavy languages. My skills lie in language arts, mechanical and electronics engineering, and to a limited degree, music theory.
And I do own a WP7 phone, I’ve had an HTC Arrive since November 2011 and for the most part I love it.
I would say the only thing bad about learning VB is that it is severely limited in scope, and also allows for lazy programming. It’s comparable to Legos in practice, and it hits a plateau fairly quickly. In the same vein, building an R/C car out of Lego blocks is fine but you would never get a full sized vehicle that was functional with them.
Careful there, some Lego-heads can take it as a challenge…
Edited 2012-06-11 06:43 UTC
You can get quite far in the world with only a modest understanding of math.
One thing I’ve noticed from the outside is that at higher levels, maths seems to share some of the same features as programming: You’ve got classes of things, transformations that can be done on them to get other types of things, properties that are (or are not) comparable, and … I might be mistaken, but it looks like going deeper into mathematics takes you from algebra and other busywork into something that tastes vaguely like a really convoluted OO type/class system. Fascinating stuff; shame I’ve gotten distracted by bioinformatics instead.
Oh, and if you do ever want to play around with it again, there are a number of nice and useful languages out there. I’m fond of python, some like ruby, and on windows you might want to look at the .net family (VB.net would seem obvious, but you might want to look at C# – it’s a neat language, though slightly further over on the obvious vs. compact scale.)
People are often quick to dismiss VB6 but it actually had a lot of hidden power. I remember being taught VB6 at college and I’d written a 2D racing game in DirectX7. VB also offered the full range of Win32 API’s that C++ had (all reasonably well documented too). In fact you could call pretty much any DLL so long as you knew the function name, inputs and returns.
The biggest weakness with VB6 wasn’t the language itself but actually the compiler. Visual Basic was massively crippled by Microsoft’s insistence to compile to P-Code with ActiveX dependencies. While I understand the managed code like VB requires some level of runtime interpretation, the objects created from VB’s compiler were just terrible. But I guess back then visualised runtime environments were very much still an emerging technology.
VB did not offer full win32 api support. It did not handle pointers, which limited the api’s it could call. ( Ironically VB5 had a trick which did make it possible, but MS closed that loop hole in VB6).
VB didn’t have to compile to P Code. Their was an option to compile to native code, which did perform better.
In the instances where pointers were required, there was usually a wrapper API.
“Native code” wasn’t technically native though. It was still managed byte code of some description and thus still suffered from major performance penalties.
It also still had OCX dependencies, which sucked hard given that ActiveX is one of the worst things to come out of Redmond since Bob and Me.
“Actually my lack of programming skill stems directly from my issues with math beyond basic calculus.”
You don’t need to be a math whiz to program, unless your writing programs that use a lot of mathematics for say a mission to mars ha ha,otherwise for 99.9 percent of app development you certainly don’t need to know any calculus, college algebra is plenty good enough and many good programmers have only high school math skills.
When I worked for [an unamed company] we wrote some serious applications in VB 5, then 6. It was nice because VB took a way a lot of the time/pain involved in creating the UI.
I say serious… by that I mean applications that were used to manage physical assets, stockroom inventory and ordering, mortgage life cycles, stuff like that.
I worked for a bank at one point and half their code was written in VAX BASIC, the rest in C and Assembly Language. [EDIT] In that particular division of the bank… LCs and BAs.
I enjoyed extended versions of BASIC. I enjoy the Euphoria language for implementing web apps as well. (Not that I use that for WORK… mostly Java these days).
DEC used a language called BLISS for much of their system development. It had a lot in common with Pascal and VAX BASIC. I used that for most of my work (BLISS) when I worked at DEC in VMS land. That and Assembly. And Ada.
But VB was sweet… if you could visualize the flow of the app properly you could whip up a UI in no time. Sure it was slow and somewhat limited in some aspects, but I wrote libraries for more complex data structures and simply used them when I needed to do some interesting data mapping and management.
Edited 2012-06-11 18:13 UTC
VB6 just refuse to die.
An abomination of a language. You don’t have to make something complex to make it easy to use….look at Python. it adheres to common sense design for a language and is simple to learn and use.
Look at the whitespace. It’s hard enough to explain to not double-space in HTML or to use Tab instead of tons of spaces to align things in Word. Many regular users do not understand or care about the semantic differences of tabs and spaces. If the text is indented yay-much, then that should be fine.
Sorry Kroc, but that is a red herring. We are talking about teaching non-programmers to program right?
“Lesson one: In python white space means something. This is how it works…. [explanation]”
Beginners have no problem with this. In 15 minutes the whitespace issue is gone. There is nothing technically challenging at all about whitespace being significant – it is simply a different way to establish block scopes. Teaching them the hows and whys of block scoping is the hard part, not the syntax to do it.
The people this issue really bothers are the ones who have done programming in other languages where whitespace isn’t meaningful. It makes their brain itch because it just seems like something is missing…
That isn’t because it is a bad idea – it is just different. Different is not necessarily bad (or better) – it is just what it is… I program in 8 different languages on a regular basis, two of which are Python and Ruby. The whitespace thing is a non-issue once you get used to it – most people (me included) eventually learn to like it even. It makes complete sense once you step back and look at it for what it is.
More than that, the ones most bothered by it are the crap programmers who don’t bother with whitespace in languages where it isn’t significant.
Regular users don’t program in Python nor in VB. If you’re going to use either you just have to learn how things are done. At least it’s not PHP…
Edited 2012-06-11 10:38 UTC
Teaching is a different task to doing. Some things may be harder to teach. But the changes should be made to the teaching method.
And how far along was Python in the mid-late 90’s, when VB was at its prime? Even now, although there’s some GUI frameworks, there isn’t (AFAIK) an IDE for rapid application development in Python that is as robust as the one in VB6.
As for .NET, is it even relevant anymore now that Metro and WinRT are on the scene? Are developers expected to start all over again every 3-5 years (from COM to .NET to Winforms to Silverlight/WPF to Metro) when MS changes its mind and decides that a technology that it ‘bet the company on’ should be replaced by a new technology that they’re betting the company on?
There was Delphi though – and a few others. You can’t blame VBs popularity on lack of alternatives – it was simply targeted at a very particular demographic – people who wanted to write programs but didn’t want to learn how to write programs. It sold immensely well to that market…
I’m sure I will piss off some people with that comment, but the truth hurts. I did some pre.NET VB way back in the day (had no choice), but thankfully I learned a real language or two first so the long-term damage to my brain was minimal.
To the VB apologists out there: If you cut your teeth on VB but have since moved on, good for you – but if you don’t realize by now how insanely, unforgivably, mind-numblingly bad it was… I have news for you – you still don’t understand basic programming.
I never had the chance to use Delphi but I had always wanted to… it did seem like a nice development environment.
I haven’t used VB since the 90’s to the early 2000’s… but I enjoyed it when I used it, for the most part.
But there was no VB when I started out programming. I think I made use of BASIC, Pascal, Fortran and C… but when VB came out it was a lot of fun and you really could make functional apps with it.
During my career I’ve used (for actual applications) BASIC, Fortran, Pascal, COBOL, Ada, Assemly language, C, Bliss, Python, Ruby and others… but like I said in another post I mostly use Java now, tho’ it is not my FAVORITE language… but whatever. I use what is in use where I work.
Really my favorite language was Ada… I don’t know why really. I think I enjoyed the structure, the build environment and the ability to go low-level if necessary. But I do actually have fond memories of VB.
I taught a programming languages class at a small business college one year (filled in for someone else) and used Python for the most part as a starting language for the students (90’s) because I actually liked the indentation requirements and the fact that you could whip a small program up in no time to illustrate various principles.
To me every language and environment has strengths and weaknesses and I guess I just try to learn and enjoy each and every one, like operating systems.
I don’t understand why people get almost “angry” (not saying you are) with languages or operating systems especially when there are so many choices out there.
Live and let live, I guess.
I DO agree that there are times when certain languages are inappropriate choices for projects that have specific requirements that would suffer due to a weakness of a language.
That still happens. I was pulled into a project because I was familiar with Ruby. I specifically stated before the project even got started that I thought Ruby was a bad choice, especially considering that so much of the libraries and existing functionality were written in (and still being actively developed in) another language and we’d be doing a lot of reimplementing. No one cared, they just wanted to use Ruby… Sure enough we encountered a number of issues during development and now what’s happening? It is being rewritten… only a year later
So yeah. Language choice is important.
“I never had the chance to use Delphi but I had always wanted to… it did seem like a nice development environment. ”
No time like now, check out Lazarus. It’s outstanding.
LOL! I’ll check it out… but like you, I am sure, I have a full time job, a wife and two kids + extracurricular activities to take care of.
But seriously, I will go look at it.
[edit]
Downloading now… I’ve played with FPC years ago…
Edited 2012-06-11 23:37 UTC
So I tried it out. I actually like it, easily understandable interface. I wrote a silly little app that takes input and writes it out to a label…
It worked. It was a little slow, so as I went to save the project it crashed while I was browsing for a location to save.
It seems pretty neat tho’!
hmmm, odd I have written a bunch of apps with Lazarus and never had it crash when saving a project.
The key with Lazarus is to make sure you have the latest version. If on Linux it’s best to compile it yourself as the distributions usually have old versions.
Well, I am running windows 8 so… Take it with a grain of salt. I went back in, recreated it and saved it successfully this time.
Ah windows 8 that would explain it
“So I tried it out. I actually like it, easily understandable interface. I wrote a silly little app that takes input and writes it out to a label…
It worked. It was a little slow, so as I went to save the project it crashed while I was browsing for a location to save.
It seems pretty neat tho’!”
Lazarus is not as fast as Delphi is during the compile, but acceptable and when compiled with the debugger support removed(release) it is very fast.
I have been using Code Typhon (http://pilotlogic.com/sitejoom/index.php/codetyphon) which is a Lazarus distro that has some really cool cross compile features, I have a linux TCP/IP daemon app that I compile on my windows 7 PC and deploy to a Ubuntu LTS server with no issues.
The more people that use Lazarus the better it will become, so pass the word
I plan on playing with it some more. I have always been fond of the algol/pascal family of languages.
I had been using Euphoria for a couple of years (for fun), wrote some small apps with that and wxWidgets and some web development. But… the OpenEuphoria specs keep expanding and adding features. While they features are useful, it feels a little like it is taking away from some of the base-ness of the original language.
Yeah, and it also worked well for that purpose too
LOL, no pissing off here. What you say is true, but doesn’t hurt in the least. You might know a couple of ‘real’ languages, but does that mean I should bow down and worship you, or that your penis is bigger than mine? I think not
Well, I think anybody who wrote VB programs understands basic programming, but maybe not ADVANCED programming. And that was the beauty of VB… I wrote some VB apps for myself back in the early 2000’s that are still working great and do exactly what I need them to do, and I didn’t have to learn a ‘real’ language to get that done.
As for moving on, as sad as it is, there really hasn’t been a solution (language + IDE + GUI creation tools) to move to since MS killed VB6. Sure, there are languages and frameworks that are much more capable, but also take much longer to learn and are complete overkill for what many of us were doing with VB. Nothing in .NET really fills the ‘niche’ that VB6 did. Even Dan Appleman (one of the most well-known of VB/Windows gurus) lamented this fact.
Edited 2012-06-11 22:32 UTC
Touch~A(c).
That is where we do not agree. I don’t think you really understand basic programming, I think you understand how to use Visual Basic. To be clear there is nothing at all wrong with that – I just think you are oversimplifying what an understanding of basic programming actually involves…
The knowledge acquired in learning “classic” VB doesn’t lend itself to pursuing a career in programming. My main gripe against VB was that it was promoted as a teaching language for such a long time, not that it was a bad tool for non-programmers. It was great for that, as long as you didn’t have plans on actually becoming a programmer…
The stuff most VB programmers consider “advanced” really is basic stuff (like proper scoping and OOP concepts) and the language does nothing to teach good habits – defaulting to variants for everything in what is actually a statically typed language is unforgivable stupid on Microsoft’s part. It promotes poor organization and you end up decomposing problems in ways that don’t map to other languages well at all.
Also, it starts way too far up the food chain – GUI development isn’t hard, but it also has next to nothing to do with actual programming. I’d much rather give a beginner a few months with Ruby or Python doing command line stuff – a drag and drop GUI for wiring up event handlers is not programming and in fact has virtually nothing to do with learning the craft. Skipping straight to that without an understanding of basic terminal I/O ignores how we all got from there to here…
Anyway, it gets the job done for you – nothing wrong with that. I don’t want to sound like an ass or anything – I just have strong feelings about it.
I have converted many VB users to Delphi over the years… It is no longer around in the same form (the current versions are expensive and overblown – they suck for beginners) but Lazarus is free and accessible. Not as easy to get going with as Delphi 7 was unfortunately, but it might be worth the trouble if you are really looking for something similar in concept to VB with a bit more headroom.
I would highly recommend giving it a try if RAD/GUI development is what you are after. Pascal isn’t the best language in the world either, but when you get down to the nitty gritty it is just C with a more verbose “englishy” syntax that goes to great lengths to try and keep you from shooting your own foot off. If you learn Pascal moving on to C/C++/Java/C# is fairly straightforward.
Basic programming is basic programming. Having ‘cut my teeth’ in VB, I’ve since dabbled in other languages. I didn’t have to learn what a variable was, the difference between strings and integers, the difference between local and global scoping, what an if/while statement was, how flow control works, etc. Because I learned all of that in VB. I even had a basic grasp of OOP concepts, even if VB didn’t implement those fully. I knew what classes were, what objects were, and what inheritance/polymorphism meant.
And yes, you could use Delphi as a ‘gateway’ to C# or Java, but neither C# or Java is a viable VB alternative. Sure, they’re both more powerful than VB, but a car is also more powerful than a bicycle. Even still, there are a lot of times where having a bicycle is actually more practical than having a car, and even gets you around faster. It just depends where, and how far you need to go.
If you need a more concrete example of what I’m talking about, you should study the AutoIt scripting language on Windows, and try doing a lot of what that does in C# or Java (without using the Autoit runtime DLL…. that would be cheating). You will find that even though C#/Java is 10x more powerful than AutoIt, doing in AutoIt what it does best is a hell of a lot easier than doing the same kinds of tasks in c#/Java, esp when pInvoke (and whatever the Java equivalent) is involved.
Edited 2012-06-12 01:57 UTC
And it’s often quite handy to have, at least most of the time, a folding bike in the trunk of your car – a sort of hub and spokes model of transportation, on a personal level.
(not sure where I’m going here, with this sort of analogy – perhaps it’s about the utility of embedding into “serious” apps scripting languages like Lua ;p )
TBH someone always says this. The .NET framework hasn’t fundamentally changed since 2004-2009. Even with the update to 4.5
Most of the same techniques and technologies learnt for Silverlight WPF is pretty much the same as those that one would use in Metro.
Since Windows XP most Win32 APIs are actually COM based.
All the .NET APIs for native code to interact with a running .NET VM are COM based.
Metro is COM based and you can use it flawlessly from .NET.
The way Microsoft replaces the framework of the day, is no different than what other companies do.
How did a comment complaining about VB6 compared to Python turn into attacking some non existent argument about.net?
It’s amazing how such an aberration is still alive and kicking… please kill it… VB6 is an awful, terrible “language”.
.NET was a huge improvement, but Ms ruined it too with infinite versions, features, complexity and programmed obsolescence.
To be fair though, from .NET 1.0 (and 1.1) to 2.0 was an world of a difference. Generics came and changed the game.
The 2.0 CLR still powers the .NET4 runtime today. So, that’s a great track record of support.
Besides, .NET SxS deployment in Windows makes backwards compat a breeze..
On the topic of VB6: Its bemoaned now, but it is the IE of programming languages. When IE6 came out, it was this awesome, standards compliant, FAST thing. It just had the unfortunate luck of living too long.
The same applies to VB6. VB was the shit for its time, and it beat the pants off of C++ and the COM black magic that Microsoft though was useable.
Shops were happy to eat the perf cost of VB6 if it meant not having to do another AddRef/Release or QueryInterface, or compile an IDL file.
It did, for all intents and purposes, “Just work”.
Actually, .NET 4.0 use a new version of the CLR.
QUICK! Somebody! Copy the VB6 API! Then make smartphone OSes with it!
It is NOT a “terrible language” just as an economy car isn’t a terrible car if you don’t try towing boats with it.
VB was really good for ONE job and ONE JOB ONLY and that was making GUI frontends to DBs, that’s it, that’s all. Frankly there is nothing, not .NET, not anything, that is easier or less memory hogging that will allow you to make good quick frontends to DBs which is why VB6 is still around.
Frankly I think programmers complain about VB so much because in a way it makes less required. there really isn’t a point in hiring a full time programmer or paying a ton of money to a consultant to cook up some big bloated SQL monster when all you need is a simple front end to a DB and that is what VB excels at. there is a reason why .NET was never able to replace VB and its because it is a “OOP Minefield” as I heard one guy put it, yes it does more but what if you don’t NEED to do more? why should one learn a language with a pretty decently steep learning curve like .NET when one simply wants a GUI frontend to a DB?
It was more like trying to pull a cargo trailer with scooter – but Honda didn’t pretend their scooters could tow cargo, and scooter owners don’t go around calling themselves truck drivers…
Borland Delphi. The difference was you could actually write real programs in it once you moved on from the kiddy stuff, and you learned a fairly adequate language along the way that didn’t cause permanent damage to your mental faculties.
I’m all for tools to make things like this easy – just don’t pretend they are general purpose programming languages, and don’t call the people using them programmers… It is insulting to people who actually bother to learn the trade.
Ahhh…see, just like those that use CLI think themselves “better” than everyone else so too are you getting all upset because someone DARED to say the word programmer when they aren’t talking about the language of your choice. kinda childish if you ask me, I’d say there is no different between that and the word mechanic, where one can be a mechanic only capable of working on your average Dodge or you can be a mechanic capable of working on formula one. That doesn’t mean the formula one mechanic should get all butthurt if someone calls the Dodge guy a mechanic, after all he does get paid better and should frankly be happy with what he has.
In the end if the tool didn’t do the job then it wouldn’t be used, simple as that. And even after MSFT tried to kill it over a half a decade ago the fact that its still the #3 business language just shows that it still does the job many businesses require. The fact that you spent more than half your post trying to insult the tool (and the users of said tool being implied) just shows your prejudice more than anything, in fact it kinda reminded me of the old “Freetards and Winbreds” flame wars, where it wasn’t enough to say you simply didn’t like the software but you had to insult anyone who would use it. Kinda sad, but then again programmers aren’t known for being the most social of creatures
Its not the language. I actually don’t have anything against personal language choice – it is the ways in which Microsoft originally chose to extend the language for modern usage which caused all the grief. VB.NET? I have no issues with it at all. I personally don’t “like” it (I much prefer C#), but to each their own. It is not fundamentally broken – VB6 is.
I’m not railing against classic VB because I don’t like it – I am railing against it because it is _broken_ – it creates _broken_ programmers who learn all the wrong things and none of the right things, and it creates _broken_ products that can’t be supported.
If you like to use it to solve your own problems I don’t much care, that is your business. But for the good of the industry it needs to go away as a professional tool, at least as far as supported code bases.
It is like smoking… Smokers don’t like hearing that it is bad for them, but that doesn’t make it not true. VB6 is bad for you. But more importantly, it is bad for everyone else because code has a tendency to stick around like gum on the bottom of a desk – it is a nightmare to find and get rid of. It is bad enough we all have to deal with it’s legacy – the last thing we need is new code written in VB6…
Microsoft is finally starting to treat application development for what it is – a fairly complex process that requires tools that allow programmers to impose rigid processes on themselves to get good results. .NET has those tools, VB6 doesn’t and never did.
Unfortunately, the software industry doesn’t have Board Certifications like Doctors or the Bar like Lawyers – all we have is stupid vendor certifications that don’t mean anything. I expect eventually we will, but until then then I will happily try and defend the label as best I can. Being a professional programmer carries with it (or at least should) a sense of responsibility – you are writing things that can affect people in very unpredictable ways. There is nothing wrong with hacking or hobby development – but it that is not what I am talking about. VB6 is simply noot good enough to be used professionally – it is simply broken.
Except that large Win Forms applications that have to work with large datasets and have lots of user controls perform like garbage and even worse under Windows 7. VB6 on the other hand, as ugly as the code might be, handles things just fine so next time you feel like preaching about why VB6 should be dumped please provide us with an example of a RAD environment that does more than produce prettier code. Yes, C# and even VB.Net are much better languages from the developers point of view but the bottom line is they haven’t filled the shoes that VB6 currently wear which is why no one is going to chunk their investment in favor of a complete rewrite for what? A new data entry application that lags, pauses and flickers when the datasets start getting some meat? The code looks nicer and the error handling is much better though! Seriously though, if these terrible VB6 programmers did that bad of job when they wrote the applications they would have already died but the truth is, the code has been written well enough that people have been able to maintain it for all these years that Microsoft feels a need to still support running them on newer versions of windows. Yes, there are turds floating around in the toilet bowl but they get flushed usually sooner than later. We (professional developers) all get some steaming pile of crap dumped on us at least once in our careers and the syntax ain’t always Visual Basic.
Edited 2012-06-13 01:29 UTC
THAT is what you bring up to defend VB6???
http://stackoverflow.com/questions/2703681/winforms-vs-wpf
http://10rem.net/blog/2010/11/16/windows-forms-developers-tell-me-a…
Winforms is a dead end. Use WPF. Or use Qt with native bindings if you feel adventurous.
Your complaint is a tooling issue, not a programming issue – winforms is not the only option available for a .NET developer and in fact is probably the poorest one.
Sure winforms is easy, so is VB6 – the point is both of them have the same problem… They scale poorly with developer need, you hit walls with either of them that cannot be easily overcome. That is why Microsoft is desperately trying to get their developers to see the light and stop using these technologies…
If you simply can’t stomach the MVC/MVVM paradigm Delphi is still around if you have the money for it and want something more like VB6 but with “teh snappy”. It was and still is far faster than any version of VB as far as the resulting UI performance goes (that includes VB6). Hell, it is faster than VB6 by pretty much any measure, and it is fairly portable to boot. The feature set and layout control in Delphi are about an order of magnitude more flexible than VB6 every was – but it is the exact same development workflow as far as how the GUI stuff works.
VB6 forms being “fast” is a side-effect of it being almost 15 years old and woefully lacking anything resembling a modern feature set. It is archaic. That is not a strength…
Right well, so in other news, VB6 will continue to be supported if for no other reason than no business sees the value in investing in complete rewrites because some developer on an internet forum thinks VB is trash. Apparently Microsoft agrees.
By the way, I’m a .net developer, c#. I’ve inherited and still support to this day my fair share of VB projects, some crap, others not. I don’t have a soft spot for Visual Basic but I’ve seen plenty of it’s success in the business world first hand.
I have no problem at all with continued support from Microsoft. I even get the argument – there is no reason to rewrite something if it works.
Really – I do get it. I’m just begging and pleading that developers don’t take this “continued support” thing as an invitation to keep using it for future work. Expand your mind, that’s all I’m saying. The product has serious flaws – it may have been the bees knees 15 years ago but it is time to let go and move on to bigger and better things.
“Winforms is a dead end. Use WPF. Or use Qt with native bindings if you feel adventurous. ”
Use Lazarus and or Delphi instead. WPF is probably not going to last either.
last time I tried to use WPF it had a very unfinished feel to it.
WPF and Silverlight are similar to how metro does stuff, Microsoft even has a guide on how to port the code.
Tech evolves. It is better to have something that can be built and ported easily using similar ideas and technologies than WinForms that is a knock off of Swing.
Are you implying that Delphi or Lazarus will likely last longer or there’s no unfinished feel to it, respectively?
Couldn’t agree more. In my home country, Portugal, we do have Software Engineering certification requirements, but since it is not controlled, very few make it.
I do expect from anyone working in the industry the same set of knowledge as when I go to repair a car, change plumbing, to a lawyer, and so on.
The persons need to have they knowledge validated, and not be a “Sunday Programmer”.
Do you thrust a “Sunday Mechanic” to fix your car’s brakes?
There should be a path for people to learn how to program, but that is all.
Don’t we have universities for that? And at least in some (I guess most) EU countries it’s hard to get a ~serious (where it matters) programming job without a degree.
Sure
And how would you enforce any of this and why does it matter?
During my whole degree I was working using PHP (Web) or Java and Oracle SQL.
The tech I am using now is .NET and I don’t write any SQL anymore. The only thing I carried over was OOP and being able to think in “Sets” for SQL based queries.
Also I know many programmers that have no degree in Computer Science or Software Engineering aka Self Taught programmers that are far better than those that have a degree.
Believe it or not Medical Students do to cram for exams and there are truly some crap doctors, they become GPs because they can’t cut it in a Hospital.
The only significant skill you need as a developer over other people can be explained by this
“The difference between developers and those who aren’t , is that developers expect the computer to do what they tell it and not what they want it to do”.
Understanding that very subtle difference makes more difference than having some sort of degree or official certification.
Well… ;p
http://en.wikipedia.org/wiki/Honda_Super_Cub search “The Super Cub as cargo hauler” area.
(and that’s just something I could rapidly find – in many places it’s not that uncommon for ~scooters to haul cargo trailers of sorts; though yeah, not “truck drivers”, I suppose – but then, different areas can’t exactly agree on what a “truck” is)
I beg to differ, NOTHING is better for that than Magic.
Nothing I tell ya!
It was Write-Once Run-Anywhere over a decade before Java too.
https://en.wikipedia.org/wiki/Magic_Software_Enterprises
Sharing my experience, I actually have several programs I had written in VB6 several years back. For sentimental reasons I’d like to run them again but unfortunately many won’t run anymore.
One that I worked on during a collage break was a poor amateur clone of the “7th guest”. The 7th guest took place in a raytraced house, mine took place in a real house using a video camera. Now all I can do is play the individual video clips, the VB6 game doesn’t work.
For work I also needed to maintain a legacy VB6 app, but the COM Control component (which came with VB6 itself) had licensing issues and refused to install on the client’s machine. MS’s application deployment wizard failed to install the component too. In the end we threw our hands up and installed an unlicensed copy of VB6 itself on the client machine, which installed all COM Components in developer mode without restriction. I wonder how often DRM causes problems for people legitimately running legacy software?
What people seem to miss about the “It Just Works” slogan is that they’re putting the emphasis on the wrong word. It should be “It -JUST- works”.
As in “My shot -JUST- missed his head”.
As much as I felt dirty doing VB6 job its editor doing real-time syntax formatting/enforcement was an awesome feat.
After TurboAssembler for C64 that was the most comfortable / intuitive editing environment I have ever encountered.
I sucks that nobody hasn’t seriously translated that to other languages.
I’m with you on this. VB6’s IDE was perfect, Ms always did damn good IDEs… but their underlying technologies in the late 90s sucked hard (VB, ASP, ActiveX, you name it).
VB6 is a tool to create frontends for DBs… like PowerPoint is a tool to create presentations, nothing more nothing less. But You can’t take it seriously.
The problem is: Ms sold VB6 as a “real” development tool and a lot of people bought it. VB6 was even used in some colleges as an introduction to OOP (WTF!!). It’s a shame, but It’s true.
The best Java editors have rather nice inline help and autocomplete these days, as does Visual Studio (though it depends on the language – C# is probably the one where it works best).
Everyone on a high horse today? So VB6 is not a nicely designed language, it takes shortcuts and is opportunistic. What language isn’t? It’s not like we’re using Smalltalk or Haskell, we mostly write code in C, C++ and Java, which aren’t prime examples of academic beauty either. To this day, C++ compilers from different vendors will not necessarily agree on what code they will compile or not.
So let’s give credit where credit is due: VB6 allowed a lot of people to write software in very little time, which no other mainstream development system at the time did to such a large audience.
As another poster said, I think the editor was more important to making VB friendly than anything having to do with the language itself. At that time, for static GUI layout/design, VB was the easiest thing to use bar none. Unlike the situation with .net, microsoft’s VC and VB environments were not created equal. VB was a superior toolset. This lead myself and probably countless others to use VB instead of VC.
Delphi? PowerBuilder? The only thing special about VB was that it had Microsoft’s logo on the box… But Delphi had a real language under the hood, and PowerBuilder didn’t pretend to be a real language.
It is really a shame that politics spoiled Delphi’s future.
“It is really a shame that politics spoiled Delphi’s future.”
How is it spoiled? Delphi still rocks, and there is also Lazarus and Free Pascal, which is actually really nice.
If anyone is interested in Delphi take a look at Lazarus, it’s syntax is exactly the same and creates the nice stand alone single exe applications.
The Lazarus IDE is similar to Delphi 7 with many many enhancements.
Edited 2012-06-11 19:51 UTC
I think Delphi is great and thanks to Turbo Pascal I’ve learned how modular programming, object oriented programming and proper type checking can be used, with the same capabilities down to the metal of other single letter languages.
Having said this, the move from Anders to Microsoft, and the disorientation Borland as a company faced, has made many companies move away from Delphi.
I do consultancy work in Germany, here most offers that have Delphi references, are either to migrate a legacy application to .NET, or some maintenance fixes in a “legacy” application.
I am not aware of any new company doing development of new products in Delphi.
“I am not aware of any new company doing development of new products in Delphi.”
It’s only the stupid ones that are porting perfectly good Delphi apps to .net. It really is a shame, if they where smart they would port them to free pascal and save a ton of money and time.
.net is here now, but who is to say in 5 years, MS may dump it. I have Delphi 1 and 2 apps that recompile fine with Delphi XE2 and with Free Pascal and Lazarus I can leverage much of the code on other platforms.
Every time I write something in .net I think to myself, holy crap, I could do this in Delphi with far less code, this is really true when doing database work.
Forget VB 6 and .net, take a look at what you can do with Lazarus and Free Pascal, it’s pretty darn impressive.
Some of my favorite libs and components for Delphi and Lazarus are:
http://www.delphi-gems.com/index.php/controls/virtual-treeview
http://www.ararat.cz/synapse/doku.php/start
http://www.trichview.com/
http://www.progdigy.com/?page_id=6
http://www.ararat.cz/doku.php/en%3asqlitewrap
http://www.devart.com/pgdac/
Edited 2012-06-12 15:51 UTC
Thanks for sharing
But are there around any contemporary notable applications done in Delphi? Genuinely curious here – I can recall UI of Windows Skype version, Dev-C++ (yeah, oh the irony; my uni even used it a “standard IDE” of sorts in C++ classes), both not started very recently, and that’s it. What else?…
…that’s this spoilage (of its future) right here. Yeah, Delphi is around, it’s nice – but it sort of lingers on, doesn’t seem to have that much of a future.
“…that’s this spoilage (of its future) right here. Yeah, Delphi is around, it’s nice – but it sort of lingers on, doesn’t seem to have that much of a future.”
Yep, and that’s because of Microsoft, if people actually knew they could use Lazarus or Delphi and get things done faster with no stupid dependencies on .net runtime frameworks they would love it.
I work for a big corp and the .not developers are always complaining that they need the .net version x.x whatever on all the PCs and the corp gives them a huge hassele because that’s not the standard image. They get pissed off when I tell them if they had used Delphi instead they would not have these issues ha ha ha.
Delphi and Lazarus are great, but if people like us don’t promote it know one will know about it because of the MS monopoly on this, and they do have a monopoly because they can afford to give all the express dev tools away for free because of the strangle hold they have on everyone.
It just blows me away how people get locked into windows. use .net for web development and your pretty much locked into using IIS,when you could use python or PHP or Perl etc and use Apache instead on your choice of linux or unix/bsd operating systems
The other problem is people are so afraid of trying something new.
Microsoft is not to blame here.
Borland almost went bankrupt. Would you develop a product in a proprietary language from a company short to close it’s doors?
Kylix failed to the way Borland completely missed the Linux way of working.
Free Pascal/Lazarus are still pretty much lacking in the Windows world, which is where Delphi lives. Plus it still does not handle all Delphi constructs.
If anyone is to blame, it is Borland.
In addition to what moondevil wrote – why because of MS, why not because of Trolltech or Sun? Or Tim Berners-Lee, Netscape, PHP, & co? (bringing, popularising – also as a platform for quick’n’dirty internal apps – the web …another alternative to Delphi; you even manage to mention this widely adopted path, but without connecting the dots)
You are putting the blame for Delphi demise at this one success story (MS) without really showing any connection between the two, other than cut-throat competition. And all while other alternatives did become very widespread, even some very small players were thriving – Qt sees quite a bit of use nowadays, did so before it became part of Nokia.
We did try many new things, and adopted some of them.
So, why Trolltech is not to blame? After all, they also ~”do have a monopoly because they can afford to give all the express dev tools away for free”, right?
Nothing to do with the errors made by custodians of Delphi, hm?
Edited 2012-06-14 02:42 UTC
One has to wonder about the level of turmoil happening now at MS Skype division… (its Win version supposedly having its UI done in Delphi)
Though really, in the case of Skype UI, that might easily end up for the better.
Only the early versions were like that. When they went multiplatform, it was rewritten in C++/Qt.
I remember having read about this somewhere.
I remember reading that, when going multiplatform, they pretty much used platform-specific toolkits (Qt being “the Linux toolkit” as far as Skype is concerned).
Plus, really, compare the UI of Win/OSX/Linux variants – they aren’t very similar.
edit: and at least there’s “Written in Embarcadero Delphi, Objective-C (iOS, Mac OS X), C++ with Qt4 (Linux)” on http://en.wikipedia.org/wiki/Skype – I suppose somebody who cares one way or the other would modify it by now, if it changed.
Edited 2012-06-13 22:59 UTC
“So let’s give credit where credit is due: VB6 allowed a lot of people to write software in very little time, which no other mainstream development system at the time did to such a large audience.”
Well, at the time of VB6 Delphi was around doing it better ha ha ha.
I would say VB3 should be given that credit as it really allowed windows to take off with many many apps.
There’s another ~computing product which sort of hit this landmark, in virtually unchanged form, even despite being much more consumer-oriented: Nintendo Famicom (NES) – introduced in Japan in 1983, produced until 2003, supported (repairs) until 2007.
While not exactly the same thing (especially since the last official game is from 1994), still impressive; perhaps more.
PS. Plus, really, inexpensive NES clones are easy to find – so still produced I guess
Edited 2012-06-11 06:33 UTC
Notepad with a play button.
The best darn IDE there ever was, and is.
VB6 won’t go away because it’s the closest a post-BASIC BASIC has gotten to allowing the average user to be productive programming a computer. Just to begin to write code with .NET or Java or C++, one needs to know a ridiculous amount of background knowledge and IDEs in general now are big ugly monsters.
Those Visual Basic applications they wrote back then for corporate environments were much more pleasant to use than the “web apps” that came afterwards.
Put 50,000 simultaneous users on a VB frontended database application and let me know how that works out for you… Then try to run it on an iPad. Or Linux.
I’m not arguing against your basic premise, just pointing out that you are comparing apples and orangutans. The “webification” of this stuff is not about making pleasant interfaces for line of business apps with 20 users all running the same machines – it is about scalability and platform/vendor independence.
VB did everything wrong if either of those things are important to you…
Not to mention maintaining it after ten years have passed and the codebase has grown to millions of lines. It’s that kind of codebase that’s mostly responsible for VB6’s dread reputation…
This has nothing to do with the VB frontends, but everything with the backend.
Web applications suffer from the same issues, with the added complexity that part of the UI is also running server side.
User interfaces do not have anything to do with server side scalability.
As for web interfaces being pleasant. I curse every time I need to maintain a mountain of CSS/HTML/JavaScript garbage that could be easily done in a RAD tool.
moondevil,
“This has nothing to do with the VB frontends, but everything with the backend.”
Well, ActiveX, VBD’s, DCOM, etc were an awful mess. They were far more painful to deploy than web applications. However your point is completely valid with respect to Local vs Web apps in general.
“Web applications suffer from the same issues, with the added complexity that part of the UI is also running server side.”
Yep, “fat applications” often deliver a superior interface and consume fewer resources at the same time.
“As for web interfaces being pleasant. I curse every time I need to maintain a mountain of CSS/HTML/JavaScript garbage that could be easily done in a RAD tool.”
Well, in theory a good RAD tool could encapsulate the CSS/HTML/Javascript bits on the web in the same way it encapsulates the win32s on the desktop, but in practice we have many kludges to compensate for web postbacks and needing to write interfaces in both client side and server side code.
No. It has everything to do with the middleware – and VB6 doesn’t have any worth speaking of. Sure, you can add some – but it is harder than just wiring things up with ADO/RDO. Obviously that isn’t an option, since the whole argument against moving off the now 15 year old dead end platform is that .NET is too hard.
I hear ya though – making your app scale is the DBA’s problem…
Not modern ones. There is virtually no reason to “run” UI code on the server anymore. You may host it and serve it to clients, but you certainly don’t need to run anything except your data layer. It is the same thing as putting a VB6 executable on a network share, except:
1. It can work on different platforms.
2. It works over the internet.
3. It at least can work on mobile devices if you bother.
3. Pick a language you like – there are hundreds.
4. Supports virtually any database known to man.
5. Performs extremely well when done right.
6. Scales much better than monolithic desktop apps using connection oriented, archaic things like ADO/RDO/ODBC.
7. Has the largest developer community on earth.
8. Is the way Microsoft is moving anyway…
No they don’t. But 15 year old database connection components do…
There are RAD tools for the web too you know… But if web frontends don’t float your boat there is WPF, Silverlight, QT, GTK+, etc. etc. etc.. At least those technologies have parts that were actually written for Operating Systems newer than Windows 98…
I know I am sounding like an ass at this point. I don’t care, it’s frankly infuriating. I honestly cannot understand how any rationale person can defend continued use of a 15 year old product built on extinct technology on the sole basis of “it’s easy”… When I was 12 I wrote TIBasic programs for my TI99/4A – compared to modern development in practically any language it was certainly easy – but it is also irrelevent now. The world has moved on. The vendor of the tool has moved on (and then some). It’s time to move on.
galvanash,
“Not modern ones. There is virtually no reason to ‘run’ UI code on the server anymore. You may host it and serve it to clients, but you certainly don’t need to run anything except your data layer.”
It’s probably not worth my getting involved here since I do agree with your overall message – leave bad legacy code behind when possible. However I’m not sure why you made the above claim? You must know that the overwhelming majority of web apps do generate UIs on the server instead of the client. Even modern frameworks like ASP.Net have done very little to shift UI generation to the client side.
It’s technically possible to shift all UI code to the client side by using ajax and eliminating postbacks, but that’s the exception rather than the norm.
Well maybe I went a bit too far with that… I should have said “Not all of them”. A combination of backbone.js or knockout.js with jquery on the client side can handle the UI and all the business logic – all you need on the server side is a data layer. There are other ways to do the same thing, ASP.NET has Atlas for example.
I wasn’t really trying to say that this was the only way to do it, rather that server side generated UI code isn’t the only way either. Web development does not necessarily involve server side complexities created by the UI code. The backend of a backbone/jquery web app is generally nothing more than a thin REST web service for fetching and retrieving your data. The nice part is you don’t have to care much what the server side is (ASP.NET, python, Ruby, whatever) – it doesn’t much matter.
I was speaking about desktop vs web development issues.
As for VB 6, it can die in peace for what I care.
I don’t have any issues with desktop development or fat clients if you will. My criticisms were more towards the aging technologies under the hood of VB6 (which is what limits its scalability) – not desktop development in general.
I’ve played around with Visual Basic and Gambas. Though they’re not usually my languages of choice I can see the appeal. It’s amazingly quick and easy to make small, GUI applications with them. I probably wouldn’t want to do anything complex in VB, but for small applications where you want to do one thing and don’t want to waste any time putting it together VB is a good tool.
I suspect VB gets a bad reputation for the same reason JavaScript does. There is a low entry point and it means a lot of inexperienced programmers are pumping out garbage. But in the hands of someone who knows what they’re doing, both languages make useful tools.
VB6 hasn’t been as successful as it is because it’s crap…obviously. It worked great for what it was intended to do and that’s partly why it’s still around. Bash it all you like but there’s no denying that fact unless you’re too immature to give credit where credit is due.
The best feature for me was ‘edit and continue’. I literally wrote 80% of my code in debug mode. You could make changes and move your break point back and it would use the changed code – no need to stop and recompile. I’d make functions, classes, whatever you wanted and see how it ran and fixed it, all without stopping or reloading. The only down side was that you couldn’t save until you stopped the program, on Windows 98 which is was not so stable that could cause quite a bit of code loss after 3 hours of development with no need to stop.
First of all, a disclaimer… I have never used Visual Basic 6. I learned some Basic on a legacy Mac about a decade ago, and quickly forgot all of it. Right now I know smatterings of several languages, Java probably being my strongest. If you told me to do some task in VB6, I wouldn’t have a clue how.
However.
I’ve noticed an attitude among computer enthusiasts that, if X is easy to use, X must suck. It’s true that power and versatility often imply a steep learning curve; but I don’t think they necessarily have to, and furthermore, not everything needs to be as powerful and versatile as C. Sometimes you want to use the right tool for the job.
e.g. A small program for manipulating text might be more efficient if written in C, but you can do it in Perl or shell script with a tenth the effort. Or a GUI for some program could be written using GTK+ and C, but if memory use is not an issue, using PyGTK could make it more maintainable.
Couldn’t the same be considered to apply to small graphical programs for Windows? Maybe VB6 is the right tool for quickly throwing together something that doesn’t require power, finesse, or portability.
OTOH, I did look into GAMBAS once, and found the syntax completely inscrutable. If VB6 looks like that I can understand why it would be disliked.
I agree. It really depends on what you are trying to do and how much time you have to do it in. Prototyping in some of the interpreted/dynamic languages is useful too…
The problem with that reasoning is that over time, small programs often become large programs. And then when you find that you *do* need power, and you *do* need finesse and you *do* need portability, what do you do?
Silent failure at its best.
Apart from that, well it was BASIC, a language that survived decades ( hell, it’s way older than I am !).
Like most developer out there I would hate to touch visual basic code (but still prefer it over fortran). But I am making perl code for a living (Oh god, forgive me, for I am sinning every day ).