Gambas - Gambas

Gambas
Gambas-Logo
Gambas 3 Logo
Gambas 2-Logo
Gambas-3.3.4-Xfce-Fedora16.png
Gambas 3.3.4 läuft auf Fedora 16 mit Xfce
Entworfen von Benoît Minisini
Erstmals erschienen 1999 ; Vor 22 Jahren ( 1999 )
Stabile Version
3.16.2 / 14. Juli 2021 ; Vor 29 Tagen ( 2021-07-14 )
Betriebssystem Linux , FreeBSD ; Version für
Mac OS X und Haiku in Arbeit; Microsoft Windows über Cygwin
Lizenz GNU GPLv2 +
Webseite http://gambas.sourceforge.net
Beeinflusst von
Visual Basic , Java

Gambas ist der Name eines objektorientierten Dialekts der Programmiersprache BASIC sowie der dazugehörigen integrierten Entwicklungsumgebung . Entwickelt auf denen sie laufen Linux und anderen Unix-ähnlichen Computer - Betriebssysteme , ist sein Name ein rekursive Akronym für G ambas A ast M eans Bas ic . Gambas ist auch das Wort für Garnelen in den spanischen , französischen und portugiesischen Sprachen, von denen die Logos des Projekts abgeleitet sind.

Geschichte

Gambas 1.0.15 läuft von KDE

Gambas wurde von dem französischen Programmierer Benoît Minisini entwickelt , mit seiner ersten Veröffentlichung im Jahr 1999. Benoît war mit der BASIC-Sprache aufgewachsen und beschloss, eine freie Software-Entwicklungsumgebung zu entwickeln, die schnell und einfach Programme mit Benutzeroberflächen erstellen konnte.

Die Gambas 1.x-Versionen enthielten eine Oberfläche, die aus mehreren verschiedenen separaten Fenstern für Formulare und IDE-Dialoge bestand, ähnlich der Oberfläche früherer GIMP- Versionen . Es konnte auch nur Anwendungen mit Qt entwickeln und war eher auf die Entwicklung von Anwendungen für KDE ausgerichtet . Die letzte Version der 1.x-Versionen war Gambas 1.0.19.

Gambas 2.7 mit russischer Schnittstelle

Die erste der 2.x-Versionen wurde am 2. Januar 2008 nach drei bis vier Jahren Entwicklungszeit veröffentlicht. Es beinhaltete eine umfassende Neugestaltung der Benutzeroberfläche, jetzt mit allen Formularen und Funktionen eingebettet in ein einziges Fenster, sowie einige Änderungen an der Gambas-Syntax, obwohl die Codekompatibilität größtenteils beibehalten wurde. Es enthielt wichtige Updates für bestehende Gambas-Komponenten sowie das Hinzufügen einiger neuer Komponenten, wie z. B. neue Komponenten, die GTK+ oder SDL zum Zeichnen verwenden oder OpenGL- Beschleunigung verwenden könnten . Gambas 2.x-Versionen können Gambas 1.x-Projekte laden und ausführen, mit gelegentlichen Inkompatibilitäten; das gleiche gilt für Gambas 2.x bis 3.x, aber nicht von Gambas 1.x bis 3.x.

Die nächste große Iteration von Gambas, die 3.x-Versionen, wurde am 31. Dezember 2011 veröffentlicht. Ein auf der Gambas-Website veröffentlichter Benchmark aus dem Jahr 2015 zeigte, dass das Skript von Gambas 3.8.90 in unterschiedlichem Maße schneller war als Perl 5.20.2 und die damalige neueste Version 2.7.10 von Python in vielen Tests. Die am 20. April 2021 veröffentlichte Version 3.16.0 bot volle Unterstützung für Wayland unter Verwendung der grafischen Komponenten sowie Parität zwischen den Qt 5- und GTK 3-Komponenten.

Merkmale

Gambas 2.7.0 läuft unter Fedora Linux mit Blackbox

