-
-
- Warning: Personal Opinion-
-
- Java is a lousy choice as a first educational computer language simply because it requires objects for so many operations. C++ is far better, because it is possible to write the program once in procedural code and again using O-O, and then students can compare the two. I remember well the first C++ O-O lecture was completely baffling as to when it was prudent to use objects and exactly what one was supposed to use objects for. Being able to see examples of small “identical” programs written in both procedural and O-O code helped immensely in understanding the concept. -And once the concept is learned, it’s fairly easy to use it for any language that can support it. (In a COBOL class, at the end of the semester the instructor spent a class period demonstrating O-O COBOL but admitted its widespread adoption was rather unlikely.) - MC
I’ve got to pick up Delphi now (looks like a fairly straightforward transition from VB, but I’ve just found out that it has Variants too, not that I plan to use them much, if at all.
*Originally posted by Mangetout *
I’ve got to pick up Delphi now (looks like a fairly straightforward transition from VB, but I’ve just found out that it has Variants too, not that I plan to use them much, if at all. **
Go fig. It kinda makes sense to have them from the standpoint of convenience, but you’re wise to not use them.
Well, Delphi is to Pascal as Visual Basic is to Basic… except that Delphi is a better object-oriented language, as it handles inheritance properly, which VB doesn’t. (Yet - I’m told that VB.NET will).
(I also tend to think of Delphi as the “Yorkshire” programming language, because of all the entities that begin with T - “Eee, Ah think Ah’ll get TRecordset back from TDatabase, lad.” This may just be because I have a twisted mind.)
Regarding the OP: you’ve got to know fundamental programming concepts, so learning an old-fashioned procedural language makes sense. BASIC is not nice, but it will get that particular job done. Once you’ve got the fundamentals down, you’ll be in a lot better position to develop with Visual Basic. I could wish, though, for more consideration of object-oriented concepts, even at an introductory level. (It would have made my transition to “serious” programming a darn sight easier.)
Choice of programming language is very much “horses for courses”; I wouldn’t choose VB for speed and efficiency, but I’d pick it over C++ in terms of maintainability. I wouldn’t pick COBOL for anything, but a depressing number of people still use it… on the other hand, FORTRAN really does look as though it’s on the way out.
Variants? Gaahh. You have to know what types those variables really are sooner or later - you’re better off if it’s sooner. (And don’t get me started on late-binding generic Object variables. Anyone who works with me knows that it’s perfectly OK to use these, providing they don’t mind being painfully sawn in half, lengthwise, five seconds after I find out about it…)
(Background: I used to teach undergraduates programming - the blind leading the blind, let me tell you. These days, I write VB and Delphi apps for websites. [Just at the moment, I do it for nothing, but that’s another story…])
Another random view from a professional programmer:
I’ve been working in the video/computer game industry for 6+ years using nothing but C. There’s some (maybe a lot, I don’t really have much knowledge of the industry as a whole) game development in C++ (more PC than consoles), and some in Java for networked games, but developing for the PS2 (as I’m doing right now) is done in C and (gasp) assembler.
(Interestingly, our code is heavily object oriented, with basically everything in the world being an object, with message passing, some amount of inheritance, etc., but we do it all in C rather than C++) (it’s also very event-driven)
I learned first BASIC, then pascal, then C. In retrospect, I don’t regret any of it… pascal and C are obviously better than BASIC, but BASIC seemed great to me when I was 10.
(not sure if any of that will actually help the original poster)