<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Small_Basic</id>
	<title>Small Basic - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Small_Basic"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Small_Basic&amp;action=history"/>
	<updated>2026-05-19T05:39:50Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Small_Basic&amp;diff=1499818&amp;oldid=prev</id>
		<title>imported&gt;Scientificfries: /* growthexperiments-addlink-summary-summary:1|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Small_Basic&amp;diff=1499818&amp;oldid=prev"/>
		<updated>2025-06-16T09:47:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:1|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Programmiersprache&lt;br /&gt;
| Name                         = Microsoft Small Basic&lt;br /&gt;
| Logo                         = &lt;br /&gt;
| Beschreibung                 = Eine kostenlose und einfache BASIC-Entwicklungsumgebung&lt;br /&gt;
| Erscheinungsjahr             = 2008&lt;br /&gt;
| Entwickler                   = [[Microsoft]]&lt;br /&gt;
| AktuelleVersion              = 1.2 als Desktopversion / 1.3 als App im MS Store&lt;br /&gt;
| AktuelleVersionFreigabeDatum = 1. Okt. 2015 Desktopversion / 7. Aug. 2017 App im MS Store&lt;br /&gt;
| Typisierung                  = &lt;br /&gt;
| Betriebssystem               = [[Microsoft Windows]] (Desktopvers. unter Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2008 R2, Windows Vista / App nur unter Windows 10)&lt;br /&gt;
| Beeinflusst_von              = &lt;br /&gt;
| Beeinflusste                 = &lt;br /&gt;
| Lizenz                       = [[proprietär]]&lt;br /&gt;
| Website                      = [http://www.smallbasic.com/ www.smallbasic.com]&lt;br /&gt;
| Paradigma                    = [[Prozedurale Programmierung|prozedural]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Small Basic&amp;#039;&amp;#039;&amp;#039; (nicht zu verwechseln mit SmallBASIC, einem anderen, betagteren [[BASIC]]-Derivat) ist eine sehr vereinfachte (14 Keywords) und primär für Programmiereinsteiger geschaffene, kostenlos verfügbare BASIC-[[Integrierte Entwicklungsumgebung]] von Microsoft. Mit Small Basic wird das Ziel verfolgt, durch schnell erlebbare Erfolge die Lernmotivation und Experimentierfreudigkeit bei Programmieranfängern zu wecken.&lt;br /&gt;
&lt;br /&gt;
Der Anwendungssektor von Small Basic erstreckt sich jedoch nicht nur auf Lernende, auch für den &amp;quot;Heim-Programmierer&amp;quot; kann Small Basic unter Umständen ein praktischer Alltagshelfer sein, da durch externe Bibliotheken der Funktionsumfang deutlich erweitert werden kann.&lt;br /&gt;
&lt;br /&gt;
Die Entwicklungsumgebung, die begleitende benutzerfreundliche Einsteigerdokumentation sowie Lehrpläne stehen in zahlreichen Sprachen (u. a. auch in Deutsch) zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
&lt;br /&gt;
Erste Pre-Releases von Small Basic wurden 2008/09 vom damaligen [[Microsoft]]-Entwickler Vijaye Raji erstellt und veröffentlicht. Spätere Pre-Releases wurden dann im Rahmen des DevLabs-Projekt von Microsoft betreut und publiziert.&lt;br /&gt;
Im Juli 2011 veröffentlichte Microsoft mit Version 1.0 die erste finale Version von Small Basic.&lt;br /&gt;
2014 hat Microsoft ein neues Entwicklerteam aus Freiwilligen zusammengestellt, welches Small Basic für neue Geräte und Plattformen weiterentwickeln sollte.&lt;br /&gt;
Die im Frühjahr 2015 veröffentlichte Version 1.1 hatte keinen nennenswerten Funktionszuwachs, nutzt nun aber das .NET-Framework 4.5.&lt;br /&gt;
In Version 1.2 wurden zahlreiche bekannte Bugs gefixt und das KinectWindow Object eingeführt.&lt;br /&gt;
Das Entwicklerteam löste sich 2015/16 wieder auf. Die Weiterentwicklung von Small Basic erfolgt nun durch Nutzung von [[Hackathon]]s.&lt;br /&gt;
Im August 2017 wurde Version 1.3 als UWP-App im [[Microsoft Store]] veröffentlicht. Diese Version hat einige neue Funktionen, einschließlich Unterstützung für drei neue Sprachen, eine neue Starthilfe-Seite beim Laden und diverse Fehlerkorrekturen. Eine große Einschränkung dieser App-Version: es können keine funktionserweiternden Bibliotheken genutzt werden.&lt;br /&gt;
&lt;br /&gt;
=== Aktuelle Version(en) ===&lt;br /&gt;
&lt;br /&gt;
* 1.2 (Desktopversion; veröffentlicht am 1. Oktober 2015)&lt;br /&gt;
* 1.3 (App im Microsoft Store, veröffentlicht am 7. August 2017)&lt;br /&gt;
&lt;br /&gt;
=== Ausblicke / Weiterentwicklung ===&lt;br /&gt;
&lt;br /&gt;
In einem Post vom 20. Juli 2018 im offiziellen Small Basic Blog macht Ed Price von Microsoft folgende Statements:&lt;br /&gt;
* Version 1.3 für Desktop wird bald erscheinen (wird Version 1.2 ersetzen) und die Verwendung von Erweiterungen wird hier weiterhin möglich sein. (Version 1.1 soll für ältere Windows-Versionen weiter verfügbar bleiben.)&lt;br /&gt;
* Eine reine Online-Version steht kurz vor der Veröffentlichung (die u. a. ebenfalls keine Erweiterungen unterstützen wird).&lt;br /&gt;
* Perspektivisch wird an einer Open-Source-Online-Version gearbeitet.&lt;br /&gt;
&lt;br /&gt;
== Sprache ==&lt;br /&gt;
&lt;br /&gt;
Small Basic unterstützt die [[imperative Programmierung]]. Auf die [[objektorientierte Programmierung]] wurde bewusst verzichtet.&lt;br /&gt;
&lt;br /&gt;
Eine überschaubare Zahl von jedoch recht mächtigen Schlüsselwörtern erstreckt sich über zahlreiche Anwendungsgebiete und ermöglicht das Erzeugen einfacher Anwendungen und Spiele, welche in einem Text- oder Grafikfenster laufen können.&lt;br /&gt;
&lt;br /&gt;
=== Syntaxbeispiele ===&lt;br /&gt;
==== Textfenster ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
TextWindow.ForegroundColor = &amp;quot;blue&amp;quot;&lt;br /&gt;
TextWindow.Title = &amp;quot;Hallo Welt&amp;quot;&lt;br /&gt;
TextWindow.WriteLine(&amp;quot;Hallo Welt!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Grafikfenster ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
GraphicsWindow.DrawBoundText(10,30,500,&amp;quot;Hallo Welt!&amp;quot;)&lt;br /&gt;
GraphicsWindow.Title = &amp;quot;Beispiel&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Programmbeispiel Konsolenspiel ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
  Mouse.HideCursor()&lt;br /&gt;
  Balltyp = File.ReadContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Balltyp&amp;quot;)&lt;br /&gt;
  If Balltyp = &amp;quot;0&amp;quot; Then&lt;br /&gt;
    Balltyp = Math.GetRandomNumber(5)&lt;br /&gt;
    Balltyp = Balltyp * 1000&lt;br /&gt;
  Else&lt;br /&gt;
    Goto begin&lt;br /&gt;
  EndIf&lt;br /&gt;
  Score = File.ReadContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball&amp;quot;)&lt;br /&gt;
  If Score &amp;gt; 1 Then&lt;br /&gt;
    Goto begin&lt;br /&gt;
    Else&lt;br /&gt;
    File.WriteContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball&amp;quot;, 0)&lt;br /&gt;
  EndIf&lt;br /&gt;
&lt;br /&gt;
begin:&lt;br /&gt;
&lt;br /&gt;
  File.WriteContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Balltyp&amp;quot;, Balltyp)&lt;br /&gt;
  Balltyp = File.ReadContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Balltyp&amp;quot;)&lt;br /&gt;
  GraphicsWindow.FontSize = 20&lt;br /&gt;
  GraphicsWindow.FontName = &amp;quot;Arial&amp;quot;&lt;br /&gt;
  Score = File.ReadContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball&amp;quot;)&lt;br /&gt;
  GraphicsWindow.BrushColor = &amp;quot;Blue&amp;quot;&lt;br /&gt;
  GraphicsWindow.DrawText(10, 10, &amp;quot;Score: &amp;quot; + Score)&lt;br /&gt;
  GraphicsWindow.BackgroundColor = &amp;quot;White&amp;quot;&lt;br /&gt;
  GraphicsWindow.BrushColor = &amp;quot;#32CD32&amp;quot;&lt;br /&gt;
  paddle = Shapes.AddRectangle(120, 15)&lt;br /&gt;
  If Score = Balltyp Then&lt;br /&gt;
    Balltyp = Balltyp + 5000&lt;br /&gt;
    GraphicsWindow.BrushColor = &amp;quot;Red&amp;quot;&lt;br /&gt;
    ballwiedererk = &amp;quot;Red&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    ballwiedererk = &amp;quot;Green&amp;quot;&lt;br /&gt;
  EndIf&lt;br /&gt;
  ball = Shapes.AddEllipse(20, 20)&lt;br /&gt;
  &amp;#039;Wenn etwas mit den roten Bällen nicht stimmt =&amp;gt; Aktiviere untere Zeile zum nachschauen&lt;br /&gt;
  &amp;#039;GraphicsWindow.DrawText(300, 10, Balltyp)&lt;br /&gt;
  GraphicsWindow.MouseMove = OnMouseMove&lt;br /&gt;
  Shapes.ShowShape(ball)&lt;br /&gt;
  Startposition = Math.GetRandomNumber(603)&lt;br /&gt;
  Shapes.Move(ball, Startposition, 0)&lt;br /&gt;
  x = Startposition&lt;br /&gt;
  y = 0&lt;br /&gt;
  WinkelX = Math.GetRandomNumber(2)&lt;br /&gt;
  WinkelY = Math.GetRandomNumber(2)&lt;br /&gt;
  deltaX = WinkelX&lt;br /&gt;
  deltaY = WinkelY&lt;br /&gt;
&lt;br /&gt;
RunLoop:&lt;br /&gt;
&lt;br /&gt;
  x = x + deltaX&lt;br /&gt;
  y = y + deltaY&lt;br /&gt;
  gw = GraphicsWindow.Width&lt;br /&gt;
  gh = GraphicsWindow.Height&lt;br /&gt;
  If (x &amp;gt;= gw - 20 or x &amp;lt;= 0) Then&lt;br /&gt;
    deltaX = -deltaX&lt;br /&gt;
  EndIf&lt;br /&gt;
  If (y &amp;lt;= 0) Then&lt;br /&gt;
    deltaY = -deltaY&lt;br /&gt;
  EndIf&lt;br /&gt;
  padX = Shapes.GetLeft (paddle)&lt;br /&gt;
  If (y = gh - 28 and x &amp;gt;= padX and x &amp;lt;= padX + 120) Then&lt;br /&gt;
    deltaY = -deltaY&lt;br /&gt;
    If ballwiedererk = &amp;quot;Red&amp;quot; Then&lt;br /&gt;
      Score = Score - 2000&lt;br /&gt;
      Balltyp = Balltyp + 5000&lt;br /&gt;
    EndIf&lt;br /&gt;
    If ballwiedererk = &amp;quot;Green&amp;quot; Then&lt;br /&gt;
      Score = Score + 1000&lt;br /&gt;
    EndIf&lt;br /&gt;
    Shapes.HideShape(ball)&lt;br /&gt;
    File.WriteContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball&amp;quot;, Score)&lt;br /&gt;
    GraphicsWindow.Clear()&lt;br /&gt;
    Goto begin&lt;br /&gt;
  EndIf&lt;br /&gt;
  Shapes.Move(ball, x, y)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;Verzögerung&lt;br /&gt;
  If Score = 0 Then&lt;br /&gt;
    Program.Delay(5)&lt;br /&gt;
  EndIf&lt;br /&gt;
  If Score &amp;lt; 20000 Then&lt;br /&gt;
    Program.Delay(4)&lt;br /&gt;
  EndIf&lt;br /&gt;
  If Score &amp;lt; 60000 Then&lt;br /&gt;
    Program.Delay(3)&lt;br /&gt;
  EndIf&lt;br /&gt;
  If Score &amp;lt; 100000 Then&lt;br /&gt;
    Program.Delay(2)&lt;br /&gt;
  EndIf&lt;br /&gt;
  If Score &amp;gt;= 100001 Then&lt;br /&gt;
    Program.Delay(1)&lt;br /&gt;
  EndIf&lt;br /&gt;
&amp;#039;Verzögerung Ende&lt;br /&gt;
  If (y &amp;lt; gh) Then&lt;br /&gt;
    Goto RunLoop&lt;br /&gt;
  EndIf&lt;br /&gt;
  GraphicsWindow.Clear()&lt;br /&gt;
  If ballwiedererk = &amp;quot;Red&amp;quot; Then&lt;br /&gt;
    Score = Score + 2000&lt;br /&gt;
    Balltyp = Balltyp + 5000&lt;br /&gt;
    Goto begin&lt;br /&gt;
  EndIf&lt;br /&gt;
  GraphicsWindow.BrushColor = &amp;quot;#32CD32&amp;quot;&lt;br /&gt;
  GraphicsWindow.FontSize = 81&lt;br /&gt;
  GraphicsWindow.DrawText(50, 50, &amp;quot;Your Score is&amp;quot;)&lt;br /&gt;
  GraphicsWindow.BrushColor = &amp;quot;Blue&amp;quot;&lt;br /&gt;
  Score = File.ReadContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball&amp;quot;)&lt;br /&gt;
  GraphicsWindow.FontSize = 100&lt;br /&gt;
  GraphicsWindow.DrawText(50, 200, Score)&lt;br /&gt;
  File.WriteContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball&amp;quot;, 0)&lt;br /&gt;
  File.WriteContents(&amp;quot;C:\Users\PepeGiallo\Documents\Für Programm\Balltyp&amp;quot;, 0)&lt;br /&gt;
  Sub OnMouseMove&lt;br /&gt;
    paddleX = GraphicsWindow.MouseX&lt;br /&gt;
    Shapes.Move(paddle, paddleX - 60, GraphicsWindow.Height - 12)&lt;br /&gt;
  EndSub&lt;br /&gt;
&lt;br /&gt;
  Program.Delay(5000)&lt;br /&gt;
  GraphicsWindow.Clear()&lt;br /&gt;
  Goto begin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Programmierbeispiel (Sinnloser Knopf) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
  GraphicsWindow.Show()&lt;br /&gt;
  GraphicsWindow.Title = &amp;quot;Sinnloser Knopf WARNUNG SINNLOS&amp;quot;&lt;br /&gt;
  GraphicsWindow.BackgroundColor = &amp;quot;Black&amp;quot;&lt;br /&gt;
  GraphicsWindow.Width = 800&lt;br /&gt;
  GraphicsWindow.Height = 600&lt;br /&gt;
  GraphicsWindow.FillRectangle(400, 300, 50, 50)&lt;br /&gt;
  GraphicsWindow.MouseDown = OnMouseDown&lt;br /&gt;
Sub OnMouseDown&lt;br /&gt;
  x = GraphicsWindow.MouseX&lt;br /&gt;
  y = GraphicsWindow.MouseY&lt;br /&gt;
  If(x &amp;gt;399 And x &amp;lt;451 And y &amp;gt; 299 And y &amp;lt; 351) Then&lt;br /&gt;
    GraphicsWindow.ShowMessage(&amp;quot;Du hast den sinnlosen Knopf betätigt!&amp;quot;, &amp;quot;Sinnloser Knopf&amp;quot;)&lt;br /&gt;
  EndIf&lt;br /&gt;
EndSub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Besonderheiten ==&lt;br /&gt;
&lt;br /&gt;
* Befehle und ihre Ereignisse, Methoden und Eigenschaften werden im Editor komfortabel mittels &amp;quot;[[IntelliSense]] (TM)&amp;quot; vervollständigt.&lt;br /&gt;
* Datentypen werden vollautomatisch (und unsichtbar) zugeordnet und verwaltet.&lt;br /&gt;
* Für Small Basic geschriebener Code kann auf Knopfdruck zu in [[VB.NET]] weiter verarbeitbaren Code umgewandelt werden.&lt;br /&gt;
* Optional besteht die Möglichkeit, einen selbst erzeugten [[Quelltext]] auf einer speziellen Small-Basic-Seite zu veröffentlichen. Sofern clientseitig [[Microsoft Silverlight]] installiert ist, kann dieses Programm dann in den meisten Fällen auch auf jener Seite online ausgeführt und sogar in andere Webseiten eingebettet werden.&lt;br /&gt;
* Mit Hilfe anderer [[.Net-Framework]]-Sprachen ([[VB.NET]], [[C-Sharp|C#]], ...) können funktionserweiternde Bibliotheken für Small Basic (nur Desktop-Version) erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
&lt;br /&gt;
Für die Verwendung der aktuellen Entwicklungsumgebung von Small Basic und zur Nutzung einer damit erzeugten [[EXE]] wird [[Microsoft Windows]] und die [[.Net-Framework|.NET]]-Laufzeitumgebung der Version 4.5 benötigt.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Hans-Georg Schumann: &amp;#039;&amp;#039;Small Basic für Kids.&amp;#039;&amp;#039; mitp-Verlag, Neuerscheinung Ende August 2011, 2. Auflage Januar 2016, ISBN 978-3-95845-322-7.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://smallbasic.com/ Offizielle Website] (englisch)&lt;br /&gt;
* [http://social.technet.microsoft.com/wiki/contents/articles/30514.aspx Microsoft Small Basic 1.1 Release Notes] (englisch)&lt;br /&gt;
* [http://social.technet.microsoft.com/wiki/contents/articles/32436.microsoft-small-basic-1-2-release-notes.aspx Microsoft Small Basic 1.2 Release Notes] (englisch)&lt;br /&gt;
* [https://blogs.msdn.microsoft.com/smallbasic/2018/07/20/why-was-small-basic-1-3-released-in-uwp-and-addressing-the-communitys-concerns/ Warum wurde Small Basic 1.3 als UWP veröffentlicht] (englisch)&lt;br /&gt;
* [http://www.simple-talk.com/dotnet/.net-tools/microsoft-small-basic-for-.net/ Test und Beschreibung von Small Basic] (englisch)&lt;br /&gt;
* [http://channel9.msdn.com/shows/the+knowledge+chamber/intro-to-small-basic-with-vijaye-raji Interview von 2010 mit Vijaye Raji] (englisch)&lt;br /&gt;
* [http://litdev.co.uk/ LitDev - die bekannteste und umfangreichste Erweiterung für Small Basic] (englisch)&lt;br /&gt;
* [http://rosettacode.org/wiki/Category:Microsoft_Small_Basic Category:Microsoft Small Basic] In Microsoft Small Basic auf [http://rosettacode.org/ rosettacode.org] implementierte Aufgaben&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:BASIC]]&lt;br /&gt;
[[Kategorie:Microsoft-Software]]&lt;br /&gt;
[[Kategorie:Programmierwerkzeug]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Scientificfries</name></author>
	</entry>
</feed>