5 ms·
My very first was C64 BASIC, then QBASIC for DOS, which was a really good programming environment for a kid—Dijkstra's warnings about mental mutilation notwiths
by mbrock 11y ago
My very first was C64 BASIC, then QBASIC for DOS, which was a really good programming environment for a kid—Dijkstra's warnings about mental mutilation notwithstanding, it was really simple, it came with some games that you could modify, and it had a built-in help manual thing. And plus awesome features like the PLAY function that took a string of notes, which I'm pretty sure helped me even get interested in music, at age 6 or whatever. Me and my brother made all kinds of weird pixel patterns and stuff. One time mom brought home a projector from work, in like 1997, and we made disco lighting by making a full-screen button in Visual Basic that changed colors.
- greydius 11y agoQBASIC was my first programming experience. I fondly remember a little known function that would treat a string variable as an array of machine instructions and execute them. There was a nice library of graphics functions designed that way by some clever person which I had found on the late 90's internet. I used that to write a little space invaders clone because the built in functions for copying data between buffers were so abysmally slow (even on my kick-ass state-of-the-art 100Mhz Pentium processor).
- seanwilson 11y ago> Dijkstra's warnings about mental mutilation notwithstanding I really dislike that quote: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration". I'm not sure how serious he was being but I cannot see how a potentially good programmer would refuse to learn new concepts like they would need to do when first moving to OO, functional, procedural etc. languages. BASIC is obviously less relevant now but it was nice in that it was easy and quick to get started in whereas more complex languages might scared complete beginners away.
- schoen 11y agoI'm sure it's meant to be humorous, but it could be taken as pretty aggressive humor. I wonder how much is known about early bad habits in any area sticking with us as we learn other things.
- striking 11y agoIt's not entirely false. I've seen stubborn students before that refused to do anything new.
- seanwilson 11y ago> It's not entirely false. I've seen stubborn students before that refused to do anything new. How would someone like that ever become a good programmer? Programming involves continual learning and keeping your skillset up-to-date.
- WoodenChair 11y agoThere are "good" programmers who still write 6502 assembly. Good is a relative term. They might just be very "good" at what they do.
- seanwilson 11y agoIt's fair enough specialising in a niche but having the attitude of "I refuse to learn that because it's unfamiliar" isn't going to get anyone anywhere.
- donatj 11y agoI'd place an argument that BASIC still is in many ways one of the best languages for human machine empowerment. I've spent the last 20 years of my life programming, (C, C++, PHP, Java, Go) and I have never felt the overwhelming "I can write anything I want if I try hard enough" I did as a kid writing QBasic on a 286. I wrote literally hundreds of games as a kid with graphics and sound, none of which were over a couple thousand lines of code. The thought of doing any of that in the languages I listed above sounds very complicated at best. I didn't get so lost in the details. We need to take a step back and rethink why we program. For me it is the sheer joy of creation.
- albertzeyer 11y agoI did QBasic and then later Visual Basic 3-6. As you mentioned it, I had exactly the same feeling back then when I was a kid that "I can write anything I want if I try hard enough". It was a great feeling. I also felt much more productive than I feel now since I do C++. I always missed that old feeling. I like Python but it still doesn't give the same feeling (for GUI tools or games, anything graphical) - although I think that it might have the potential with better IDEs for that purpose.
- greggman 11y agoI grew up on BASIC as well (TRS-80, Apple II, Atari 800, C64) but I think I'm remembering through rose colored glasses. A few years ago I tried to write something in "real" BASIC again. GOSUB has no stack and no arguments!? WHAT??? I had forgotten how basic BASIC was. Go to any high school computer club and all the kids are probably using Unity3D and C# and the stuff they are able to create in a day or 2 blows my mind. Or watch some kids hack on JavaScript. Access to way more APIs then I ever had back in 8bit BASIC and instant sharing.
- dragonbonheur 11y ago>Or watch some kids hack on JavaScript. Access to way more APIs then I ever had back in 8bit BASIC and instant sharing. Can they press F1 and get instant access to the relevant documentation for those APIs? People who write IDEs for BASIC have always put more care and passion in them - press one button for documentation, press one button to compile and deploy, no messing with XML configuration files, copying boilerplate code, or "manifests".
- dragonbonheur 11y agoThe version of BASIC he knew was seriously underpowered compared to even the BASICs that shipped with popular home computers of the 80's See http://programmingisterrible.com/post/40132515169/dijkstra-basic http://programmingisterrible.com/post/40132515169/dijkstra-b... And today's versions of BASICs, like FreeBASIC are just as powerful as even C++ and come with pointers and OOP. BASIC programmers are more likely to understand pointers than programmers using today's popular languages because they were exposed to functions like PEEK, POKE and QBASIC's DEF SEG (remember when we had to DEF SEG to &HA000 to get direct memory access to the video memory buffer because the drawing functions were too slow?). BASIC continues to be relevant today. Some people have reported being able to compile FreeBASIC programs for ARM, but GAMBAS already runs on the Raspberry PI. See: http://gambaswiki.org/wiki/install/raspbian http://gambaswiki.org/wiki/install/raspbian For the Android platform you can get RFO BASIC and program on the device itself. See: http://laughton.com/basic/ http://laughton.com/basic/ And QB64 also compiles for Android. See http://www.qb64.net/wiki/index.php/Android_Project http://www.qb64.net/wiki/index.php/Android_Project For the JVM it seems B4J is the preferred dialect these days, because JABACO is in development limbo. See https://www.b4x.com/b4j.html https://www.b4x.com/b4j.html There are also other versions of BASIC that compile to microcontrollers like AVR and PIC. See http://gcbasic.sourceforge.net/download.html http://gcbasic.sourceforge.net/download.html For HTML5 people can use BrowserBASIC (http://pewtersoftware.com/browserbasic/ http://pewtersoftware.com/browserbasic/) or Monkey(http://www.monkey-x.com http://www.monkey-x.com) Source code for interpreters, transpilers and compilers written in BASIC can easily be found on the web so it's likely the language will be kept alive no matter what. And BASIC programmers always learn new tricks: we've dealt with speed limitations, memory allocation issues, even managed to write assembly when it was necessary. And FreeBASIc programmers are the most prepared to move to C++ because the structure is the same.
- mchahn 11y agoMy first programming was on punched-card sorters and tabulators that used plug-in boards like the phone operators used. Get off my lawn.