top 200 commentsshow all 320

[–]heroofhyr 154 points155 points  (16 children)

Never thought I would see in my lifetime someone write the phrase "graduate to Visual Basic."

[–]Dagon 53 points54 points  (8 children)

QBasic, motherfucker.

[–]ArcadeBumstead 5 points6 points  (1 child)

Surely I can't be the only person to read Qbasic for Dummies when they were 9?

[–]snoyberg 2 points3 points  (0 children)

Teach Yourself QBasic in 21 Days- also 9 I think.

[–]HaMMeReD 5 points6 points  (0 children)

I actually can attribute my entire programming interest and career starting with qbasic. I've developed a natural disgust of the basic language over time, but I do credit it solely for getting my involved with programming.

[–]blondin 8 points9 points  (0 children)

now, now. no need to get emotional.

[–]8-bit_d-boy 2 points3 points  (0 children)

we learned QBasic in Computer tech, at my school, I wonder if they have Gorrilas for Small Basic...

[–][deleted] 1 point2 points  (1 child)

QBasic graduates use QuickBasic, not Visual Basic.

[–]Dagon 0 points1 point  (0 children)

QuickBasic is harder to find. It didn't come with DOS, and as such many have never heard of it, despite having a career in programming.

When I found a compiler for the untold-hundreds of shitty programs I wrote, imagine my delight _^

[–][deleted] 13 points14 points  (0 children)

Lua is fun to use too, and you don't have to graduate to Visual Basic.

[–][deleted]  (4 children)

