Monday, August 6, 2012
Petit Computer #1
Petit Computer Journal#1
What is Petit Computer?
If you have been following Nintendo DSi development, then you'd know that SmileBoom has developed a downloadable computer program called Petit Computer. This is a development environment to create your own games on Nintendo DSi using BASIC. The idea is that you will write your own programs, and instead of buying other people software, you just write your own program. It's that easy! No more useless junk!
Why would you want to do that? In the beginning of computer history, there was simply no computer program available. You can either hire expensive professionals, or write your own program. Most people who grew up with early Personal Computer would write their own program. There are old magazines that tells people how to program their computer.
Later in the development of personal computer, softwares have become very complicated. Programming a computer is no longer within the realm of hobbyist computer. I still remember the disbelief that a C development system is 4 Gigabytes. Just how complicated can writing a computer program be? Very, very complicated!
And yet, most people do not need complicated programs. It does not take a rocket scientist to write a simple Blackjack program. Or create a maze. Or word search program. I did Sudoku program in one afternoon.
You don't need ridiculous amount of education in other to write useful program. You don't even need to write one. You can simply read what other people have done, and run their program on your Nintendo DS.
In short, Petit Computer is what Nintendo DSi homebrew, had it officially be done by Nintendo. Notice I said Nintendo DSi. That's because even though it's billed to be compatible with Nintendo 3DS, it doesn't take advantage of that platform. You can of course use Nintendo 3DS to run the program, but it's not necessary. If you don't have the device yet, I suggest the XL version. You won't have to squint at the small screen, and you can actually tap the keys with your fingernails, instead of stylus.
What's the difference between this and other BASIC?
SmileBasic, the BASIC language of Petit Computer, is very different from other BASIC languages. Most people are probably familiar with MS QBasic. Well, the difference between the two is that if you put this command "A=10:A=A/10:PRINT A" into Petit Computer, you'd get a "1". With QBasic, you'd get a "10".
Haha, joking aside, there is quite a big difference with the other BASIC. For one thing, this version of BASIC is very primitive when it comes to program structures. There is only FOR-NEXT loop. There is no such thing as WHILE-WEND, REPEAT-UNTIL, SWITCH-CASE. Rumor has it, you can't even GOTO out of the FOR-NEXT loop because you will corrupt the stack. That is strange. I will need to check for that. I think what happens is that the stack will run out because you cannot nest loops too deep.
Another difference is that SmileBasic is heavily tied into the Nintendo DSi hardware. This means sprites, background pictures, music synthesizers. Very powerful capabilities that is available for your use. You can easily make a Mario level game. Really.
The flip side to it is that if you aspire to make "modern" program such as the ones made by Visual Basic, then you are out of luck. This style of BASIC is old-style. Looking at the keywords of the language, I can't help to think that maybe this version isn't too friendly for beginners. Too much closely resembling Assembly Language/Machine Language. And you know what they say about Machine Language. If you cannot think in terms of Hexadecimal, then you may as well give up.
How hard is it to program a computer?
Paraphrasing an old joke:
Typing the program: $10.
Knowing what to type: $9990.
Computer programming is one of the easiest, if not the easiest job around. The qualification of that is IF YOU KNOW WHAT YOU'RE DOING. Do people know what they're doing? Surprisingly enough, no.
That's actually normal. Unless you're doing routine database programming, you probably will have to dissect the problem enough to come up with a solution. The problem you're solving is unique because if it's a common problem, then other people would have solved it already. Therefore, your problem solving skill must be top-notch.
The good news is, as a beginner, you don't have to be an expert solver. You're just starting out! By definition, other people have trodden the path before you, and you are going through familiar territory. If you get stuck anywhere, a simple question to the appropriate forum will suffice to get you going. There are plenty of tutorials on the Net. I plan to make some myself.
Do you need to be good at Math? No, you don't. I know I'm bucking the convention here, but we're talking about hobbyist computer programming. If you can balance your checkbook, then you can write computer program. If you know how to use spreadsheet program. You definitely have all the skills required. Higher level math is only necessary if you aspire to be a software ENGINEER. For hobbyist level, the most important skill needed is "Show and Tell". Really.
Should I really do this?
Why would you spend your time writing computer program on a very primitive system when you can have the world given to you by the latest and greatest in computer programming technology? How about Python? Ruby? Aren't they so great? Yes, they are, if you want to be productive.
If, however, you want to have fun and make games on Nintendo DSi, then this is the system to use! Not despite it being primitive, but because of it. Remember that old style 8 bit Apple, Atari, Commodore computer are rather primitive, and those computers were very useful. It doesn't take much to write useful programs.
I regularly write programs in Small Basic because it's fun. I will write programs in Smile Basic because it's fun. Remember: computer programming is easy, IF you know what you're doing. So the trick is, to first learn what you need to know in order to write the program, then write the program. By then, it'd be easy.
This is especially true with drag and drop programming. Let's take, for example, Macromedia Director. It's a very powerful platform, to be sure. But do you really learn how to program? Or do you learn to do use the package? Take away Director, and given Basic, can you replicate what you did with Director? Doubt it. Take away Basic, can you replicate what you did with Director? In my case, it took only 2 days, including learning the Director!
I hope I have convinced you to do this. If not, well, there's always Small Basic. :)