4 ms·
I'm a high school teacher, and I'd love to hear from some people who know Visual Basic well. I teach an intro programming class each year, and I currently use P
by japhyr 12y ago
I'm a high school teacher, and I'd love to hear from some people who know Visual Basic well. I teach an intro programming class each year, and I currently use Python. I occasionally get students who have had a previous class in Visual Basic at another school. These students tend to think they already "know programming", but after two or three weeks in Python they start to tell me they're learning all kinds of concepts they didn't know about, and they say they're enjoying programming in Python more than Visual Basic. There are lots of variables in their experience though, so it's hard to tell exactly what is making programming more interesting to them.
My questions:
- Do you have any thoughts about people being introduced to Visual Basic as their first programming language?
- If one group of students are taught Visual Basic well, and another group is taught Python well, will all students come away with a decent grounding in programming?
I don't ask that as a language flame war, I'm honestly curious about how programming in the VB environment compares to languages I'm more familiar with such as Python, Java, C etc, especially for students who have no previous background in programming.
- buckbova 12y agoDon't teach your kids VB. It's a dead end language. I don't think anyone should learn VB anymore and I doubt anyone is taught "well". There are classes in VB and modules. You can write functions and procedures. But something like python will serve you better into the future. I took every computer course available to me through high school and graduating in the 90's that didn't give me much choice. The teachers were not that knowledgeable so I ended up doing Apple BASIC and QBASIC lessons out of books. Honestly didn't learn much. I took a introduction to programming course in college which was in C. Most of the time I was fighting syntax errors to perform the most basic operations. I didn't learn much. I eventually switched my major to computer science and took another 101 course, this time taught with C++. Still I fought segfaults and syntax but I actually learned the basics. No moral to this story, just I wish I had python as a choice when I was learning.
- johnm111888 12y agoFrom my experience VBAs used a lot in the corporate world. Learning VB in high school can be of great use in the future if you're not looking for a tech career. Front-end MS Access, Excel Macros, screen-scraping, vb script to call SQL queries can all give you a leg up in a non programming career path.
- was_hellbanned 12y agoI have an older relative who is still cashing in nicely on his VBA skills. There was a "demand vs pay" graph for tech skills going around awhile. VBA is low demand, but among the highest paid of the technologies.
- johnm111888 12y agoFrom a cost perspective it's easy to see this. I've made plenty of trivial VB scripts in large/bureaucratic companies to automate tasks that a customer service person(or a whole department) had been doing for an hour a day for the last decade.
- was_hellbanned 12y agoYeah, the weird thing is how large and critical these VBA applications are that he works on. Lots of local banks and small businesses have, essentially, their entire business wrapped up in an old VBA CRUD app. Not that there's anything wrong with continuing to use the old technology, but all we hear about is the latest and coolest.
- roywiggins 12y agoAre we talking VB6 or VB.NET? VB6 is... old, and feels old. It barely allows object oriented programming and doesn't have first-class functions, so you're pretty limited to a procedural sort of paradigm. The IDE is clunky. For example: error handling is done with explicit GOTOs (ugh) and "On Error Resume Next" lets you simply skip past errors(!!!). VB.NET is basically a friendlier-looking version of C# and is therefore not nearly as bad as VB6, has a real modern IDE, etc. Python feels like a playground where you can explore; VB6 feels more like you're on a rail and the moment you fall off everything will break.
- smacktoward 12y ago> VB.NET is basically a friendlier-looking version of C# and is therefore not nearly as bad as VB6, has a real modern IDE, etc. Yeah, but my feeling has always been that, if you drew a line called "complexity" with VB6 on one end and C# on the other, VB.Net would be much closer to the C# end. Which sort of calls into question what the benefit of learning VB.Net is; for nearly the same amount of effort, you could just learn C# and benefit from all the additional tooling and support options that C# offers. The big draw of VB through version 6 was precisely that it wasn't a "real" language -- it was much, much simpler than a "real" language, and therefore so easy to learn that practically anybody could do it. VB.Net on the other hand always felt more like they just put C# into a T-shirt that says "I'M WITH STUPID."
- icebraining 12y ago"On Error Resume Next" lets you simply skip past errors Is that very differently from "except: pass" in Python, though? Most languages allow you to skip past errors, the problem with VB was the culture of the users who didn't treat that as a red flag, not the language feature itself.
- roywiggins 12y agoOn Error Resume Next is actually weirder than an empty error handler. If Python errors halfway through a try/except block, it will skip the rest of the block. If you On Error Resume Next, VB will literally just proceed to the next line and keep executing. And since you don't need to indent the block that comes after On Error, it's easy to miss that line...
- jfroma 12y agoI started on VB5/6 and I wouldn't recommend it now, but I believe the language is not that important but the general concepts. Vb6 is a weird language nowadays because is very bad at OOP, is not functional, etc. Another reason I'd discourage it, is because the language is tied to the IDE/editor and is very difficult to do something without it. Also there is not opensource community around vb6 and there is not much code to look at or to contribute in github. Even if the 'new project' dialog offers you several types of applications the language is very limited to desktop applications and com components. VB.Net is very good and modern language and it has some interesting features. I'd rather introduce programming in a nix environment using the unix way, write a shebang here and pick the language you would like to use. Learn file descriptors, stdin stdout stderr, process exit status, pipes, etc. Learn to write small libraries and programs that solve very specifics problems.
- Xophmeister 12y agoIn my opinion, the only thing classic VB had going for it -- and even that's a bit of a stretch -- is the relatively interactive feedback loop of UI designing, coding and debugging, which leads to somewhat quick gratification. However, the language is kludgy and antiquated; I feel like it encourages antipatterns and generally bad style. VB.net may be a bit better (I'm not familiar with it), as that still has the interactivity, but most of the language warts have been patched over; but then one could argue, "Why not C#"?... To answer your first question, if you want to teach programming, I would avoid VB like the plague! (Annoyingly, Excel and the like are still all scripted in VBA -- which is very similar to classic VB -- so it does have some commercial merit.) I think Python is a very good choice as a first programming language; although, if it were me, I would also segue into a bit of C so that the learners can appreciate the difference between static and dynamic typing. What Python (and C) lacks is an idiot-proof GUI designer like VB has. (I know there are obviously things like PyGTK+ with Glade, but it's not nearly as easy as VB's form designer.) Like I said in my previous paragraph, the near-instant gratification of creating a working -- albeit trivial -- program with a visual component really encourages learners to delve deeper. A Python console application will come across as boring, at best. As for your A/B testing: I believe the VB group will not really understand what it means to program, whereas the Python group -- while harder to encourage -- will have a much more solid foundation on which to build.
- vlad 12y agoThis comment turned into an essay that I have no time to edit. So I'll repost it later as an essay. :)
- analog31 12y agoI learned programming in BASIC, in 1981, then spent some years with Turbo Pascal, HyperCard, and eventually VB. I spent upwards of a decade with VB before switching to Python. I'd have a couple problems with VB as a teaching language. First, there's the business of building GUI's and navigating the project structure. These are not the basics of programming, and are layers of abstraction that obscure the underlying code. Second, even if there's a free version, it's an enormous bloated download, and only runs on Windows. Python can run on any reasonably modern computer, including the Raspberry Pi and its ilk. Third, Python is more "cool" right now, meaning that there is a lot more interesting code and projects being shared and discussed online. I actually consider this to be an advantage for my own use of Python at my day job. Now I think both groups of students will come away with a decent grounding. Those who get into programming will learn more than one language, and I'll bet that there's little correlation between who's a good programmer and what language they started with.