Gambas wurde entwickelt, um grafische Programme mit Qt (derzeit Qt 4.x oder 5.x seit 3.8.0) oder dem GTK- Toolkit ( ab 3.6.0 auch GTK 3.x unterstützt) zu erstellen; die Gambas-IDE ist in Gambas geschrieben. Gambas enthält einen GUI-Designer , der bei der Erstellung von Benutzeroberflächen in einem ereignisgesteuerten Stil hilft , kann aber auch Befehlszeilenanwendungen sowie textbasierte Benutzeroberflächen mit dem ncurses- Toolkit erstellen . Die Gambas- Laufzeitumgebung wird benötigt, um ausführbare Dateien auszuführen.

Die Funktionalität wird durch eine Vielzahl von Komponenten bereitgestellt, von denen jede ausgewählt werden kann, um zusätzliche Funktionen bereitzustellen. Das Zeichnen kann entweder über Qt- und GTK-Toolkits bereitgestellt werden, mit einer zusätzlichen Komponente, die zwischen ihnen umschalten soll. Das Zeichnen kann auch über den Simple DirectMedia Layer (ursprünglich Version 1.x, mit 2.x hinzugefügt ab 3.7.0) bereitgestellt werden , der auch für die Audiowiedergabe über eine separate Soundkomponente verwendet werden kann (eine Komponente für die OpenAL- Spezifikation hat auch hinzugefügt). Unterstützung für die GPU- Beschleunigung ist über eine OpenGL- Komponente sowie über andere Hardware verfügbar , die von verschiedenen anderen Komponenten funktional bereitgestellt wird. Darüber hinaus gibt es Komponenten für die Bearbeitung anderer spezialisierter Aufgaben.

Eines der Beispiele, die in der Gambas 3 IDE ausgeführt werden
Spiel: Stars War made in Gambas3

Mit Gambas können Entwickler auch Datenbanken wie MySQL oder PostgreSQL verwenden, KDE (Qt)- und GNOME GTK-Anwendungen mit DCOP erstellen , Visual Basic-Programme in Gambas übersetzen und unter Linux ausführen, Netzwerklösungen erstellen und CGI-Webanwendungen erstellen. Die IDE enthält auch ein Tool zum Erstellen von Installationspaketen , das GNU Autotools , slackpkg , pacman , RPM und debs unterstützt (die beiden letzteren sind dann auf spezielle Distributionen wie Fedora / RHEL / CentOS , Mageia , Mandriva , OpenSUSE und Debian zugeschnitten , Ubuntu / Mint ).

Gambas hat seit Version 3.2 IDE einen integrierten Profiler und begann, Just-in-Time-Kompilierungstechnologie zu verwenden.

Unterschiede zu Visual Basic

Gambas soll eine ähnliche Erfahrung bieten wie die Entwicklung in Microsoft Visual Basic , aber es ist kein kostenloser Software- Klon des beliebten proprietären Programms. Der Autor von Gambas macht deutlich, dass es Ähnlichkeiten zu Visual Basic gibt, wie die Syntax für BASIC-Programme und die integrierte Entwicklungsumgebung; Gambas wurde von Anfang an als eigene Entwicklungsumgebung geschrieben und versucht, die Formel zu verbessern.

Sein Objektmodell , jede Klasse, die in einer Datei dargestellt wird, sowie der Archivierer zum Verpacken des Programms sind alle von der Programmiersprache Java inspiriert . Gambas soll eine Alternative für ehemalige Visual Basic-Entwickler sein, die sich für eine Migration auf Linux entschieden haben. Es gibt auch andere wichtige Unterschiede zwischen Gambas und Visual Basic. Ein bemerkenswertes Beispiel ist, dass Array-Indizes in Gambas immer mit 0 beginnen, während Visual Basic-Indizes mit 0 oder 1 beginnen können. Gambas unterstützt auch die Kurzform += und -= , die im klassischen Visual Basic nicht zu finden ist. Beides sind jedoch Features von Visual Basic .NET .

Annahme

Mehrere Programme und viele Arten von Beispielcode wurden mit und für Gambas geschrieben. Am 28. Oktober 2012 listete Freecode (ehemals Freshmeat) 23 Anwendungen auf, die mit Gambas entwickelt wurden, während das Gambas-Wiki 82 aufführte; mehrere andere spezialisierte Websites listen Gambas-Anwendungen und -Code auf. Eine von Gambas geschriebene Anwendung namens Gambas3 ShowCase diente als Software-Center zum Herunterladen oder Installieren von Gambas-3-Anwendungen. Es wurde seit dem Start der seit 3.7.1 in die IDE integrierten Gambas Software Farm, die fast 500 Anwendungen und Demos enthält, eingestellt. Für Gambas gibt es auch mehrere Community-Sites, darunter Community-Foren und Mailinglisten. Eine bemerkenswerte Anwendung, die in Gambas geschrieben wurde, ist Xt7-player-mpv, ein GUI-Frontend für mpv- Player, das in einer Reihe von Linux-Software-Repositorys enthalten ist.

