none
Make SmallBasic open source

    General discussion

  • Since Microsoft is opening everything now would it be possible to open source SmallBasic. I would be willing to help develop it. Comments?
    Wednesday, February 15, 2017 1:53 PM

All replies

  • You may also develop your own extension:

    here is a excellent Wiki Technet articles about how to build your own extension in C#

    Small Basic: How to Create an Extension Using C#

    Wednesday, February 15, 2017 3:00 PM
    Answerer
  • There's no way to extend the language itself. Or is there?
    Thursday, February 16, 2017 9:30 AM
  • Hi Grega !

    I found this in the forum : the question was asked in 2008

    here is the link:  Open Source?

    Thursday, February 16, 2017 12:55 PM
    Answerer
  • So still deciding.....
    Thursday, February 16, 2017 1:05 PM
  • You could modify/rewrite the compiler - a bit of work but doable and has already been done by Fremy Company for SB extension creator and I think I saw an F# version somewhere which did have subroutine arguments.  Although a great idea it didn't catch on much - the main idea of SB is coding fundamentals as a stepping stone to other langiages.

    Potentially the issue may be Open Small Basic == Large Incomprehensible Basic (just like most other, plenty of them, BASIC variants, including another called SmallBasic).

    Friday, February 17, 2017 12:00 AM
    Moderator
  • Thanks for the info. I checked these suggestions and here are my thoughts. F# I found before but that's too complicated for kids to use. As far as I can see Fremy decompiled the SmallBasic executable and took out the parser and the compiler. This is actually what I started to do yesterday but it feels like stealing. It would be much better to have parser/compiler as a separate DLL which we could use and include in our application.

    However my intent was not to make another compiler I would rather work on current SmallBasic implementation. It's actually not that difficult to make one from scratch but that's not the point. The point is there is already a community around SmallBasic and it would be nice if that community would be able to help make it better. Unfortunately extensions are not enough to do that.

    Regarding your concern about SmallBasic becoming complicated if it would be open source. I don't agree. Open source doesn't mean anybody can make anything. Contributions should still be regulated by original author or other administrator. If that's not enough you can still fork the source code and make your own version.

    Friday, February 17, 2017 1:33 PM
  • The F# mention was not that it is an alternative to SB for beginners.  It was an alternative compiler for Small Basic with a few more language features written in F#, just a language parser and IL emiter.

    http://www.trelford.com/blog/post/compiler.aspx

    http://www.trelford.com/blog/post/parser.aspx

    Friday, February 17, 2017 6:07 PM
    Moderator
  • You can decompile SmallBasic (with ILSpy for example) right now and find all vulnerabilities. With ILSpy you'll get all the source code in C#.

    • Edited by Grega Stamac Saturday, February 18, 2017 6:55 PM
    Saturday, February 18, 2017 6:54 PM
  • Perhaps you want to look at SBIDE++ (Forum search)

     by gungan37 (for SB 1.0)

    Here is his last post (Nov 2016)


    Saturday, February 18, 2017 8:47 PM
    Answerer
  • Is it open source?

    I would like to help develop SmallBasic IDE and compiler. How can I do that by looking into another SB IDE?

    Sunday, February 19, 2017 9:54 AM
  • SBIDE++ not open source. Some of the components it's using.

    Here's the 'About':

    SB IDE++ Version 1.01
    Copyright (C) 2013 Eric Tilley (gungan37), All rights reserved
    Special thanks to Jibba Jabba for extensive beta testing and ideas

    Microsoft Small Basic Copyright (C) Microsoft Corp. No Microsoft Small Basic binaries are shipped with SB IDE++
    ScintillaNET Copyright (C) 2012 ScintillaNET Team, All rights reserved
    DockPanel Suite licensed under the MIT license
    DesignSurface (Extended) library licensed under the CPOL license
    Another Toolbox Control Copyright (C) 2004 - 2013 Aju George
    SevenZipSharp licensed under the LGPL License
    Windows Ribbon for WinForms library licensed under the Ms-Pl
    ObjectListView licensed under GPL v3
    NHunspell licensed under GPL/LGPL/MPL
    Images licensed from the Microsoft Visual Studio 2010 Image Library, the Microsoft Visual Studio 2012 Image Library and Eclipse Juno IDE
    SharpBITS.NET licensed under the New BSD License (BSD)
    C# MAPI Wrapper licensed under the CPOL from David M Brooks
    SB IDE++ Relfector Version 1.0  Copyright (C) 2013 Eric Tilley
    Powered by Mono.Cecil and ICSharpCode
    ILSpy licensed under the MIT license
    IO Extension Version 1.0    Copyright (C) 2011-2013 gungan37, All rights reserved
    SlimDX Framework licensed under the MIT License
    TWAIN32 Wrapper licensed under the public domain
    Google Maps API Copyright (C) Google, licensed under the following terms:
    https://developers.google.com/maps/terms#section_10_12
    Weather Underground API Copyright (C) WeatherUnderground
    Sorting Algorithm Library credit: http://www.codeproject.com/Articles/6033/Sorting-Algorithms-In-C
    Windows® API Code Pack for Microsoft® .NET Framework Copyright (C) 2010 Microsoft Corp., licenesed under the following terms: http://archive.msdn.microsoft.com/WindowsAPICodePack/Project/License.aspx
    VistaBridge library Copyright (C) Microsoft Corp., licensed under the Ms-Pl
    Pi Calculation functions Copyright written by Fabrice Bellard on January 8, 1997.
    Professional Ribbon Control licensed from Jose Menendez Póo under the Ms-Pl
    I do not know the original author of the FlashWindow class, but credit to my source:
    http://pietschsoft.com/post/2009/01/26/CSharp-Flash-Window-in-Taskbar-via-Win32-FlashWindowEx.aspx

    If you read his last post, you perhaps would like to contact him. His email is in \Help Guides\SB IDE++.mht

    Sunday, February 19, 2017 11:19 AM
    Answerer
  • Please read my original question.
    Sunday, February 19, 2017 1:35 PM
  • Comments?

    Idea: 2 guys with same intention sometimes find different ways.

    Ed Price  is in contact with the dev team


    Sunday, February 19, 2017 2:10 PM
    Answerer
  • I hope Ed reads this and has some better comments about my original question.
    Sunday, February 19, 2017 7:55 PM
  • I'm not Ed, but I don't foresee Small Basic becoming entirely open source in the near future.

    It was raised (privately, so I must be relatively vague) in the context of discussions that both he and I were involved in that there is internal uncertainty about components of Small Basic being open sourced, in particular the legal aspects of it.

    I've passed this thread on to Ed, though, just to make sure he's aware of it.


    Sunday, February 19, 2017 9:00 PM
    Moderator
  • Thank you very much Liam.
    Monday, February 20, 2017 8:29 AM
  • I'm answering now on Ed's behalf.

    While there is no opposition to open-sourcing Small Basic (legal aspects un-commented upon), the Small Basic team has limited manpower and there are other priorities at the moment.

    Monday, February 27, 2017 6:46 PM
    Moderator
  • You could modify/rewrite the compiler - a bit of work but doable and has already been done by Fremy Company for SB extension creator and I think I saw an F# version somewhere which did have subroutine arguments.  Although a great idea it didn't catch on much - the main idea of SB is coding fundamentals as a stepping stone to other langiages.

    Potentially the issue may be Open Small Basic == Large Incomprehensible Basic (just like most other, plenty of them, BASIC variants, including another called SmallBasic).

    LitDev has an excellent point.

    Even when we go open source, it would still be Small and Basic. For example, I asked the teachers and community council about putting some of the existing extensions into the main library, and the push back was that we'd just want a solid built-in extension manager instead. All the teachers become satisfied as soon as they learn that, "You can do that with an extension, and here it is."

    So we'd want improvements, but they'd be things like bug fixes, maybe a new translation or two, better error messaging, the extension manager idea I mentioned, etc. 


    Ed Price, Azure Development Customer Program Manager (Blog, Small Basic, Wiki Ninjas, Wiki)

    Answer an interesting question? Create a wiki article about it!

    Monday, February 27, 2017 6:46 PM
    Owner
  • I'm not Ed, but I don't foresee Small Basic becoming entirely open source in the near future.

    It was raised (privately, so I must be relatively vague) in the context of discussions that both he and I were involved in that there is internal uncertainty about components of Small Basic being open sourced, in particular the legal aspects of it.

    I've passed this thread on to Ed, though, just to make sure he's aware of it.


    Yes. We want to do it. We're in progress of building a web version. This was the #1 request from our teachers. Open Source would have to wait until after that. I also wanted to do things like an Extension Manager, but I'd be willing to make Open Source the next priority after the Web Version (meaning to drive to see if the team agrees with that). There is a huge potential to get more help that way. And ultimately that could help with things like the Extension Manager. (In the meantime, LitDev built a pretty sweet standalone extension manager.)

    Our team is all volunteer, so it's slow moving.

    Even when we start working on Open Source, it would still be a big project. So it wouldn't happen very quickly.


    Ed Price, Azure Development Customer Program Manager (Blog, Small Basic, Wiki Ninjas, Wiki)

    Answer an interesting question? Create a wiki article about it!

    Monday, February 27, 2017 6:55 PM
    Owner
  • My Point of View

    Me, personally, I am very satisfied with the performance of the Small Basic 1.2 version, and yes there might be some additions to version 1.3, but I have to admit that LitDev has done a fantastic job in us adding extensions that make almost everything what can imagine.

    Day by day I discover new features that LitDev adds to its extension library. So for me, I consider that it would be preferable to strengthen what we have for granted, and to continue to build strong extensions.

    Monday, February 27, 2017 7:03 PM
    Answerer
  • Thank you Ed for your replies. I agree extensions are great but there are a lot of things you cannot do with them. I was more thinking about extending the language maybe make some UI improvements. Maybe a good idea would be to make some UI extension points. All these could be done with the help from the community.

    Tuesday, February 28, 2017 7:19 AM
  • I'm the author of SB IDE++ and the I/O Extension.

    If you want to write an IDE and compiler, that's awesome. Writing SB IDE++ and the SB IDE++ compiler was what really got me good at programming, and now I build .NET applications professionally.

    I wrote SB IDE++ the summer after my sophomore year of high school. It took a couple of months, but it was a lot of fun. The code is absolutely horrible, though-- things like global exception handlers (!?!) and all sorts of horrible hacks. It probably wouldn't be useful to anyone writing a new SB IDE.

    I wrote the SB IDE++ compiler over Christmas break my junior year of high school. It only took a few days to get everything except arrays working. I can send you the code  if you're interested. The code organization isn't that bad for how inexperienced I was when I wrote it.

    If you want to start from scratch, I would suggest:

    (1) Start with a tokenizer

    (2) Next, making a pass through the whole program to identify labels, subroutines, variables, etc. Store these in some internal data structure.

    (3) Iterate through each tokenized line, parsing the tokens and emitting IL as you go

    Let me know if you have any questions or want my compiler code.



    Please mark any answers and "vote as helpful" any posts that help you!

    Thursday, March 02, 2017 1:19 AM
    Answerer
  • Thank you for offering. As I said the main benefit with original SmallBasic is it has the community around it. So I see the benefit in helping it grow. I don't see the point in writing a new IDE and compiler.
    Thursday, March 02, 2017 7:33 AM