Sonstiges Toolchain-Desaster: Modernisierung in den nächsten Jahren realistisch?

Zu Versionskontrolle gibt es nichts neues zu sagen, das ist auch hier im Forum ein alter Hut. Bei Software mit Stückzahl Anzahl 1 und Entwickler Anzahl 1 ist eine externe Versionskontrolle auch nicht so wichtig. Hier reicht für mich ein Backup und die Vergleichsfunktion in der Entwicklungssoftware.

Zu deinem "Package-Manager" würde ich gerne mal ein konkretes Beispiel hören, an welcher Stelle in einem Automatisierungsprojekt du wie und welche Pakete mit welcher Funktion einbinden würdest, und welchen Vorteil du dir dadurch erhoffst.

Wenn Versionskontrolle wirklich "gelöst" wäre, dann würden wir uns vermutlich nicht über Themen wie TIA Openness oder TIA Multiuser beschweren.
Ich mache ein "git init" sogar bei 1-Entwickler-Projekten. Und zwar nicht deshalb, weil es zwanghaft nötig ist, sondern weil es schnell genug funktioniert.

Bezüglich Package-Manager:
Eine gute Paket-Verwaltung kann dafür sorgen, dass ein Industriezweig von Jahr zu Jahr effizienter wird, anstatt ständig das Rad neu zu erfinden in diversen Projekten.

Jetzt werden manche sagen: "Haben wir bereits längst, wir haben Bibliotheken!".
Problematisch wird es aber dann, wenn diese Bibliotheken nur von einer Hand voll Hersteller stammen, weil ein einzelner Hersteller niemals die kollektive Intelligenz der Anwender übertreffen kann.

Jetzt werden manche wieder sagen: "Interessiert mich nicht, ich würde eh niemals eigene Packages publishen!".
Ja, aber ein kleiner Prozentsatz würde es tun, und dieser kleine Prozentsatz könnte die Industrie als Ganzes vorwärts bringen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt werden manche sagen: "Haben wir bereits längst, wir haben Bibliotheken!".
Problematisch wird es aber dann, wenn diese Bibliotheken nur von einer Hand voll Hersteller stammen, weil ein einzelner Hersteller niemals die kollektive Intelligenz der Anwender übertreffen kann.

Jetzt werden manche wieder sagen: "Interessiert mich nicht, ich würde eh niemals eigene Packages publishen!".
Ja, aber ein kleiner Prozentsatz würde es tun, und dieser kleine Prozentsatz könnte die Industrie als Ganzes vorwärts bringen.

Gib doch mal ein konkretes Beispiel, das sind wieder Allgemeinschauplätze. Also wo und was sind das für viele Bibliotheken von verschiedenen Herstellern die du vorhast zu verwenden. Und wo siehst du den Vorteil zu einer Bibliothek? Bitte konkret, wo sind die Nachteile einer Bibliothek in dem Fall, und wo die Vorteile deiner Packages.
 
Was denkst du denn, wie viel Prozent der Arbeit bei einem Automatisierungsprojekt macht das Einbinden von Bibliotheken in dein Projekt aus? Das liegt vielleicht im Promille-Bereich zum Gesamtaufwand.

Gleiches gilt übrigens auch zur Kommunikation OPC-UA vs. Absolutadressen (sei es S7 Datenbausteine und Offset, oder Modbus Registernummern): Der Name ist zwar schön und gut, aber ohne weitergehende Dokumentation was sich hinter den Namen verbirgt, hilft dir das herzlich wenig. Oder beispielsweise du hast eine Kommunikation einer Produktionslinie zwischen zwei Steuerungen und musst eine Schnittstelle zwecks Datenübergabe einrichten. Meinst du wenn du das per OPC-UA Symbolen austauschst, dann macht das weniger Arbeit als über Absolutadressen? Das ist marginal, denn du musst in jedem Fall eine Dokumentation schreiben, wie der Ablauf im Detail aussieht.
 
Gib doch mal ein konkretes Beispiel, das sind wieder Allgemeinschauplätze. Also wo und was sind das für viele Bibliotheken von verschiedenen Herstellern die du vorhast zu verwenden. Und wo siehst du den Vorteil zu einer Bibliothek? Bitte konkret, wo sind die Nachteile einer Bibliothek in dem Fall, und wo die Vorteile deiner Packages.

Allgemeines Beispiel:
Ein Hersteller liefert eine beliebige Bibliothek aus (kann ein kleiner Hardware-Lieferant sein oder auch ein großer Hersteller wie Siemens).
Nach einigen Wochen wird festgestellt, dass die Bibliothek einen schwerwiegenden Fehler hat.
Wenn ich jetzt einen vernünftigen Package-Manager habe, dann kann ich:

