Hacker News new | past | comments | ask | show | jobs | submit login
Microsoft Small Basic (smallbasic.com)
132 points by Tomte on July 31, 2015 | hide | past | favorite | 87 comments



Author here. I made Small Basic when I was in MS in 2008. My goal then was to remove programming language ceremony (imports, defs, etc.) and get to instant gratification.

There are several others that are keeping it alive with a well maintained blog (https://social.msdn.microsoft.com/Forums/en-US/home?forum=sm...) and a friendly forum that welcomes programmers of all age and expertise.

There's even a strong community in a Facebook group (https://www.facebook.com/groups/smallbasic/)

PS: I need to find a better host for the website.


This project makes me really happy. My first programming experience was modifying numbers I found in GORILLAS.BAS to see what would happen. I didn't know I wanted to learn to program or even what that meant. But the only way I knew to play the game was to open the source file and then run it, which made me curious. I couldn't understand it, but it wasn't unintelligible, either. Being a single text file without a lot of programming ceremony was probably a big part of that. You just start reading top to bottom and that's exactly how it's executing at the start of the file (before you get to subroutines of course).


That's my story, too. The only difference is to edit the BAS I would need to restart the computer: I didn't have a VGA card so I ran a TSR VGA emulator (called 'phix'). It broke the QBasic editor. So even back then I was learning about the high cost of changes.

I eventually cleared out the BAS due to a mistake I made while working with the editor that I could not see.


Hey Vijaye, we definitely miss you!

You might be interested in my new work which has a very SmallBasic feel to it:

http://research.microsoft.com/en-us/um/people/smcdirm/apx/in...


Since you're the creator, I'd like to ask you, why BASIC and not Smalltalk? You mention a desire to eschew boilerplate and provide instant gratification--doesn't Smalltalk provide that as well if not better than BASIC?


This was a subjective decision. While I agree it's less succinct, syntactically, I feel Basic reads easier than Smalltalk - especially to someone with no programming exposure.


But that being the case, wouldn't Pascal have been even friendly to someone with no programming exposure? Of all the languages I've used, I think Pascal reads the easiest.


Smalltalk doesn't translate as cleanly between common mathematical notation and code.

Variants of BASIC are among the oldest, most minimal languages: https://en.wikipedia.org/wiki/Tiny_BASIC


Variants of BASIC are also unstructured and teach bad habits, such as the construction of goto-laden messes. Smalltalk by contrast is both simple (for example, having only three levels of precedence) yet also a modern, pure OO language coupled with a graphical, live programming environment.


Unstructured code can actually be easier for beginners to learn. There's no magical implicit context in a loop, just a few variables they have direct control over, and an instruction pointer they control with GOTO.

Once a beginner has written a few small programs with GOTO, they'll start to feel the tedium and appreciate the benefits of structural abstractions, despite the extra things they have to learn.

You can make the same argument for writing code with simple functions and records before object oriented code -- the power of the abstraction is easier to explain once they've run into the rougher points of not having objects.

Absolute beginners are confused by polymorphism and loop constructs because they don't understand the problems the abstractions solve.


Are you writing this from the year 1979?

I have terrible news for you: John Lennon will be dead next year, and Altair BASIC author Bill Gates III is on track to become the richest man in the world.


Scaevolus touted as an advantage the minimalism of variants of BASIC over Smalltalk and linked to such a variant lacking structured programming constructs like functions. I pointed out the flaws of that and certain other variants and ended up at -4 as a consequence.

Someone should really make a comprehensive list of programming languages beyond reproach here on HN so users don't inadvertently anger the mob. Obviously Haskell would be at the top, but I never would have guessed BASIC would make the cut.


> Someone should really make a comprehensive list of programming languages beyond reproach here on HN so users don't inadvertently anger the mob. Obviously Haskell would be at the top

I don't think you'll get any arguments from any Haskeller about the record system being annoying, laziness being hard to learn about at first, or it being a more difficult (but not as difficult as people think) language to learn.

Perhaps I'm biased, but HN seems to cargo cult a lot less than other popular communities.


You got down voted because your comment read like you were tarnishing all variants of BASIC with the same brush when in fact many variants do promote structured programming.


Well, if my nephews ever want to take on programming this might be a good place to start. Simple syntax, simple concepts, even the posibility of third-party libraries? Sounds interesting for teaching the young (and not so young too, but at that I'd prefer Python because of it's easier "real world usage" -- this does seem a bit too oriented at "toy programming").


I think that to make a kid interested in programming, instant visual feedback is important. That is, writing (simple) games is about the best start.

For little kids, MIT Scratch should be good.

Python + pygame, or Scheme/Racket with its simple game-development features, or even Javascript + any 2D or 3D visualization library should hook an older kid. All of these have simple and compact syntax (JS is worse in this regard, of course).


Hmm... nah, go straight to Haskell ;) Just imagine them in 5th grade trying to explain Monads to their friends.


