Why was Small Basic 1.3 released in UWP? (And addressing the community's concerns)
We answered this a few times in forums and blog comments, but we've given more and less information, randomly (sometimes a lot, and sometimes not enough), but let's go ahead and explain it with lots of transparency in a more official capacity...
Last year, we released Small Basic 1.3 in UWP, on Windows Store. See that here.
After reading this excellent Small Basic how-to article and review from Mike James here, he had a section to talk about our last release (1.3 on Windows Store):
Small Basic 1.3
Of course this role as a "glue" language is not possible in the latest Small Basic 1.3. It has been re-written as a UWP app and is available in the Windows Store. It has some improvements but the fact that it no longer works with extensions makes it incompatible with a very large number of existing Small Basic programs. As a UWP app it will only run on Windows 10 and its use is controlled - you can only install it on a maximum of 10 Windows machines.
A desktop version of 1.3 is promised for some time in the future but there is no sign of it more than six months after the launch. It seems reasonable to assume that the UWP app has been produced more for political reasons and its technology is having difficulty working with .NET objects.
At the moment the situation is very confused and there seems to be no advantages to using version 1.3 and the desktop 1.2 is preferable.
It may even be that the UWP app is a threat to the entire project which was and is based on .NET.
Mike, let us know if you'd rather us not quote this here. This section can also be found on the second page of his Small Basic article here. This is a very interesting perspective. Not ours, of course.
Mike left a comment here that we missed (I just replied):
- Any news on 1.3 for the download center – it has been a very long time since it was promised.
This blog post is going to address Mike's article and comments. It's not just Mike. These sentiments are held by many of our community members.
So this is addressed to all of the community; not just Mike.
We have left a few comments on the 1.3 Windows Store announcement blog post and in lots of other blogs and on forums. Here are the basics:
- We said the Download Center / Desktop version was coming. We wanted it sooner. We tried to ship it many times before and after that blog post. But we never give a timeframe. That's because we're a little powerless to make any specific date. If we gave a date, then we'd be wrong. Even giving a timeframe is a bad idea.
- In one comment, I wrote: "Despite some solid efforts to publish the Download Center version first, the Windows Store version shipped much faster." I think that would imply that there is no conspiracy. We tried to ship the Download Center version first. The Windows Store version shipped very quickly. And then we were left making a few more attempts to ship the Download Center version since then. It hasn't worked out. The reasons are all technical and resource-based. We simply had knowledgeable people who were able to ship the UWP version very quickly. We didn't have that for the Download Center version.
In other forums and pages, I explained that Small Basic is a volunteer project from Microsoft employees. It always has been. That explains why the new releases have moved fairly slowly. But we're committed, and we are figuring out how to get things moving faster, including an Open Source version.
If anything isn't clear (why something takes so long, for example), please continue to ask in comments and use the forum built for that purpose.
But let's clear some things up here as well, for the release of Small Basic 1.3:
- Small Basic 1.3 will ship in the Download Center, replacing Small Basic 1.2. Direct English Download (1.2). Download Center Page.
- See Download Microsoft Small Basic for the latest info on that. We'll update that page when it's time.
- Small Basic 1.1 will remain separate, for users of Windows XP and earlier versions. Direct English Download. Download Center Page.
- We don't give dates as to when we will ship stuff. It's always wrong, so that's pointless. The only promise we gave is that we're working on it, and it's coming. Both are still true.
- For us, a long time is more like 3+ years, rather than 3+ months. Given the nature of a volunteer project, that's what it takes. It takes some time. It also takes time to build a volunteer team and momentum. That ebbs and flows.
How our team works, and has been working:
- Being all volunteers, Vijaye started Small Basic in 2008. Here's his first blog post.
- In 2012, I helped lead the community aspects.
- Then we started assembling a volunteer team. This led to the releases of Small Basic 1.1 and 1.2.
- As that great team mostly disbanded, we started looking at Hackathons to build out our Small Basic projects instead.
- Our first Hackathon for that purpose was in 2016:
- In 2016, we started building out features and fixes that would become Small Basic 1.3.
- We also started building Small Basic Online.
- Note that we learned a ton, about how to build out a team for a Hackathon, how to organize it, etc. We had way too many types of bottlenecks.
- In the 2017 Hackathon (late July), we had a few projects (we also learned a lot more about leading Hackathon projects... how to have leadership trained and laser focused, etc.):
- Small Basic 1.3: In attempting to ship the Download Center version and the Windows Store version, we were only able to ship the Windows Store version. We made a few more efforts since then, but they also didn't work out. We also completed a few more language translations.
- Small Basic Online: We built out an online version of Small Basic. This wouldn't have the extension and "glue" features of Small Basic, and there is parity missing with a lot of the Desktop version, but it's an important step toward having an OS agnostic version of Small Basic... where you could use it on any browser and any device.
- Small Basic Open Source: In our efforts to take Small Basic Open Source, we realized that we needed to build SB from scratch for this purpose.
- Small Basic Coding Clubs: We began creating some curriculum for Middle School and High School students to lead coding clubs.
- Small Basic Teacher Training: We began building some curriculum to train teachers about teaching Small Basic.
- After the 2017 Hackathon (starting in August), we had a few projects that continued:
- Small Basic 1.3: We had a few efforts to ship this, that didn't work out.
- Small Basic Online: We were able to make a few more parity improvements and bug fixes.
- Small Basic Open Source: One key member, Omar, led our efforts to create an open source version of Small Basic.
- Small Basic Coding Clubs: We made updates on our coding club curriculum, including adding five more lessons, total 12, for the first coding club module.
And that brings us current to the Hackathon that's starting next week.
Our current 2018 Hackathon projects:
- Small Basic 1.3 - There is no promise or commitment on a timeframe (since it's all volunteer), but the goal is to ship Small Basic 1.3, on the Download Center. It will replace 1.2. The features will likely be the same as last year, but we are considering adding additional languages and bug fixes. That's the bulk of what 1.3 provides. We'd like to provide more features, but it's best to combine those efforts into the Open Source version and the future of Small Basic.
- Small Basic Online - We are ready to ship our first version of Small Basic Online (and that is our goal, again with no commitment). It is being built up toward parity with Small Basic Desktop, but it isn't there yet (not for a while). Also, there is no Extension story. That is the eventual goal, but Small Basic 1.2 (and then 1.3) will be the story in that extension/glue space for a while. So again, this is meant as a stepping stone. It doesn't have parity with Small Basic Desktop yet (including no Graduate feature), and there is no Extension story yet. You can try out the beta version over at http://aka.ms/SBOnline. The goal is to build out more parity features with Small Basic Desktop, in the future, including seeing what we can do with extensions.
- Small Basic Web 2.0 - Along with the online version, we're planning to re-launch the website. We'll have more dynamic content changes regularly coming into the website. The beta version is available at http://aka.ms/SBWeb.
- Small Basic V-Next - Omar has led us to building out an Open Source version of Small Basic Online. There are three efforts in progress here: (1) To build out parity with Small Basic Online 1, (2) To build out more parity with Small Basic Desktop (increasing what Small Basic Online will provide), and (3) To add net-new features. You can find our GitHub repo here: http://aka.ms/SBVNext. You can contribute to those efforts. The eventual goal is to build both the online version and the desktop version from this source code. One thing I'm excited about here, are our new debugging features! Go Small Basic Go!!!
- Small Basic Coding Clubs - We hope to finish the Coding Clubs and to launch them with our partner organization, IGNITE Worldwide. You'll see us announce those clubs and include a Small Basic version released by us. Through IGNITE, we will distribute the coding clubs into various schools and other programs. We teach about 1K students a year at Microsoft campus, mostly girls. We teach them how to code with Small Basic (focusing on Middle School and High School girls). We'll use that workshop program to help drive the coding clubs.
- Small Basic Teacher Training - We will continue our efforts to finish up the training and see if we can launch it. Again, you'll see us announce it when it's done.
In conclusion, from our perspective, we don't really see any political influences in anything we do. We just see real, hard challenges to overcome: technical challenges and resource challenges. But the good news is that we persevere, we have learned a ton about how to do Hackathons efficiently, how to continue some of that momentum through the year, and the future is as bright as ever! Just please have patience with us as we make baby steps with Small Basic Online and Small Basic V-Next (which will likely eventually become Small Basic Online 2, and eventually we also hope to combine worlds by building from the same code base to Small Basic Desktop). Baby steps! I know it's frustrating in a world where projects ship much faster, but it's pretty good for a bunch of Microsoft employees volunteering their time.
In fact, we have 90 team members in our new Hackathon. Take, that, reality!
Eventually, we'd love to get more awesomeness into Small Basic. We'd love to have the same Open Source code for building the Online version, the Desktop version, as well as some Mobile Apps. We'd also love new Social features (gamification, social media, etc.), in-UI tutorials, debugging (which is already going into Small Basic V-Next), extension management, and more! We have lots of ideas. But we have to get through some growing pains and figure out how to make the impossible become possible... how do you get a corporation of employees to volunteer to build out this tooling, at scale, for a full product that's as big as Small Basic? It hasn't been done before. Most people think it's impossible. But we're doing it.
That's Small and Basically it,
- Ninja Ed