- Eine Benachrichtigung über das Package-Update kriegen, inklusive Changelog
- Das Package-Update wahlweise mit einem einzigen Befehl einspielen (nicht direkt in eine laufende PLC, sondern in ein Offline-Projekt)

Wenn ich hingegen eine "Bibliothek" habe, dann kann ich:

- Darauf hoffen dass mich der Fehler nicht betrifft
- Falls doch, in Internet-Foren oder sonstigen Hersteller-Websites nach einer aktualisierten Version der Bibliothek graben
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was denkst du denn, wie viel Prozent der Arbeit bei einem Automatisierungsprojekt macht das Einbinden von Bibliotheken in dein Projekt aus? Das liegt vielleicht im Promille-Bereich zum Gesamtaufwand.

Gleiches gilt übrigens auch zur Kommunikation OPC-UA vs. Absolutadressen (sei es S7 Datenbausteine und Offset, oder Modbus Registernummern): Der Name ist zwar schön und gut, aber ohne weitergehende Dokumentation was sich hinter den Namen verbirgt, hilft dir das herzlich wenig. Oder beispielsweise du hast eine Kommunikation einer Produktionslinie zwischen zwei Steuerungen und musst eine Schnittstelle zwecks Datenübergabe einrichten. Meinst du wenn du das per OPC-UA Symbolen austauschst, dann macht das weniger Arbeit als über Absolutadressen? Das ist marginal, denn du musst in jedem Fall eine Dokumentation schreiben, wie der Ablauf im Detail aussieht.

Hier haben wir ein klassisches "Henne-Ei-Problem":
Ein Package-Manager kann nur dann sein volles Potential ausschöpfen, wenn es ein gutes Ecosystem an Packages gibt. Wenn aber ein Package-Manager nicht eingesetzt wird, dann kann ein solches Ecosystem auch niemals entstehen.

In den 90er-Jahren hat man auch am PC auf diese Art programmiert, und hat geglaubt dass es reicht (hat es aber nicht).
Meines Wissens war Java die erste Sprache, die ein großes Package-Ecosystem in einem industriellen Maßstab geschaffen hat. Später sind dann Python/npm und andere dazu gekommen.

Ebenfalls solche Themen wie" Absolut-Adressen":
Diese verursachen für sich selbst nur einen Promille-Bereich des Gesamtaufwands, aber die Gesamtheit der verkrusteten Toolchains verursacht einen Zusatzaufwand der sich von Projekt zu Projekt aufsummiert.
 
Nach einigen Wochen wird festgestellt, dass die Bibliothek einen schwerwiegenden Fehler hat.
Wenn ich jetzt einen vernünftigen Package-Manager habe, dann kann ich:
- Eine Benachrichtigung über das Package-Update kriegen, inklusive Changelog
:confused: Allein das Feststellen eines schwerwiegenden Fehlers sollte aber keinen Update auslösen - oder geht es nur darum. unverzüglich Betriebsamkeit zu dokumentieren?
Was passiert denn in den Monaten, in denen man vergeblich versucht, den Hersteller zu motivieren, Abhilfe zu schaffen, dann die Ursache zu finden, den Fehler auch noch zu reparieren, die Fehlerbehebung zu dokumentieren, Unverträglichkeiten und Nebenwirkungen abzuschätzen und davor zu warnen ...
 
:confused: Allein das Feststellen eines schwerwiegenden Fehlers sollte aber keinen Update auslösen - oder geht es nur darum. unverzüglich Betriebsamkeit zu dokumentieren?
Was passiert denn in den Monaten, in denen man vergeblich versucht, den Hersteller zu motivieren, Abhilfe zu schaffen, dann die Ursache zu finden, den Fehler auch noch zu reparieren, die Fehlerbehebung zu dokumentieren, Unverträglichkeiten und Nebenwirkungen abzuschätzen und davor zu warnen ...

Ein automatisches Update wird normal nirgendwo ausgelöst, weder bei npm noch bei sämtlichen anderen Package-Managern die ich kennen.
Ein Update ist immer noch ein manueller Schritt, allerdings nur ein einziges Kommando (und kein Herumgraben auf Websites und zufällig verstreuten Changelogs).

Bei der Motivierung eines Herstellers gibt es zwar keine Wundermittel, aber ein Package-Manager kann immerhin begrenzt Abhilfe schaffen:
Wenn nämlich die Mitarbeiter des Herstellers ein Update innerhalb von 5 Minuten publishen können (so bin ich es von npm gewohnt), dann steigt die Wahrscheinlichkeit, dass ein Update ausgeliefert wird. Wenn hingegen die Update-Prozedur mühselig und träge ist, dann haben die Hersteller auch entsprechend weniger Motivation.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein automatisches Update wird normal nirgendwo ausgelöst, weder bei npm noch bei sämtlichen anderen Package-Managern die ich kennen.
Ein Update ist immer noch ein manueller Schritt, allerdings nur ein einziges Kommando (und kein Herumgraben auf Websites und zufällig verstreuten Changelogs).

