Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung
-
Hallo zusammen,
ich plane die Entwicklung einer Software und überlege derzeit, welches Betriebssystem dafür am besten geeignet ist und welche Vor- und Nachteile für Linux bzw. Windows sprechen würden.
Hier sind einige Details zu den Schnittstellen und Funktionen der geplanten Software:
Schnittstellen:
- Ein 3D-Scanner mit vorhandener Schnittstelle in C und C++ vom Hersteller.
- An die Mesa Electronics Karte mit FPGA-Chip angeschlossene CNC-Komponenten (Motoren, Sensoren usw.). Aktuell teste ich die Hardware mit LinuxCNC, das ebenfalls eine Schnittstelle bietet (C++ / Python). Ich bin unsicher, ob diese Steuerung in die Software integriert werden sollte oder ob es besser wäre, eine eigene Steuerung zu entwickeln.
Funktionalitäten der Software:
- Einlesen und Auswerten von Scandaten sowie Analyse dieser Daten.
- Ansteuerung von CNC-Bauteilen basierend auf den Analyseergebnissen der Scandaten und Benutzerentscheidungen.
- Speichern von Scandaten.
- Übertragung von Scandaten nach Analysen an einen Server.
- Verwaltung von Benutzerdaten und Einstellungen.
- Empfang und Bereitstellung von Auftragsdaten über Netzwerkübertragung.
Die Software wird auf einem Rechner installiert und später zusammen mit der Anlage Fest geliefert. Es ist nicht vorgesehen, dass auf dem Rechner weitere Programme installiert oder verwendet werden.
Ich bin mir unsicher, welches Betriebssystem hier besser geeignet ist (Windows oder Linux) oder ob vielleicht sogar ein anderes System in Frage kommt.
Des Weiteren möchte ich die Software entweder in C oder C++ entwickeln lassen.
Ich wäre dankbar für jegliche Unterstützung und Ratschläge in dieser Angelegenheit.
Gruß Mücke
-
@Muecke82
Kommerziell oder Open Source?
-
@Helmut-Jakoby Kommerziell !
-
@Muecke82
1: Nimm eine Linux-Distribution Deiner Wahl und passe Deine Programm-Updates an den Release-Zyklus an. Bei jedem neuen Release schaust Du, ob's noch läuft und haust ggf. ein Update raus.2: Nimm Windows und irgendwann installiert jemand Outlook. Oder macht es nur an.
Tante Edith sagt, das die Sprache Python zwar gut für einen Schnellschuss ist, aber auf lange Sicht C++ oder Rust die bessere Wahl ist, weil kompilierbar...
-
@daMicha ich kann die nicht ganz folgen.
Mir ging es in erster Linie nicht darum was der Anwender installiert, nur weil er meint er braucht auf einer Industrie Maschine noch weitere Programme die da nichts verloren haben.
Sondern eher darum, was für die Anlage performens, Stabilität besser wäre. Sorry wenn ich das so nicht rüber gebracht habe in meinem ersten Beitrag, das war mein Fehler.
Gruß Mücke
-
halte dich von linux fern, wenn du deine quelltexte nicht veröffentlichen willst.
-
@Peter-Viehweger sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
halte dich von linux fern, wenn du deine quelltexte nicht veröffentlichen willst.
Das hatte ich tatsächlich nicht vor, als den Quellcode zu veröffentlichen.
-
das musst du bei linux grundsätzlich aber machen, wegen der gpl.
ich bin jetzt kein anwalt, aber so als vorwarnung.
-
du hast keine ahnung wovon du sprichst.
linux ist gpl oder aehnlich. alles was du danach oder darauf aufbaust ist gegenstand deiner eigenen lizenz.
-
Das wäre mir jetzt auch neu, dass ich meinen Code offenlegen muss, ... Ich darf nur nicht auf die GPL verlinken, wenn ich das richtig verstanden habe.
Aber was wären in meinem Fall die Vor- und Nachteile der einzelnen Betriebssysteme?
-
@Cardiac sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
du hast keine ahnung wovon du sprichst.
linux ist gpl oder aehnlich. alles was du danach oder darauf aufbaust ist gegenstand deiner eigenen lizenz.also spätestens bei irgendwelchen kernelmodulen ("treiber") bindest du gpl ein. ich meine ja nur, weil diverse leute plötzlich ein anwaltsschreiben wegen urheberrechtsverletzung erhalten haben. https://gpl-violations.org/
ansonsten würde ich zu linux (oder vielleicht sowas wie freebsd, kenne mich da aber nicht aus) tendieren, weil es einfach schlanker ist als windows. außerdem muss bei windows für jedes gerät eine lizenz gekauft werden.
-
@Muecke82 sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
@daMicha ich kann die nicht ganz folgen.
Sondern eher darum, was für die Anlage performens, Stabilität besser wäre. Sorry wenn ich das so nicht rüber gebracht habe in meinem ersten Beitrag, das war mein Fehler.
Das war genau mein Punkt.
Nimm ein Linux, das kannst Du auf die von Dir benötigten Teile herunterschrauben. Nimm z.B. eine Standard-Console-Installation, wenn Du keine grafische Oberfläche brauchst. Damit bist Du schon mal jede Menge Komplexität und Fehleranfälligkeit los. Und keine Lizenz von irgendeinem Treiber oder gar dem Kernel kann Dich zwingen, Deinen Quellcode offen zu legen.Von Redmont wissen wir ja, dass die Dir erst mal was lizensieren wollen, bevor sie Dir beim nächsten Update das System abschießen. Und ups, war Dein Fehler, weil Du nicht genug Schlangenöl drüber gekippt hast. Die wollen/müssen mit ihrem Herzen zuerst ans Geld denken.
Die Linux-Entwickler denken mit ihren Herzen zuerst an die Funktion.
-
@daMicha das spiegelt meine erste Einschätzung wider.
[OT]@daMicha sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
wenn Du keine grafische Oberfläche brauchst.
Hmm, also die grafische Oberfläche von Linux meine ich nicht, das ich die benötige, jedoch die Software soll / muss eine grafische Oberfläche besitzen, geht das denn dennoch?
@daMicha sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
Von Redmont wissen wir ja, dass die Dir erst mal was lizensieren wollen, bevor sie Dir beim nächsten Update das System abschießen.
Das ist sicher meines nicht wissen geschuldet, doch was ist Redmont ? und wie meinst du das genau?
-
@Muecke82 sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
Hmm, also die grafische Oberfläche von Linux meine ich nicht, das ich die benötige, jedoch die Software soll / muss eine grafische Oberfläche besitzen, geht das denn dennoch?
ja du kannst dir auf jedem rechner (also bzgl. windows/linux) java oder einen webserver installieren. allgemein wird letzteres bevorzugt, weil dann keine zusätzliche software auf dem anwenderrechner installiert werden muss. ansonsten gibt es dafür auch noch dinge wie qt.
Das ist sicher meines nicht wissen geschuldet, doch was ist Redmont ? und wie meinst du das genau?
redmont ist der sitz von microsoft. windows ist eben nicht kostenlos, sondern ganz schön teuer. auch da greift dann möglicherweise das urheberrecht, wenn du mal eben 10000 geräte ohne lizenz auslieferst.
-
@Peter-Viehweger sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
ja du kannst dir auf jedem rechner (also bzgl. windows/linux) java oder einen webserver installieren. allgemein wird letzteres bevorzugt, weil dann keine zusätzliche software auf dem anwenderrechner installiert werden muss.
Das Programm / Software, die erstellt werden soll/muss, soll nicht so geplant sein, das diese vom Anwender selbst installiert wird, sondern vielmehr, der Rechner ist ein fester Betonteil der Anlage, die Software wird somit von mir aufgespielt und eingestellt, vor auslieferung.
@Peter-Viehweger sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
redmont ist der sitz von microsoft.
Das erklärt einiges. Jetzt verstehe ich es etwas besser. Danke.
@Peter-Viehweger sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
wenn du mal eben 10000 geräte ohne lizenz auslieferst
Oh Man, das wäre schön. Ich bezweifle, dass ich das in 30 Jahren schaffe. Dafür ist der Markt z spezifisch.
-
@Muecke82 sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
Das Programm / Software, die erstellt werden soll/muss, soll nicht so geplant sein, das diese vom Anwender selbst installiert wird, sondern vielmehr, der Rechner ist ein fester Betonteil der Anlage, die Software wird somit von mir aufgespielt und eingestellt, vor auslieferung.
also nochmal: es soll eine maschine entwickelt werden ("große schwarze kiste") die von einem computer angesteuert wird ("kleine schwarze kiste") und ein mitarbeiter des kunden soll diese von seinem (irgendwo auf der welt, z.b. im bedienerhäuschen, befindlichen) anwenderrechner aus bedienen können.
dann ist es doch ökonomisch sinnvoll, wenn man den auf dem anwenderrechner befindlichen webbrowser zu bedienung dieser maschine nutzen kann, und da nicht erst noch eine software installieren muss.
Oh Man, das wäre schön. Ich bezweifle, dass ich das in 30 Jahren schaffe. Dafür ist der Markt z spezifisch.
ich mein ja nur, dass das dinge sind, die du beachten solltest.
-
@Peter-Viehweger sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
also nochmal: es soll eine maschine entwickelt werden ("große schwarze kiste") die von einem computer angesteuert wird ("kleine schwarze kiste") und ein mitarbeiter des kunden soll diese von seinem (irgendwo auf der welt, z.b. im bedienerhäuschen, befindlichen) anwenderrechner aus bedienen können.
Nicht ganz. Maschine ("große schwarze Kiste") von einem Computer angesteuert ("kleine schwarze Kiste"), der Anwender steht vor Ort und bedient die Maschine direkt vor Ort, nicht über die Entfernung.
Die Datenpakete, die an einen Server gesendet werden, sind Daten, die erfasst wurden und für die Statistik und für die Weiterentwicklung an einen Server gesendet werden. (das hat nichts mir der Bedingung der Software zu tun)
-
nur fuer analytics willst du das ding ans netz haengen?! das halte ich fuer maximal bescheuert. der grund warum solche dinger air-gapped sind, ist weil das seit-20jahren-eol-embedded-system nicht noch mehr schund ausgesetzt ist als obsolut notwendig.
-
ja gut, aber der mitarbeiter wird doch sowas wie einen bildschirm und eine tastatur haben, oder?
-
@Peter-Viehweger sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
ja gut, aber der mitarbeiter wird doch sowas wie einen bildschirm und eine tastatur haben, oder?
@Muecke82 sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
Hmm, also die grafische Oberfläche von Linux meine ich nicht, das ich die benötige, jedoch die Software soll / muss eine grafische Oberfläche besitzen, geht das denn dennoch?
Ja der Anwender vor Ort hat Monitor, Tastatur, Maus, Drucker.
Daher die Frage, ob ich dann dennoch eine Grafik Oberfläche haben kann, wenn das von Linux nicht vorhanden ist.@Cardiac sagte in Beratung bezüglich Betriebssystemwahl und Programmiersprache für geplante Softwareentwicklung:
nur fuer analytics willst du das ding ans netz haengen?!
Ja das möchte ich, denn der Anwender hat Scandaten, die verarbeitet und analysiert werden, und um hier mehr zu lernen, weitere Analysen anbieten zu können, soll der Anwender es freigaben können die Daten zu versenden, dafür bekommt der Anwender auch eine gegen Leistung.
Dazu sollte auch eine Schnittstelle dabei sein, die eventuell Kunden daten aus dem Usernetz erhalten kann, die dann schon vor eingetragen in Formularen / Aufträgen stehen könnten.
-
ja du kannst dir ja für alles mal eben schnell eine oberfläche programmieren, da gibt es endlos viel software für.
also man trennt afaik die software für die steuerung von der software für die bedienung und lässt beide dann über das internet bzw. webbrowser und webserver kommunizieren, muss man aber nicht, sprich das kann beides auch auf einem rechner laufen.