former friends. Seriously, you trying to get those kid beat up on the playground? Cause that is how kids get beat up on the playground.


Yeah, it would be interesting to learn about pure functions and referential transparency before basic algebra.


I'm not sure if this is sarcasm, but it's not clear to me that it's not actually a potentially good idea, in two ways.

The first, important, way is that a tool that offers solid theoretical foundations does not (necessarily) require those foundations. You mention algebra, for example, and it's fair to assume that most school students (and probably their teachers!) don't really appreciate the theoretical grounding of algebra—but they can still hopefully use it with proficiency. In the same way, pure functions and referential transparency need only be difficult to apprehend if you insist on investigating their theoretical foundations; they can just be the way things work, and, if this is a first programming language, then there are no habits regarding mutable state to unlearn before being able to handle immutability.

The second is that, as nine_k (https://news.ycombinator.com/item?id=9982600) points out, learning these concepts before algebra could make understanding algebra itself easier. There are deeply mathematical ideas in the foundations of most programming, even if they are (and even when they should be) hidden, and learning these ideas can help one to come to grips with abstraction in a context that encourages play and experimentation, unlike (unfortunately) the usual mathematics classroom.


Was it the "Yeah" that made the tone seem sarcastic? I didn't really mean it that way, I genuinely do think it would be interesting to see what happens. Sometimes I wish I had been taught math from a more theoretical perspective. When I was younger, math seemed really boring, just problems to solve; how much money is left after this series of transactions, what is the area of this shape, etc. When I did learn simple algebra, it only seemed useful for those kinds of problems.

I've only found mathematics really interesting within the past few years, realizing how useful it is for creative things, like making music and art, or understanding programming at a higher level. If I had learned about functions in a more interactive way, maybe being able to create art on a computer screen, or write up physics systems in games, I think I would have been fascinated, and maybe the concepts would have stuck.


> Was it the "Yeah" that made the tone seem sarcastic?

I honestly wasn't sure, so I tried not to assume. Subtleties of tone are easily lost on the Internet; thank you for taking the time to clarify.

> I've only found mathematics really interesting within the past few years, realizing how useful it is for creative things, like making music and art, or understanding programming at a higher level.

While I am deeply in sympathy with this point of view, and agree with it to some extent, I think that it comes dangerously close to the monad-tutorial fallacy (https://byorgey.wordpress.com/2009/01/12/abstraction-intuiti...). As a teacher, I have four reactions to "why couldn't I have been taught this way?":

1. First and foremost, this is true. Course structure is often not set up to reward creativity and exploration, and that is a real shame. However …

2. I have heard students complain about not being taught in a way that I know is common pedagogical practice. That does not prove (they could just have been taught by bad teachers), but leads me to suspect, that sometimes students don't recognise (or don't want to see: "just show me the formulas!") alternate approaches when they are presented with them.

3. In many cases, the 'aha!' moment now couldn't have been an 'aha!' moment then; it is only because of the long struggle, and the additional learning and maturity, necessarily beginning with the confusion and uncertainty of yesterday, that everything can suddenly click today.

4. Even if I knew today the exact thing that would cause that 'aha!' moment for you, it is almost guaranteed that it wouldn't cause the same reaction for (many) others. The mission of a teacher is to serve the class as a whole; it is simply impossible, in terms of time and (let's be frank!) the teacher's knowledge, to explore for each student the application that will serve him or her best. This is not to say that some more applications and creative exploration wouldn't be welcome—they absolutely would—but more that, often, the best that can be done is to provide you with the basic tools that will allow you to explore and find the 'aha!' moment on your own, probably outside of the classroom.