Und du machst dann bei all deinen Projekten die du in den letzten Jahren erstellt hast, eine Überprüfung ob es dort ein Update gibt? Wer bezahlt dir den Aufwand?

Der größte Unterschied ist, dass Python, npm und Konsorten Open Source Projekte sind, dort werden Fehler offen kommuniziert. Das sieht im Automatisierungsbereich ganz anders aus. Siemens macht per sé keine Fehler, das sind entweder Produkteigenschaften oder Behebungen von groben Bugs sind Produktverbesserungen. Das sieht aber im anderen Closed-Source Bereich ähnlich aus. Das ist aber kein Problem dieser "Toolchain" sondern ganz einfach wie Fehler kommuniziert werden.

Ich habe bei Siemens beispielsweise den Newsletter abonniert. Bei den Beschreibungen zu Firmwarefehlern stellen sich einem die Nackenhaare auf, aber solange mich das nicht betrifft fahre ich doch nicht zum Kunden und update die Steuerungen.

Ich habe bei meinen Automatisierungsprojekten ganz andere Probleme, und ich hätte lieber diverse andere Funktionen als so einen Paket-Manager. Das kommt ganz zum Schluss.
 
Und du machst dann bei all deinen Projekten die du in den letzten Jahren erstellt hast, eine Überprüfung ob es dort ein Update gibt? Wer bezahlt dir den Aufwand?

Der größte Unterschied ist, dass Python, npm und Konsorten Open Source Projekte sind, dort werden Fehler offen kommuniziert. Das sieht im Automatisierungsbereich ganz anders aus. Siemens macht per sé keine Fehler, das sind entweder Produkteigenschaften oder Behebungen von groben Bugs sind Produktverbesserungen. Das sieht aber im anderen Closed-Source Bereich ähnlich aus. Das ist aber kein Problem dieser "Toolchain" sondern ganz einfach wie Fehler kommuniziert werden.

Ich habe bei Siemens beispielsweise den Newsletter abonniert. Bei den Beschreibungen zu Firmwarefehlern stellen sich einem die Nackenhaare auf, aber solange mich das nicht betrifft fahre ich doch nicht zum Kunden und update die Steuerungen.

Ich habe bei meinen Automatisierungsprojekten ganz andere Probleme, und ich hätte lieber diverse andere Funktionen als so einen Paket-Manager. Das kommt ganz zum Schluss.

Um solche Kommunikations-Probleme zu lösen wird es wohl einen grundlegenden Umsturz im Top-Management brauchen, ein Package-Manager ist schließlich kein Wundermittel.

Zum Thema Fehler-Benachrichtigungen:
In der IT verwendet man Tools wie "Dependabot", welche das Prüfen von Updates und Fehler-Benachrichtigungen automatisieren. Das Einspielen von Updates ist zwar immer noch manuell, allerdings nur mehr ein einziger Klick mit allen relevanten Infos auf einem Blick.

Ich stimme zu, dass Package-Manager keine hohe Priorität für einzelne Projekte sind.
Es gibt aber einen großen Unterschied zwischen Einzelprojekten und der Weiterentwicklung der Industrie als Ganzes. Für diese Weiterentwicklung der Industrie als Ganzes wären Package-Manager essentiell, und kleine Unternehmen haben selbstverständlich nicht die Zeit dafür, sich mit solchen Themen zu beschäftigen.
Genau deshalb würde es große Hersteller brauchen, die solche Themen stellvertretend für andere Unternehmen lösen.
 
Also ich brauche es nicht, ganz einfach. Und ich sehe das auch nicht als Killer-Feature den ein "grundlegenden Umsturz im Top-Management" rechtfertigen würde...puh.

Aber ich glaube mit solchen Worten kannst du in Betrieben die Leute die keinen Plan haben beeindrucken. Vermutlich ist auf dem gleichen Weg auch TIA-Portal entstanden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich brauche es nicht, ganz einfach. Und ich sehe das auch nicht als Killer-Feature den ein "grundlegenden Umsturz im Top-Management" rechtfertigen würde...puh.

Aber ich glaube mit solchen Worten kannst du in Betrieben die Leute die keinen Plan haben beeindrucken. Vermutlich ist auf dem gleichen Weg auch TIA-Portal entstanden.

