Oberon Component Pascal, darüber bin ich gestolpert, als ich nach
weiteren Alternativen zu Delphi, Lazarus Free Pascal suchte.
KUrz ausporbiert und erst mal gedacht, was für ein Sch...!
Aber weit gefehlt, eher das Gegenteil ist der Fall.
State of the art programming! Next level software development!
Oberon Component Pascal, was ist das?
Das ist die aktuelle Entwicklung in der Reihe: Pascal, Modula, Oberon, component Pascal
Entwickelt wurde das ganze an der ETH Zürich um das Team von Niklaus Wirth, dem
"Erfinder" von Pascal. Mittlerweile ausgegliedert in ein Firma: Oberon Micro Systems.
Oberon stand praktisch Pate für alle als modern geltenden Programmiersprachen
darunter:
Java, C#, Go, D, Swift und wahrscheinlich noch viele mehr!
Einer der Chef Entwickler von Oberon war dann bei MS an der Entwicklung von NET beteiligt.
D.h. Techniken von Oberon stecken in fast allen momentanen Mainstream Programmiersprachen.
Go soll mehr oder weniger OBERON mit C-Syntax sein!
Was macht das für die Automatisierung interessant!
1. Die Syntax von SCL ist fast 1:1 identisch mit OBERON.
D.h. wer SCL beherrscht, beherrscht OBERON.
(OBERON kann aber mehr als SCL)
Selbst die Technik der VAR_IN, VAR_OUT, VAR_InOut wie in SCL steckt 1:1 so in OBERON
2. Einfache Syntax, Type safe, modular.
Objectorientierung, Vererbung ...
3. Open Source, Linux, Windows
4. Die BlackBox genannte Entwicklungsumgebung mit IDE, Framework und Compiler hat nur 5,44MB
ja wirklich MegaByte nicht GigaByte.
Damit kann man diese problemlos auf seinen Anlagenrechner, HMI-PC vor Ort haben.
Notfalls lässt sich das alles in wenigen Sekunden Online übertragen.
Was benötigt man?
1. Die Black Box Entwicklungsumgebung
http://blackboxframework.org
2. evtl. die Component Pascal Collection
http://www.zinnamturm.eu
3. evtl. ein paar Infos und Anleitungen
am besten erst das hier mal lesen:
BlackBox Component Builder For Scientists and Engineers
https://www.pas.rochester.edu/~skulski/Presentations/BB_Class.pdf
https://de.wikipedia.org/wiki/Component_Pascal
https://de.wikiversity.org/wiki/Kurs:Programmieren_in_Oberon
PDF FH Braunschweig - Fachbereich Informatik
Moderne Programmiertechniken –Eine Einf ¨uhrung mit Oberon
https://public.ostfalia.de/~ruediger/lehre/Inf/Inf12Txt.pdf
Oberon Micro System, Zürich/Schweiz
http://www.oberon.ch/company.html
Community Forum
https://community.blackboxframework.org
Worüber stolpert man bzw. welche Probleme tretem auf?
1. Component Pascal erzeugt von sich aus keine klassischen .exe Files und .dll
Dies wird aufgrund des Konzepts von Oberon eigentlich auch nicht benötigt.
Da Oberon Modular compiliert, liegt jedes Modul für sich als Maschinencode vor und
kann von jedem anderen Oberon Modul aufgerufen werden. Programmiert man nur in Oberon,
kann man getrost auf DLLs verzichten.
Einzelne Module werden, wenn sie angefordert werden nachgeladen und per late-binding bekannt
gemacht.
Es gibt jedoch die Möglichkeit, Oberon Projekte als direkte .exe zu linken. Sieh dazu das
BlackBox Community Form
https://community.blackboxframework.org/viewtopic.php?f=32&t=223&p=1460&hilit=exe#p1460
2. 64-Bit mit Component Pascal
im Moment erzeugt BalckBox nur 32-Bit code. Grund dafür ist lt. des Forums, dass der
Garbage Collector komplett geändert werden muss. Garbage Collector ist die Speicherverwaltung
für das dynamische laden und entladen von Modulen zur Laufzeit, bzw. das automatische aufräumen
des Speichers.
Das ist aber eher unproblematisch, da normale Programme von 64-Bit eh nicht profitieren und
man mit Oberon 32-Bit wohl die vollen 4GB Speicher adressieren kann.
3. Die IDE wirkt etwas rudimentär, verlichen mit einem Visual Studio oder Delphi und Lazarus.
Was aber nicht unbedingt ein Nachteil sein muss. Man kommt extrem schnell damit zurecht.
4. Wo fängt ein Oberon Programm an, bzw. wo startet es?
Es gibt keinen klassischen Einsprungpunkt bzw. eine klassiche Main{}.
Durch den Modularen Aufbau kann jedes Modul wenn nötig für sich gestartet werden.
Für den Test in der IDE macht das absolut Sinn.
D.h. ich kann ein einzelnes Modul compilieren und direkt mit Parametern aus der IDE aufurfen.
Somit kann ich mein Programm erst mal starten wo ich will.
Später muss natürlich das Startmodul für die eigene Anwendung dem Oberon Laufzeitsystem,
d.h. dem component-Loader übergeben werden.
weiteren Alternativen zu Delphi, Lazarus Free Pascal suchte.
KUrz ausporbiert und erst mal gedacht, was für ein Sch...!
Aber weit gefehlt, eher das Gegenteil ist der Fall.
State of the art programming! Next level software development!
Oberon Component Pascal, was ist das?
Das ist die aktuelle Entwicklung in der Reihe: Pascal, Modula, Oberon, component Pascal
Entwickelt wurde das ganze an der ETH Zürich um das Team von Niklaus Wirth, dem
"Erfinder" von Pascal. Mittlerweile ausgegliedert in ein Firma: Oberon Micro Systems.
Oberon stand praktisch Pate für alle als modern geltenden Programmiersprachen
darunter:
Java, C#, Go, D, Swift und wahrscheinlich noch viele mehr!
Einer der Chef Entwickler von Oberon war dann bei MS an der Entwicklung von NET beteiligt.
D.h. Techniken von Oberon stecken in fast allen momentanen Mainstream Programmiersprachen.
Go soll mehr oder weniger OBERON mit C-Syntax sein!
Was macht das für die Automatisierung interessant!
1. Die Syntax von SCL ist fast 1:1 identisch mit OBERON.
D.h. wer SCL beherrscht, beherrscht OBERON.
(OBERON kann aber mehr als SCL)
Selbst die Technik der VAR_IN, VAR_OUT, VAR_InOut wie in SCL steckt 1:1 so in OBERON
2. Einfache Syntax, Type safe, modular.
Objectorientierung, Vererbung ...
3. Open Source, Linux, Windows
4. Die BlackBox genannte Entwicklungsumgebung mit IDE, Framework und Compiler hat nur 5,44MB
ja wirklich MegaByte nicht GigaByte.
Damit kann man diese problemlos auf seinen Anlagenrechner, HMI-PC vor Ort haben.
Notfalls lässt sich das alles in wenigen Sekunden Online übertragen.
Was benötigt man?
1. Die Black Box Entwicklungsumgebung
http://blackboxframework.org
2. evtl. die Component Pascal Collection
http://www.zinnamturm.eu
3. evtl. ein paar Infos und Anleitungen
am besten erst das hier mal lesen:
BlackBox Component Builder For Scientists and Engineers
https://www.pas.rochester.edu/~skulski/Presentations/BB_Class.pdf
https://de.wikipedia.org/wiki/Component_Pascal
https://de.wikiversity.org/wiki/Kurs:Programmieren_in_Oberon
PDF FH Braunschweig - Fachbereich Informatik
Moderne Programmiertechniken –Eine Einf ¨uhrung mit Oberon
https://public.ostfalia.de/~ruediger/lehre/Inf/Inf12Txt.pdf
Oberon Micro System, Zürich/Schweiz
http://www.oberon.ch/company.html
Community Forum
https://community.blackboxframework.org
Worüber stolpert man bzw. welche Probleme tretem auf?
1. Component Pascal erzeugt von sich aus keine klassischen .exe Files und .dll
Dies wird aufgrund des Konzepts von Oberon eigentlich auch nicht benötigt.
Da Oberon Modular compiliert, liegt jedes Modul für sich als Maschinencode vor und
kann von jedem anderen Oberon Modul aufgerufen werden. Programmiert man nur in Oberon,
kann man getrost auf DLLs verzichten.
Einzelne Module werden, wenn sie angefordert werden nachgeladen und per late-binding bekannt
gemacht.
Es gibt jedoch die Möglichkeit, Oberon Projekte als direkte .exe zu linken. Sieh dazu das
BlackBox Community Form
https://community.blackboxframework.org/viewtopic.php?f=32&t=223&p=1460&hilit=exe#p1460
2. 64-Bit mit Component Pascal
im Moment erzeugt BalckBox nur 32-Bit code. Grund dafür ist lt. des Forums, dass der
Garbage Collector komplett geändert werden muss. Garbage Collector ist die Speicherverwaltung
für das dynamische laden und entladen von Modulen zur Laufzeit, bzw. das automatische aufräumen
des Speichers.
Das ist aber eher unproblematisch, da normale Programme von 64-Bit eh nicht profitieren und
man mit Oberon 32-Bit wohl die vollen 4GB Speicher adressieren kann.
3. Die IDE wirkt etwas rudimentär, verlichen mit einem Visual Studio oder Delphi und Lazarus.
Was aber nicht unbedingt ein Nachteil sein muss. Man kommt extrem schnell damit zurecht.
4. Wo fängt ein Oberon Programm an, bzw. wo startet es?
Es gibt keinen klassischen Einsprungpunkt bzw. eine klassiche Main{}.
Durch den Modularen Aufbau kann jedes Modul wenn nötig für sich gestartet werden.
Für den Test in der IDE macht das absolut Sinn.
D.h. ich kann ein einzelnes Modul compilieren und direkt mit Parametern aus der IDE aufurfen.
Somit kann ich mein Programm erst mal starten wo ich will.
Später muss natürlich das Startmodul für die eigene Anwendung dem Oberon Laufzeitsystem,
d.h. dem component-Loader übergeben werden.