Small Basic: The Unique Features
This article originates with the question in the Small Basic FAQ. We wanted to give the community a chance to answer this question in depth.
What are the unique features of Microsoft Small Basic?
We're dividing up the unique features by the five pillars of Small Basic: Simple, Social, Fun, Extendable, and Gradual.
Simple
Feature | Description |
Imperative | Just like the early variants of BASIC, Small Basic is imperative and doesn't use or expose beginners to concepts like scopes, types, object orientation, and more. |
Size | The Small Basic language consists of just 14 keywords. |
Text Operators - Ease of Use | The language primarily uses text operators (AND, OR), rather than symbol operators like { }, &, and | (Small Basic still uses some straight-forward symbol operators, including +, -, and *.) |
Type System | There actually isn't one. You can create string and numeric constants and assign them to variables. Operations performed on these variables will be interpreted according to the content. |
Variables | All variables are global and are always initialized. They can often be used before they're assigned. Even better, they are all of one type, rather than integers, strings, etc. |
Case Insensitive | Small Basic uses case insensitivity, so that the code runs as expected, without error, if you don't follow the original syntax on casing for objects, methods, variables, key words, and so on. Like all the simplicity features, we teach best practices in our documentation and curriculum, but we don't throw errors for scenarios that distract from the goal of teaching the core code logic and commands. |
Line Punctuation | Coding punctuation can get complicated. For example, Java requires you to enclose a class body (and method body) in curly braces, and statements and declarations end in semicolons. And Python uses colons at the end of the line for If statements, For loops, and Function definitions. Small Basic does not require punctuation at the end of statements. But it does use a colon for Goto labels. We've found that punctuating statements is the most common issue for new learners. |
Indenting | Small Basic automatically indents (such as with For/While loops and If statements), and you can always use Right Click > Format Program to indent a line (in Small Basic Desktop), when the lines aren't properly indented. Regardless of these features to help you achieve the correct indentation, Small Basic will not throw an error if code isn't indented, such as an If statement or While/For loop. This is often the second most common error for new learners (after the line punctuation issues), in other programming languages. |
Events | You can create a sub-routine and assign it to an event. This will wire it up to the event. |
Libraries / Extensibility | The libraries provide static "Objects" that group operations, properties and events. New libraries can be created using other .Net Languages and added to the Small Basic runtime. For example, anyone can write a library in C# or VB and copy the DLL into the Small Basic "lib" folder and use those functions in the Small Basic language! This keeps the core library small and basic (and simple), but enables teachers to take it as far as they want! |
Streamlined Toolbar | The toolbar has been stripped down to just the basics, presented in large buttons that are easy to grok and hard to miss! See the Toolbar section of The Small Basic Environment (IDE). |
IDE Colors | Each type of code is assigned its own color, built right in the language's IDE. See Small Basic: IDE Colors. |
IntelliSense Redesigned | Small Basic boasts a new incarnation of IntelliSense. Not only does it pop up and show you all your options as you type (which helps for learning, exploration, and spelling), but Small Basic's IntelliSense adds three new features to the Visual Studio IntelliSense: (1) You can scroll through your options in a fun and engaging way. (2) You see some basic Help content in the IntelliSense window, as you type. (3) Press the Control key to make IntelliSense transparent, so you can see your code underneath it! See IntelliSense Redesigned and Small Basic: IntelliSense. |
Search & Find | Re-orienting yourself and finding where you want to go in your code can be a challenge for new developers. And Small Basic rises to the challenge! See Find - Small Basic's Search Feature and its Importance to New Coders. |
Integrated Help | Small Basic takes learning to the next level with a dedicated Help pane that changes and teaches you as you type and click your code! And IntelliSense also explains every object, method, and keyword as you pick your options. You don't have to click Help or leave your app! You learn while you program! You can easily slide the Help pane to close it or reduce its size, and then slide it back open. |
Error Line Coordination | When you get syntax errors (during Compile), just click the error message to hop up to that line and spot in the code! |
Fully Accessible | If you can't use it, then how simple could it be? Small Basic is accessible! Let's start with coders who might be color blind or have poor vision. For all the instructions, see Small Basic Accessibility: Enlarging the text and Hiding IntelliSense & the Help Pane. |
In Your Language | 20 Languages!!! How can anything be simple to learn if it's not in your language? And that's where Small Basic also shines! We're always looking to add more languages. We have 20 in the UI with another four being worked on and regular reviews and updates on the existing languages with each release! We already have more language options than most paid-for enterprise software out there today! What if your language isn't available? Try the Small Basic Language Pack.
And beyond the UI, we seek to expand our languages in our Curriculum (19 languages), Getting Started Guide (21 languages), Reference Documentation, Wiki articles, books, videos, and social media! See Small Basic: International Resources. Direct Language Download - Starting in Small Basic 1.1, you can go directly to the Download Center and pick your language! See Download Microsoft Small Basic. |
Social
Feature | Description |
Easy to Share & Collaborate | Share programs and your code easily with the "Publish" and "Import" buttons, which share programs to and from the Small Basic program share server (smallbasic.com). Not only can you access/play the program online, but you can also access the code and easily import it locally into Small Basic (by clicking Import in Small Basic and entering the program ID). Example. See Small Basic: How to Publish Your Program. |
Embed Player | Using the Embed Player from the online published gallery (example), you can post your games in your blog or website. |
Monthly Challenges |
The monthly forum challenges give you opportunities to stretch your Small Basic skills, learn new tricks, get support along the way, and learn from each other! See Small Basic: Challenge of the Month. |
Monthly Small Basic Guru Competitions | The Small Basic category of the monthly TechNet Guru Competition includes Gold, Silver, and Bronze winners, to celebrate the top Small Basic TechNet Wiki articles of that month. The judges include Microsoft employees who work on Small Basic. See TechNet Guru Contributions - Small Basic. |
Fun
Feature | Description |
Kinect Development | Imagine kids using a text-based programming language (no blocks; no tiles) to build games for other kids to jump around and control with their whole bodies! It brings some healthy habits and an extra dose of fun! And starting in Small Basic 1.2, it's available right in the UI without having to hunt for it! As soon as you see yourself moving in front of a background, you'll get addicted to how fun this is! We included samples directly in the UI to get you started! See Small Basic 1.2 Released with Kinect Support and Bug Fixes. |
Turtle Graphics | In addition to using the GraphicsWindow to draw shapes and lines, you can choose to use the Turtle object and command your turtle to draw in your GraphicsWindow! Unlike Logo and Python (which use arrows), the Small Basic Turtle is actually a turtle! Imagine that! See Small Basic: The History of the Logo Turtle. |
Turtle Mascots | Small Basic features girl (Shelly) and boy (Sheldon) turtle mascots to teach students how to program and create graphics and animations. See Small Basic Blog: New Mascots. |
Flickr Object | In Small Basic 1.1 and higher, you can simply call an image from a Flickr search or randomly sort through some images as part of a game! See Small Basic Curriculum: Lesson 2.6: Flickr, ImageList, and Network Objects. |
Extendable
Feature | Description |
Lego Mindstorms EV3 Robots | What's better than getting a free educational tool that teaches you professional programming while you program your robots with more power than ever??? That's what you get with EV3 Basic, the Lego Mindstorms EV3 extension for Small Basic! Read the 24 reasons why this is so awesome: Lego Mindstorms EV3 extension for Small Basic - EV3 Basic!!! |
Raspberry Pi | The Rasperry Pi has no keyboard, monitor, or peripherals. It is simple and the perfect candidate for Small Basic to communicate to. You can connect to the Rasberry Pi using the Small Basic Network object or using the LitDev extension. Learn more: Small Basic - Talking to Rasberry Pi |
Arduino | Controlling an Arduino board with Small Basic enables you to display data it generates or to change settings interactively from your PC. Learn more: Small Basic - Arduino |
micro:bit | BBC micro:bit is a board computer which can also communicate via a USB serial port with the LitDev extension. More details are described in Small Basic + micro:bit. |
QR Codes & Barcodes | NaochanOn's QR Code & Barcode extension (QRCodemaker) allows you to create QR Codes and Barcodes. See QR Code & Barcode Extension for Small Basic. |
Extension Manager | Too many extensions? You want to know which ones you have installed? It also gives you more extensions available that you can easily download and install from the manager, and it lets you toggle the extensions on and off! Awesome! Read more: Small Basic Extension Manager |
Oculus Rift | The Oculus SB extension for Small Basic returns for you the yaw, roll and pitch for the Oculus Rift. You can use it to build Oculus Rift applications using Small Basic. One of the best combinations is to use it with the LitDev 3D extension, to build out 3D virtual environments! See New Oculus Rift Extension for Small Basic - Oculus SB. |
3D Graphics Engine | 3D rendering can be complex, but once the basics of 2D movement, events, and structured programming are mastered in Small Basic, the leap into 3D is more of a basic step. Using the LitDev 3DView extension, you can quickly gain an understanding of how to program immersive and very playable 3D/CG games and applications. See Small Basic - 3D Visualization. |
Physics Engine | The LitDev LDPhysics object acts as an interface to the excellent Box2D engine, which allows shapes to realistically interact, impact, and bounce off each other! You can create complex shapes like cars with moving wheels, inter-meshing cogs, a dirt bike race, objects connected by ropes and chains, and a lot more realistic physics! See Small Basic - Box2D Physics Extension. |
Language Packs | You can use LitDev's Translate application to translate new languages, in addition to the 20 languages available for Small Basic! As well as installing with a specific language, you can change the language when you start Small Basic. See Small Basic – Language Packs. |
PowerShell | Nonki's program reads a text file and outputs a word list to the text window. You can run this program from Small Basic or from the command prompt. See Small Basic with PowerShell. |
Micro Maestro Servo Controller | Zock's Maestro SB extension gives you the ability to control Palolu's Micro Maestro Servo Controller board! See Small Basic Extension - Micro Maestro Servo Controller. See Small Basic Extension - Micro Maestro Servo Controller. |
Small Basic Prime (extended IDE) | LitDev's Small Basic Prime is an extended IDE, and it works with any installed desktop version of Small Basic, and any extensions (using SB compiler and Import/Publish features). SB Prime includes debugging capabilities, syntax highlighting, extension management, file searcher, plugins (for SB Prime), a flow chart visualization, and a shapes/controls editor. See Small Basic Prime (extended IDE). |
Gradual
Feature | Description |
Graduate to Visual Basic | By clicking the "Graduate" button, you can move your program into Visual Basic and continue to learn programming, building the skills of a professional developer! |
Baby Step to Visual Studio (Pro IDE) | The Small Basic interface is a simplified and pared down version of existing professional IDEs, namely Visual Studio. It works just like you'd expect, with similar buttons, IntelliSense, and enabling all sorts of extensions to add in new libraries. Not only is Small Basic the only language + IDE built for young students to learn, but it also is modeled as a simplified version of a professional IDE like Visual Studio (rather than using a videogame-like interface, a tutorial-based website, or a bunch of tabs with elements to drag in), so that the student is better equipped to progress into a professional IDE. |
Free Curriculum | We want you to succeed in learning and teaching Small Basic! So we provided curriculum for you in your own language! See Small Basic Curriculum. That even includes the PowerPoint slides! Do you want to teach yourself directly instead? Then maybe the Getting Started Guide is the best way for you to learn! See Small Basic Getting Started Guide. This is also available in your language. And refer back to the Small Basic Reference Documentation for all the object's details. Learn gradually and at your own pace! |
C# with Xamarin Workbooks |
Xamarin Workbooks is an interactive learning tool for C#. Xamarin Workbooks can import the Small Basic library. So you can use familiar methods in C# programming. See more details here. |
See Also
- Wiki: Small Basic Portal
- Download Microsoft Small Basic
- Small Basic: The History of the Logo Turtle
- Small Basic: IntelliSense
- Small Basic: How to Publish Your Program
- Small Basic Reference Documentation
- Small Basic Getting Started Guide
- Small Basic Curriculum
- Small Basic Curriculum: Lesson 2.6: Flickr, ImageList, and Network Objects
Additional Resources
- About Small Basic (Official Site)