Es ist ein grundlegendes Sprachproblem von GDL. Ich habe in letzter Zeit oft darüber nachgedacht.
GDL basiert bekanntlich ja auf BASIC, also einer Sprache aus der Kinderzeit des Computers (wohlgemerkt nicht PC. Da war an "Rechenmaschinen" kleiner als ein Güterzug noch nicht zu denken).
Anstatt GDL von Grund auf neuzugestalten, wie es, langsam aber sicher, nötig wäre, bastelt Graphisoft eben lieber von Jahr zu Jahr daran herum. Aber alles ohne Struktur, Plan, und Ziel.
Man merkt, dass die Ungarn vor einigen Jahren GDL mal zum toten Pferd (zumindest intern) erklärt haben.
So kann ich mir kaum vorstellen, dass die Entwickler bei GS ihre Arbeit selber in Archicad mit diesem abscheulichen Editor absolvieren. Ein Editor, der so schlecht ist, dass wohl selbst Kemeny und Kurtz sich geweigert hätten, ihn zu verwenden. Zeilennummern? Aber hallo, doch nicht bei uns. Vom Debugger fange ich besser erst gar nicht an.
(Bevor hier Einwände kommen, dass der Editor mit der Sprache nichts zu tun hätte, der irrt. GDL ist nunmal ein eigenes Ökosystem. GDL ist eine exklusive Sprache, die ein extrem spezielles Anwendungsgebiet und eine enge Zielgruppe besitzt. Da GDL sehr eng mit einem Programm verwoben ist, muss einfach alles passen...)
Mittlerweile gibt es zwar Alternativen, die aber auch nicht ohne Schattenseiten auskommen.Jene Einstellung hat sich zwar wieder etwas gewandelt – zumindest schliesse ich das aus der »Charmoffensive« die sie mit der
offiziellen GDL-Seite gestartet haben.
Trotzdem fristet GDL immer noch ein Nischendasein. Das ist sicherlich auch ein Henne-Ei-Problem: wäre die Sprache mächtiger und besser dokumentiert (Kudos an
Frank und Jochen! – ohne die beiden würde man wohl so gar nicht daran denken, sich ans GDL zu wagen. Deine Tutorials sind ebenfalls immer sehr bereichernd, lieber Heimo), würde man es besser nutzen können, etc. In jedem Fall wird man auch in Zukunft die meisten Architekten wohl kaum dazu bewegen können, selbst Objekte zu programmieren. Was auch sicherlich nicht negativ gesehen werden muss; andere Leute können das schließlich besser in weniger Zeit.
Eine weitere Sache ist, dass man sich (so war es früher auf jeden Fall) in die offizielle API Archicads als Entwickler teuer einkaufen muss. Stichwort Stairmaker vs.
Dritthersteller.
Kleineren Entwicklern bleibt da nur Vanilla-GDL. Ich vermute, dass es deshalb bewusst »klein« gehalten wird, damit es nicht zu mächtig wird.
Zurück zum Sprachdesign: Ich persönlich komme zwar mittlerweile halbwegs zurecht, finde die Sprache aber dennoch »hässlich«. Auf der einen Seite kann sie zu wenig (
Hallo Baustoffe!), auf der anderen Seite ist sie für das, was sie leistet, viel zu umständlich. Wenn auch von GS stellenweise kaputt designt – hier sei einmal nur an die Hotspot-IDs erinnert, welche zwar nett gemeint waren, nur leider in Praxis völlig versagten.
Bei GDL hat man an keiner Stelle den Eindruck, dass mir hier Arbeit abgenommen wird. Im Gegenteil, oft fühlt es sich an, als wenn man dem Computer noch die Sachen hinterhertragen muss. Wie zum Beispiel die Koordinatengeschichte. Warum ist sowas nicht eingebaut? Warum sind die Makros nicht dokumentiert? . . .
Wie bereits erwähnt: es gibt keinen Plan, kein Ziel, und vor allem überhaupt keine Struktur.
Auf der einen Seite sind etliche Sachen höchst »loose« bis gar nicht definiert (Variablen mit LET zuweisen, ach nein, geht auch ohne). Auf der anderen Seite gibt es plötzlich total unrobuste Stellen, an denen man sich höchst penibel an fragwürdige Regeln halten muss, sonst hauts einem die Sache um die Ohren.
Verzweifelt versucht GS mit »faster than ever« die Geschwindigkeit von Archicad zu heben. Ein Ansatzpunkt ist das GDL mit seiner JIT-Konzipierung. Durch ansichtenabhängige Neugenerierung können Objekte theoretisch ziemlich viel leisten (allerdings ist das eine »teure« Operation und kann unsinnig sein, wenn das GDL nur statisch ist – es gibt keinen Compiler der das prüfen würde). Die Sprache war zudem nie für Funktionen wie Teamwork gedacht. Also wird an Features beschnitten, damit AC schneller läuft.
Woher kommt mir das wieder bekannt vor? Achja, richtig:
Das hatten wir ja bei C schon mal.GDL ist unleserlich (
Statuswerte hallo!), altbacken, kompliziert, und nicht für das 21. Jahrhundert gemacht.
Wir müssen unsere UIs immer noch selber zusammenschreiben? Come on, GS.....
Inkonsequenz ist ein Kernmerkmal von GDL. Kommt sicherlich auch vom Rumbasteln. Was waren nochmal die Unterschiede bei den 5 Versionen von Revolve?
Und irgendjemand hielt es mal für eine kluge Idee, neue Versionen von Befehlen mit einem Unterstrich_ zu kennzeichnen. Später dann wird mit geschweiften Klammern{2} versioniert. Sehen Sie noch durch? Schön, denn zusammengesetzte Kommandonamen_haben_mal_Unterstriche, malsindsieeinfachzusammengeschrieben.
tldr; GDL is a mess.