Verfügbarkeit

Gambas ist in den Repositories einer Reihe von Linux-Distributionen wie Debian , Fedora , Mandriva Linux und Ubuntu enthalten . Eine Microsoft Windows- Version von Gambas wurde unter der Cygwin- Umgebung ausgeführt, obwohl diese Version deutlich weniger getestet wurde als ihre Linux-Pendants und nur auf der Befehlszeile verfügbar war; Kooperatives Linux und Derivate wurden ebenso verwendet wie spezialisierte virtuelle Linux- Maschinen . Ein unabhängiger Mitarbeiter, François Gallo, arbeitete auch an der Portierung von Gambas 3.x auf Mac OS X und FreeBSD , basierend auf der Verwendung lokaler Versionen des X11- Systems. Gambas ab Version 3.2 ist auf Raspberry Pi lauffähig und bietet dort ab Version 3.12 die Just-in-Time-Kompilierung .

Im November 2013 wurde die zukünftige Portabilität von Gambas diskutiert, wobei die Hauptanliegen die im Interpreter verwendeten Linux-Kernel- Funktionen, Komponenten, die Linux-spezifische Software und Bibliotheken verwenden, und hauptsächlich die X11-Anbindung in den Qt-, GTK- und Desktop-Integrationskomponenten aufgeführt sind. Allerdings, teilweise aufgrund der Notwendigkeit, auf neuere Toolkits wie GTK 3 (hinzugefügt ab 3.6.0) und Qt 5 (ab 3.8.0) zu aktualisieren, wären zukünftige Versionen weniger an X11 gebunden, was Projekte wie Cygwin oder völlig nativ machen würde Versionen auf anderen Plattformen mehr möglich. Benoît Minisini erklärte, er beabsichtige, X11-spezifischen Code zu "kapseln", um ihn bei jedem Versuch zu ersetzen, indem die X11-Unterstützung in der Desktop-Komponente ab 3.6.0 in eine eigene Komponente verschoben wurde.

Am 27. Oktober 2016 wurde auf der Hauptseite ein Screenshot und eine Setup-Anleitung veröffentlicht, mit der Gambas vollständig über Cygwin ausgeführt werden kann, einschließlich der meisten Komponenten, grafischen Toolkits und der vollständigen IDE. Die entsprechenden Patches wurden ab Version 3.9.2 gemainlinet. Dies ersetzt die früher empfohlene Methode zur Verwendung der Freenx- Weiterleitung von einem Linux-Server . Es wurde auch erfolgreich mit dem Windows-Subsystem für Linux ausgeführt . Dies geschieht normalerweise mit einem X-Terminal- Emulator wie Mobaxterm unter Windows, da WSL X11- Grafiken nicht direkt unterstützt.

Beispielcode

Ein "Hallo Welt!" Programm mit grafischer Benutzeroberfläche.

Public Sub Main()
    Message("Hello, World!")
End

Programm, das ein 100-Term-Polynom 500000-mal berechnet und zehnmal wiederholt (für Benchmarking verwendet ).

Private Sub Test(X As Float) As Float

    Dim Mu As Float = 10.0
    Dim Pu, Su As Float
    Dim I, J, N As Integer
    Dim aPoly As New Float[100]

    N = 500000

    For I = 0 To N - 1
        For J = 0 To 99
           Mu =  (Mu + 2.0) / 2.0
           aPoly[J] = Mu
        Next
        Su = 0.0
        For J = 0 To 99
            Su = X * Su + aPoly[J]
        Next
        Pu += Su
    Next

    Return Pu

End

Public Sub Main()

    Dim I as Integer

    For I = 1 To 10
        Print Test(0.2)
    Next

End

Siehe auch

Verweise

Weiterlesen

Externe Links