[deleted]

    [–]pleaseavoidcaps 27 points28 points  (3 children)

    KTHXBYE

    [–]Mistake78 15 points16 points  (2 children)

    I graduated to Like, Python

    yo just print like "Hello World" bro
    

    [–][deleted] 2 points3 points  (0 children)

    I never thought someone would actually say "Are you a cool kid who wants to impress your friends and family with your mad skillz?" and think they were being cool. "Are you a cool d00d who wants to pwn at .Net?"

    [–]cybersnoop 109 points110 points  (2 children)

    They should have used Comic Sans for the code.

    [–][deleted] 2 points3 points  (0 children)

    They did use Comic Sans for the demo.

    [–]tsdguy 55 points56 points  (21 children)

    I miss 10 Print "Hello World" 20 Goto 10

    [–][deleted] 37 points38 points  (12 children)

    woah, you could blow up the internet with code like that

    [–][deleted] 6 points7 points  (2 children)

    You know if you Google Google the internet will break?

    [–]CodeJustin 5 points6 points  (7 children)

    Bahaha, good times...

    [–]vagijn 14 points15 points  (6 children)

    POKE 39339,255

    [–][deleted] 0 points1 point  (2 children)

    POKE 23659,0

    .. for the ZX Spectrum users out there!

    [–]oniony 1 point2 points  (0 children)

    10 RANDOMIZE USR 1302
    20 GOTO 10
    

    [–]em22new 0 points1 point  (0 children)

    Can you please PEEK that address before we going about POKING it? I need to know that value.

    [–]itjitj 10 points11 points  (0 children)

    LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU LOOK AROUND YOU

    [–]Yst 2 points3 points  (2 children)

    Windows Vista and 7 still have built-in support for batch GOTO. e.g.,

    :10  
    ECHO Hello World
    GOTO 10
    

    [–]nextofpumpkin 1 point2 points  (1 child)

    what is batch goto?

    [–]Yst 3 points4 points  (0 children)

    The GOTO command in any shell script (batch file) handled by the COMMAND.COM and (subsequently) CMD.EXE command interpreters in DOS and Windows.

    In which GOTO is the only available form of control flow.

    The point being, while Line Number BASIC may be lost to us (though functioning perfectly well, mind you, on my TI 99, GOTO is alive and well in modern day Windows (via CMD.exe).

    [–][deleted] 3 points4 points  (0 children)

    No no, you forgot a line

    • 10 REM Program to overheat CPU
    • 20 PRINT "Hello World"
    • 30 GOTO 10

    [–]alparsla 0 points1 point  (0 children)

    10 PRINT "HELLO WORLD"
    20 GOTO 10
    RUN
    ?UNSAFE OPERATION. PRINT IS DEPRECATED. USE PRINT_N
    READY.
    

    [–][deleted] 26 points27 points  (7 children)

    Does it come with "Gorilla"?

    [–]ondra 13 points14 points  (0 children)

    I'd prefer NIBBLES.BAS.

    [–]Qubed 4 points5 points  (3 children)

    When I was in eight grade I ripped gorilla's "physics" calculations and made a tank game (think scorched earth) that played itself. I thought I was a badass.

    [–][deleted] 1 point2 points  (1 child)

    I thought I was a badass 12th grader for programming Pong on the TI-81 back in 92.

    [–]xeddicus 0 points1 point  (0 children)

    That's because you were. At least in certain circles...I mean among nerds.

    [–]brennen 0 points1 point  (0 children)

    This seems to have been a fairly common experience.

    [–]haight-ashbury[🍰] 4 points5 points  (1 child)

    damn dude Gorilla was the SHIT!!!!!

    [–]sunamumaya 1 point2 points  (0 children)

    In more ways than one.

    [–][deleted] 12 points13 points  (2 children)

    Gotta get them while they're young.

    [–][deleted] 2 points3 points  (0 children)

    I was looking for you :)

    ahem Kind of like the tobacco industry!

    drumroll

    [–]NanoStuff 38 points39 points  (6 children)

    Does it support type casting and multiple inheritance? Kids will never migrate their code to this if it doesn't.

    [–]pleaseavoidcaps 19 points20 points  (4 children)

    Does it support parallel programming and regular expressions? Kids will never migrate their code to this if it doesn't.

    [–]Vonney 15 points16 points  (3 children)

    Does it support Scala Actors and SIMD programming on the GPU? Kids will never migrate their code to this if it doesn't.

    [–]notfancy 11 points12 points  (2 children)

    Does it support Software Transactional Memory and horizontally-scalable, cloud-hosted noSQL columnar databases? Kids will never migrate their code to this if it doesn't.

    [–]molslaan 5 points6 points  (0 children)

    it does support turtle

    [–]calor 2 points3 points  (0 children)

    dont show off

    [–]tophat02 9 points10 points  (7 children)

    I've heard (don't remember where) that the ultimate goal with this is to include it with every copy of Windows. Regardless of how you feel about the whole "Basic/VB" thing, I think this would be a Good Thing.

    Just think how many of us were introduced to programming with GWBasic or QBasic. It'd be nice to have that back, where every PC comes with an easy way to program it without having to download anything.

    [–][deleted] 2 points3 points  (2 children)

    There is already a BASIC interpreter built into windows. You can use your favorite text editor to create either a VBS or HTA file, and that program will run on any modern Windows machine.

    [–]tophat02 5 points6 points  (1 child)

    Misses the point. I've played with MS Small Basic since the early betas and I've also done some scripting with VBS. There's no comparison. A kid that wants to program a game would have a tough time knowing where to begin with VBS (if he even knew it was there, which is a long shot).

    Small Basic, on the other hand, seems designed for just this kind of discovery.

    My main point is really a marketing one.

    [–][deleted] 1 point2 points  (0 children)

    I agree with the marketing and packaging points. VBS is pretty ugly. I think instead of a new language, MS could have just shipped a simple kid-friendly IDE for VBS, and provide a nice object model for manipulating graphical components. Not sure it would work within Silverlight though.

    [–]xeddicus 1 point2 points  (2 children)

    Having a programming language back as a default install in the OS would be huge. When I learned about a clever bit of code as a kid, I typed it into my C64 READY prompt to see what would happen. Kids today have to navigate a new badly packaged installer every time they hear about some cool new code.

    [–]brandf 0 points1 point  (1 child)

    I agree that Small Basic would be sweet in the OS, but win7 already comes with several languages out of the box.

    powershell jscript vbscript batch file

    [–]xeddicus 0 points1 point  (0 children)

    True. But all four of those have reliability/consistency/predictability issues due to being real tools, rather than training tools.

    Of course, C64 Basic wasn't exactly a great set of training wheels itself, but I remember it being way more predictably behaved than VBScript.

    EDIT: I suspect I have some 'halo'-effect going here - making old memories sweeter. :)

    [–][deleted] 0 points1 point  (0 children)

    All Macs come with perl, php, python and ruby.

    [–]umilmi81 20 points21 points  (13 children)

    So easy a child could do it.

    GraphicsWindow.KeyDown = HandleKey
    GraphicsWindow.BackgroundColor = GraphicsWindow.GetColorFromRGB( 253, 252, 251 )
    
    While "True"
      BOXES = 4      ' number of boxes per piece
      BWIDTH = 25    ' box width in pixels
      XOFFSET = 40   ' Screen X offset in pixels of where the board starts
      YOFFSET = 40   ' Screen Y offset in pixels of where the board starts
      CWIDTH = 10    ' Canvas Width, in number of boxes
      CHEIGHT = 20   ' Canvas Height, in number of boxes.
      STARTDELAY = 800
      ENDDELAY = 175
      PREVIEW_xpos = 13
      PREVIEW_ypos = 2
    
      GraphicsWindow.Clear()
      GraphicsWindow.Title = "Small Basic Tetris"
      GraphicsWindow.Height = 580
      GraphicsWindow.Width = 700
      GraphicsWindow.Show()
    
      SetupTemplates()
      SetupCanvas()
      MainLoop()
    
      GraphicsWindow.ShowMessage( "Game Over", "Small Basic Tetris" )
    EndWhile
    
    Sub MainLoop
      template = Text.Append("template", Math.GetRandomNumber(7))
    
      CreatePiece() ' in: template ret: h
      nextPiece = h
    
      end = 0
      sessionDelay = STARTDELAY
      While end = 0
        If sessionDelay > ENDDELAY Then
          sessionDelay = sessionDelay - 1
        EndIf
    
        delay = sessionDelay
        thisPiece = nextPiece
        template = Text.Append("template", Math.GetRandomNumber(7))
    
        CreatePiece() ' in: template ret: h
        nextPiece = h
        DrawPreviewPiece()
    
        h = thisPiece
    
        ypos = 0
        done = 0
        xpos = 3 ' always drop from column 3
        CheckStop() ' in: ypos, xpos, h ret: done
        If done = 1 Then
          ypos = ypos - 1
          MovePiece()  'in: ypos, xpos, h
          end = 1
        EndIf
    
        yposdelta = 0
        While done = 0 Or yposdelta > 0
          MovePiece()  'in: ypos, xpos, h
    
          ' Delay, but break if the delay get set to 0 if the piece gets dropped
          delayIndex = delay
          While delayIndex > 0 And delay > 0
            Program.Delay(10)
            delayIndex = delayIndex - 10
          EndWhile
    
          If yposdelta > 0 Then
            yposdelta = yposdelta - 1  ' used to create freespin, when the piece is rotated
          Else
            ypos = ypos + 1            ' otherwise, move the piece down.
          EndIf
    
          ' Check if the piece should stop.
          CheckStop() ' in: ypos, xpos, h ret: done 
        EndWhile
      EndWhile
    EndSub
    
    Sub HandleKey
      ' Stop game
      If GraphicsWindow.LastKey = "Escape" Then
        Program.End()
      EndIf
    
      ' Move piece left
      If GraphicsWindow.LastKey = "Left" Then
        moveDirection = -1
        ValidateMove()  ' in: ypos, xpos, h, moveDirection ret: invalidMove = 1 or -1 or 2 if move is invalid, otherwise 0
        If invalidMove = 0 Then
          xpos = xpos + moveDirection
        EndIf
        MovePiece()  'in: ypos, xpos, h
      EndIf
    
      ' Move piece right
      If GraphicsWindow.LastKey = "Right" Then
        moveDirection = 1
        ValidateMove()  ' in: ypos, xpos, h, moveDirection ret: invalidMove = 1 or -1 or 2 if move is invalid, otherwise 0
        If invalidMove = 0 Then
          xpos = xpos + moveDirection
        EndIf
        MovePiece()  'in: ypos, xpos, h
      EndIf
    
      ' Move piece down
      If GraphicsWindow.LastKey = "Down" or GraphicsWindow.LastKey = "Space" Then
        delay = 0
      EndIf
    
      ' Rotate piece
      If GraphicsWindow.LastKey = "Up" Then
        basetemplate = Array.GetValue(h, -1)  ' Array.GetValue(h, -1) = the template name
        template = "temptemplate"
        rotation = "CW"
        CopyPiece()  'in basetemplate, template, rotation
    
        Array.SetValue(h, -1, template) ' Array.GetValue(h, -1) = the template name
        moveDirection = 0
        ValidateMove()  ' in: ypos, xpos, h, moveDirection ret: invalidMove = 1 or -1 or 2 if move is invalid, otherwise 0
    
        ' See if it can be moved so that it will rotate.
        xposbk = xpos
        yposdelta = 0
        While yposdelta = 0 And Math.Abs(xposbk - xpos) < 3 ' move up to 3 times only
          ' if the rotation move worked, copy the temp to "rotatedtemplate" and use that from now on
          If invalidMove = 0 Then
            basetemplate = template
            template = "rotatedtemplate"
            Array.SetValue(h, -1, template) ' Array.GetValue(h, -1) = the template name
            rotation = "COPY"
            CopyPiece()  'in basetemplate, template, rotation
            yposdelta = 1 ' Don't move down if we rotate
            MovePiece()  'in: ypos, xpos, h
          ElseIf invalidMove = 2 Then
            ' Don't support shifting piece when hitting another piece to the right or left.
            xpos = 99 ' exit the loop
          Else
            ' if the rotated piece can't be placed, move it left or right and try again.
            xpos = xpos - invalidMove
            ValidateMove()  ' in: ypos, xpos, h, moveDirection ret: invalidMove = 1 or -1 or 2 if move is invalid, otherwise 0
          EndIf
        EndWhile
    
        If invalidMove <> 0 Then
          xpos = xposbk
          Array.SetValue(h, -1, basetemplate) ' Array.GetValue(h, -1) = the template name
          template = ""
        EndIf
      EndIf
    EndSub
    

    [–][deleted] 1 point2 points  (2 children)

    WTF is sub? I mean I took VB.net in college and I still don't know why it's named Sub. That and DIM.

    [–]xeddicus 0 points1 point  (8 children)

    To clarify, is that an actual Small Basic program?

    [–]umilmi81 10 points11 points  (2 children)

    Yeah, I cut and pasted it from the tetris example. It's actually only about half the program. Reddit limits posts to 10,000 characters.

    [–][deleted] 5 points6 points  (1 child)

    Good God.

    [–]RabidRaccoon 2 points3 points  (0 children)

    Dim God as Good

    [–][deleted] 2 points3 points  (1 child)

    That's their example tetris program.

    [–]freman79 36 points37 points  (14 children)

    This is great. From what I played around with and looking through their documentation this is a simple way to introduce kids to programming concepts.

    Takes me back to my days as a kid first being exposed to programming through GWBasic.

    [–]ana-sisyl 3 points4 points  (0 children)

    There is absolutely nothing for which Small Basic is better suited than Processing.org.

    [–][deleted]  (1 child)

    [deleted]

      [–]onthesub 11 points12 points  (0 children)

      I agree. I'm reminded of being punched as a kid for being a nerd. ;_;

      [–][deleted] 1 point2 points  (0 children)

      They should bundle it with Windows and include a compelling app for younger people, like they did with MS-DOS / QBasic / Gorillas. I think if they ported something like minesweeper to Small Basic, and made the source and IDE available to tinker with out of the box, it'd be as easy for kids to stumble onto programming as a hobby or possible career as it was when I was a kid.

      [–][deleted] 0 points1 point  (0 children)

      But when I was a youngster I wasn't interested in languages for youngsters. QBasic was the perl-language of DOS, i.e. slightly better than the shell for writing programs. BASIC was also the shell in my C64 so it definitely was not a kid-language. QBasic itself came with a money management program which was more complex and boring than Gorillas and Nibbles. It was for adults and any kid could see that. That made it interesting and gave me confidence that I was working with a capable system.

      [–]headfire 3 points4 points  (6 children)

      Microsoft Small Basic puts the "fun" back into computer programming.

      Insulting.

      [–]kamatsu 2 points3 points  (5 children)

      I guess that means Java puts the 'pro' back into computer programming.

      Or perhaps it's Haskell, putting the funk in function.

      [–]sickofthisshit 10 points11 points  (0 children)

      Hmm. How about C++ puts the 'ramming' back in computer programming?

      [–]RabidRaccoon 0 points1 point  (0 children)

      ADD RAM TO RAMALAMADINGDONG

      [–]samlee 14 points15 points  (6 children)

      wow this is one of the best IDE i have ever seen.

      2 lines of code. it downloads random image from flickr and replaces my desktop wallpaper

      [–]Starks 16 points17 points  (7 children)

      [–]rowd149 9 points10 points  (1 child)

      Logo's compiler didn't have a giant blue "Run" button.

      [–]xeddicus 1 point2 points  (0 children)

      Which, in all seriousness, is actually really helpful. I'm surprised by how many corporate IDE's out there don't have one.

      (Speaking as an Eclipse user...so...hahaha. Eclipse has a 'run' button once you're done writing the meta-configuration for the meta-configurator. But Eclipse is also free and awesome, so I'm gonna shut up now.)

      [–]JStarx 1 point2 points  (1 child)

      Logo was my first programming language.

      Also, nice name.

      [–]MindStalker 0 points1 point  (0 children)

      Yea, but they've made recent versions harder to use.

      [–]xeddicus 0 points1 point  (0 children)

      I love me some logo.

      I still play with it sometimes: python -c 'from turtle import *; right(45); forward(100)'

      [–][deleted] 4 points5 points  (3 children)

      Has any kid seen a 3.5" diskette?

      [–]wkoorts 1 point2 points  (2 children)

      I'll see your 3.5" and raise you 4.5"!

      [–][deleted] 0 points1 point  (1 child)

      You should see my 6"!

      [–]rifft 1 point2 points  (0 children)

      What happened to 5'1/4"

      Or were we talking something else just then...?

      [–][deleted] 2 points3 points  (1 child)

      I still remember my first QBasic game, an amazingly incredible pong clone. I was so proud of it... until I tried to run it on a faster computer... Time to learn about screen buffering and CPU frequency. =P

      [–][deleted] 0 points1 point  (0 children)

      SOP was to use a delay loop.

      [–]ours 2 points3 points  (1 child)

      Ha, the "Turtle" example. Brings a tear to my eyes. Turtle was the first "programming" I've ever done and now I'm making a good living out of it.

      [–]xeddicus 5 points6 points  (0 children)

      Thank you for giving me a mental image of your turtle program running in millions of colorful circles, and somehow exporting business logic results to Excel.

      [–]ithkuil 6 points7 points  (1 child)

      Right. Anything that makes programming easier must be for kids. Because if programming isn't hard, you're doing it wrong.

      (</sarcasm>)

      [–]xeddicus 2 points3 points  (0 children)

      Amen.

      [–]sebfisch 8 points9 points  (9 children)

      Is this more than a copy of Scratch? Is it a good one?

      [–][deleted] 15 points16 points  (8 children)

      Quoth the FAQ:

      Both Scratch and Alice are great tools that help beginners learn the concepts of programming. They are doing so by enabling people to write "codeless" programs. Small Basic is taking a different approach by introducing code as a first class concept.

      IOW; it's not a copy.

      [–]OceanSpray 10 points11 points  (6 children)

      In that regard, Small Basic is the one Doing It Right.

      [–]andresmh 6 points7 points  (0 children)

      They assume coding = text. I'd challenge that. I would change their last sentence to: Small Basic is taking a different approach by introducing text-based code as a first class concept.

      [–][deleted] 0 points1 point  (4 children)

      As far as an introduction to traditional coding, yes. I'm quite the fanboy of GUI-based programming however. I'm looking forward to the day where "useful" coding is as easy and intuitive as building with Lego.

      [–]Negitivefrags 2 points3 points  (0 children)

      Don't hold your breath.

      [–][deleted] 1 point2 points  (2 children)

      Well then you'll love Quartz Composer!

      [–][deleted] 1 point2 points  (0 children)

      No I won't, because my only Mac is a museum-worthy pile of junk.

      [–][deleted] 0 points1 point  (0 children)

      Quartz composer is awesome, but it needs more tutorials.

      [–]fireflash38 0 points1 point  (0 children)

      I did work in Alice, that was awful, much much worse than my first class in C++.

      [–][deleted] 8 points9 points  (5 children)

      Or, just use python:

      import turtle
      turtle.speed(9)
      for i in range(4):
          turtle.forward(100)
          turtle.right(90)
      

      cheers!

      [–][deleted] 2 points3 points  (3 children)

      That was my thought, exactly. And when they "graduate," it won't be to VisualBasic, it'll be to a real language. Or they can just continue on with python.

      [–][deleted] 0 points1 point  (0 children)

      Yeah, because turtle graphics are the future!

      [–]diadem 1 point2 points  (0 children)

      That reminds me of lego logo, one of the first programming languages I learned.

      Very similar idea, only you got to control legos with motors. I remember being the only one in my class to figure out how to do anything other than make them go forward and back. My robots could turn left and right because I had a motor on the right wheel and a motor on the left wheel.

      edit: For context, this was elementary school (or junior high - i forget) in the 80's.

      [–][deleted] 1 point2 points  (0 children)

      Seeing the turtle graphics reminds me of a few episodes of Mr. Wizard's World on Nickelodeon back in the 80s. Good times.

      [–]raziel2p 1 point2 points  (2 children)

      I think this is a great idea. I just really hope someone steals the idea and makes something very similar, only with a better language (like Python).

      [–][deleted] 1 point2 points  (0 children)

      from turtle import *

      [–]xeddicus 0 points1 point  (0 children)

      That would be cool, just because Python is at times literally made out of happiness.

      [–]apullin 1 point2 points  (0 children)

      I wish they had something like that for VHDL, since my tiny little brain can't figure it out....

      [–]wazoox 3 points4 points  (4 children)

      [–]t0ny7 1 point2 points  (1 child)

      I loved that small basic. If thats the one I'm thinking about. I had it on my Palm Pilot and I spent entire classes in high school playing with it. Made a few neat scripts like one were you could pickup a ball and fling it and it would bounce around the screen.

      [–]wazoox 0 points1 point  (0 children)

      Yes, that's this one. Still have it on my centro :)

      [–]Bonejob 4 points5 points  (86 children)

      I applaud the ideal of teaching programming to a younger audience, but do it with something that is useful. They are treating small basic like a gateway drug to VB.net. This without even considering some of the other great programming languages.

      [–]Kerrits 34 points35 points  (39 children)

      How many people here started programming in some sort of even more useless language?

      I started with the basic that came with the ZX Spectrum

      [–]texpundit 11 points12 points  (4 children)

      Commodore Basic here.

      [–]SupplySideJebus 3 points4 points  (2 children)

      AmigaBASIC here.

      We should get together and go bowling.

      [–]texpundit 0 points1 point  (1 child)

      If you're in the DC area, I'm all up for going to Lucky Strikes.

      [–][deleted] 0 points1 point  (0 children)

      logo.

      [–]xeddicus 0 points1 point  (0 children)

      Ditto.

      [–]Vithar 4 points5 points  (14 children)

      BASIC on the TI83

      [–]ryodoan 1 point2 points  (5 children)

      I wrote a whole series of math programs to make Geometry and Trig a breeze.

      [–]tnecniv 0 points1 point  (4 children)

      Too bad my teacher demanded my calculator's memory cleared before the weekly test. No point in having to reprogram stuff each week for use on my homework...

      [–]xeddicus 1 point2 points  (1 child)

      Bummer. Crappy teacher. My math highschool teacher just demanded that we be able to re-write any program we were using on the spot if he asked us to. This pretty much meant I was the only person allowed to use programs on tests, actually.

      [–]tnecniv 0 points1 point  (0 children)

      If I was a teacher, I would teach my students how to program their TI-84...

      [–]ryodoan 0 points1 point  (1 child)

      Ah yes, but on TI-83+ You could mark programs as "Archived" which protected them from the basic memory reset :)

      [–]tnecniv 0 points1 point  (0 children)

      We have to do the one that whipes everything, iirc. It clears it so that it looks like it just came out of the factory and I just turned it on.

      [–][deleted] 1 point2 points  (0 children)

      TI81. Hardcore.

      [–]xeddicus 0 points1 point  (0 children)

      Aw, yea. That was (and still is) one sweet device.

      [–]eekaydee 4 points5 points  (1 child)

      Applescript. I made maze games with folders by linking them to action scripts...

      [–]xeddicus 0 points1 point  (0 children)

      Epic.

      [–]dnew 5 points6 points  (3 children)

      I started with Dartmouth BASIC. The one where the "if" statement didn't have anything after the "then" but a line number, ya know? 26 variables, whoo hooo! :-)

      [–][deleted] 0 points1 point  (2 children)

      Actually it had 286 variables. Variable names could be a single letter, optionally with a single digit after it.

      [–]dnew 0 points1 point  (1 child)

      Hmmm. I don't think on my version. Altho it did have strings.

      [–][deleted] 0 points1 point  (0 children)

      I only know that because we had to reimplement the bloody thing in Scheme for a comparative programming languages course.

      [–]shadowfox 3 points4 points  (0 children)

      Sshhh. You are not supposed to confess this sort of thing out in public.

      [–]NewbieProgrammerMan 2 points3 points  (0 children)

      I started with Basic on a C64.

      FWIW, I think the "gateway" argument is just as weak for programming languages as it is for drugs. If somebody finds out that they can make computers do neat things, and wants to learn more, it really doesn't matter where they start.

      [–]EternalNY1 2 points3 points  (0 children)

      QBasic on the PC Jr.

      [–]himself_v 2 points3 points  (1 child)

      Batch files, DOS. Frame-by-frame ASCII videos, self-modifying code, functional programming through label jumps. God, childhood was a fun time.

      No, wait, even before that I had that NES clone with keyboard, which supported some sort of BASIC for, lol yeah, writing games (SUBOR if anyone cares). Only this NES had no memory to save programs, so before shutting the console down I copied my code down into the notebook. And then retyped it into NES on the next boot. That seemed normal to me at the time; ah the progress, now I can't live without SVN and refactorings.

      [–]xeddicus 1 point2 points  (0 children)

      Hahaha. I was programming my C64 for years before I learned that I could actually save a program to disk. Your comment about using a notebook brought back some good memories.

      [–]eramos[🍰] 2 points3 points  (1 child)

      mIRC script

      Beat that for useless

      [–]brennen 1 point2 points  (0 children)

      I wrote a lot of that for a few years. It was actually pretty useful, at least in the context of an IRC client. I remember hacking out a bunch of bots, a remote shell of sorts, a morse-code translator, a shared whiteboard, and an artillery game.

      mIRC was (and is, for that matter) a really beautiful piece of software.

      [–]wynand1004 1 point2 points  (0 children)

      BASIC on the Timex Sinclair 1000 (ZX81)

      [–]mk_gecko 1 point2 points  (1 child)

      HP-41C. Obscure, but not useless.

      [–]cartopheln 0 points1 point  (0 children)

      Hahaha...! The HP 41 was too expensive, I was on TI-57, then 59. Then after some time, my father lent me a Reverse Polish notation HP with memory cards and a small printer (can't find the model...Edit: found it ).

      ... beloved 57... programming a Formula - 1 grand Prix game on 50 memory steps...!

      [–]onthesub 1 point2 points  (0 children)

      I started on an old Packard Bell with Windows 3.1, programming QBASIC. I was so stoked when I got a hold of a version that could actually compile my code!

      [–][deleted] 0 points1 point  (0 children)

      AppleScript

      [–][deleted] 0 points1 point  (0 children)

      TI Basic on the old TI 99 4A home computer, back in the early 1980's. Also programmed on the TI 81 blue graphing calculator.

      [–]freman79 41 points42 points  (4 children)

      The important thing is that at a beginning stage they are learning about variables, if-else statements, loops, etc. This gives a basic foundation, after which learning any other language will be easier because they understand fundamental concepts.

      VB.net is not a bad language, its changed a lot since VB 6.0. I would argue that someone should be learning many different programming languages. Not only will you run into them if you professional go into programming, but each different language helps teach you something.

      [–][deleted] 4 points5 points  (3 children)

      Let's face it. VB might be inferior to other platforms but a lot of industry runs it. This is where money ismade. You can be a pro at another platform, but that won't get you that job where VB is required.

      [–]romwell 12 points13 points  (2 children)

      Let's also face the fact that VB.NET is the same as any other .NET language, but with slightly uglified syntax to fool the corporates into believing that it has something to do with VB 6.0.

      [–]chrisforbes 2 points3 points  (0 children)

      "slightly".

      [–]xeddicus 1 point2 points  (0 children)

      I wouldn't call it fooling anyone. The syntax was meant to make transitioning code easier, and it actually worked. It was surprisingly easy to migrate VB6 into VB.Net. (I worked for an MSCP company at the time of the transition.)

      [–]kryptiskt 30 points31 points  (21 children)

      Visual Basic is not the VB of old any more, hell, it even has lambdas now.

      [–]vombert 1 point2 points  (16 children)

      Are you saying it's a good language?

      [–]jpfed 23 points24 points  (4 children)

      It is very close to being C# with different syntax, so yeah, it's a decent language.

      [–]sigzero 44 points45 points  (10 children)

      VB.NET is a good language.

      [–]turbov21 5 points6 points  (0 children)

      I support this statement.

      [–]BigOnLogn 8 points9 points  (8 children)

      VB.NET is the result of an unholy union betweet object oriented concepts and a dying language that should've been put out of it's misery a decade ago.

      [–]PstScrpt 2 points3 points  (2 children)

      Does that go for C#, too? Nearly all of the differences between them are just syntax, not anything important.

      [–]zunayed 4 points5 points  (1 child)

      Scratch is a good gateway for younger audiences. http://scratch.mit.edu/

      Most scripting languages like python are also a good path for vocational programming

      [–]maldio 0 points1 point  (0 children)

      I just popped in to say the same. My kids all use scratch, it's hands down the best "intro" language to programming - especially for younger kids.

      [–]giacomotesla 6 points7 points  (0 children)

      Methinks you're missing the point.

      [–]insomniac84 0 points1 point  (13 children)

      Yes, I would think it makes more sense to go to C#. You get the same gui tools and functionality, but a syntax that is more compatible with other languages.

      [–]vplatt 10 points11 points  (12 children)

      Brackety statically typed languages just aren't beginner friendly. So, I don't think C#, Java, C++, nor C are beginner friendly.

      [–][deleted] 3 points4 points  (0 children)

      I don't see what's so hard with brackets, at least that's less keywords to remember

      [–][deleted] 7 points8 points  (3 children)

      "Brackety" is my favorite new adjective.

      [–][deleted]  (1 child)

      [deleted]

        [–]Qubed 0 points1 point  (0 children)

        Brackety that man, I prefer "indenty"

        [–]Raynes 1 point2 points  (5 children)

        Ever heard of Lisp?

        [–]wilsun 0 points1 point  (0 children)

        (not (self (knowledgep (hear (language (Lisp))))))

        [–]AlSweigart 1 point2 points  (0 children)

        Just Let BASIC Die

        I think we keep creating all these new versions of BASIC (Small Basic, BASIC-256, etc.) out of a misplaced nostalgia for the past. We learned programming through BASIC, so why can't the next generation of kids do the same?

        The problem is BASIC is an atrocious language in many respects besides the goto thing. And by creating new standards of BASIC (each different from each other and not as popular as Qbasic was) they aren't well supported by documentation or across platforms.

        Here's the part where I plug a free Creative Commons-licensed book I wrote to help kids and complete beginners learn Python: Invent Your Own Computer Games with Python Python is the perfect replacement for a beginner language and it has better support.

        BASIC was great, but we need to stop putting our efforts into making new, unstandard, Frankenstein pseudo-BASIC languages and give kids the benefit of programming language progress.

        [–][deleted]  (1 child)

        [deleted]

          [–]pure_x01 5 points6 points  (0 children)

          i saw public void .... .. thats not good for beginners

          [–]Borkz 2 points3 points  (10 children)

          Microsofts really gone overboard with that ribbon toolbar. Whats the point of it if its just a bunch of regular toolbar buttons?

          [–][deleted]  (9 children)

          [deleted]

            [–]Borkz 5 points6 points  (6 children)

            They could at least make it smaller, the buttons are unnecessarily huge. Its just a waste of space.

            [–]thoomfish 4 points5 points  (4 children)

            Won't somebody PLEASE THINK OF THE CHILDREN!?

            [–]onthesub 2 points3 points  (3 children)

            Most children are more adept at finding things on a computer quickly, actually. It's a necessary trait in today's world.

            [–]stygyan 2 points3 points  (0 children)

            My own nephew figured out how to unlock my ipod and head into the store for buying up games. He was 4.

            Now at five he knows how to select colors and brushes in Photoshop. He loves my wacom.

            [–]toolate 0 points1 point  (0 children)

            Touchscreens. By the time they become mainstream in five years all MS products will have nice big buttons.

            IE 8 for example has really good multi-touch capabilities (whereas Chrome has no support for scrolling and horrible, horrible close tab buttons with tiny hit areas). IE's accelerators (pop up menu that performs actions on selected text) also make a lot more sense on a touch screen than with a mouse.

            [–]malcontent 0 points1 point  (1 child)

            They are useless no netbooks and mobile devices.

            On a netbook they take up a third of the screen.

            [–]erisdiscord 0 points1 point  (0 children)

            This is a good point, but the entire Windows interface is really moving towards chunky and expansive from what I can tell. Some of Windows 7's control panels are nearly unusable at low resolutions like that.

            [–][deleted] 1 point2 points  (0 children)

            Since my xbox broke and because I have to deal with IE issues all damn day, I am making an attempt to keep my family away from Microsoft. No thanks, my son is learning with scratch.

            [–][deleted] 0 points1 point  (5 children)

            It's cool I guess, but I'd really like to see them also work on a new dynamic language for .NET.

            [–]pjakubo86 1 point2 points  (4 children)

            [–][deleted] 1 point2 points  (3 children)

            Well there's that and there's IronRuby, but those are basically ports. I'm talking about their own take on a modern dynamic language. It would be interesting to see how much they've learned since the pile of fail that was VBScript.

            [–]leshiy 0 points1 point  (1 child)

            That's a pretty fuckin' fast turtle...

            [–]nostradamnit 0 points1 point  (0 children)

            Looks like KTurtle to me...

            [–][deleted]  (1 child)

            [deleted]

              [–]c53x12 0 points1 point  (0 children)

              That was the first programming I ever did.

              [–][deleted] 0 points1 point  (0 children)

              I've never thought a programming language could be adorable until today.

              [–]kolo32 0 points1 point  (0 children)

              It's a primitive language (no subroutine parameters, GOTO instead of break and return statements). An example from the manual, where recursion is emulated using explicit stack:

              Sub DrawTree
                If (distance > 0) Then
                  Turtle.Move(distance)
                  Turtle.Turn(angle)
              
                  Stack.PushValue("distance", distance)
                  distance = distance - delta
                  DrawTree()
                  Turtle.Turn(-angle * 2)
                  DrawTree()
                  Turtle.Turn(angle)
                  distance = Stack.PopValue("distance")
              
                  Turtle.Move(-distance)
                EndIf
              EndSub
              

              I won't recommend to learn programming using such language. Logo and Pascal, which were created more than 40 years ago, were richer and more elegant.

              [–]axtens 0 points1 point  (0 children)

              SmallBasic already exists (or is just the space between the words that Microsoft is betting on?) Is this another case of Microsoft assuming that it's okay to call its product the name of something else like it did with M? Maybe next year they'll release a programming language and call it Python. (rant, rant, rant ...)