It seems very difficult to come up with aath curriculum that works for everyone. I agree that a creative approach might not be as practical as I imagine it, I've definitely suffered from the "aha, monads are burritos, why hasn't anybody told me this" fallacy before.

I keep hearing (mostly negative) things about the Common Core program in the US, I wonder what it's really like. Creative new ways of teaching always sound good on paper, but I hear so many parents complain about the way their kids are being taught. I wonder if most of those complaints are warranted, or if the new style of questions just take getting used to.


It would be easy to understand algebra in school.


It certainly does! Having "programmed" since I was ~5, the concept of variables and that level of indirection was second nature. I was truly astounded when other kids had trouble.

Even cooler, these days, is Dragon Box. It teaches kids symbolic manipulation via a cute and fun game. Starts off with little creatures you move around, then simply changing the drawings from creatures to numbers and letters makes a seamless transition.


Aren't they two sides of the same coin?


There has been a significant investment in creating resources for teaching programming with SmallBasic; these wind up being more important than the tool (or even choice of language) itself!


Nitpick: *its


I get a 503 Service Unavailable ?!

Anyways, it probably did not change much in the last few days:

https://web.archive.org/web/20150727212504/http://smallbasic...

Its good this is (still ?) available. But I would prefer my friends or kids to learn in a more platform independent way. Like Python.


I had the same problem. The site was overloaded.


Nitpick: *it's


Have you ever looked up the definition of nitpick? I just did on a few different services. It's not flattering, and provides a good narrative for the downvotes.


Thanks for the explanation, I am not a native English speaker. According to https://en.wiktionary.org/wiki/nitpick, the literal meaning is exactly what I meant: I was doing a small correction without much importance. I did not know it was negatively connoted.


How negative it's interpreted is likely related to view relevant it is and how much it detracts from the discussion. If that nitpick was a rider on a salient point, I doubt people would have downvoted.


That's why I wanted to keep it short, but still commented: it's a typo that is quite disturbing to the reader, especially non-native English speakers.


I like the idea of a lightweight programming language/environment dedicated to entry level learners. Perhaps what would also be interesting is having a basic-esq L/E for whatever programming paradigm that is useful (procedural, oop, functional, etc.)


Have you had a look at http://racket-lang.org/ and the associated books?


The "about" book implies that you should have some experience in programming language first. However, there still exists something called qbasic, however, to replace the old gwbasic from days of old.

EDIT: passage from book/site: "As far as programming skills, we assume you have had some exposure to computer programming using some language. If that language is Small Basic, great!! We offer two beginning Small Basic tutorials that could help you gain that exposure (see our website for details). But, if you’ve ever programmed in any language (Visual Basic, C, C++, C#, Java, J#, Ada, even FORTRAN), you should be able to follow what’s going on."

Link: http://social.technet.microsoft.com/wiki/contents/articles/1...


Isn't Javascript already suitable for that?


I have taught JS in higher education to complete beginners for three years now and have been very successful doing so. The secret is that you teach how to program, not how to JavaScript.

How to program is entirely different. It involves breaking down problems, creating abstractions for those problems, and turning them into code. And JavaScript is the one language that gets out of your way and lets you create programs that give new learners immediate feedback in a web browser.

Python and Ruby are great and all, but this is 2015 and new students are not that interested in black and white terminal applications. JS and HTML make it easy to make things closer to what they experience.

People my age learned to program while playing text adventure games. People now want to make mobile games, XBox games, or, at least, web things. And JS makes that easy.

In full disclosure, I don't much like JS. But I know it quite well.


I agree with this sentiment. We don't need new, simpler languages to teach programming concepts; we just need a better approach to teaching. We don't skip teaching the English language to toddlers in favor of a simpler one. I learn "cat" before "encyclopedia" and "hungry" before "enlightened". Programming languages have similar levels of abstraction so one can start with basics and allow the growth/understanding/grok to come from exploring the depths of abstraction inherent within.

I think the intention here is to somehow reach a point where the understanding is complete. As if one can say "There, now I understand all of [insert programming language]." and tick off some item on their career progression or bucket list. It's simply not like that.


"We don't skip teaching the English language to toddlers in favor of a simpler one."

Well, they used to for a bit in the UK

