Microsoft Small Basic | |
---|---|
Paradigmen: | prozedural |
Erscheinungsjahr: | 2008 |
Entwickler: | Microsoft |
Aktuelle Version: | 1.2 als Desktopversion / 1.3 als App im MS Store (1. Okt. 2015 Desktopversion / 7. Aug. 2017 App im MS Store) |
Beeinflusst von: | Visual Basic .NET, Logo, QBasic |
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) |
Lizenz: | proprietär |
www.smallbasic.com |
Small Basic (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.
Der Anwendungssektor von Small Basic erstreckt sich jedoch nicht nur auf Lernende, auch für den "Heim-Programmierer" kann Small Basic unter Umständen ein praktischer Alltagshelfer sein, da durch externe Bibliotheken der Funktionsumfang deutlich erweitert werden kann.
Die Entwicklungsumgebung, die begleitende benutzerfreundliche Einsteigerdokumentation sowie Lehrpläne stehen in zahlreichen Sprachen (u. a. auch in Deutsch) zur Verfügung.
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. Im Juli 2011 veröffentlichte Microsoft mit Version 1.0 die erste finale Version von Small Basic. 2014 hat Microsoft ein neues Entwicklerteam aus Freiwilligen zusammengestellt, welches Small Basic für neue Geräte und Plattformen weiterentwickeln sollte. Die im Frühjahr 2015 veröffentlichte Version 1.1 hatte keinen nennenswerten Funktionszuwachs, nutzt nun aber das .NET-Framework 4.5. In Version 1.2 wurden zahlreiche bekannte Bugs gefixt und das KinectWindow Object eingeführt. Das Entwicklerteam löste sich 2015/16 wieder auf. Die Weiterentwicklung von Small Basic erfolgt nun durch Nutzung von Hackathons. 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.
In einem Post vom 20. Juli 2018 im offiziellen Small Basic Blog macht Ed Price von Microsoft folgende Statements:
Small Basic unterstützt die imperative Programmierung. Auf die objektorientierte Programmierung wurde bewusst verzichtet.
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.
TextWindow.ForegroundColor = "blue"
TextWindow.Title = "Hallo Welt"
TextWindow.WriteLine("Hallo Welt!")
GraphicsWindow.DrawBoundText(10,30,500,"Hallo Welt!")
GraphicsWindow.Title = "Beispiel"
Mouse.HideCursor()
Balltyp = File.ReadContents("C:\Users\PepeGiallo\Documents\Für Programm\Balltyp")
If Balltyp = "0" Then
Balltyp = Math.GetRandomNumber(5)
Balltyp = Balltyp * 1000
Else
Goto begin
EndIf
Score = File.ReadContents("C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball")
If Score > 1 Then
Goto begin
Else
File.WriteContents("C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball", 0)
EndIf
begin:
File.WriteContents("C:\Users\PepeGiallo\Documents\Für Programm\Balltyp", Balltyp)
Balltyp = File.ReadContents("C:\Users\PepeGiallo\Documents\Für Programm\Balltyp")
GraphicsWindow.FontSize = 20
GraphicsWindow.FontName = "Arial"
Score = File.ReadContents("C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball")
GraphicsWindow.BrushColor = "Blue"
GraphicsWindow.DrawText(10, 10, "Score: " + Score)
GraphicsWindow.BackgroundColor = "White"
GraphicsWindow.BrushColor = "#32CD32"
paddle = Shapes.AddRectangle(120, 15)
If Score = Balltyp Then
Balltyp = Balltyp + 5000
GraphicsWindow.BrushColor = "Red"
ballwiedererk = "Red"
Else
ballwiedererk = "Green"
EndIf
ball = Shapes.AddEllipse(20, 20)
'Wenn etwas mit den roten Bällen nicht stimmt => Aktiviere untere Zeile zum nachschauen
'GraphicsWindow.DrawText(300, 10, Balltyp)
GraphicsWindow.MouseMove = OnMouseMove
Shapes.ShowShape(ball)
Startposition = Math.GetRandomNumber(603)
Shapes.Move(ball, Startposition, 0)
x = Startposition
y = 0
WinkelX = Math.GetRandomNumber(2)
WinkelY = Math.GetRandomNumber(2)
deltaX = WinkelX
deltaY = WinkelY
RunLoop:
x = x + deltaX
y = y + deltaY
gw = GraphicsWindow.Width
gh = GraphicsWindow.Height
If (x >= gw - 20 or x <= 0) Then
deltaX = -deltaX
EndIf
If (y <= 0) Then
deltaY = -deltaY
EndIf
padX = Shapes.GetLeft (paddle)
If (y = gh - 28 and x >= padX and x <= padX + 120) Then
deltaY = -deltaY
If ballwiedererk = "Red" Then
Score = Score - 2000
Balltyp = Balltyp + 5000
EndIf
If ballwiedererk = "Green" Then
Score = Score + 1000
EndIf
Shapes.HideShape(ball)
File.WriteContents("C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball", Score)
GraphicsWindow.Clear()
Goto begin
EndIf
Shapes.Move(ball, x, y)
'Verzögerung
If Score = 0 Then
Program.Delay(5)
EndIf
If Score < 20000 Then
Program.Delay(4)
EndIf
If Score < 60000 Then
Program.Delay(3)
EndIf
If Score < 100000 Then
Program.Delay(2)
EndIf
If Score >= 100001 Then
Program.Delay(1)
EndIf
'Verzögerung Ende
If (y < gh) Then
Goto RunLoop
EndIf
GraphicsWindow.Clear()
If ballwiedererk = "Red" Then
Score = Score + 2000
Balltyp = Balltyp + 5000
Goto begin
EndIf
GraphicsWindow.BrushColor = "#32CD32"
GraphicsWindow.FontSize = 81
GraphicsWindow.DrawText(50, 50, "Your Score is")
GraphicsWindow.BrushColor = "Blue"
Score = File.ReadContents("C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball")
GraphicsWindow.FontSize = 100
GraphicsWindow.DrawText(50, 200, Score)
File.WriteContents("C:\Users\PepeGiallo\Documents\Für Programm\Score_Berndi_Ball", 0)
File.WriteContents("C:\Users\PepeGiallo\Documents\Für Programm\Balltyp", 0)
Sub OnMouseMove
paddleX = GraphicsWindow.MouseX
Shapes.Move(paddle, paddleX - 60, GraphicsWindow.Height - 12)
EndSub
Program.Delay(5000)
GraphicsWindow.Clear()
Goto begin
GraphicsWindow.Show()
GraphicsWindow.Title = "Sinnloser Knopf WARNUNG SINNLOS"
GraphicsWindow.BackgroundColor = "Black"
GraphicsWindow.Width = 800
GraphicsWindow.Height = 600
GraphicsWindow.FillRectangle(400, 300, 50, 50)
GraphicsWindow.MouseDown = OnMouseDown
Sub OnMouseDown
x = GraphicsWindow.MouseX
y = GraphicsWindow.MouseY
If(x >399 And x <451 And y > 299 And y < 351) Then
GraphicsWindow.ShowMessage("Du hast den sinnlosen Knopf betätigt!", "Sinnloser Knopf")
EndIf
EndSub
Für die Verwendung der aktuellen Entwicklungsumgebung von Small Basic und zur Nutzung einer damit erzeugten EXE wird Microsoft Windows und die .NET-Laufzeitumgebung der Version 4.5 benötigt.