TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

30 years later, QBasic is still the best

493 pointsby bubbliciousabout 9 years ago

74 comments

jbandela1about 9 years ago
For young children, QBasic and goto may indeed be superior to more structured languages. From a neuro development perspective we know that young children are very concrete and have limited abstraction ability. With Basic and goto, a program is more concrete (you run a line which is more or less 1 command) and linear (no nested structures). With structured programming, it is more abstract, and has an recursive structure (with arbitrary levels of nesting).<p>Because of this, it might be preferable to introduce a child to the more linear, concrete programming model with goto and let them experience the thrill of programming then as they develop more and their programs increase in complexity, introduce them later to other more abstract methods and languages such as structured programming, oop, and functional.
评论 #11639424 未加载
评论 #11638098 未加载
评论 #11638088 未加载
评论 #11637834 未加载
评论 #11638425 未加载
评论 #11641024 未加载
评论 #11638015 未加载
jasodeabout 9 years ago
<i>&gt;to realize that in more than 30 years, we have not been able to come up with something better for our kids: Qbasic ..., but we have never really made a simpler or more direct access to the thrill of programming than QBasic. </i><p>First, I think it&#x27;s really cool that he&#x27;s exposing a young mind to programming. But I&#x27;m also old enough to have installed QBasic from floppy disks and part of me thinks his statements I quoted are romanticizing QBasic a little bit.<p>I think that Javascript in today&#x27;s browser is a fine substitute. I&#x27;ve had good experience with children that age by going to the browser, pressing F12, go to Console tab and start typing code. It can start as simple as:<p><pre><code> alert(&quot;hello world&quot;); </code></pre> And boom, you get a popup. You can also show the kid he can type in arithmetic stuff like &quot;2+3&quot; and he&#x27;ll get back the answer 5. You can then show him how to <i>modify</i> the existing web page. You can ramp up a slight bit of complexity by showing how to create a text file and writing Javascript and then having the browser run it. The 8-year olds I&#x27;ve seen can handle this no problem.<p>What I like about the Javascript-for-kids approach is that it shows them that programming isn&#x27;t some other universe where you install QBasic in a vm. Instead, the initiation into programming&#x2F;experimentation is just 2 keystrokes away. There&#x27;s something about the immediacy of F12-Javascript that keeps it from being an esoteric dark corner. The kid can also get more mileage out of his &quot;programming&quot; knowledge because he can use his Javascript console tricks at his friend&#x27;s house on any web browser. On the other hand, playing with QBasic today is more isolating. The use of QBasic in 1980s had more utility because the syntax of &#x27;10 PRINT &quot;HELLO&quot;&#x27; also worked on Apple II, Commodore 64, Radio Shack TRS-80, Texas Instruments TI-99, etc.
评论 #11637079 未加载
评论 #11637750 未加载
评论 #11637337 未加载
评论 #11637150 未加载
评论 #11637060 未加载
评论 #11637405 未加载
评论 #11637756 未加载
ilitiritabout 9 years ago
I don&#x27;t think QBasic&#x27;s mainstream popularity can be understated. Googling &quot;gorillas.bas&quot; gives you a predictable result. I suppose it can be argued that Gorillas and Nibbles are partly responsible for QBasic&#x27;s popularity (is there a lesson in here somewhere?).<p>However, like many others, QBasic was not my first experience with a BASIC language. Prior to that was GW-BASIC on PC (it was part of our introductory course to Computers at high school), and before that was Sinclair BASIC, which I learned in part from a book called &quot;Peek, Poke, Byte and RAM&quot;<p><a href="http:&#x2F;&#x2F;www.worldofspectrum.org&#x2F;infoseekid.cgi?id=2000269" rel="nofollow">http:&#x2F;&#x2F;www.worldofspectrum.org&#x2F;infoseekid.cgi?id=2000269</a><p>But my first encounter with a programming language was Logo:<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Logo_(programming_language)" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Logo_(programming_language)</a><p>I&#x27;m sure there was a BBC Kids show that featured Logo programming (yes, they drew shapes with the turtle), but I can&#x27;t remember the name. What I liked about Logo was that, as a child, it seemed very intuitive, and I felt like that even without having touched a computer I knew what programming was about, which is a lot more than I can say for any other language I&#x27;ve worked with.
评论 #11637623 未加载
评论 #11637286 未加载
nickpsecurityabout 9 years ago
For anyone that misses QBASIC, there&#x27;s FreeBASIC that&#x27;s a lot like it &amp; easy to install:<p><a href="http:&#x2F;&#x2F;www.freebasic.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.freebasic.net&#x2F;</a><p>After loosing my memory, I have to relearn programming nearly from scratch. I took a challenge to do specific program in around an hour, from language to toolchain to solution. Had to be system-like language. Got bogged down by toolchains, IDE&#x27;s, whatever. Said screw it: why the hell is it so hard when I faintly recall starting lightening-fast on QBASIC? Found a BASIC, FreeBASIC, that was just like it with simple command to launch stuff made in text editor and good documentation. Maybe half an hour of my challenge gone.<p>Next, time to apply lessons I remembered from high-assurance and Wirth. First, subset the language to minimum necessary. Used docs to test each in isolation to develop template &amp; functions for using them, esp file I&#x2F;O. Wrote formal spec in English &amp; pseudocode of my problem with decomposed functions. Mapped almost 1-to-1 to FreeBASIC as expected. Did one refactoring. Executed code for first time to see successful run &amp; solution to problem.<p>Yeah, BASIC is friggin awesome. I stretched industrial BASIC&#x27;s, esp 4GL&#x27;s, really far back when I was a hacker as they did rapid iteration, safe-by-default, and ran fast. Today, I&#x27;d say do a Wirth language like Oberon or Component Pascal instead. Still, BASIC has lessons to teach us and a painless bootstrapping for developer that many modern tools lack outside of scripting.
评论 #11639923 未加载
评论 #11637702 未加载
评论 #11637335 未加载
评论 #11637792 未加载
tdeckabout 9 years ago
One important thing about QBasic that&#x27;s often overlooked is that it&#x27;s a community of 100% amateurs.<p>I learned to program in 2004 in QBasic, although I very rarely fire it up anymore. By then it was not considered a &quot;serious&quot; language and we all knew it. But that meant the stakes were a lot lower. It&#x27;s a lot of newbies and a few old-timers who do things for fun. This makes things a lot less intimidating for the non-coder. There are no conferences, no corporate sponsors, no polarizing big-shot Twitter personalities. It&#x27;s a realm surprisingly insulated from the pissing contest of modern engineering culture and technical progress, where things that are acknowledged to be easy in other languages are nonetheless praised as impressive when done in QBasic.<p>Another thing is that QBasic has no decent library functionality for code reuse (QB4.5 has a linker but no one knows how to use it). This means people constantly reinvent the wheel, and they aren&#x27;t told not to. People copy and paste snippets of code and learn how they work, but they don&#x27;t build ever more complex mashups every year. Thus, you&#x27;re not on the framework treadmill or starting 5 years behind the curve. Things are done simply and idiosyncratically, pretty much the same way they were done in 1995 or 1988.<p>Makes me nostalgic just thinking about it.
esfandiaabout 9 years ago
What&#x27;s nice with BASIC is that no context is required from the programmer: you don&#x27;t need to know about the call stack or about variable scope. It&#x27;s the programming equivalent of WYSIWYG. It also doesn&#x27;t hurt that BASIC used to be resident in ROM (thinking back of the Sinclair ZX Spectrum), and that there were nice and simple primitives for drawing on the screen.<p>I agree with the blog author, and I still think it&#x27;s the best language to learn programming. Everything else is software engineering, and gets in the way of the instant gratification that got so many of us hooked on programming.<p>What&#x27;s wrong with starting with BASIC like I did, writing increasingly complex code, getting frustrated with the resulting spaghetti, then learning to use GOSUB more, which then gets you ready for a procedural language like Pascal? At least this way you know why pros don&#x27;t code in BASIC. The same path of frustration (and fun) can also be used to go from Pascal to an OO language like Python or Ruby.
评论 #11644846 未加载
sevensorabout 9 years ago
My favorite thing about this story is that Basic was meant to be used exactly this way, for getting new programmers off the ground. And like everyone, I&#x27;ve got fond memories. We had an IBM PS&#x2F;2 80286, with a whole megabyte of memory, a 20 megabyte hard drive, and MS-DOS three point something. At some point, I discovered that it had Basic, but it didn&#x27;t have a graphical editor. It had edlin, which was still enough to write programs that told their users how awesome I was. Forever, with gotos.<p>And for the record, I don&#x27;t think using gotos as a child sabotaged my ability to write structured code later in life. &quot;GOTO considered harmful&quot; gets taken <i>way</i> out of context!
评论 #11637510 未加载
hangonhnabout 9 years ago
&quot;When developing a skill, it is much better to acquire the right reflexes from the start rather than have to correct years of bad practice.&quot;<p>I disagree with this statement. &quot;Learning&quot; is a long process of acquiring and also discarding habits and knowledge. The best intro I ever read for relativity was &quot;An Equation That Changed the World&quot; and it&#x27;s a series of dialogues between Newton, Einstein, and the author (a modern physicist). Newtonian physics is relatively (haha) easy to understand. Once you understand that and then you can throw in some edge cases where it fails, you can introduce relativity and it makes relativity much easier to grasp.<p>Likewise for programming. I learned with QBasic. Then as the code got messier, I started using &quot;sub&quot;, etc. and then started playing other concepts until I outgrew the language. Functional programming came to me the same way. I outgrew my existing methods and reached for more advanced ones.<p>All this is to say it&#x27;s OK to start with easier and imperfect methods. We learn by acquiring new knowledge and then knowing them well enough to see their flaws before moving onto something better.
评论 #11638069 未加载
GregBuchholzabout 9 years ago
No love for Logo? I currently have my kids experimenting with ucbLogo and FMSLogo. And one of our latest endeavors is to hook it up to Minecraft [1], but that is certainly quite convoluted, with having to run minecraft servers with various plugins, and then working around the borked networking capabilities of FMSLogo, etc.. I wonder what other simple approaches there are to programmatically control Minecraft.<p>[1]<a href="http:&#x2F;&#x2F;www.stuffaboutcode.com&#x2F;2014&#x2F;05&#x2F;minecraft-graphics-turtle.html" rel="nofollow">http:&#x2F;&#x2F;www.stuffaboutcode.com&#x2F;2014&#x2F;05&#x2F;minecraft-graphics-tur...</a>
评论 #11637252 未加载
评论 #11637805 未加载
评论 #11640768 未加载
评论 #11637981 未加载
评论 #11637607 未加载
whatever_dudeabout 9 years ago
I have so many fond memories of QBasic, and QuickBasic.<p>Coming from GWBasic, I knew it was not supposed to be the best language ever. I had been using Turbo Pascal, and knew the IDE to be great, and the language more structured. I was also using C, and knew it to be fast.<p>But QBasic was better where it mattered to me.<p>When I learned to tame it - to name things accordingly (variable names could have dots!), to not use line numbers or GOTOs, it was so easy and fun doing anything in it.<p>I could press F2 to jump to any function&#x2F;method declaration I needed. I could press F1 on any method to quickly jump to its declaration&#x2F;help, and then navigate help in the same manner (it was all hyperlinked!).<p>I could stop my program in the middle of the execution so I could issue inline commands, print vars, and even CHANGE it, before continuing execution... even today, with proper debugging&#x2F;logging any modern IDE&#x2F;platform provides, I never got a dev&#x2F;test workflow as easy as that quick iteration cycle that QBasic allowed.<p>In time I started using QuickBasic instead (not the same thing!), learned to call interruptions, create actual executables, and do all kinds of crazy stuff most people were not supposed to do from there. Sure, running assembly from it wasn&#x27;t as easy as Turbo Pascal (where you could do it inline) but as long as you had a library of common assembly calls created, it was just a matter of reusing it.<p>The language wasn&#x27;t fast, and the compiled files were a bit bloated. In time I moved to something else. But I still miss the intimacy I had with the editor and the language. It&#x27;s like a first love, the one that got away.
qzncabout 9 years ago
There are various good options:<p>Scratch <a href="https:&#x2F;&#x2F;scratch.mit.edu&#x2F;" rel="nofollow">https:&#x2F;&#x2F;scratch.mit.edu&#x2F;</a><p>CodinGame <a href="https:&#x2F;&#x2F;www.codingame.com&#x2F;games" rel="nofollow">https:&#x2F;&#x2F;www.codingame.com&#x2F;games</a><p>Squeak <a href="http:&#x2F;&#x2F;squeak.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;squeak.org&#x2F;</a><p>Logo (even in browser <a href="https:&#x2F;&#x2F;turtleacademy.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;turtleacademy.com&#x2F;</a>)<p>JsFiddle if you want to go for somewhat longer javascript <a href="https:&#x2F;&#x2F;jsfiddle.net&#x2F;" rel="nofollow">https:&#x2F;&#x2F;jsfiddle.net&#x2F;</a><p>Alice <a href="http:&#x2F;&#x2F;www.alice.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.alice.org&#x2F;</a>
brianpgordonabout 9 years ago
I think TI-BASIC is a strong competitor. A free-form keyboard can be overwhelming and the different things you can do aren&#x27;t very discoverable. In the TI-BASIC environment on the TI-82&#x2F;83&#x2F;83+&#x2F;84+, the keywords (Goto, While, Disp, ClrHome, etc) are tokens which must be inserted into the program by selecting them from menus. So you get a rich set of powerful commands (easily in the hundreds, even for the simple TI-84, and many more for the TI-89) but they&#x27;re all discoverable through the normal menus and through the catalog menu. You start out knowing a few commands like Lbl and Goto, but through the process of scrolling over unknown commands (like maybe For or While in the control flow menu) repeatedly you start to wonder what they do, and then try them out, until you know what everything does and you can write the cleanest possible code. It&#x27;s a wonderful way to learn.<p>And it supports both a text mode (with a &quot;write string at grid position&quot; operation for easy game making - text mode is a must on the CPU-starved TI-84+) and a graphical mode, with tons of stuff to do in both. For example, in high school I had a program that accepted a string of &quot;DNA&quot; and used it to repeatedly call the built-in pattern-drawing command with different arguments, producing a mosaic of overlapping patterns, so that each different input string produced a different final pattern. It&#x27;s like 4 lines of code and kept me endlessly entertained in class.<p>And that brings me to its greatest advantage- its presence in the math classroom. In middle school and high school, math for a gifted student is boring as death, and you&#x27;ve got a little BASIC interpreter sitting right there on your desk. You can transform hundreds of wasted hours a year into productive learning time.
评论 #11639044 未加载
transfireabout 9 years ago
To be honest I don&#x27;t think modern languages are all they are cracked up to be. Back in the day, very large and complex systems were managed quite well with languages like QBASIC, COBOL and FORTRAN, and ran rock solid for decades (hell, a few are still operational). But today, programming is such a polyglotic mess and conceptual navel-gazing nightmare -- it really is no wonder that so many projects end in failure.
评论 #11638002 未加载
评论 #11640022 未加载
评论 #11637975 未加载
equalarrowabout 9 years ago
Author is spot on. My son and daughter have about 2 and 4 years to go before I probably intro them to programming. When I do, it&#x27;s going to be a C64 all the way. And a real one. With a real old school monitor and a luxury a didn&#x27;t have for about a year or two: a floppy drive.<p>I&#x27;ve get a lot of the start with JS comments. But that would be the last thing I do. As a child learning, you need to remove the complexities and distractions of a modern system. Windows, browsers, edit js in one app, run it in another, use a mouse, open the js debug console, etc. Just wayyy to much stuff for a young mind to try to focus on.<p>Don&#x27;t get me wrong, they probably _can_ learn js, but after decades of programming in all kinds of different languages, just because js is the latest fashion, doesn&#x27;t mean I&#x27;d every try to teach it to a kid. No way.<p>BASIC, on the other hand, was created _for beginners_. I learned A LOT over the years when I was using BASIC. I also had magazines (COMPUTE! &amp; Gazette) and books that helped immensely. I was just thinking yesterday actually, that it was awesome having the C64 Programmers Ref Guide that had the machine schematics and port pin outs in it!! You&#x27;ll never get that for a Mac or iPhone nowadays (and these sorts of things usually only show up on &#x27;hacker&#x27; sites). This was a book put you closer to the hardware so you could more easily understand what PEEK and POKE really did. :D<p>I&#x27;m _really_ looking forward to the instruction days. The C64 was so popular for a reason: it was powerful &amp; simple. <i>This</i> is how I want to introduce my kids to programming. They&#x27;ll figure out Ruby, JS, C and things (maybe 8-bit assembly too!) later.<p>I loved my C64 (still do) and I hope that will rub off on them. Can&#x27;t wait.
评论 #11639523 未加载
评论 #11645296 未加载
评论 #11640032 未加载
mrbillabout 9 years ago
Don&#x27;t forget Ahl&#x27;s &quot;101 BASIC Computer Games&quot;!<p>I spent hours and hours making stuff written for DEC&#x2F;MS-BASIC work on my TI-99&#x2F;4A with its limited language implementation..<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;BASIC_Computer_Games" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;BASIC_Computer_Games</a><p>PDF: <a href="http:&#x2F;&#x2F;bitsavers.trailing-edge.com&#x2F;pdf&#x2F;dec&#x2F;_Books&#x2F;101_BASIC_Computer_Games_Mar75.pdf" rel="nofollow">http:&#x2F;&#x2F;bitsavers.trailing-edge.com&#x2F;pdf&#x2F;dec&#x2F;_Books&#x2F;101_BASIC_...</a><p>I had the later yellow-cover edition myself.
ender672about 9 years ago
QBasic runs flawlessly in your browser at Internet Archive - <a href="https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;msdos_qbasic_megapack" rel="nofollow">https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;msdos_qbasic_megapack</a>
cesarbsabout 9 years ago
QBasic was my first exposure to programming, when I was 9 years old. Fond memories. Despite it having what today I consider terrible syntax, it made programming extremely approachable. After a quick &quot;hello, world&quot; intro from an IT guy at my mom&#x27;s office, I spent countless hours reading the help pages and learning the commands. Sometimes I wish programming could be as simple again.
drhayes9about 9 years ago
I learned to program on an Apple ][, where the programming environment was always a CTRL+RESET away. BASIC was great. I carefully typed long programs that I found in the back of computer magazines, broke them by changing stuff, and fiddled around endlessly. Those incantations are still in my fingers (CALL -3116 for a nice visual effect, PEEK -16384 for the current keyboard key, VTAB and HTAB to get around the screen, etc).<p>I volunteer at a local Coder Dojo and there&#x27;s nothing to give these kids who want to fiddle around like that. Scratch is the closest I&#x27;ve found (with the bonus of not having to necessarily be able to read or type), but it&#x27;s still cluttered with logins and passwords... and, being a GUI, it suffers when the kid&#x27;s computer doesn&#x27;t have a big enough screen to manage the complexity they eventually create. It&#x27;s a shame. I tell kids who&#x27;ve grown tired of Scratch that they can &quot;graduate&quot; to Stencyl, a game engine that uses a similar visual programming metaphor but lets you drop down to the Haxe beneath. It also compiles natively to desktop or mobile, so that&#x27;s cool too.<p>Python, ruby, and JS are all really close to the ideal &quot;type and go&quot; environments, but they&#x27;re also littered with speedbumps. Installing packages and keeping the environment sane are difficult enough for some professional engineers, let alone kids who just want to mess around and make cool stuff.<p>The woman who started my local Coder Dojo got her son started with his own Linux computer at a really young age and he&#x27;s a whiz at it, so maybe there&#x27;s no real problem here and I&#x27;m just underestimating the ingenuity of these kids. They&#x27;ll get it done if they really want it, I guess?<p>EDIT: Kinda apropos, but check this out! <a href="http:&#x2F;&#x2F;beagle.applearchives.com&#x2F;the_posters&#x2F;" rel="nofollow">http:&#x2F;&#x2F;beagle.applearchives.com&#x2F;the_posters&#x2F;</a> I would&#x27;ve killed for these posters when I was a kid.
评论 #11636863 未加载
dkopiabout 9 years ago
QBasic was a truly incredible way to start programming. Today I&#x27;d probably recommend python with pygame, and especially the book inventing computer games with python: <a href="https:&#x2F;&#x2F;inventwithpython.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;inventwithpython.com&#x2F;</a>
educarabout 9 years ago
There is another ritual after you start with QBasic. Your open gorilla.bas and nibbles.bas.<p>Seriously, play gorilla.bas. It&#x27;s one of the best games I have played.
评论 #11638176 未加载
popmilo2about 9 years ago
Nice to hear about such success with a kid learning coding ! All the best!<p>There is newer, multi platform implementation called QB64 <a href="http:&#x2F;&#x2F;www.qb64.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.qb64.net&#x2F;</a>
评论 #11639983 未加载
simonhabout 9 years ago
I started with MBasic on a Superbrain running CP&#x2F;M, a very early ancestor of GWBasic and QBasic.<p>I wouldn&#x27;t start kids on Basic now. My daughter is learning Simple Basic at school, but we use Macs at home and the only way to run it is in a Silverlight container. All the variations of Basic I know of are too restricted. Don&#x27;t get me wrong, Basic back in the day was is a fine learning tool. The fact you could PEEK and POKE memory and DIM arrays actually taught you low level programming and system concepts that are abstracted away by modern languages and environments. Those early Basics were truly suspended part way between high level languages and machine code.<p>I appreciate the advantages of JavaScript, but also it&#x27;s flaws. Learning to pop up alert messages is a cool hack, but beyond that it gets messy fast.<p>Scratch is fantastic. It&#x27;s cross platform, can run in the browser and specifically designed to be very visual and intuitive. You can watch the code run. Brilliant.<p>Beyond that though a learning language needs more. It needs to be cross platform, support both procedural and object oriented forms and be capable of text, graphics, UI and web programming. For me that means Python. It helps that I&#x27;ve got pythonista on my iPad and phone. On the desktop there&#x27;s also Jupyter notebook.<p>At the end of the day though, teach what you know and what you enjoy. All the technical arguments in the world can&#x27;t beat passion.
dunkelheitabout 9 years ago
QBasic is what got me started with programming more than 20 years ago. The thrill of writing a program that draws a rectangle, than erases it and draws slightly to the left and then watching the rectangle zoom across the screen hasn&#x27;t been surpassed ever since.<p>If you want to teach a visual person like myself programming and the programming environment requires more than one statement to put something on the screen (including import statements), it has already lost to QBasic.
vancan1tyabout 9 years ago
I think BASIC! for android by Paul Laughton is a modern good modern alternative for an entry to programming. It comes with good documentation and examples, and is a classic basic-type language. link: <a href="https:&#x2F;&#x2F;play.google.com&#x2F;store&#x2F;apps&#x2F;details?id=com.rfo.basic&amp;hl=en" rel="nofollow">https:&#x2F;&#x2F;play.google.com&#x2F;store&#x2F;apps&#x2F;details?id=com.rfo.basic&amp;...</a><p>Once a kid might want to move up from that to solve perhaps more practical problems using PCs, I think a combination of bash (including basic usage of rsync, crontab, grep, sed, find, wget, ssh,...) and maybe VBA&#x2F;Libreoffice Basic can take you a long way. (You can easily make nice little form&#x2F;button based applications by dragging and dropping in the office suites. Also check out <a href="http:&#x2F;&#x2F;excelunusual.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;excelunusual.com&#x2F;</a> for some inspiration on things you can do in VBA which I would not have thought practical!).
jherikoabout 9 years ago
&lt;3<p>I learned code from QBasic and its help because books were in short supply at the library and there was no internet for me.<p>As much as Xcode or VS or Qt creator are great tools they seriously lack in that regard, as do most modern development environments. QBasic is very easy to learn and easy to use - and trying to solve hard problems with it requires some genuine skill and ability...
mayreckabout 9 years ago
Honestly this thread put a tear into my eyes....I was literally your kid like 15 years ago when i first discovered quick basic on my own as a 10 year old. I feel this so deeply. It was much easier to learn that than anything else I&#x27;ve ever learned since.
cyberfartabout 9 years ago
I remember doing the same. Starting with a Qbasic book I had bought with the little money I had, I was already writing mud-like games and calculating prime numbers after only an hour. Though I wasn&#x27;t lucky enough to have done it at that age. Lucky kid :)
ccozanabout 9 years ago
Ha! Who didn&#x27;t hack the gorilla throwing bananas? :)<p>I learned to programm with BASIC [0] before on a Spectrum ZX clone, however that GORILLA.BAS [1] was a good programming lesson. I remember even now, after 25 years, figuring out the algorithms and the parameters of the flying banana.<p>[0] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Sinclair_BASIC" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Sinclair_BASIC</a> [1] <a href="http:&#x2F;&#x2F;www.jefflewis.net&#x2F;archive&#x2F;programming&#x2F;gorilla.bas" rel="nofollow">http:&#x2F;&#x2F;www.jefflewis.net&#x2F;archive&#x2F;programming&#x2F;gorilla.bas</a>
评论 #11637139 未加载
smilekzsabout 9 years ago
I am curious what&#x27;s there to stop a kid from starting a Jupyter notebook (or even Mathematica with all the FullSnakeCaseNames) and firing away? Sure it isn&#x27;t complex at least wrt. the basics (pun intended)?
评论 #11637578 未加载
评论 #11637366 未加载
评论 #11637369 未加载
thomabout 9 years ago
It&#x27;s mentioned in the article, but Microsoft have a nice BASIC environment called SmallBasic[0]. It&#x27;s got a decent editor with IntelliSense, there&#x27;s a community with a bunch of programs shared online[1] and it can interface with .NET code so you can extend it with whatever shenanigans your kids might require.<p>[0] <a href="http:&#x2F;&#x2F;smallbasic.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;smallbasic.com&#x2F;</a> [1] <a href="http:&#x2F;&#x2F;smallbasic.com&#x2F;program&#x2F;?TETRIS" rel="nofollow">http:&#x2F;&#x2F;smallbasic.com&#x2F;program&#x2F;?TETRIS</a>
carlmcqueenabout 9 years ago
I learned to program on Texas Instruments calculators in the same form as this seven year old&#x27;s application, I made really elaborate choose your own adventure games with if statements.
评论 #11637259 未加载
mosburgerabout 9 years ago
GW-BASIC (QBasic&#x27;s kinda sorta ancestor) was my first programming language (well, other than Logo I suppose). I still have a soft spot for it and might not be a programmer today if I hadn&#x27;t first learned on such an easy-to-grok-for-11-year-old-me language.<p>I&#x27;ve toyed with writing my own GW-BASIC interpreter for yucks (because I&#x27;ve never written an interpreter) but never gotten around to it. Perhaps I should... I&#x27;ve been meaning to learn Rust, maybe that&#x27;d be a good excuse?
JustSomeNobodyabout 9 years ago
Huge props to Noah for keeping an actual paper developers journal!
partisanabout 9 years ago
This made me smile. I remember trying to learn coding at 6 or 7 from my Tandy 56K Basic manual. I didn&#x27;t get it but I tried all the same. It would have been cool to have someone there to help me understand.<p>It&#x27;s a fortunate thing to have common interests with your child. I can&#x27;t wait to have my daughters show even the slightest interest in coding. They are toddlers, so I have to just wait.
评论 #11636793 未加载
partycoderabout 9 years ago
As a person who taught himself programming (and a bit of English) with QBasic, and also have known many people that did the same. I agree with this article.<p>But you have other BASICs such as the one for computers such as the ZX Spectrum.<p>Python in my opinion can also be used to teach programming, since many high level constructs are optional and syntax is simple.
aurelian15about 9 years ago
I couldn&#x27;t agree more. I started programming with QBasic -- basically teaching myself on my own -- when I was seven. And it worked. I was programming little interactive stories, drew crazy stuff on the screen, wrote small games. I was happy with it. The only things I was always curious about (and know one I knew back then could help me with) was on how to access the computer&#x27;s mouse and the sound blaster. With my limited knowledge I never got that working until I switched to Delphi and Windows four years later.<p>One of the best things I remember about QBasic is the help system (also referred to in the article). This where I found everything I wanted to know, including examples, about the language. I believe that&#x27;s one of the reasons why I&#x27;m still more patient when it comes to studying software documentation compared to the average programmer.
edtechdevabout 9 years ago
Try to teach your kids programming this way, and you are more than likely only going to turn them off programming for many years. There is actual research on teaching kids how to code.<p>Personally, I would start with code.org or Scratch. If you have an ipad, there is Hopscotch. Here is a huge list of more tools to teach young kids programming: <a href="http:&#x2F;&#x2F;bit.ly&#x2F;ortonacode" rel="nofollow">http:&#x2F;&#x2F;bit.ly&#x2F;ortonacode</a><p>But if you start with basic or python, you&#x27;ll be teaching them that coding is basically similar to solving boring puzzles - not of any real use, and not as fun as videogames.<p>Start instead with something they would find motivating or useful, not you. Making a game, or creating a useful little app&#x2F;tool that solves some problem they think is important, etc.
评论 #11638505 未加载
评论 #11638393 未加载
评论 #11638793 未加载
jay_kyburzabout 9 years ago
I&#x27;m a bit late to the party on this one but if you are looking for a great way for kids to learn basic and make video games, check out <a href="http:&#x2F;&#x2F;www.blitzbasic.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.blitzbasic.com&#x2F;</a>
agumonkeyabout 9 years ago
Last month I reconnected with QBasic, was surprised about the live formatter and linter. And the pseudo module handling. Each function being seen as a separate entity.<p>Sorry MS, I didn&#x27;t understand how valuable it was.
jordan0dayabout 9 years ago
One of my disappointments with the original Raspberry Pi was that I felt that its genesis story was from people whose early experience with programming came from Apple II&#x27;s and QBASIC. It was pitched as a way to expose kids today to that same kind of low-overhead, get-in-and-start-making-things-happen experience some of us had 25 years ago.<p>Imagine my disappointment when the Pi&#x27;s getting started experience was &quot;Boot into a graphical window manager, open up the Python IDE, start writing Python...&quot;
评论 #11641467 未加载
z3t4about 9 years ago
I think Qbasic was so fun because it was easy do do graphics. Doing graphics in any other language is just insanely hard as you have to understand <i>university</i> grade math.
someone_about 9 years ago
I agree- we should also have just as easy of a way to start off with drawing.<p>Why do we need to install 50 frameworks, tell a window how to spawn, basically create a universe just to start experimenting with creating computer graphics? It&#x27;s a (Width x Height) matrix of RGB values-- why can&#x27;t we get a simple way to create a simple 100x100 box for kids to draw in?<p>No reason your son couldn&#x27;t tell a screen to print colored pixels in RGB value with the right syntax.
评论 #11637847 未加载
评论 #11637396 未加载
demarqabout 9 years ago
I learnt Qbasic not that long ago it was my first taste of programming. However back then I couldn&#x27;t afford a computer, so I had this Qbasic book and just had to &#x27;imagine&#x27; how my programs run.<p>Fast forward 13ish years and I own my own mac and know more programming languages than most of my workmates :) Although now I try and specialize in just three Rust, Javascript and Python to avoid being the &#x27;master of none&#x27;.
vmorgulisabout 9 years ago
BASIC-256 is a good alternative to QBasic: <a href="http:&#x2F;&#x2F;www.basic256.org&#x2F;index_en" rel="nofollow">http:&#x2F;&#x2F;www.basic256.org&#x2F;index_en</a><p>The voice synthesis with the &quot;say&quot; command is impressive: <a href="http:&#x2F;&#x2F;doc.basic256.org&#x2F;doku.php?id=en:say" rel="nofollow">http:&#x2F;&#x2F;doc.basic256.org&#x2F;doku.php?id=en:say</a><p>Say &quot;Hello, World&quot; (instead of Print...)
nxzeroabout 9 years ago
Key to get people coding, doesn&#x27;t matter what the language, platform, etc. is in my opinion. Think I&#x27;ve worked in more than 20 or 30 languages to help someone new to programming write some programs. Each language has it own set of strengths and weaknesses, but normally my experience is that the person having a choice, is really important to them sticking with it.
ajucabout 9 years ago
I introduced my 10 years old cousin to turbo pascal when we met a few years ago. It took less than 3 hours to download it, install (also the patches to run on modern computer), make a game where you can move a circle around the screen, and teach him how can he modify it and how basic syntax works.<p>There&#x27;s nothing like that in modern programming. Python comes close, but is too magical.
评论 #11641189 未加载
eric001about 9 years ago
Wow... good job man. My first experience with programming was QBasic, and that was about 16 years ago. I only did it for a couple of weeks but when I picked up on programming several years later as a young adult, it all came back to me - assigning variables from user inputs, printing on screen, if then else, all the basics. Good stuff!
ErikAugustabout 9 years ago
That is awesome!<p>It is not surprising that Noah&#x27;s desire to program comes from his desire to make games. That&#x27;s where I got my start, with QBASIC ~20 years ago.<p>Before that, I remember wanting to take a Entenmann&#x27;s Donut box and put action figures on sticks to make my own analog fighting game.<p>How many of you got into programming because of a desire to make games?
agentgtabout 9 years ago
I think Racket comes close but is still a little more adult.<p>I remember going to GaTech early 2000 and there was a teacher named Guzdial pushing Squeek like it was gods gift to children and humanity. There is nothing wrong with the language but I have yet to see kids use it or like it. I have seen high school kids use racket though.
rbanffyabout 9 years ago
Who&#x27;d a thought thirty years ago we&#x27;d all be sittin&#x27; here drinking Chateau de Chassilier wine?
epicmellonabout 9 years ago
Oh man I am having a nostalgia heart attack right now. I remember coding a &quot;guy shooting falling aliens from the bottom of the screen&quot; game and hilariously having the aliens move not only through a timer but ALSO when you moved since there was no threading. Classic.
darkstalkerabout 9 years ago
I also started with BASIC. First was Commodore BASIC and then QBasic. I remember there was also LOGO, one of the original didactic languages. IMHO, if you want a simple language in the same spirit as BASIC, the closest you can find is Lua.
dudulabout 9 years ago
My post won&#x27;t add much to the discussion, but QBasic was also my very first language. I was a little older than Noah when I first used it (I think I was ~12&#x2F;13) and I still remember having so much fun with it :)
mark-rabout 9 years ago
So who will do an equivalent of QBasic for the web? It seems that the language is simple enough to be implemented entirely in Javascript. Then you wouldn&#x27;t have to deal with the hassle of installing.
评论 #11640816 未加载
thedaemonabout 9 years ago
I remember learning to program with QBasic as well. It was so much fun as a kid. I painstakingly drew out full scenes with line and circle commands for a small text based adventure game. Good times.
artur_maklyabout 9 years ago
im getting my toddler started with this RL code. <a href="http:&#x2F;&#x2F;www.primotoys.com&#x2F;cubetto" rel="nofollow">http:&#x2F;&#x2F;www.primotoys.com&#x2F;cubetto</a>
kazinatorabout 9 years ago
I tried (+ 2 2) on a four-year-old once.<p>Instant, complete acceptance; no complaints about parentheses or lack of infix or anything.
评论 #11640728 未加载
mgalkaabout 9 years ago
“OMG please don’t teach him GOTOs!!”<p>GOTOs are easy to abuse, but they would really come in handy sometimes.
pabsferrariabout 9 years ago
My first language too! haha PRINT &quot;Welcome to the club Noah!&quot;<p>Great insights for education
liveoneggsabout 9 years ago
of course: <a href="http:&#x2F;&#x2F;www.nicholson.com&#x2F;rhn&#x2F;basic&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.nicholson.com&#x2F;rhn&#x2F;basic&#x2F;</a> chipmunk basic
jeremywenabout 9 years ago
sonic pi was created for this very purpose - to teach kids to code - <a href="http:&#x2F;&#x2F;sonic-pi.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;sonic-pi.net&#x2F;</a>
adamwong246about 9 years ago
Man, I wish I&#x27;d kept some of my .bas files.
jedateachabout 9 years ago
:&#x27;) My first code was written in QBasic
spriggan3about 9 years ago
Rebol ?
评论 #11655265 未加载
nhlx2about 9 years ago
Emacs, then elisp perhaps?
EugeneOZabout 9 years ago
My first language too :)
username3about 9 years ago
QBASIC.js<p>QBASICScript<p>QBASIC in a browser
评论 #11638676 未加载
fit2ruleabout 9 years ago
My kids have a great time with PICO8:<p><a href="http:&#x2F;&#x2F;www.lexaloffle.com&#x2F;pico-8.php" rel="nofollow">http:&#x2F;&#x2F;www.lexaloffle.com&#x2F;pico-8.php</a><p>The fact that everything you need to build a game is built-in is very key to their enjoyment - they don&#x27;t need to deal with any operating system in this environment, and have (almost) everything they need to be self-contained developers. (Built-in docs would be nice..)<p>Its interesting, having watched the evolution of PICO8, to see the mass explosion in creativity around the scene, and I have observed a key to its success - by putting constraints on what you can do and how you can do it, while also filling in the inner space of those constraints with <i>excellent</i> tooling, you give people freedom - within a limit - to create amazing things that push those limits.<p>You can read more about PICO8 (if you&#x27;re interested) in this wonderful &#x27;zine, which reflects the culture of the scene very well:<p><a href="http:&#x2F;&#x2F;pico8fanzine.bigcartel.com" rel="nofollow">http:&#x2F;&#x2F;pico8fanzine.bigcartel.com</a><p>Another big hit is LOAD81, from antirez:<p><a href="http:&#x2F;&#x2F;github.com&#x2F;antirez&#x2F;load81" rel="nofollow">http:&#x2F;&#x2F;github.com&#x2F;antirez&#x2F;load81</a><p>This, I think, is better than QBasic, in that it has all the same functionality in the IDE, but teaches them a better language: Lua. Plus you can install it almost everywhere you can&#x27;t install QBasic.<p>Anyway, in case any other HN&#x27;er out there is interested in doing stuff like this with their kids, give PICO8 and LOAD81 a try .. they&#x27;re both, in my opinion, great ways to get young minds programming ..
guard-of-terraabout 9 years ago
I don&#x27;t think that QBasic is so bad as procedural language.<p>All the primitives are there and I&#x27;ve never written any code with much GOTOs in them. Just did not feel the need even when I was 10 years old.<p>What this article clearly lacks is<p><pre><code> SCREEN 13 </code></pre> Seriously, unsurpassed easiness of programmable graphics. Even by javascript, which is otherwise better for teaching.
评论 #11637377 未加载
评论 #11637770 未加载
campermanabout 9 years ago
Wonderful post. I did something similar for my younger daughter and one of her friends with Lua and Love2d. In just a couple of hours they had written a Breakout clone and also understood every line of code. Very satisfying.
imakesnowflakesabout 9 years ago
I think kids should not be actively encouraged to learn to code early.<p>You can learn to code any time, when you are older. As far as I can see, there is no advantage in learning to code early.<p>But there are skills you need to pick up, and experience that you can only have when you are a kid. Let us encourage to kids to do those stuff..
bitJerichoabout 9 years ago
The Monkey X programming language is a great alternative to qbasic. It&#x27;s simple to install, cross platform, procedural, OOP, and incredibly powerful the more you get to know it.
Annatarabout 9 years ago
BASIC:<p>an acronym for Beginner&#x27;s All-purpose Symbolic Instruction Code.<p>Yep, I&#x27;d say that checks out.
thrownearabout 9 years ago
Less about Qbasic and why it is still the best and more about a parent bragging about their kid doing stuff with computers so early.<p>I mean, just make the title &quot;my kid wrote a text game in Qbasic&quot; and do your bragging there. No problem..