https://en.wikipedia.org/wiki/Initial_Teaching_Alphabet

as a result of which I still (5 decades later) sometimes have to stop and think about the spelling of quite routine words. So I agree - toddlers get a subset with a restricted vocabulary and simple grammar but one that is actually a subset of English.

Now - if I wanted to learn enough Javascript/CSS/Canvas stuff to make a series of 'drag-gable diagrams' for use on an interactive whiteboard (e.g. area of trapezium or pythagoras' result) where shall I start? I have the head first book and I sort of like their approach.


I think if you want people to enjoy what you build, JS is probably the quickest route. And I think you see it being used in "intro" programming courses to teach middle school or high school kids for that reason -- it quickly shows something visual where platforms, dependencies, and complex libs have made that harder elsewhere.

It's unfortunate it's a mess of a language and evolving too rapidly.

GWBasic, QBasic, and later TI-Basic were some of my first major forays into software, and I worry a bit when there's not a super easy way to get a game out there - however simple, because those are great gateway drugs.

For BASIC, this meant easy access to graphics modes, and some basic "BEEP" and noise playing ability.

These were all installed by default -- something that's not true of most programming tools today (well not entirely, OS X does have them! But not game/graphics libs), and having the source code to things like gorillas and snake helped. Many people could discover them completely by accident and boom, you're a programmer!

And that's all you need.

JS has a bit more learning curve.

OT: I think the glossy production of games these days may also be a negative factor, for those that know they can take millions of dollars, people trying to reproduce this result at a young age (or even as older hobbyists) may get disllusioned, give up, and not build something.

Just as DevOps culture has encouraged sharing how tools works at meetups, I wish this happened more for indie/homebrewed game development.


Javascript is a mess even programmers don't seem to understand at times, I never understood why people would want to teach it to people without any programming knowledge.


1) No installation, compilation, or packaging required

2) Runs essentially everywhere

3) Practical (lots of jobs, syntax is close to that of other important languages)

4) Easy to share your creations with friends (see 1 above)

5) Has REPL, garbage collection, closures, objects, recursion, anonymous functions... soon to have TCO.

6) Can be a compilation target for other languages

7) Good libraries for media, 3D graphics

8) Hard for a beginner to trash the machine (at least with browser-based JS, Node of course is a different story)

Yeah, it's pretty ugly in spots (it's certainly not as aesthetically pleasing as Scheme), but there are some real advantages there.


Not sure about the jobs (3) thing. It's a bad idea to focus on language popularity when starting out programming, because that changes rapidly. Javascript has only been really popular in the last few years. Who knows what will be popular five years from now.

Learn to program. Don't worry so much about the language.


I think JS is perfect choice for first language. Sure, there are many rough edges and dark corners. On the other hand, it's fun, it's safe to experiment (because it's sandboxed), very easy to deploy and show friends, and it's quite usable language for all sorts of applications.

There are more elegant languages (lisp, lua, scala, python) but they fall short at some of mentioned points.


I don't think it's a perfect choice. I think it's a choice that makes it the "least bad" of a range of languages for a given set of assumptions and compromises. If I could waive a magic wand and make the perfect beginner language, it would not be JavaScript.


Javascript is a mess even programmers don't seem to understand at times

I assure you, JavaScript programmers understand JavaScript. No need to project onto others.


Having interviewed quite a number of self-proclaimed JavaScript developers over the course of my career, my experience is that this is debatable at best.


As is C# and a host of others. Was just thinking specialization instead of generalization...


Smalltalk is that, at least for OO (though it does have lambda objects too).


I understand that a lot of programmers started with BASIC at a time when Smalltalk was out of reach, but now that we have free, open source distributions like Squeak and Pharo, what possible advantage could BASIC still offer, other than nostalgia?


this held my interest until I clicked play on one of the featured games and it wanted me to install silverlight.


The most useful thing about this site was that it reminded me I needed to uninstall Silverlight (dodged a bullet there!)

Edit: that came out wrong... I'm sure the site serves a legitimate purpose in education about programming, which is certainly useful. I guess I meant "the most useful thing for me".


It's nice Basic is still around. But SmileBasic is far, far more interesting: http://www.smileboom.com/product_nintendo3ds.php#01

Basic should be fun to learn, and being able to program the 3DS - with a nice library of game-ish sprites and sounds - gets you to fun a lot faster.


That does look pretty interesting. Here's the english-language page with examples: http://smilebasic.com/en/

Wish I had this when I learned to program :-)

