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:

  1. 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.
  2. 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 DownloadDownload 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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!!!
  5. 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.
  6. 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

 

 

 

 


Comments (7)

  1. No questions or comments so far. =^)

    I’m guessing the normal reaction is, “I’ve got it, Ed. I understand. I just wish Microsoft invested a ton into this.”

    I’ve thought that too. But the truth is that I like that we can say the community and Microsoft volunteers drive Small Basic. I like that we’re not depending on a team to stick around and build Small Basic. It’s tough to pull that off. I’ve watched other teams really struggle with that (building a product that makes no money), and many of them get shut down. It takes a lot of work to invest in something continually, which costs money, when there is no income. It usually just means short spurts, which doesn’t last. And if there’s a major ongoing cost (servers and whatnot), then it often gets shut down completely, so that there isn’t even an older version available. So I’m very happy with the direction we’re headed in, especially working on an open source version.

    1. litdev says:

      Thanks Ed for posting this.

      I totally get that the SB project is free and is maintained by people in their spare time because they have a passion for it and the community is very grateful to them. And clearly time lines are not possible in this case.

      Since resources are limited and sporadic, I suppose one question is why devote these resources to creating 3 completely separate code bases to do almost the same thing?

      I understand the web version a bit – platform independent (I am assuming this is the reason). But this then looses .Net as an easy path to graduate to – which I felt was an important feature to bridge the gap past SB in a programming adventure.

      I don’t get why the UWP version – it seems to me to be a partial clone, but less than the Desktop version with all the issues going forward maintaining 2 similar but different versions. Is it to get a different/larger audience, limit or control some features for teachers, just what a volunteer wanted to do, test to see if UWP may be more popular? Without a reason explained folk (like Mike and others) start guessing. So the second question which I have is why the UWP version at all?

      1. Good questions…

        UWP – Built from the same repo we’re working out of. So that’s the same codebase as the Download Center / Desktop version we’re working on releasing. It just had less technical and resource obstacles, so it was published first. We started UWP (Windows Store) on SB 1.2. The team built it for us. So we continued that for 1.3, while we focused on publishing to the Download Center. One path was fast, and the other had many technical and resource limitations. Thus the UWP version shipped quickly. We’re focusing on overcoming those limitations now for publishing SB 1.3 to the Download Center.

        Small Basic Online was built to have a device-agnostic version. Most apps head in this direction for this reason. Most stop building desktop or even mobile apps, because building for every platform/device is a little impossible. But we’re still heading in the direction of building for Desktop as well. We’re driving toward getting the best of both worlds.

        The end goal is to develop from our open source repo (http://aka.ms/SBVNext), and build from that to both Desktop and Online. So to answer your question, one source code repo is where we’re headed. That’s the goal and our path. We couldn’t do it with the current Desktop code base, because we had dependencies that couldn’t go open source and couldn’t build online. Thus everything is being rebuilt at that GitHub repo, and we’re making fantastic progress.

        For .NET graduation, that’s still the goal and still in the feature set for Small Basic 1.3 (Desktop). We hope to expand those features even more, into SB V-Next. I’d also like to see what’s possible from SB Online with that, in the future.

        It’s fun to see if we can make the impossible become possible. And that’s what we’ll be looking at. We’re looking to see what kind of features we can add to SB V-Next to get feature parity with SB Desktop. That’s the next step.

        1. litdev says:

          Thanks Ed,

          That makes sense, its great that MS is doing this and being happy to share why and forward targets in a project like SB.

          🙂

  2. Note that the first step toward Small Basic Website is now live!

    Check out the blog post announcement here: https://blogs.msdn.microsoft.com/smallbasic/2018/07/26/announcement-welcome-to-small-basic-website-2-0/

    1. Tryhest says:

      we have now 4 SB editions:
      – SB 1.2 desktop
      – SB 1.3 UWP windows store only W10
      – SB online
      – SB Prime

      only sb 1.2 and sb prime support ld and other xtensions
      sb online has many issues and many existing sb progs won’t work without modifications:
      – different keymapping
      – AND/OR don’t work
      – to detect keys one has to click on textwindow
      – no windows title
      – drawtext acts as shape, changing font changes all drawn font size
      – italic doesn’t work
      – all the quotations must be closed
      – sometimes popup strange errors, starting again removes them

      1. Tryhest says:

        there’s also 5th (omg) sb version on localhost via node/npm, similar to online version, but has some big differences:
        -added debug
        -smarter intelisense
        -array treatment
        -correct and/or evaluation in “if” clauses
        -missing many modules like imagelist, graphicswindow, sound…

Skip to main content