So this blog post is combination of a question and information. We'll start with the information.
How is Small Basic social?
- UI: Share Your Program! You can click the Publish button on the UI to share your game / program with the community! It publishes your program to the Web and gives you an import code and Web program listing page to share it with your friends!
- UI: Embed Your Program! In the shared Web page, it includes an Embed snippet that you can use to embed your program into your site or blog!
- UI: Share Your Code! Not only is your program shared, but so's your code! This is very valuable to get help from someone as you learn how to program in Small Basic! On the Small Basic Forum, when you have an issue you need solved, it's very helpful to link to your published program, so that the community can check out your code and give you advice! I don't know how many developer forums I've been on where the first three posts from helpful community members are to show them the code! Small Basic makes that so much easier! The code is on the Web listing page!
- UI: Improve Someone's Program! Not only can you share out your program, but you can simply click the Import button and type in the Import ID to help someone directly with their program, or someone can use it to build on your program! For example, your friend Dora can import your program and add a boss or a new level to your game. Or maybe she can fix it so that it works! Because of this, you can have collaborative teams working on the same program! We've even done team competitions on projects. You don't have to send files; all you need is the Import Code from a published application! Small Basic is a collaborative experience!
- ComPlat: Connect in the Small Basic Forum! In the Small Basic forum, you'll find the usual troubleshooting and Q&A style of forum conversations, but you'll also find people sharing and discussing their Small Basic games, programs, extensions, and TechNet Wiki articles! You'll also see the Small Basic product team gathering information for a potential future release of Small Basic! Come join the community in the Small Basic Forum!
- ComPlat: Follow the Small Basic Blog! Not only can you read our announcements about the product (such as new releases), the content (like the books or the free online curriculum) and the community contributions (programs, extensions, etc.), but you can reply to us in the comments and dialogue with us! You get to openly discuss with the people who are leading the product and community! I think you're on the blog, but go here for the blog home page!
- ComPlat: Engage with the Small Basic Twitter Account! Check out what we're tweeting, ask us questions, and discuss Small Basic with the #SmallBasic tag!
- ComPlat: Chat in the Small Basic Facebook Page! Come hang with the Small Basic folks, asking questions and speaking your mind! Check out our Small Basic Facebook group here!
- ComPlat: Collaborate on Small Basic Content on our Wiki! You can help build and edit Small Basic content on Microsoft's TechNet Wiki platform! This is another great way to collaborate with the community on authoring articles, editing articles, and in the comments at the bottom of each Wiki article! Check out the Small Basic Portal of Wiki articles!
- ComProg: Enter the Monthly Small Basic Programming Challenges! LitDev hosts a monthly contest where we get to try out some challenging programs and discuss the results, seeing how other people went about making the same programs! You can go to the Small Basic Forum and find the latest Monthly Challenges thread at the top. To access all our challenges (including our latest challenges), go to Small Basic: Challenge of the Month.
- ComProg: Enter the Monthly Small Basic Guru Competition on TechNet Wiki! Similarly, XAML Guy and I host a monthly competition to get the best Small Basic articles published to TechNet Wiki! Tell us how you do something, turn a forum answer into an article, explain how to use an extension (yours or one you like to use), or explain your new game (with the code inserted in your article) so that it acts as a sample! Here is the list of all the previous Small Basic entries and winners! We usually sticky a post in the Small Basic Forum for the current contest. Go to this Wiki page, click on the latest competition, and add your entry to the Small Basic section!
- ComProg: Earn Your Way into Small Basic Community Leadership! You can join our ranks of leaders in moderating TechNet Wiki articles about Small Basic and in Forum Moderation. See Small Basic: How to Join Leadership. Those who stick with us in those roles will be invited to join the Small Basic Community Council!
- UI: Social features enabled in the Small Basic IDE.
- ComPlat: Community Platforms - Social platforms that the Small Basic Community Council participates in, enabling more community collaboration!
- ComProg: Community Programs - Competitions, Challenges, and Councils put together to help power the community!
I know we're the only programming language to have all 12 of these opportunities for Social Interaction!
Now, here are the questions...
- Is Small Basic the first social programming language + IDE?
- Specifically I'm looking at #1 and #3 above.
- I believe Scratch 1.0 worked around this limitation by encouraging its community to upload projects to the forum for others to download (site "Project" areas that were associated with profiles). This started in 2007 and was called "Project Sharing" and the "Gallery". This seems to have been updated/fixed in 2012 with Scratch 2.0, where they added similar capabilities to Small Basic (which were available in 2008). So if that is true, then Small Basic had the "social sharing" features four years ahead of Scratch (because essentially the Project Sharing feature is the equivalent of Microsoft's CodePlex site, which was released in 2006).
- Is this assumption of Scratch true?
- One key difference is that Small Basic is a text-based language & IDE. Scratch is block-based. So regardless, Small Basic and its social features is more of a transition into professional computer programming.
- Are there any other languages + IDEs that might have had these share to/from Web features that Small Basic launched with in 2008?
- Has any other language + IDE achieved #2 or #3 (from above)?
- Answer: We have found a few solutions that do #1 and #3, but not both at the same time (and not #2). For example...
- Kodu Lab shares games in the UI, and the game plays by default when you open it. So that's #1. You can then edit your game easily to get to #3 (so that one is an extra step, but it's still there).
- I believe that Scratch 2.0 reverses that idea of Kodu. You publish the file and then you have to run the game. So they give you the ability to do #3, and then an extra step to get to #1.
- Same thing with Visual Studio Online. You publish the file and then have to run it to get your program. So they go into #3 by default.
- Small Basic is the only one that does #1 and #3 at the same time (you get to one page where the game plays and on the same page, the code is in a box). And then you can also import the code into Small Basic.
- Small Basic is the only one with the embed snippet (#2).
- What social interaction features exist on other languages (+ IDEs) that aren't available for Small Basic?
- Does the new Visual Studio Online allow multiple people to work on the same file at the same time?
Thank you for your help in answering these questions! As the answers come in, I'll be back to update this page!
- Ninja Ed