Edit: and this hilarious video with english subtitles! https://www.youtube.com/watch?v=IgnAmLwtP6Q


Recently ran across this, another MS research project: https://www.touchdevelop.com/

It runs completely in the browser. There are some interesting things in the interface, stuff I had even been considering adding to my project, like a full on-screen keyboard with special keys.


It'll be the main dev environment for the micro:bit - https://www.touchdevelop.com/microbit


Is Small Basic a Microsoft Research project?


Well, it's an MS project. It was early, I didn't really think through my typing well.


QBasic was the first programming language I learned, so I was curious:

> How is it different from QBASIC?

> Unlike QBASIC, Small Basic is based on .Net and can consume (not produce) "Objects".

> It supports distinct Operations, Properties and Events.

> It doesn't have GOSUB :)

So this looks like an Object-Oriented QBasic. Awesome!


same here. My first run into with Basic was when I was 6 with an MSX. I was captivated by it but didn't understand what the white letters against the blue background meant. (MSX was ironically more popular in Asia than America where it was built by Microsoft). Pretty soon I got my own but it was a Korean version of MSX with only games on it. My friend had the MSX with keyboard and he showed me how to type stuff on it but we played games. It was interesting since I began to wonder how these games were made. Then later, I had an old intel 286 with monochrome monitor during the mid to late 90s. No internet, just a thick book about Qbasic from the public library, and me trying to create games on it. The thought of making my own video game was more than enough of an incentive to learn yet to this day I have not achieved it as I keep telling myself it's too hard, too much time.

Then came DarkBasic when I was reading PC Gamer in the late 90s and I got so excited about it. Downloaded it over the 56k modem (couple hundred megabytes) and fiddled around with 3d stuff. I learned how to make 3d models with animation in TrueSpace. But never got to make a complete game, just lot of new projects that never went anywhere. The most I got was creating a FPS level using sphere as the 'skybox'. It was so exciting to create my own world using photo textures and add lighting which gave it pretty good look. Gives me a huge shot of nostalgia just thinking about it and other early demos in DarkBasic. The UI was literally had a dark feel to it and that made it even cooler.

I've always thought that BASIC had a lot of things right in terms of being newbie friendly, I mean it was easy enough for a 10 year old so. It's what sparked my early interest in programming.

Even in the early 2000s we were using Visual Basic in high school, we could create a lot of neat things with it. Gui apps that just sorta worked. Anybody could pick it up and yes, students of all shapes and sizes were able to follow along and create things on their own. Everyone was coding.

Compare that with today with the myriad of frameworks and hundreds of different opinions happy to rip each other apart for the sake of ideology. A much less inviting community core (ex. stackoverflow) to new comers asking "dumb" questions and being punished. We seem to be going through a very chaotic period in the development world where Javascript is suddenly king and simplicity and user friendliness is shunned.


Wow I really wish I had gone to your high school. The late 1990s at my high school were just like the late 1980s - each classroom had a computer but we were all too busy doing assignments on paper to ever use it. I didn't get to see VB until college.

I used to write games and utilities on my TI-83. It was generally frowned upon, because teachers were afraid they would be used for cheating. Even writing your own program that would compute the Quadratic Equation was banned because it was unfair to students who couldn't.


I'm really just tripping on nostalgia right now but fuck it someone might appreciate these details so I'm going to continue. I also remember playing so many good stuff on the Ti-83. We used to download Bubble bobble and even 3d wolfenstein and just slack off. Students did cheat using the Ti-83 by putting formulas and cheat notes. I'm not sure why they didn't ban it. It was expensive at the time too and I lost or broke mine twice.

I'm not sure if all Canadian high schools were like ours but we had dedicated courses for learning everything from Qbasic to Maya. I was mad jealous of kids that were creating crazy 3d animations with 3ds max but the class was always filled very fast :(. Had I learned the stuff I might have become a computer graphics artist or something in that area. The course I took taught Visual Basic and then QBasic towards the end (I was like dayum I already know this at age 10, let me play web games while teacher is not looking). At lunch time computer graphics lab hosted Counter Strike (1.3 back then) where you paid a dollar to play for 45 minutes and sometimes after school it would go until for several hours. Like jam packed with 20 people screaming and shouting when somebody got knifed. You couldn't curse tho because the instructor was a hard ass and kicked people out for typing swear words in the chat. Damn, we even had Battlefield 1942 tournaments.

