withoutaface said:
If by that you mean "it's a language that introduces very rudimentary concepts but has no real world application"
VB6 and down don't enforce good programming practices when you compare it to more structured languages like C and Java, but that doesn't mean it doesn't have any real world applications. I've worked more than once where a client specifically requested something be written in VB. With the amount of change requests they sent every month it would have been hell in any other language.
Other times I've written a prototype in VB just because its easier to make a electronic mockup than other languages. In the real world, a client
usually wouldn't care about what language its written in or how its done, as long as it can be done as quickly and cheaply as possible. You can imagine while we're trying to figure out what libraries to #include in plain C, then what arguments to pass gcc and resolving linking errors, the entire project could already be finished and deployed. (and the client paying their $$)
withoutaface said:
but the learning curve for a real language like C isn't excessive
For a year 12 student who has no programming or computing experience the learning curve is big. The hardest content in the SDD course is probably sorting algorithms - a lot of students have trouble understanding the algorithms themselves, let alone learning C at the same time just to code it. SDD is there to focus on the content of the course, not to teach them how to write code.
withoutaface said:
and there's no reason why you need to rush to databases, GUIs and the like at the expense of properly learning the underlying concepts.
In that case, why rush to C? We should do this at the gate level and make the students learn assembly and VHDL so they can write their own clock, registers, memory, CLA adder, then their own ALU, branch prediction unit, then their own pipeline to finish off their own multicycle CPU with a custom instruction set. I mean if they go straight to C and the like, it would be at the expense of properly learning the underlying concepts.
withoutaface said:
You learn VB and you end up having to learn another language later anyway, and it becomes harder due to bad habits you've inherited, so I don't know why you'd bother.
If taught properly, VB
can be used with "proper" programming techniques. VB6 can be used as an almost-fully OO language, but few do because of, like you say, bad habits. Its true though, very programmers would know only just VB since they learn something else - then again, very few real world programmers are so narrow minded that thinking knowing C would mean the client actually cares how awesome the programmer thinks they are compared to VB programmers.
This is not about defending VB, it has its weaknesses, but it has its strengths as well - just like every other programming language. Its about picking the right tool for the job, and for the SDD course, VB fits the bill pretty well.