Ich stimme zu, mit Stand 2020 und den heutigen Toolchains brauchst du keinen Package-Manager für deine Arbeit, und ich würde in deinem Job wahrscheinlich genau zur gleichen Konklusion kommen wie du.

Die Industrie als Ganzes würde solche Package-Manager sehr wohl brauchen, aber das liegt außerhalb des Bereichs, der in Einzelprojekten beeinflusst werden kann.
Wenn überhaupt, dann können das nur Großunternehmen oder extrem erfolgreiche Startups mit viel Glück schaffen.

Eine Industrie zu transformieren war und ist nie einfach, gerade deshalb weil es aktive Bremser gibt, welche diese Entwicklung verhindern.
 
Du könntest ja mal eine Umfrage erstellen um herauszufinden, wie viele externe Bibliotheken von anderen Herstellern in den Projekten verwendet werden. Das sieht je nach Branche sicher anders aus, bei mir liegt das zwischen 0 und 1. Es gibt auch nur wenige Hersteller die so etwas mitliefern, und wenn dann passt es meistens nicht für das aktuelle Projekt oder in die eigene Struktur.
 
Du könntest ja mal eine Umfrage erstellen um herauszufinden, wie viele externe Bibliotheken von anderen Herstellern in den Projekten verwendet werden. Das sieht je nach Branche sicher anders aus, bei mir liegt das zwischen 0 und 1. Es gibt auch nur wenige Hersteller die so etwas mitliefern, und wenn dann passt es meistens nicht für das aktuelle Projekt oder in die eigene Struktur.

Auch hier haben wir wieder ein klassisches "Henne-Ei-Problem".
Wenn kein vernünftiger Package-Manager eingesetzt wird, dann hat das folgende schädliche Effekte:

- Externe Hersteller veröffentlichen keine oder nur weniger Pakete, weil der Aufwand für Wartung und Updates zu groß ist.
- Initiativen von einzelnen Entwicklern werden abgewürgt, weil der Aufwand für die Verteilung des Codes zu groß ist.
- Bugfixes werden nur verzögert oder spärlich ausgeliefert, weil der Aufwand für Updates zu groß ist.
- Codesharing innerhalb von Unternehmen wird nur in Form von "Copy and forget" betrieben, weil das Publishen von internen Paketen zu aufwendig ist.

Package-Manager sind daher keine revolutionäre Technologie für sich alleine, sondern nur eine "Enabler-Technologie" für gesteigerte Innovation und Effizienz.

Das Problem "Paket passt nicht in die eigene Struktur" ist genau diese Art von Engineering-Problem, welches nur durch offene Standards für eine ganze Industrie gelöst werden kann.

Zugegeben war die IT auch jahrzehntelang von diesen Problemen geplagt, und auch in der IT hat es viele Bremsen gegeben.
Trotzdem haben sich dann einzelne Unternehmen wie GitHub und npm durchgesetzt und die Welt nachhaltig verändert, und zwar zum besseren verändert (es sei denn, das Ziel ist es, möglichst viele Jobs zu behalten die nur bereits gelöste Software-Probleme wieder und wieder neu lösen).
 
Zuletzt bearbeitet:
Zumindest beim Codesharing innerhalb einer Firma liegst du falsch. Dafür gibt es ja die Möglichkeit, eigene Bibliotheken zu schreiben.

Vielleicht ist das Publishen von firmen-internen Libraries noch das kleinere Problem (obwohl auch interne Bibliotheken von versionierten Updates profitieren könnten).

Wo ich hingegen ein großes Problem sehe, ist das Publishen von Libraries, welche "für die Öffentlichkeit" bestimmt sind, beispielsweise für eine bestimmte Hardware.
Wenn eine Library X mal gepublished werden muss, damit sie bei X verschiedenen PLC-Herstellern funktioniert, dann ist der Aufwand für Wartung und Updates viel zu groß.
Wenn dann auch noch proprietäre Datei-Formate dazukommen, welche in regelmäßigen Abständen durch Updates der Engineering-Software zerschossen werden, dann ist das Library-Chaos perfekt.

Ähnliche Probleme hat es früher auch im IT-Bereich gegeben:
Wenn beispielsweise ein Linux-Programm für X verschiedene Linux-Distributionen einzeln verpackt werden muss, dann tun sich nur die wenigsten Hersteller diesen Aufwand an.

Manchmal genügt bereits ein Blick auf Hersteller-Websites, um zu sehen, dass Library-Distributionen immer noch problematisch sind.
Wenn beispielsweise Libraries auf beliebig verstreuten Websites zum Download verfügbar sind, und mit unfassbar aufgeblähten PDF-Files dokumentiert werden, dann hat das mit modernen Paket-Managern nicht viel zu tun.
 
Zuletzt bearbeitet:
Zurück
Oben