Ironically, being in a poorer school meant ton of corporate endorsements and goodies (free Vancouver Grizzlies tickets & free lunch). During the mid 90s when I was in elementary school, our school had everything from Apple II to Imac. Like almost every Mac from different timeline. One of my favorite was a black & white tiny monitor Apple that had Hypercard on it and I used to create something like dragonball Z stick figure animation (obviously inspired by stickdeath.com) on it. Fuck those were good times especially since I didn't have a computer back then and the school provided all these things.

In grade 6, our teacher was super supportive of us using technology (he was into tech, even bought a monochrome projector off ebay so he could teach material from the computer). Looking back I can see how fortunate it was to have experienced all these things. I was especially fond of playing games like Lode Runner and Lemonade Stand on the Apple II. Pretty much all of my recess and lunchtime was spent on figuring out 1) find games in dusty bins in school gym 2) figure out how to run it. Our school used to host Zip Zap Map Canada (tetris meets geography) tournaments. At home my dad taught me how to create my own website (so 1997 or 1998) using Netscape Composer (on win 95 or 98) and uploading it to a free host. Used to brag about it and impressed my teacher a lot. I picked up a book on HTML for dummies from the library and started reading about Javascript and Java but these books were in Korean and I had a tough time. Eventually geocities came along and it was day dreaming about making a popular website ( never happened :( ).

During this time, we got fresh new iMacs and it was off to the races to find games to run on it, Bugdom, Nanosaur, Sim City Classic & 2000, weird game where you walk around a dungeon and kill monsters and level up. We were also trying to run some weird emulation that supposedly allowed us to play windows games but at super low fps.

Everything was going good until one day thieves came in stole all 6~10 iMacs from our classroom. It was shitty but it was also a shitty neighborhood (think Compton without any rap song about it). My grade 6 teacher was really crushed. We got another batch of iMacs and this time we had cables to hold down the iMacs in case someone tried to jack it again and they came in with cable cutters and made off with it AGAIN. Finally they created a dedicated iMac lab on the second floor classroom where thieves couldn't break into.

Quite a long thread stemming from BASIC lol.


Sounds like me.. Dutchy? :)


van Coevorden is dutch I hear.


Am I the only one getting "HTTP Error 503. The service is unavailable." on the link?


Maybe HN is too much for MS? :-)

Half an hour ago it was still working fine.


Open-source and, best of all, not polluted by M$:

http://smallbasic.sourceforge.net/


Learning BASIC made sense in the days of the Apple II or the Atari 800. It provided a nice-ish low-level abstraction of the computer, with PEEKs, POKEs and GOTOs to numbered lines. Today, with Ruby, Python and so many others providing simple ways to write simple programs, as much as it served us well in the 80s, we should let BASIC die rather than trying to mutate it into something that has no longer a place in this world.


If I put my kid in front of a modern Windows PC, leave them alone for a few hours, and hope they learn something, I'm not very optimistic.

Let's say I install Small Basic on Windows 8.1 or 10. So now I've put my kid in front of an operating system that has such a high-level UI that it doesn't even have a proper list of programs. The media consuming portion of the OS is so heavily emphasized over the creative portion of it. You can see this because the OS is designed to be used without a keyboard!!

PCs are entertainment devices. Designed for watching Netflix, visiting Facebook and listening to music. This is like putting a small piece of Broccoli in the middle of a bowl of ice cream.

No thanks!!

I'll find a minimal windows manager for linux. Something that can be invoked just to get the window for the game they're writing up and running.


I don't get your argument. I wrote my first programs using the very limited BASIC that came with my Commodore 64. Now that was primarily an entertainment device, and I still managed to learn interesting things with it!


the internet is an infinite amusement park, desperately plying you for pageviews


Put them in front of windows 10 with Visual Studio 2015 Community Edition installed....

I get the lock it down to command line only so they can learn the way I did mentality. I'm going to do the same thing to my son, but I'd say that Windows 10 is an entertainment device is going a little far.

Windows has long been the enterprise software of choice for buisnises, MS Office? On top of that most of the software you list is all on the web (Netflix, Facebook), so the internet could be said to be all about entertainment. But again that's an oversimplification.

The main contention I can see with windows 8 are apps (which treat it like a phone) windows 10 kinda gets away from that by making all apps windowed (like windows). I find Windows 8 is easier to use with just a keyboard at times. The windows search functionality is great, and they've improved many of the commands.

If your kids can get at the internet they can get at entertainment. But if you cut off the internet then you cut off their ability to research the problem.


> On top of that most of the software you list is all on the web (Netflix, Facebook), so the internet could be said to be all about entertainment. But again that's an oversimplification.

I'm not taking issue with anything you've said, but to wander off topic slightly... The Windows 8.1 app for Netflix is one of the best ways of watching Netflix. It supports the higher bitrate non-4k Hd streams, 5.1 audio, profiles etc.

It works great on the low-end Windows 8.1 tablets (like the Linx 7), whereas the Silverlight and HTML5 browser-based options can struggle to do HD smoothly.

Also there is now Microsoft Office Online. While not as good as the native versions, they are usable.


That's utter hyperbole. Windows still has a desktop mode that looks very much like Windows XP did, let alone 95 or 3.1, even.


3.1's a bit of a stretch, seeing as it didn't even have a Start Menu.


It's not the computer that's the issue. It's the internet. Disconnect the internet, and your kid will have to find ways to be creative with the computer itself.


From the FAQ "To install Small Basic, you have to be running Windows XP, Windows Vista, or Windows 7."

So it's not a problem then :P


This and the Silverlight thing made me wonder if this was a zombie project running on autopilot. The blog is still being updated regularly, though, so I guess not. :-)


I'd like to be positive about this especially considering the thought behind it, but...this is bad. I read the tutorial PDF hoping not to find BASIC-style unstructured programming. I was disappointed. QBASIC was the first language that I learned as a kid, and I regret it to this day. Learning to solve all my programming problems using GOTO in such a formative time set me back months when I finally moved to structured programming languages. In addition to that, the syntax of this language is so inexplicably heavyweight that I feel like "SmallBasic" is an intentionally ironic name.

I'm assuming that this article is apropos of the article posted on HN earlier today about how Python is the new BASIC, as far as educational languages are concerned. I agree with the sentiment. These days, we can and should do a lot better than BASIC as a first language for kids.


>"QBASIC was the first language that I learned as a kid, and I regret it to this day"

GWBasic was my first programming language and I don't regret it at all. It enabled 9-years old me to start messing around with programming without too much hassle and honestly using (or abusing) goto then didn't interferred when I have to learn Scheme(my second language) at the university.

For a young kind (<10 years old), sequential unstructure programming is more natural and easier to pickup. I remember having struggled with For statements when I was using basic and I really appreciate them way later in life.

Also, why so much hate to goto? there are not many alternatives if you are programming in assembly anyway.


You can only blame yourself for overusing goto in qbasic. It had functions, loops, block ifs, and all the other staples of structured programming.


> You can only blame yourself for overusing goto in qbasic. It had functions, loops, block ifs, and all the other staples of structured programming.

When talking explicitly about children beginning programming, I think "you can only blame yourself" is overly harsh. I would certainly say this of a seasoned developer; but a child just starting will—and, I think, should!—do whatever the language allows him or her to do, and it is too much to expect such a child to see, before the bad habit is ingrained, the price that he or she is paying for the apparently wonderful freedom of navigation that GOTO affords. An introductory language should, I think, be very opinionated in matters of underlying structure; just having good options is not enough, if they are not forced (or at least strongly impressed) on the novice who doesn't yet know to use them.


You can do structured programming in QBasic just fine. It didn't require line numbers and had all the necessary tools like functions and procedures, for and while loops, blocks, user-defined types, etc...


Get off my lawn kids!

My first programming language was machine code of kp1816BE35 (I still remember the part name), a soviet clone of some 8-bit processor. It had to be flashed, not flashed, _burned_ into a UV-erasable ROM.

THAT thing had only GOTOs. Yet I don't see a problem with it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: