Forum: PC-Programmierung zukunftsfähige GUI - Qt oder HTML5?


von Andreas (Gast)


Lesenswert?

Hallo :)

Für das Projekt meiner Abschlussarbeit benötige ich eine GUI. Gerne 
möchte ich mich dann in eine zukunftsfähige GUI einarbeiten. Die GUI 
soll auf einem SBC laufen - da nicht kommerziell wahrscheinlich auf 
einem RPi, oder sollte man doch ein x86/64-Prozessorboard nehmen? Habt 
ihr dort Vorschläge oder Ideen? Es sollte optisch schon zeitgemäß 
aussehen (TKinter fällt raus). Ich kann C/C++, Python, (Java). Danke 
euch

: Verschoben durch Moderator
von Rath Looser (Gast)


Lesenswert?

Andreas schrieb:
> soll auf einem SBC laufen

Kann man SBC essen?

https://de.wikipedia.org/wiki/SBC

von Oliver S. (oliverso)


Lesenswert?

RPi und zeitgemäßes Gui passen ja schon einmal kaum zusammen. Da kann 
der Raspi aber nichts dafür...

Qt liefert, wenn möglich, ein natives Gui passend zum Betriebssystem. Ob 
sich der Einarbeitungsaufwand in solch Universal-Monster aber für ein 
einziges Projekt lohnt, musst du selber wissen. Wenn es da nur um ein 
paar Buttons und Icons geht, würde da doch eher was gescriptetes mit 
niedriger Einstiegsschwelle wählen.

Oliver

von MaWin (Gast)


Lesenswert?

Ich sag mal: weder - noch.

Zukunftsfähig ist eine GUI nur, wenn ihre Controls, also Buttons und 
Listenelemente, Menüs und Fensterrahmen, vollkommen programmspezifisch 
mit beliebiger auch nicht-rechteckiger Aussenkontur gezeichnet werden 
können, und die Standardcontrols halt bloss einem die Mühe abnehmen, es 
auch zeichnen zu müssen

UND

die GUI Flache es trotzdem erlaubt, in irregulär begrenzten 
Bildschirmflächen flackerfrei (also double buffering) animierte Bitmaps 
in Videoqualität und Geschwindigkeit darzustellen.

UND

wenn es die Identifikation der Controls auf der Oberfläche nicht nur per 
Position, sondern namentlicher ID erlauben UND an jedem Control 
(zumindest statisch, aber gern auch dynamisch, jedoch nicht nur 
dynamisch) programmspezifische 'user-data' angehängt werden kann.

von Thomas W. (Gast)


Lesenswert?

Moin, -

willkommen im Club. Ich stehe vor demselben Problem: Ich wuerde gern Qt 
benutzen, nur sind die Lizenzbedingungen ein wenig zu komplex. Zudem 
soll das Prograemmchen mit einer Datenbank spielen (Transaktionen sind 
notwendig).

Dann dachte ich an FreePascal (Lazarus) Laeuft unter Windows/Linux 
(sogar auf einem Raspi3/4). Lizenz waere fuer mich OK.

Ich habe noch keine richtige Loesung gefunden.

Gruesse

Th.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas schrieb:
> da nicht kommerziell wahrscheinlich auf einem RPi
Dieser logische Kurzschluss ist mir jetzt nicht so ganz klar.

> auf einem RPi, oder sollte man doch ein x86/64-Prozessorboard nehmen?
> Habt ihr dort Vorschläge oder Ideen?
Welche Busse oder Interfaces brauchst du? Wieviel Leistung kannst du 
wegkühlen? Wieviele Daten musst du wie schnell speichern? Was soll die 
GUI wie schnell abbilden?

von Rolf M. (rmagnus)


Lesenswert?

Andreas schrieb:
> Für das Projekt meiner Abschlussarbeit benötige ich eine GUI. Gerne
> möchte ich mich dann in eine zukunftsfähige GUI einarbeiten. Die GUI
> soll auf einem SBC laufen - da nicht kommerziell wahrscheinlich auf
> einem RPi, oder sollte man doch ein x86/64-Prozessorboard nehmen?

Kommt drauf an, was deine GUI so alles machen soll.

> Habt ihr dort Vorschläge oder Ideen? Es sollte optisch schon zeitgemäß
> aussehen (TKinter fällt raus).

Soll es dennoch eher eine klassische "Widget"-basierte GUI sein oder 
eher sowas wie eine Touch-GUI mit schicken Animationen u.s.w.? Qt 
beinhaltet für beides jeweils ein eigenes GUI-Framework.

Rath Looser schrieb:
> Andreas schrieb:
>> soll auf einem SBC laufen
>
> Kann man SBC essen?
>
> https://de.wikipedia.org/wiki/SBC

Himbeerkuchen kann man zwar essen, aber ich glaube, das der nicht das 
ist, was mit "RPi" gemeint ist. Und essbare Single *Board* Computer 
kenne ich nicht.

MaWin schrieb:
> Ich sag mal: weder - noch.

Deine folgenden Beschreibungen hätte jetzt eher für "sowohl, als auch" 
gesprochen. Alle von dir genannten Sachen kann man mit Qt machen, Bisher 
dachte ich, das ginge auch mit HTML5, womit ich mich aber 
zugegebenermaßen nicht auskenne.

Thomas W. schrieb:
> Ich wuerde gern Qt benutzen, nur sind die Lizenzbedingungen ein wenig zu
> komplex.

Was meinst du damit? Was genau ist dir zu komplex?

> Zudem soll das Prograemmchen mit einer Datenbank spielen (Transaktionen
> sind notwendig).

Das ist doch in Qt alles schon eingebaut.
https://doc.qt.io/qt-5/sql-sqlstatements.html#transactions

: Bearbeitet durch User
von Baendiger (Gast)


Lesenswert?

Thomas W. schrieb:
> Ich wuerde gern Qt benutzen, nur sind die Lizenzbedingungen ein wenig zu
> komplex

Für nicht kommerzielle Anwendungen, wie beim TO, dürfte das ja kein 
Problem sein und für kommerzielle Anwendungen wenn man nichts bezahlen 
will, gibt es einen Teil des Frameworks als LGPL

von PittyJ (Gast)


Lesenswert?

Thomas W. schrieb:
> Zudem
> soll das Prograemmchen mit einer Datenbank spielen (Transaktionen sind
> notwendig).
>

Was haben GUI und Datenbank miteinander zu tun?
OK, QT hat auch eine Datenbank-Klasse mit dabei, die muss man aber nicht 
benutzen.

Der Einstieg in QT geht schnell, einfache Dialog sind in einer Stunde 
fertig. Die Dokumentation ist rpima und umfangreich. Hilfestellungen im 
Web sind mehr aus ausreichend.
Ich würde nichts anderes nehmen.

Und wenn man will, geht eine Portierung auf Windows oder MacOS recht 
zügig.

von Andreas (Gast)


Lesenswert?

Hallo und Danke schon mal für eure Antworten.

Rath Looser schrieb:
> Kann man SBC essen?

man kann alles, wenn man möchte

Oliver S. schrieb:
> RPi und zeitgemäßes Gui passen ja schon einmal kaum zusammen. Da kann
> der Raspi aber nichts dafür...

Warum das? Wegen begrenzter Rechen-/Grafik-Leistung?

MaWin schrieb:
> Ich sag mal: weder - noch.

Was wäre denn die passende Alternative mit der notwendigen Bedingung: 
kostenlos für nichtkommerziell

Thomas W. schrieb:
> willkommen im Club. Ich stehe vor demselben Problem: Ich wuerde gern Qt
> benutzen, nur sind die Lizenzbedingungen ein wenig zu komplex. Zudem
> soll das Prograemmchen mit einer Datenbank spielen (Transaktionen sind
> notwendig).

das ist beides kein Problem und eher (mittlerweile) einfacher gelöst als 
bei vielen Alternativen.

Lothar M. schrieb:
> Andreas schrieb:
>> da nicht kommerziell wahrscheinlich auf einem RPi
> Dieser logische Kurzschluss ist mir jetzt nicht so ganz klar.

mit anderen Worten: gerne günstig

Lothar M. schrieb:
> Welche Busse oder Interfaces brauchst du? Wieviel Leistung kannst du
> wegkühlen? Wieviele Daten musst du wie schnell speichern? Was soll die
> GUI wie schnell abbilden?

Aktuell nur USB. Es soll nur die Visu und ein ganz klein bisschen 
Managment machen. Der eigentliche Prozess findet auf einem(mehreren) 
LowLevelBoards statt.

Rolf M. schrieb:
> Kommt drauf an, was deine GUI so alles machen soll.

Nur Visu mit einer Aktualisierungsrate von max 10Hz. Also der 
Hintergrundprozess ist vernachlässigbar. Es soll nur nicht Aussehen wie 
Windows 95.

von Andreas (Gast)


Lesenswert?

PittyJ schrieb:
> Was haben GUI und Datenbank miteinander zu tun?
> OK, QT hat auch eine Datenbank-Klasse mit dabei, die muss man aber nicht
> benutzen.

Bei Einsatz als vollwertiges TopLevel zB für die Dokumentation von 
Prozesswerten.

PittyJ schrieb:
> Der Einstieg in QT geht schnell, einfache Dialog sind in einer Stunde
> fertig. Die Dokumentation ist rpima und umfangreich. Hilfestellungen im
> Web sind mehr aus ausreichend.
> Ich würde nichts anderes nehmen.

Danke. Hast du Erfahrung wie es mit der Performance auf ARM-Systemen, 
speziell RPi, verhält? Pakete sind kompiliert wohl nur für intelbasiert 
verfügbbar.

von Florian S. (vatterger)


Lesenswert?

Mir fallen da HTML5, JavaFX oder das hier schon oft genannte Qt ein. Qt 
ist ja hinlänglich bekannt, ich sage mal was zu den anderen Optionen:

Für kleine Tools und Demos auf dem Desktop nutze ich gerne JavaFX, es 
ist recht angenehm damit zu arbeiten. Dort wird sehr stark auf Widgets 
gesetzt, es hat aber auch ein Canvas mit dem man beliebige Konstrukte 
realisieren kann. Man kann die Widgets mit CSS stylen und die 
Verknüpfung zwischen GUI-Elementen und Code Event-basiert realisieren. 
Für Touch-Anwendungen wegen fehlendem Fokus auf Touch-Widgets NICHT zu 
empfehlen, außer man ist bereit viel Aufwand zu betreiben.

Talk zu JavaFX auf dem Pi, ab ca 30m geht es um JavaFX: 
https://www.youtube.com/watch?v=7Be0VB3qLIQ

Web-Anwendungen können auch gut funktionieren, man darf sich aber nicht 
so weit aus dem Fenster lehnen was Animationen, Übergänge und 
Medieninhalte angeht, sonst ist der Pi schnell mal überfordert und es 
gibt Frameeinbrüche. Mit Qt kannst du natürlich aus der vorhandenen 
Rechenleistung einiges mehr rausholen als mit HTML5. Grundsätzlich ist 
HTML5 aber sehr leistungsfähig und extrem vielseitig, besonders wenn man 
pures HTML ohne aufgeblähte Frameworks nutzt.

Tutorial zu FullPageOS, eine Distro die nach dem Boot eine Webpage im 
Vollbildmodus anzeigt: https://www.youtube.com/watch?v=rHwrwz3kv5o

von Frank K. (fchk)


Lesenswert?

Andreas schrieb:
> Hallo :)
>
> Für das Projekt meiner Abschlussarbeit benötige ich eine GUI. Gerne
> möchte ich mich dann in eine zukunftsfähige GUI einarbeiten. Die GUI
> soll auf einem SBC laufen - da nicht kommerziell wahrscheinlich auf
> einem RPi, oder sollte man doch ein x86/64-Prozessorboard nehmen? Habt
> ihr dort Vorschläge oder Ideen? Es sollte optisch schon zeitgemäß
> aussehen (TKinter fällt raus). Ich kann C/C++, Python, (Java). Danke
> euch

Als ich das letzte Mal mit QT zu tun hatte, brauchten viele Sachen 
OpenGL bzw GLES. Meine Hardware (MIPS) konnte aber kein OpenGL, sondern 
hatte nur einen einfachen Linux Framebuffer. Damit war QT praktisch 
raus.

Unter Linux ist der Gnome Desktop verbreitet, und darunter befindet sich 
GTK, das es schon lange gibt, das auch nicht so schnell verschwinden 
wird, und das komplett unter LGPL steht. Heißt also: keine 
Lizenzprobleme. GTK setzt auf X oder Wayland auf, d.h. Du bist frei in 
der Wahl Deiner Hardware, und solange Du X hast, läuft das - im 
Gegensatz zu QT. Damit verschwinden auch die Abhängigkeiten von 
irgendwelchen proprietären Grafiktreibern, Framebuffer reicht 
prinzipiell.

Andere Möglichkeit: wxwidgets. Ist Multiplattformfähig.

fchk

von Thomas W. (Gast)


Lesenswert?

Moin, -
Rolf M. schrieb:
> Thomas W. schrieb:
>> Ich wuerde gern Qt benutzen, nur sind die Lizenzbedingungen ein wenig zu
>> komplex.
>
> Was meinst du damit? Was genau ist dir zu komplex?

Fuer Anfaenger:
- 4kUS$/a ist schon mal eine Hausnummer, nach Ablauf Deiner Subscription 
kannst Du noch nicht einmal Bugfixes verteilen. Die 4kUS$ waeren schon 
OK, wenn die Lizenz nicht auslaufen wuerde. Denn Du weisst nicht, welche 
Zahl naechstes Jahr aufgerufen wird.

- I Don't trust Qt: Sie haben die perpetual license ab Qt6 gecancelt, 
d.h. nur Abo.

- Open Source Usage Obligations sind schon sehr weitreichend.

-> Es ist schade, aber aus meiner Sicht ist das Risiko beim Einsatz von 
Qt zu hoch. Aber: Your Mileage May Vary.

Gruesse

Th.

von Experte (Gast)


Lesenswert?

Also, zukunftsträchtig ist HTML.

Nur: Wenn Du keine Erfahrung mit der HTML- und Javascript-Entwicklung 
hast, dann ist das ein ganz schöner Brocken. Es geht nicht um die 
Sprache, die kannst Du sicherlich. Das Tooling und das notwendige 
"Nebenwissen" und der Overhead um so eine HTML-Geschichte zu bauen, ist 
doch recht umfangreich.

D.h. wenn Du C++ kannst und Dir keinen riesen Rucksack auf den Rücken 
schnallen willst, nimm halt Qt. Aber sie Dir im Klaren: Qt (und alle 
GUIs abseits von Android und IPhone) sind auf einem absteigenden Ast. 
Die einen schneller, die einen langsamer. Aber in der Summe sind die 
Zeiten rum. Die Gegenwart ist "schon" HTML.

von Εrnst B. (ernst)


Lesenswert?

Thomas W. schrieb:
> - Open Source Usage Obligations sind schon sehr weitreichend.

naja, LGPL halt. Sind im Grunde keine anderen Obligations als z.B. bei 
GTK oder wxWidgets.

Nur dass bei der QT jeder meint, er hätte einen super-tollen Geheim-Hack 
gefunden wie er trotzdem kommerzielle Software mit der LGPL-Version 
verkaufen kann, und sie es deshalb nochmal klipp und klar hinschreiben.

von Experte (Gast)


Lesenswert?

Oder eben das Java-Zeug...

von Le X. (lex_91)


Lesenswert?

Ich rate zu Python in Verbindung mit Qt.
Damit sollte man recht schnell zu ersten Ergebnissen kommen.

Vorteil: du kannst dir deine GUI im QT-Designer zusammenklicken und das 
.ui-File direkt im Python-Code laden.
Und den ganzen Blödsinn mit dem moc (und Kompilieren generell) kannst du 
dir auch sparen.

von Oliver S. (oliverso)


Lesenswert?

Εrnst B. schrieb:
> Nur dass bei der QT jeder meint, er hätte einen super-tollen Geheim-Hack
> gefunden wie er trotzdem kommerzielle Software mit der LGPL-Version
> verkaufen kann, und sie es deshalb nochmal klipp und klar hinschreiben.

Da es weder die GPL noch die LPGL verbieten, Software kommerziell zu 
verkaufen, hat Qt da nichts dagegen, wenn das jemand unter Einhaltung 
der GPL/LPGL-Bedingungen tut.

Das ist dort nicht anders als bei jeder anderen Software unter diesen 
Lizenzen.

Oliver

von Georg A. (georga)


Lesenswert?

Thomas W. schrieb:
> Fuer Anfaenger:
> - 4kUS$/a ist schon mal eine Hausnummer, nach Ablauf Deiner Subscription
> kannst Du noch nicht einmal Bugfixes verteilen. Die 4kUS$ waeren schon
> OK, wenn die Lizenz nicht auslaufen wuerde. Denn Du weisst nicht, welche
> Zahl naechstes Jahr aufgerufen wird.

Wenn man eine kleine Firma mit unter 250k$ Umsatz pro Jahr ist, gibts 
"Small Business" mit 500$/Jahr.

von Generaldirektor Heinrich Haffenloherich (Gast)


Lesenswert?

Andreas schrieb:
> Für das Projekt meiner Abschlussarbeit benötige ich eine GUI. Gerne
> möchte ich mich dann in eine zukunftsfähige GUI einarbeiten.
Man nimmt das was am wenigsten Arbeit macht und die Anforderungen 
erfüllt.

von Εrnst B. (ernst)


Lesenswert?

Oliver S. schrieb:
> Das ist dort nicht anders als bei jeder anderen Software unter diesen
> Lizenzen.

Jep. Genau das habe ich gesagt.

Nur hat die QT auf der Webseite eben einen Erklärbär-Bereich, wo diese 
Einschränkungen und was aus ihnen folgt nochmal klipp und klar stehen.

Was scheinbar zu Reaktionen führt wie:

Thomas W. schrieb:
> Ich wuerde gern Qt
> benutzen, nur sind die Lizenzbedingungen ein wenig zu komplex.

Komisch. Wenn's verschwurbelt in den Tiefen der LGPL steht, dann isses 
OK, wenn es zusätzlich nochmal auf "deppensicher" erklärt wird, ist es 
zu komplex.

von PittyJ (Gast)


Lesenswert?

Andreas schrieb:
> PittyJ schrieb:
>> Der Einstieg in QT geht schnell, einfache Dialog sind in einer Stunde
>> fertig. Die Dokumentation ist rpima und umfangreich. Hilfestellungen im
>> Web sind mehr aus ausreichend.
>> Ich würde nichts anderes nehmen.
>
> Danke. Hast du Erfahrung wie es mit der Performance auf ARM-Systemen,
> speziell RPi, verhält? Pakete sind kompiliert wohl nur für intelbasiert
> verfügbbar.

Google "qt installieren raspberry pi"
Da findet man dann schnell, dass
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install qt5-default

sudo apt-get install qtcreator

sudo apt-get install libqt5serialport5
sudo apt-get install libqt5serialport5-dev

wohl reicht. Also das übliche apt-get ...

Die Performance ist gut. Da hatte ich schon schlechtere Intel-Systeme 
vor 10 Jahren.
Im Wochenendhaus habe ich einen älteren Mac ausgemustert, und betreibe 
einen Pi 400 als Surfstation. Das reicht auch für youtube etc. Mehr 
braucht man im Normalfall nicht. Und das beste: kein Lüfter.

von Rolf M. (rmagnus)


Lesenswert?

Andreas schrieb:
> Pakete sind kompiliert wohl nur für intelbasiert verfügbbar.

Wie kommst du darauf?

Thomas W. schrieb:
>> Was meinst du damit? Was genau ist dir zu komplex?
>
> Fuer Anfaenger:
> - 4kUS$/a ist schon mal eine Hausnummer, nach Ablauf Deiner Subscription
> kannst Du noch nicht einmal Bugfixes verteilen.

Es ist noch viel schlimmer: Du darfst nicht mal mehr die ursprüngliche 
Version weiter verkaufen, wenn du keine gültige Lizenz hast. Das heißt, 
wenn es keine Option ist, auf die OpenSource-Lizenz zu wechseln, musst 
du den Vertrieb von allem, was auf Qt6 aufsetzt, mit Auslauf der Lizenz 
komplett einstellen.

> -> Es ist schade, aber aus meiner Sicht ist das Risiko beim Einsatz von
> Qt zu hoch. Aber: Your Mileage May Vary.

Sofern du nicht LGPL bzw. bei den entsprechenden Komponenten GPL 
akzeptieren kannst, ja.

Le X. schrieb:
> Ich rate zu Python in Verbindung mit Qt.
> Damit sollte man recht schnell zu ersten Ergebnissen kommen.
>
> Vorteil: du kannst dir deine GUI im QT-Designer zusammenklicken und das
> .ui-File direkt im Python-Code laden.

Das geht in C++ genauso. Nur macht das aus Performance-Gründen kaum 
jemand.

Georg A. schrieb:
> Thomas W. schrieb:
>> Fuer Anfaenger:
>> - 4kUS$/a ist schon mal eine Hausnummer, nach Ablauf Deiner Subscription
>> kannst Du noch nicht einmal Bugfixes verteilen. Die 4kUS$ waeren schon
>> OK, wenn die Lizenz nicht auslaufen wuerde. Denn Du weisst nicht, welche
>> Zahl naechstes Jahr aufgerufen wird.
>
> Wenn man eine kleine Firma mit unter 250k$ Umsatz pro Jahr ist, gibts
> "Small Business" mit 500$/Jahr.

Die Zahlen gelten übrigens pro Entwickler - jeder muss seine eigene 
Lizenz haben und darf die nicht an andere übertragen. Hat man also ein 
Entwicklungsteam mit 10 Mann, sind's bei der regulären Lizenz schon 
40k/Jahr. Die Small Business ist auf 4 Lizenzen pro Firma begrenzt.

von Dirk (Gast)


Lesenswert?

Hallo,

Qt bietet nicht nur die GUI, sondern relativ viel auch für 
Schnittstellen (CAN/RS232/ETH/MQTT) welches für dein Projekt eventuell 
benötigt wird. Ausserdem solltest Du Dir anschauen, ob Du Qt Widgets 
oder Qml benutzen
willst. Ich würde mich für ein x86 SBC (up-board) oder Intel Nuc/etc. 
entscheiden, andersfalls kann es einiges an Zeit kosten die Umgebung für 
das Crosskomplieren und Debuggen einzustellen oder Du musst auf dem SBC 
relativ langsam dein Programm jedesmal komplieren, so könntest Du vieles 
auf deinem guten Desktop PC programmieren und testen.

von Oliver S. (oliverso)


Lesenswert?

Rolf M. schrieb:
> Das geht in C++ genauso. Nur macht das aus Performance-Gründen kaum
> jemand.

Nun ja, der Designer erzeugt daraus C++-Code, der nicht viel anders 
aussieht ist, als handgestrickter. Da ist nichts langsamer.

Nur geht es letztendlich mit etwas Übung schneller, wenn man den Code 
gleich von Hand schreibt, ganz ohne Designer.

Oliver

von Al Fine (Gast)


Lesenswert?

"Zukunftsfähge GUI" - Mein Gott, die sind doch alle mehr oder weniger 
gleich. Und alle 2-3 Jahre kommt das nächste super-tolle Framework raus.
Womit hantiert man im GUI Bereich so rum?
-Gtk
-Qt
-WxWidget
-electron
-flutter
-Uno
-WPF
-Avalonia
-Fltk
-Xamarin
-UIKit
-mono
to be continued

Als Entwickler muss man sich mal eben an ein beliebiged Framework 
ransetzen können und damit irgendwas machen. Mein Rat: Echt Pascal 
nehmen. Weil das keiner benutzt, wird man damit bestimmt nicht zum 
GUI-Fachidioten...

von Al Fine (Gast)


Lesenswert?

Oliver S. schrieb:
> Nur geht es letztendlich mit etwas Übung schneller, wenn man den Code
> gleich von Hand schreibt, ganz ohne Designer.

Ja... und Team-Kollegen dürfen sich durch Unmengen an unnötigem 
Quelltext wühlen und Fehler suchen.

von Tw (Gast)


Lesenswert?

Andreas schrieb:
> Für das Projekt meiner Abschlussarbeit benötige ich eine GUI

Für das was ich bisher so an Abschlussarbeiten gesehen habe reicht auch 
FLTK locker aus. Was macht deine Arbeit so besonders das es QT sein 
muss?

von Generaldirektor Heinrich Haffenloherich (Gast)


Lesenswert?

Oliver S. schrieb:
> Nur geht es letztendlich mit etwas Übung schneller, wenn man den Code
> gleich von Hand schreibt, ganz ohne Designer.
Das geht nie schneller weil das Layout aus dem Stand nicht so hinbekommt 
wie mit einen GUI-Editor, ausser es ist hinterher egal wie scheisse das 
aussieht. Man schreibt sich nen Wolf an Boilerplatecode, was unglaublich 
viel Zeit frisst, selbst wenn du das Blind runterschreiben kannst, was 
nie der Fall ist. Man hat unnötig viele Compilerläufe nur um die GUI zu 
checken bis sie endlich so aussieht und sich so verhält wie man will.
Bei HTML/CSS geht das gerade noch, weil das ziemlich Highlevel ist, da 
wird nur deklariert, als würde man ein XML schreiben das bei klassichen 
Compilersprachen+GUI-Toolkits der GUI Editor erzeugt, eher noch ein 
Level darüber ohne den XML-bloat. Bei JavaFX geht das sogar ziemlich 
gut, teilweise nutzt das CSS-Syntax kann die FXML auch per Hand 
schreiben, bei ersten Versionen hat man das oft auch so gemacht aber 
auch dort ist das inzw. überflüssig.
Unter Swing hat man das alles noch von Hand gecoded, und endlose 
Boilerplatecode nur für die GUI produziert und wollteste mal ein bischen 
was anders haben blähte es alles noch mehr auf: Border anders, Insets 
ein bischen breiter,.... meterweise GUI-Code. Aber auch dort gab es 
später (hat lange genug gedauert) endlich brauchbare GUI-Editoren 
(Matisse) als das Springlayout einzug hielt, die anderen Layoutmanager 
waren ja (pain in the ass)^10. Wenns schnell gehen musste nahm man das 
Nulllayout und absolut positioniert wie bei allen ältern GUI-Toolkits in 
anderen Sprachen auch.

von Rolf M. (rmagnus)


Lesenswert?

Oliver S. schrieb:
> Rolf M. schrieb:
>> Das geht in C++ genauso. Nur macht das aus Performance-Gründen kaum
>> jemand.
>
> Nun ja, der Designer erzeugt daraus C++-Code, der nicht viel anders
> aussieht ist, als handgestrickter. Da ist nichts langsamer.

Nicht der Designer, sondern der uic, und das war ja gerade mein Punkt. 
Der generierte C++-Code ist nicht langsamer. Wenn du dagegen das ui-File 
direkt im Programm einliest, muss erstmal das ganze XML-Geparse gemacht 
und daraus dynamisch die Funktionsaufrufe ausgewählt werden. Das braucht 
mehr Zeit. Und in Python ist das dann natürlich auch so.

Tw schrieb:
> Andreas schrieb:
>> Für das Projekt meiner Abschlussarbeit benötige ich eine GUI
>
> Für das was ich bisher so an Abschlussarbeiten gesehen habe reicht auch
> FLTK locker aus. Was macht deine Arbeit so besonders das es QT sein
> muss?

Warum ist Qt deiner Meinung nach denn nur für "besondere" Projekte 
geeignet?

von Oliver S. (oliverso)


Lesenswert?

Generaldirektor Heinrich Haffenloherich schrieb:
> Das geht nie schneller weil das Layout aus dem Stand nicht so hinbekommt
> wie mit einen GUI-Editor, ausser es ist hinterher egal wie scheisse das
> aussieht.

Du kennst Qt*

[ ] Nein
[ ] Nein

*zutreffendes bitte ankreuzen.

Oliver

von Le X. (lex_91)


Lesenswert?

Rolf M. schrieb:
> Nicht der Designer, sondern der uic, und das war ja gerade mein Punkt.
> Der generierte C++-Code ist nicht langsamer. Wenn du dagegen das ui-File
> direkt im Programm einliest, muss erstmal das ganze XML-Geparse gemacht
> und daraus dynamisch die Funktionsaufrufe ausgewählt werden. Das braucht
> mehr Zeit. Und in Python ist das dann natürlich auch so.

Wurde seitens TE erwähnt dass es auf Performance ankommt?

Ich hatte den Eindruck, die GUI sei eher so ne Nebenbaustelle, soll also 
möglichst wenig Aufwand verursachen, aber trotzdem einigermaßen hübsch 
aussehen.

von Rolf M. (rmagnus)


Lesenswert?

Oliver S. schrieb:
> Generaldirektor Heinrich Haffenloherich schrieb:
>> Das geht nie schneller weil das Layout aus dem Stand nicht so hinbekommt
>> wie mit einen GUI-Editor, ausser es ist hinterher egal wie scheisse das
>> aussieht.
>
> Du kennst Qt*
>
> [ ] Nein
> [ ] Nein
>
> *zutreffendes bitte ankreuzen.

Diese Aussage ist sehr überspitzt geschrieben, aber zumindest an dieser 
hier ist was dran:

Generaldirektor Heinrich Haffenloherich schrieb:
> Man hat unnötig viele Compilerläufe nur um die GUI zu
> checken bis sie endlich so aussieht und sich so verhält wie man will.

Ich hab früher immer alles von Hand geschrieben, aber bei etwas 
komplexeren Layouts bin ich dann doch mit der WYSIWYG-Methode im 
Designer schneller, als wenn ich nach jeder Änderung erstmal compilieren 
und das Programm starten muss, um zu sehen, ob's jetzt passt.

Le X. schrieb:
> Wurde seitens TE erwähnt dass es auf Performance ankommt?

Er will aus Kostengründen einen Raspi verwenden, ist sich aber nicht 
sicher, ob das performant genug ist.

: Bearbeitet durch User
von BobbyX (Gast)


Lesenswert?

Frank K. schrieb:

> Als ich das letzte Mal mit QT zu tun hatte, brauchten viele Sachen
> OpenGL bzw GLES. Meine Hardware (MIPS) konnte aber kein OpenGL, sondern
> hatte nur einen einfachen Linux Framebuffer. Damit war QT praktisch
> raus.

Unsinn. Qt unterstützt den Linux Framebuffer schon seit Ewigkeiten als 
Platform. Man startet die Applikation einfach mit dem Argument -platform 
linuxfb:fb=/dev/fbX und schon läuft sie auf dem Framebuffer.

https://doc.qt.io/qt-5/embedded-linux.html

von Dirk K. (merciless)


Lesenswert?

Qt-Klon (open source released under the LGPL V2.1)

https://www.copperspice.com/

merciless

von Oliver S. (oliverso)


Lesenswert?

Dirk K. schrieb:
> Qt-Klon

"was initially derived from the Qt framework. Over the last several 
years CopperSpice has completely diverged"

Unter Klon hätte man jetzt was anderes verstanden...

Oliver

von Klaus W. (mfgkw)


Lesenswert?

Jeder Klon kann sich unabhängig von seinem Vatter/Mutter/Dotter 
weiterentwickeln...

: Bearbeitet durch User
von Vincent H. (vinci)


Lesenswert?

Al Fine schrieb:
> "Zukunftsfähge GUI" - Mein Gott, die sind doch alle mehr oder weniger
> gleich...

Richtig, die von dir aufgezählten sind alle relativ gleich. Was sich 
aber in den letzten Jahren schon recht deutlich gezeigt hat ist ein 
Trend hin zu "Immediate Mode" GUIs 
(https://en.wikipedia.org/wiki/Immediate_mode_GUI) wie es etwa Dear 
ImGui (https://github.com/ocornut/imgui) implementiert.

Grad für schnelle iterative Arbeiten an kleineren GUIs eine willkommene 
Abwechslung.

von Frank K. (fchk)


Lesenswert?

BobbyX schrieb:
> Frank K. schrieb:
>
>> Als ich das letzte Mal mit QT zu tun hatte, brauchten viele Sachen
>> OpenGL bzw GLES. Meine Hardware (MIPS) konnte aber kein OpenGL, sondern
>> hatte nur einen einfachen Linux Framebuffer. Damit war QT praktisch
>> raus.
>
> Unsinn. Qt unterstützt den Linux Framebuffer schon seit Ewigkeiten als
> Platform. Man startet die Applikation einfach mit dem Argument -platform
> linuxfb:fb=/dev/fbX und schon läuft sie auf dem Framebuffer.

Ja, aber nicht alles. Bei QT5 sind etliche Dinge dazugekommen, die 
explizit OpenGL voraussetzen. Und dann siehst Du nichts. Die Sachen, die 
mit fb funktionieren, sind auf QT 4 Level.

fchk

von Al Fine (Gast)


Lesenswert?

Vincent H. schrieb:
> Richtig, die von dir aufgezählten sind alle relativ gleich. Was sich
> aber in den letzten Jahren schon recht deutlich gezeigt hat ist ein
> Trend hin zu "Immediate Mode" GUIs
> (https://en.wikipedia.org/wiki/Immediate_mode_GUI) wie es etwa Dear
> ImGui (https://github.com/ocornut/imgui) implementiert.

Ja... liest sich etwas so wie Immediate-Mode OpenGL vs Scenegraphs. Ist 
aber natürlich leichter verständlich, wenn man sich nicht erstmal durch 
Erklärungskapitel wie "Auflösung von Resourcen-Referenzen", "Angewandtes 
Responsive Design" usw. durchackern muss, um etwas auf den Bildschirm zu 
kriegen. Den Trend sehe ich nicht.

von Florian S. (vatterger)


Lesenswert?

> Den Trend sehe ich nicht.
Diese Art GUI-System wird extrem häufig in OpenGL-basierten Tools, Demos 
und Game-Engines verbaut, unter anderem weil es z.B. in Form von "Dear 
IMGUI" einfach einzubinden ist, hier einige Beispiele: 
https://gist.github.com/bkaradzic/853fd21a15542e0ec96f7268150f1b62#examples

Der Vorteil ist, dass man keine Widget-Objekte oder ähnliches managen 
muss.

Wenn wir einen Button wollen, der beim drücken "Hello" in die Konsole 
schreibt, würde das mit Retained Mode GUI z.B. so aussehen:
1
Button btn;
2
3
init() {
4
   btn = new Button("Hello");
5
   btn.onPressed(&helloFunction);
6
}
7
8
loop() {
9
   gui::render();
10
}
11
12
helloFunction() {
13
   print("Hello");
14
}

Und so mit Immediate Mode GUI:
1
init() {}
2
3
loop() {
4
   gui::button("Hello", &helloFunction);
5
   gui::render();
6
}
7
8
helloFunction() {
9
   print("Hello");
10
}

Man hat bei IMGUI keine "GUI-Objekte" in der Applikation selbst. Also 
keine Widget Objekte oder Referenzen auf irgendwas aus dem GUI, die man 
initialisieren, miteinander verbinden, löschen usw muss. Das eignet sich 
aber nicht für alle Situationen.

: Bearbeitet durch User
von nurmal so (Gast)


Lesenswert?

Wo soll die GUI denn überhaupt angezeigt werden,
Raspberry Pi klingt für mich danach das es nicht auf dem normalen 
bürorechner laufen soll, vieleicht dann mit kleinem Display?

dann währe die Frage ob es nicht auch ein µC (z.B.stm32F7xx) tut, darauf 
könnte man dann z.B. mit TouchGFX oder QT for uC oder oder oder etwas 
zusammenbauen. Oder wenn es etwas komplet fertiges (und u.a. arduino 
programmierbar) sein soll, vieleicht ein FTDI EVE?

Eiene Weitere möglichkeit wäre etwas auf Android Basis zu machen


Wie immer gilt, erst müssen die Anforderungen bekannt sein, um daraus 
dann die 2-3 sinvollsten Lösungen gegeneinander stellen zu können.

just my 4 cent

von Rolf M. (rmagnus)


Lesenswert?

Florian S. schrieb:
> Man hat bei IMGUI keine "GUI-Objekte" in der Applikation selbst. Also
> keine Widget Objekte oder Referenzen auf irgendwas aus dem GUI, die man
> initialisieren, miteinander verbinden, löschen usw muss. Das eignet sich
> aber nicht für alle Situationen.

Für einfache GUIs kann ich mir das vorstellen, aber wenn's etwas 
komplexer wird, klingt das für mich eher umständlich.
Interessanterweise geht Qt mit seinem QML eher noch in die 
entgegengesetzte Richtung, denn QML ist eine deklarative Sprache. Man 
schreibt eigentlich fast alles nur noch als Deklaration bzw. 
Initialisierung von Objekten, die dann beim Start erzeugt werden. Dabei 
beschreibt man nicht nur den Initialzustand, sondern auch dynamische 
Vorgänge als Deklaration. Ganz simples Beispiel:
1
Window
2
{
3
    Rectangle
4
    {
5
        color: "red"
6
        width: 0.5 * parent.width
7
        height: 100
8
        Behavior on width { SpringAnimation { spring: 2; damping: 0.5 } }
9
    }
10
}
Hier deklariere ich ein Fenster und darin ein Rechteck, das halb so 
breit ist wie das Fenster. Der wesentliche Punkt ist hierbei, dass das 
nicht nur beim Start so ist, sondern der Zusammenhang auch später 
bestehen bleibt. Das heißt, wenn ich die Fensterbreite ändere, passt 
sich das Rechteck immer so an, dass es halb so breit bleibt wie das 
Fenster. In Qt-Sprech nennt sich das Property Binding. Das Behavior 
sorgt dafür, dass die Größenänderung nicht unmittelbar passiert, sondern 
als ob es über eine Feder mit dem Fenster verbunden ist.

: Bearbeitet durch User
von Florian S. (vatterger)


Lesenswert?

> Für einfache GUIs kann ich mir das vorstellen, aber wenn's etwas
> komplexer wird, klingt das für mich eher umständlich.

Joa, wird häufig nur dort benutzt, wo einfach ein paar Programmvariablen 
angezeigt und editierbar gemacht werden müssen. Ich setze es bei meinen 
Projekten auch nicht ein.

von Maxe (Gast)


Lesenswert?

Nimm Freepascal/Lazarus. Damit erstellte Programme laeufen nativ auf den 
bekannten Plattformen einschliesslich Arm-Linux (z.B. Raspi). Die 
Entwicklung gerade kleiner Gui-Programme geht damit schneller als mit 
jedem anderen System. Bei groesseren Programmen hilft der RAD-Ansatz 
weniger, der Vorsprung ggue. anderem wird dann kleiner.

Ob eine damit erstellte Anwendung gut oder nach "90er" aussieht, liegt 
wie immer am Programmierer.

von Dezzi (Gast)


Lesenswert?

> (TKinter fällt raus)

Merkwürdiger Ausdruck. Aber egal: mit TKinter wäre ich schon fertig.

von Heinz B. (Firma: Privat) (hbrill)


Lesenswert?

Maxe schrieb:
> Ob eine damit erstellte Anwendung gut oder nach "90er" aussieht, liegt
> wie immer am Programmierer.

Die Programmiersprachen, die ich kenne, rufen intern die
Windows - API zum Erzeugen von Fenstern und Controls auf.
Windows gibt dann die entsprechenden Handle zurück.

Da wird sich das Aussehen eher an der entsprechenden Windows
Version orientieren. Bei Win95 oder XP kann es da schon
Unterschiede geben. Es sei denn, wenn es die entsprechende
Sprache zulässt, man erzeugt seine eigenen Klassen für die
entsprechenden Elemente, wie Buttons usw. und registriert
sie dann bei Windows. Aber sowas macht man eigentlich nur,
wenn man Spezial-Lösungen möchte, die halt extravagant
aussehen sollen.

Somit möchte ich mal sagen, dass die Anwendung eher nach der
vorhandenen Windowsversion aussieht.

von Rolf M. (rmagnus)


Lesenswert?

Heinz B. schrieb:
> Die Programmiersprachen, die ich kenne, rufen intern die
> Windows - API zum Erzeugen von Fenstern und Controls auf.
> Windows gibt dann die entsprechenden Handle zurück.
> Da wird sich das Aussehen eher an der entsprechenden Windows
> Version orientieren.

Das hat weniger mit der Programmiersprache als mit dem GUI-Toolkit zu 
tun. Bei Qt kann man wählen, ob es das tun soll oder nicht.
Und wenn man sich die Microsoft-eigenen Toolkits anschaut, von MPC, 
Windows-Forms,  WPF, Metro, UWP und wie sie alle heißen, dann stellt man 
fest, dass die auch unter dem selben System alle irgendwie 
unterschiedlich aussehen.

von Dieter H. (kyblord)


Lesenswert?

Was spricht gegen C#? Ist halt nicht cross-plattform.
Dann zwischen C++ und C# interfacen mittels C++ CLI z.B.
Python und QT ist aber auch meiner Meinung nach die effizienste 
Variante.
Wer hat im Jahr 2021 noch Bock auf C++...

von temp (Gast)


Lesenswert?

Dieter H. schrieb:
> Wer hat im Jahr 2021 noch Bock auf C++...

jeder der nicht zu blöd dazu ist...

von Der Opa aus der Muppet Show (Gast)


Lesenswert?

Zukunftsfähig?

Eigentlich ist beides nicht so wirklich zukunftsfähig.

Die auf auf Smalltalk aufbauenden GUIs wie Qt haben die bessere 
Architektur. Allee HTML5 Frameworks ignorieren die Erfahrungen, die zur 
Qt geführt haben.

Die HTML5 Frameworks sind natürlich bedeutend besser, wenn du nicht 
diese drögen Standard Widgets haben willst.

Zukunftsfähig wäre die Qt Architektur kombiniert mit der HTML5 
Flexibilität. Arbeite dich in beides ein und konstruiere ein System, was 
beide Vorteile verbindet. "The best way to predict the future is to 
invent it".

P.S: Python oder C++ ? Beides! Schau dir Blender an. Die Performance 
kritischen Sachen in C++. Und die Features, die aus Experimenten 
einstanden sind in Python implementiert.

von Εrnst B. (ernst)


Lesenswert?

Der Opa aus der Muppet Show schrieb:
> Allee HTML5 Frameworks ignorieren die Erfahrungen, die zur
> Qt geführt haben.

Alle? Nein. Ein von unbeugsamen Qooxdoianern bewohntes Framework hört 
nicht auf, der Angularisierung des Web Widerstand zu leisten.

Demo z.B.

https://qooxdoo.org/qxl.demobrowser/#widget~Window.html

von Randy (r_w)


Lesenswert?

guten morgen,

fuer saemtliches, was irgendwie "frontend" benoetigt, arbeite ich 
mittlerweile mit Vue.JS und HTML5; richtung raspberry dann z.b. selber 
geschriebene REST-API mittels python & FastAPI. das geht recht flott,
das man sich dort etwas zusammengebaut hat.

ist aber sicherlich nicht so performant als eine "richtige" GUI mit Qt 
auf dem zielsystem. aber fuer so dinge wie "schaltbare netzwerk 
steckdosen"
oder temperatur sensoren langt das vollig und kann auch mit 
fremd-systemen
verwendet werden, da ja die REST(ish) API die einzigste schnittstelle 
ist.



gruss,
-- randy

von Der Opa aus der Muppet Show (Gast)


Lesenswert?

> fuer saemtliches, was irgendwie "frontend" benoetigt

Wurde dieser Punkt schon genannt?

In Zukunft erwartet absolut jeder, die GUI muss auch auf dem Smartphone 
laufen. Wenn dir unterwegs einfällt, du hast Heizung abschalten 
vergessen, willst du nicht zurück fahren.

> ist aber sicherlich nicht so performant

Interessiert doch niemanden mehr. Smartphone und 5G sind mehr als 
schnell genug.

von Maxe (Gast)


Lesenswert?

Heinz B. schrieb:
> Maxe schrieb:
>> Ob eine damit erstellte Anwendung gut oder nach "90er" aussieht, liegt
>> wie immer am Programmierer.
>
> Die Programmiersprachen, die ich kenne, rufen intern die
> Windows - API zum Erzeugen von Fenstern und Controls auf.
> Windows gibt dann die entsprechenden Handle zurück.

Zumindest unter Win7 war die Standardfarbe noch grau, also Hintergrund 
und so. Windows hat sich in seinen Programmen, Explorer/Systemsteuerung 
(zum Glück) selbst nicht daran gehalten. Auch die "Adressleiste" im 
Dateibrowser ist nicht einfach ein Edit, wie es die Win-API 
bereitstellt. Die Win-API stellt eher ein Kompatibilitätsmodus für alte 
Programme bzw. Programme für alte Windosse bereit. Natürlich hat auch 
das System mit seinen modernen Elementen seinen Anteil (Buttons, 
Scrollbars, Dialoge etc.). Ein Großteil liegt aber am Programmierer. Ob 
er eine klassische Menüleiste oder ein Ribbon verwendet. Ob er alle 
Bedienelemente auf eine Seite klatscht oder dem Kontext anpasst usw. 
usf.

von nurmal so (Gast)


Lesenswert?

Εrnst B. schrieb:
> Alle? Nein. Ein von unbeugsamen Qooxdoianern bewohntes Framework hört
> nicht auf, der Angularisierung des Web Widerstand zu leisten.
>
> Demo z.B.
>
> https://qooxdoo.org/qxl.demobrowser/#widget~Window.html

klingt interessant, nur was mich bisher von irgendwelchen web 
Geschichten abgehalten hat, ist das ich nicht weiß wie ich damit (am 
besten betriebssystemunabhängig) auf z.B. einen Comport zugreifen kann. 
QT bringt da ja eine Serialklasse mit, wie geht das mit hmtl/css/js ... 
?

von Florian S. (vatterger)


Lesenswert?

nurmal so schrieb:
> klingt interessant, nur was mich bisher von irgendwelchen web
> Geschichten abgehalten hat, ist das ich nicht weiß wie ich damit (am
> besten betriebssystemunabhängig) auf z.B. einen Comport zugreifen kann.
> QT bringt da ja eine Serialklasse mit, wie geht das mit hmtl/css/js ...
> ?

Du kannst den lokalen Webserver dahingehend modifizieren, dass du ihm 
ein HTTP-Interface verpasst, welches als Proxy für die 
Comport-Funktionalität dient.

Dann rufst du z.B.
1
http://localhost/comport/open/<NAME_DES_PORTS>&baud=<BAUD_RATE>

auf um den Server anzuweisen, den entsprechenden Port zu öffnen.

Mit weiteren HTTP-Requests kannst du dann deine Daten an den Port-Proxy 
senden und empfangene Daten abfragen:
1
http://localhost/comport/update/<NAME_DES_PORTS>

Noch schlauer wäre es aber, wenn man der HTML-GUI erst gar keine (auch 
nicht indirekte) Kontrolle über den Comport gibt, sondern es nur zur 
Darstellung nutzt. Den Comport öffnet und benutzt dann ausschließlich 
der Server intern, ohne diese Funktionalität dem HTML-GUI als 
Comport-API zu liefern. Der HTML/CSS/JS Teil dient dann nur als 
Darstellung und die eigentliche Anwendungslogik läuft auf dem Server.

: Bearbeitet durch User
von chris_ (Gast)


Lesenswert?

Für Google Chrome gab's das Experiment mit Webserial:
https://whatwebcando.today/serial.html

von Der Opa aus der Muppet Show (Gast)


Lesenswert?

> das ich nicht weiß wie ich damit auf z.B. einen Comport zugreifen kann.

> Du kannst den lokalen Webserver dahingehend modifizieren...

Ja, dies ist das wirklich zukunftsfähige Feature an den HTML5 
Oberflächen:

Die schreibst eine Oberfläche, die überall läuft. Sowohl auf dem Display 
deines Gerätes, als auch auf jedem Smartphone irgendwo auf der ganzen 
Welt.

Die Frage, wie du auf einen Comport zugreifst ist vollkommen unabhängig 
von der Oberfläche. Das macht der Server.

von nurmal so (Gast)


Lesenswert?

soweit so verstanden :)
gibt es irgendwo ein tutorial wie so ein lokaler Webserver aussehen 
könnte? erst mal nur für Win und Linux wenn dann Android (ios wohl eher 
nicht?) gehen würden um so besser.

irgend etwas ganz einfaches, comport, baudrate etc. auswählen connecten 
und  dann die empfangenen Daten in ein textfeld einfügen.

vielen dank

von Generaldirektor Heinrich Haffenloherich (Gast)


Lesenswert?

nurmal so schrieb:
> gibt es irgendwo ein tutorial wie so ein lokaler Webserver aussehen
> könnte?

Dir fehlen die Grundlagen, wenn du das schon nicht selber hinbekommst 
dann lass es besser bleiben.

von 2⁵ (Gast)


Lesenswert?

Tw schrieb:
> Für das was ich bisher so an Abschlussarbeiten gesehen habe reicht auch
> FLTK locker aus. Was macht deine Arbeit so besonders das es QT sein
> muss?

Die Aussage, dass FLTK "locker" ausreicht, wird sicher richtig sein. 
Aber: Qt ist nicht schwerer zu lernen als FLTK und bringt vieles mit, 
was mit FLTK nicht geht. Außerdem schaden Qt und C++ Kenntnisse nicht im 
Lebenslauf...

nurmal so schrieb:
> gibt es irgendwo ein tutorial wie so ein lokaler Webserver aussehen
> könnte?

In python sind das gerade mal drei Zeilen: 
https://docs.python.org/3/library/http.server.html

Auch für C ist das Internet voll von Beispiele. Das Problem: So viele 
Bespiele es gibt, so viele Security-Löcher sind auch vorhanden. Gerade 
als Anfänger wird das nahezu unmöglich sein, alle Löcher zu stopfen! 
Zwar kannst du eine einfache GUI mit HTML5 schnell zaubern, diese sieht 
dann aber auch nicht gerade "schön" aus.

Wenn du eh eine Client-Server Architektur hast, kann man natürlich auch 
über HTML5 nachdenken, aber ich denke, dass du als Anfänger mit Qt 
deutlich schneller am Ziel bist. Ob du dir nennenswert Gedanken über das 
Qt Lizenzmodell machen musst, kann ich nicht beurteilen, aber wenn du 
evtl. für eine Firma arbeitest, könnte dies natürlich relevant werden.

Es hilft dir bei beiden Ansätzen ungemein, wenn du auf deinem SBC ein 
vollwertiges Linux laufen lassen kannst. Prinzipiell gehen beide Ansätze 
auch in Bare-Metall, dann kann es aber eklig werden bzw. du braucht 
jemand mit viel Erfahrung. Gerade Qt kann hier problematisch werden, es 
überhaupt zum laufen zu bekommen. Hier kann dann der HTML5 Ansatz 
leichter werden, auf dem Server (=SBC) muss ja dann nur eine 
Netzwerk-Stack laufen und der Client, der die GUI darstellt, ist dann 
irgend ein Win/Linux-PC oder ein Android/iOS-Gerät.

von 2⁵ (Gast)


Lesenswert?


von nurmal so (Gast)


Lesenswert?

Generaldirektor Heinrich Haffenloherich schrieb:
> Dir fehlen die Grundlagen, wenn du das schon nicht selber hinbekommst
> dann lass es besser bleiben.

Wie freundlich, da fragt man nach Tutorials um sich die Grundlagen zu 
erarbeiten und man bekommt ein "lass es" zu hören ;)


2⁵ schrieb:
> In python sind das gerade mal drei Zeilen:
> https://docs.python.org/3/library/http.server.html

hmm, auf der Python Seite lacht mich gleich ein
"
Warning

http.server is not recommended for production. It only implements basic 
security checks.
" an!

Bisher bin ich (übrigens nicht der TO und sorry für das teilweise Kapern 
des Freds) gut mit QT, C# etc. gefahren, aber da immer wieder auf HTML5 
(was ich bisher nur für statische Webseiten benutzt habe) verwiesen 
wurde, wollte ich einfach mal wissen wie man dort an so etwas heran 
geht.
Es kann erst mal hässlich ohne jedes CSS usw sein. es geht mir darum die 
Technik zu verstehen.

Bei Webservern habe ich bisher immer eher an etwas wie Apache und Co. 
gedacht.


also wenn ich das richtig verstehe habe ich einen lokalen Miniwebserver 
der auch zugriff auf die HW hat und somit irgendwie an den comport kommt 
(mittels python? java? php?). dann gibt es noch das frontend (gui in 
html5 css3 js ...) welches die Darstellung übernimmt und per 
http(s)://localhost  auf den webserver zugreift?

ist es nicht möglich das backend auf einem "richtigen" Webserver laufen 
zu lassen und der Client übergibt diesem dann die Daten des comports 
(JS?) und bekommt dafür dann Informationen zum anzeigen zurück 
geliefert. oder baut sich die Informationen (js?) selber zusammen.

ich möchte wirklich gerne in die Thematik einsteigen aber ich habe mehr 
Fragezeichen als alles andere :D

bisher will sich mir Vorteil bei dem Ansatz mit html5 nicht so richtig 
erschließen, eine Trennung zwischen gui (frontend) und Programmablauf 
(backend, webserver) habe ich ja auch bei der "klassischen" Methode. und 
der Webserver muss jeweils auf die Zielhardware angepasst werden. Die 
Darstellung sollte dafür dann einigermaßen überall stimmen. Zumindest 
bei der Verwendung eines halbwegs aktuellen Browsers.

ok ich könnte den ganzen Server mit den comports auf einem Rechner 
laufen lassen und mir die gui dann auf einem anderen ansehen (wenn ich 
denn den Webserver ins netz hängen kann/darf) aber ansonsten?

von Johannes S. (Gast)


Lesenswert?

HTML macht Sinn wenn das Gerät den Webserver integriert hat, der HTML 
Code + Resourcen können dann auch mehrere MB groß sein weil das ja 'nur' 
erstmal an den Client geschickt werden muss. Ideal sind dann noch 
Websockets, damit kann das Gerät dynamische Seiten anbieten. Der Client 
bekommt einmal den Code wie Daten verarbeitet und dargestellt werden 
sollen, das Gerät schiebt über die Websockets nur noch kontinuierlich 
Daten nach.
Der TO wollte aber die Grafik auf dem SBC haben, da würde der Browser 
auf dem Gerät laufen und muss auch das HTML rendern, und das ist gerade 
beim HTML5 schon sehr anspruchsvoll.

von Johannes S. (Gast)


Angehängte Dateien:

Lesenswert?

weniger aufwändig ist lvgl, dafür läuft es auch auf µC. Es hat auch 
schöne Widgets und ist auf einem z.B. STM32F769 auch schnell (trotz 32 
Bit Farbtiefe und 800 x 480 Pixel Display). Siehe Anhang mit einer lvgl 
Demo auf dem F769 Disco.
Auf der lvgl Seite im Blog ist auch ein Beitrag wie man es auf einem RPi 
mit Framebuffer Ausgabe umsetzen kann.
Aber es braucht auch das was Steve mit dem iPhone eingeführt hat: mehr 
Arbeit in UI/UX stecken. Buttons, Slider & Co. müssen auch ordentlich 
bedienbar sein wenn es mit touch funktionieren soll.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Andreas.

Andreas schrieb:

> Es sollte optisch schon zeitgemäß
> aussehen (TKinter fällt raus).

Tkinter lässt sich mit etwas Mühe optisch pimpen.
Ist die Frage, was Dir vorschwebt.

Jedenfalls ist mehr drin als die Beispiele aus Lehrbüchern. ;O)

Tkinter hat den riesen Vorteil, dass es robust ist und auf so gut wie 
jeder Plattform läuft, falls Du mal etwas portieren möchtest.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Der Opa aus der Muppet Show (Gast)


Lesenswert?

> gibt es irgendwo ein tutorial

Es ist zum Verzweifeln.

Wir haben 3 verfeindete Religionen. Qt bzw Smalltalk, HTML5 und die 
Serverkonzepte. Nicht nur, das du kein umfassendes Tutorial findest, du 
musst auch noch mehrere inkompatible IDEs gleichzeitig benutzen.

von Rolf M. (rmagnus)


Lesenswert?

Der Opa aus der Muppet Show schrieb:
> Es ist zum Verzweifeln.
>
> Wir haben 3 verfeindete Religionen. Qt bzw Smalltalk, HTML5 und die
> Serverkonzepte.

Was hast du nur dauernd mit Smalltalk? Außer dir hat da keiner davon 
gesprochen. Und sind "HTML5" und "die Serverkonzept" nicht ein und das 
selbe? Also sprich: Es geht eigentlich nur um klassische GUI vs. 
Webapplikation. Mit Religion hat das auch nicht viel zu tun.

von Faulenzer (Gast)


Lesenswert?

Rolf M. schrieb:
> Was hast du nur dauernd mit Smalltalk?

Aus Smalltalk kommt das Konzept, dass beliebige Event-Sender und 
-Empfänger zur Laufzeit miteinander gekoppelt werden können. Das sind 
die berühmten "Nachrichten an Objekte", so wie sie sich das Alan Kay 
einst gedacht hat und mit Smalltalk umgesetzt hat. Das, was C++, Java 
und all die anderen "Objektorientierten" Sprachen daraus gemacht haben, 
ist nicht mal ein müdes Lächeln wert.

Qt greift dieses Konzept mit seinen Signals und Slots und dem moc- 
Präprozessor auf. Es gibt auch noch andere Toolkits, die dieses Konzept 
aufgenommen haben, teilweise dann später auch direkt in C++ mit den dann 
vorhandenen Templates, die zur Einführung von Qt praktisch nicht 
vorhanden waren.


> Außer dir hat da keiner davon gesprochen.

Tja, viele denken halt, wenn sie eine Programmiersprache oder ein 
Toolkit "kennen", vulgo darin irgendwelche Programme zusammenbasteln die 
der Compiler akzeptiert, sie würden sich auskennen.
Aber den meisten fehlt jegliches Wissen über die Geschichte der 
verschiedenen Entwicklungen und den ganzen Zusammenhängen. Da reicht der 
Horizont nicht weiter als zu den eigenen Zehenspitzen.

von TkinterAberNatürlich (Gast)


Lesenswert?

Bernd W. schrieb:
> Tkinter lässt sich mit etwas Mühe optisch pimpen.
> Ist die Frage, was Dir vorschwebt.

Man hört und liest es leider überall. Fast jeder ist von der alten Optik 
von Tkinter abgeschreckt worden. Und die meisten wissen auch nicht dass 
man ändern kann. Ich finde Tkinter braucht als default eine etwas 
modernisierte Optik. Tkinter wirkt leider so als wäre es vor langer Zeit 
im Grunde aufgegeben. Es ist nämlich nicht wirklich schwierig die Optik 
zeitgemäß zu gestalten und neue Widgets mitzuliefern.

von Der Opa aus der Muppet Show (Gast)


Lesenswert?

Wieso hat sich Tkinter nicht durchgesetzt? Das Konzept klingt doch ganz 
überzeugend.

Wollen wir eine GUI solange umbauen, bis alle Benutzer sofort intuitiv 
zurechtkommen, ist Python ideal. Genau deswegen hat sich in der KI die 
Kombination aus C++ Kern und Python Anwendungslogik durchgesetzt.

Mit der alten MVC Architektur aus Smalltalk-Zeiten trennen wir sowieso 
Oberfläche und Verarbeitung, können GUI und Verarbeitung auf 
unterschiedlichen Maschinen in unterschiedlichen Sprachen laufen lassen.

Hätten wir Tkinter statt HTML5 Browser auf jedem Rechner und jedem 
Smartphone, wir könnten die Programme in 1/10 der Zeit entwickeln.

Was ist da schief gelaufen?

von Oliver S. (oliverso)


Lesenswert?

Der Opa aus der Muppet Show schrieb:
> Was ist da schief gelaufen?

Die Muppet-Show wurde eingestellt, bevor du die Welt retten konntest.

Oliver

von Nur_ein_Typ (Gast)


Lesenswert?

Rolf M. schrieb:
>> -> Es ist schade, aber aus meiner Sicht ist das Risiko beim Einsatz von
>> Qt zu hoch. Aber: Your Mileage May Vary.
>
> Sofern du nicht LGPL bzw. bei den entsprechenden Komponenten GPL
> akzeptieren kannst, ja.

Wobei man natürlich dazu sagen muß, daß die Risiken durchaus 
überschaubar sind. Die meisten Menschen, die die GPL und die davon 
abgeleiteten Lizenzen für ein Risiko halten oder sie anderweitig 
kritisieren, haben sie nicht verstanden.

> Die Zahlen gelten übrigens pro Entwickler - jeder muss seine eigene
> Lizenz haben und darf die nicht an andere übertragen. Hat man also ein
> Entwicklungsteam mit 10 Mann, sind's bei der regulären Lizenz schon
> 40k/Jahr. Die Small Business ist auf 4 Lizenzen pro Firma begrenzt.

Bei einem Entwicklungsteam von 10 Mann hat man allerdings schon 
Personalkosten in Höhe von rund einer Million Euro und damit natürlich 
auch einen dementsprechenden Umsatz. Wenn 40k pro Jahr bei einem 
Unternehmen dieser Größe ein größeres Problem darstellen, hat das 
Unternehmen ganz andere Probleme. ;-)

von Sheeva P. (sheevaplug)


Angehängte Dateien:

Lesenswert?

Andreas schrieb:
> Hast du Erfahrung wie es mit der Performance auf ARM-Systemen,
> speziell RPi, verhält?

So ein RasPi4 hat schon viel Dampf unter der Haube -- für Deinen 
Anwendungsfall, den Du bisher beschrieben hast, hat er sehr viel mehr 
als genug. Bei mir läuft ein RasPi4 mit einer kleinen Python-Anwendung, 
die 720p-Bilder von einer Logitech C920 liest, eine Bewegungserkennung 
mit OpenCV darauf macht und deren Ergebnisse serialisiert in einen 
lokalen Redis-Server schreibt -- dabei schafft der RasPi4 tatsächlich 30 
Frames pro Sekunde, ist dann allerdings auch auf allen vier Kernen 
komplett ausgelastet und braucht einen großen, passiven Kühlkörper, um 
nicht zu heiß zu werden und dann herunterzutakten. ;-)

Früher habe ich auch gerne und viel mit Qt gemacht, das Attribut 
"zukunftsfähig" einer GUI bedeutet heutzutage meistens HTML5. Fat 
Clients sind bei Kunden wegen des Aufwandes für Paketierung, Deployment 
und Pflege nicht besonders beliebt, da sind eine oder wenige zentrale 
Instanzen wesentlich preiswerter.

Eine Web-GUI hat einen weiteren riesigen Vorteil, nämlich, daß Du sehr 
viele aufwändige Dinge wie zum Beispiel die grafische Visualisierung von 
Daten sehr einfach und mit minimalem Aufwand "dezentralisieren" in einer 
Art "poor man's distributed computing" auf den Clients machen kannst. 
Dazu eine serverseitige Webapp, gerne auch mit Websockets zur 
eventgetriggerten Ausleitung Deiner Daten an die Clients, ein bisschen 
JavaScript dazu und der Drops ist gelutscht.

Zu diesen Vorzügen kommt zudem, daß es für so ziemlich jede moderne 
Plattform einen Webbrowser gibt, so daß Deine Software sofort auf PCs 
aller Art, Tablets, aber (wenn Du es richtig machst) sogar auf 
Mobiltelefonen nutzbar ist.

Obendrein hast Du -- je nachdem, welche JS-Bibliothek(en) Du für die 
Virtualisierung benutzt -- damit noch einen weiteren großen Vorteil, 
nämlich den der Interaktivität. Mit passenden JS-Bibliotheken kann der 
Benutzer in die Visualisierung hinein- und natürlich auch wieder 
herausscrollen oder noch ein paar andere lustige Dinge machen.

Ein Beispiel von mir -- eine Visualisierung eines sehr alten Thread über 
die Scores von "lesenswert" und "nicht lesenswert" -- findest Du im 
Anhang dieses Beitrages. Bitte beachte, daß die Datei aus 
Sicherheitsgründen zum Betrachten heruntergeladen und dann mit dem 
Browser geöffnet werden muß, damit sie korrekt funktioniert. Oben 
findest Du eine sortier- und durchsuchbare Tabelle, die mit Datatables 
[1] erstellt wurde, unten drei interaktive Diagramme, die mit 
pandas-bokeh [2] aus -- Du ahnst es -- einem Pandas-DataFrame [3] mit 
Python generiert worden sind. Für einen schnellen Hack find' ich das 
zwar noch nicht besonders ansehnlich, aber praktisch schon recht 
brauchbar.

Diesen Vorteilen von HTML steht allerdings ein etwas höherer Aufwand für 
eine (mehr oder weniger gründliche) Einarbeitung sowohl in HTML5, CSS 
und JavaScript, sowie in eventuell zu verwendende Frameworks entgegen. 
Leider sagst Du nicht so besonders viel zu Deinen Vorkenntnissen, auch 
hinsichtlich Programmiersprachen, deswegen: HTH, YMMV, viel Spaß und 
Erfolg!


[1] https://datatables.net/
[2] https://github.com/PatrikHlobil/Pandas-Bokeh
[3] https://pandas.pydata.org/

von wozu noch Betriebssysteme (Gast)


Lesenswert?

Sheeva P. schrieb:
> Zu diesen Vorzügen kommt zudem, daß es für so ziemlich jede moderne
> Plattform einen Webbrowser gibt

Ich halte diese "Technologie" für Schwachsinn.

Aber wenn es so toll ist, was folgt daraus? Dann brauchen wir keine 
Betriebssysteme mehr. Ein Browser, in dem alles läuft, reicht doch.

von Nur_ein_Typ (Gast)


Lesenswert?

Dieter H. schrieb:
> Was spricht gegen C#?

Ist die Frage ernst gemeint?

> Ist halt nicht cross-plattform.

Genau das.

von Der Opa aus der Muppet Show (Gast)


Lesenswert?

> Ein Browser, in dem alles läuft, reicht doch.

Einen Browser, auf dem alles läuft, bezeichnen wir doch als 
Client-Betriebssystem.

Die ursprünglichen Chromebooks hatten ja nur einen Browser für 
Webapplikationen. Typische Antwort eines typischen Benutzers: "Was soll 
ich denn mit einem Laptop, auf dem keine Adobe Programme laufen"?

> Diesen Vorteilen von HTML steht allerdings ein etwas höherer Aufwand für
> eine ... Einarbeitung in HTML5, CSS, JavaScript, Frameworks ... entgegen.

Oje oje, oje... Seit 1980 gibt es bei den GUI Frameworks nur mehr 
Rückschritte. Zwischendurch mussten wir uns nur in die Qt einarbeiten. 
Heute in 4 Client-Technologien. 2 unterschiedliche REST Frameworks. 
Mehrere inkompatible Server Frameworks. Und dazu noch unzählige 
Automatismen, die angeblich die Build Prozesse vereinfachen sollen.

von wozu noch Betriebssysteme (Gast)


Lesenswert?

Der Opa aus der Muppet Show schrieb:
> bezeichnen wir doch als
> Client-Betriebssystem

Warum nicht einfach als Client?

Und hatten wir das nicht schon mal? Ein "Großrechner" + Zugriff per 
Terminal darauf? ;-) Jetzt halt nur noch bunter.

So absurd.

von Florian S. (vatterger)


Lesenswert?

wozu noch Betriebssysteme schrieb:
> Aber wenn es so toll ist, was folgt daraus? Dann brauchen wir keine
> Betriebssysteme mehr. Ein Browser, in dem alles läuft, reicht doch.

Ja, aber wenn man mal überlegt: Das ist doch gar kein schlechter Ansatz 
für Service-Computer oder grafische Anzeigetafeln, z.B. am Bahnhof der 
Fahrkartenautomat. Ein OS-Image, das nur die nötigen Komponenten für 
einen Browser und Internetzugang enthält, wäre auch leichter 
abzusichern, dank kleinerer Angriffsfläche. Man könnte die Seite, die 
angezeigt werden soll, lokal oder auf einem entfernten Server 
bereitstellen. Updates wären dann im letzteren Fall komplett 
automatisiert.

Wer sowas allerdings für Desktop oder Smartphone-Anwendungen einsetzt, 
hat IMO das Ziel etwas verfehlt, dafür ist der ganze Browser-Kram in 
seiner jetzigen Form nicht so geil...

von Johannes S. (Gast)


Lesenswert?

wozu noch Betriebssysteme schrieb:
> Jetzt halt nur noch bunter.

etwas anders ist es heute schon, die Terminals waren dumm und konnten 
nur Cursor positionieren und Zeichen anzeigen. Im HTML werden heute 
komplette Programme im Quellcode an den Client geschickt und über die 
vereinheitlichte (so die Theorie) HTML Engine dargestellt.

von Nur_ein_Typ (Gast)


Lesenswert?

nurmal so schrieb:
> Bisher bin ich (übrigens nicht der TO und sorry für das teilweise Kapern
> des Freds) gut mit QT, C# etc. gefahren, aber da immer wieder auf HTML5
> (was ich bisher nur für statische Webseiten benutzt habe) verwiesen
> wurde, wollte ich einfach mal wissen wie man dort an so etwas heran
> geht.
> Es kann erst mal hässlich ohne jedes CSS usw sein. es geht mir darum die
> Technik zu verstehen.
>
> Bei Webservern habe ich bisher immer eher an etwas wie Apache und Co.
> gedacht.

... und das ist der Grund, warum Du schon mit der Terminologie auf 
Deinem eigenen Schlauch stehst. Der "Webserver" ist tatsächlich ein 
Webserver, Dein Programm ist hingegen ein Skript. Da das Skript ein 
lokal laufendes Programm ist, kann es bei entsprechenden Berechtigungen 
die konfigurierte(n) Schnittstelle(n) ganz normal benutzen, wie jedes 
andere lokale Skript auch.

Das Skript muß dann natürlich via HTTP mit der Außenwelt kommunizieren, 
und darum kümmert sich ein Webserver. Bei -- zum Beispiel -- einem 
Skript in Python mit dem Flask-Framework gibt es da verschiedene 
Möglichkeiten: den eingebauten Webserver, welcher in Python geschrieben 
und nur für Entwicklungszwecke geeignet ist, oder in einem "richtigen" 
Webserver wie den Apachen mit dem mod_wsgi-Modul, oder in einem 
speziellen WSGI-Webserver wie gunicorn oder uwsgi -- wobei letztere 
Lösungen gerne hinter einem klassischen Webserver wie Apache oder Nginx 
benutzt werden, die dann als Reverse Proxy konfiguriert sind. Andere 
Sprachen und Frameworks haben natürlich recht ähnliche Möglichkeiten.

Dein Beispiel mit dem Comport ist also ziemlich einfach: beim Starten 
Deines Skript wird der Comport geöffnet und an das globale 
Application-Objekt gebunden, das auch das Mapping von URLs auf 
Funktionen und den Zugriff auf allerlei Ressourcen wie die 
Konfiguration, Datenspeicher aller Art, ... you name it über 
entsprechende Handles ermöglicht.

von Nur_ein_Typ (Gast)


Lesenswert?

wozu noch Betriebssysteme schrieb:
> Sheeva P. schrieb:
>> Zu diesen Vorzügen kommt zudem, daß es für so ziemlich jede moderne
>> Plattform einen Webbrowser gibt
>
> Ich halte diese "Technologie" für Schwachsinn.

Ich halte solche Aussagen für Schwachsinn.

> Aber wenn es so toll ist, was folgt daraus? Dann brauchen wir keine
> Betriebssysteme mehr. Ein Browser, in dem alles läuft, reicht doch.

Ja, genau. Das ist genau das, was Sheeva vermutlich meint: Du brauchst 
nur noch eine minimale Installation, die gerade ausreicht, um einen 
Webrowser zu betreiben. Ein Träumchen für Systemadministratoren und alle 
anderen Menschen, die die Ökonomie hinter der Entwicklung und dem 
Betrieb von Software verstehen.

von Johannes S. (Gast)


Lesenswert?

Nur_ein_Typ schrieb:
> Ein Träumchen für Systemadministratoren und alle
> anderen Menschen, die die Ökonomie hinter der Entwicklung und dem
> Betrieb von Software verstehen.

Für mich als Anwender, der den Webbrowser ständig mit sich führt, ist es 
ebenfalls ein Träumchen.

von Nur_ein_Typ (Gast)


Lesenswert?

Florian S. schrieb:
> Wer sowas allerdings für Desktop oder Smartphone-Anwendungen einsetzt,
> hat IMO das Ziel etwas verfehlt, dafür ist der ganze Browser-Kram in
> seiner jetzigen Form nicht so geil...

Mittlerweile werden ganze Office-Pakete als Webapplikationen angeboten, 
allen voran Microsoft 365 und Google Docs... Wir können es drehen und 
wenden, wir wir wollen: die klassischen GUIs sind auf dem absteigenden 
Ast. Ich persönlich würde sogar sagen, sie haben bereits verloren.

von Nur_ein_Typ (Gast)


Lesenswert?

Johannes S. schrieb:
> Nur_ein_Typ schrieb:
>> Ein Träumchen für Systemadministratoren und alle
>> anderen Menschen, die die Ökonomie hinter der Entwicklung und dem
>> Betrieb von Software verstehen.
>
> Für mich als Anwender, der den Webbrowser ständig mit sich führt, ist es
> ebenfalls ein Träumchen.

Oh, stimmt, Du hast Recht: ich hatte die Anwender vergessen, obwohl ich 
natürlich selbst auch einer davon bin. :-)

von wozu noch Betriebssysteme (Gast)


Lesenswert?

Nur_ein_Typ schrieb:
> Ich halte solche Aussagen für Schwachsinn.

Nicht nur du! Darum haben wir jetzt auch überall Clouds, Server und 
Clients.

Nur_ein_Typ schrieb:
> Ein Träumchen für Systemadministratoren und alle
> anderen Menschen, die die Ökonomie hinter der Entwicklung und dem
> Betrieb von Software verstehen.

Tja, Ökonomie. Mehr brauchst du wohl nicht zu versehen - ich schon.

Ich will nicht eine Situation haben, wo meine Programme und Daten auf 
irgendwelchen Servern liegen.

Nur_ein_Typ schrieb:
> Ein Träumchen für Systemadministratoren

und für den Staat, Polizei und Geheimdienst. Alle Informationen werden 
über irgendwelche Datenleitungen gesendet. Alle.

Nein, danke.

von wozu noch Betriebssysteme (Gast)


Lesenswert?

Nur_ein_Typ schrieb:
> Mittlerweile werden ganze Office-Pakete als Webapplikationen angeboten

Tja, warum wohl.

von wozu noch Betriebssysteme (Gast)


Lesenswert?

Nur_ein_Typ schrieb:
> die klassischen GUIs sind auf dem absteigenden
> Ast.

Wer braucht eigentlich GUIs?

Jedes Program, das man intensiv nutzt, wird doch früher oder später über 
die Tastenkombinationen benutzt.

wenn man alle zwei Wochen seinen Editor vewchselt, dann braucht man 
natürlich die Maus und eine GUI.

von TkinterAberNatürlich (Gast)


Lesenswert?

Es muss ja nicht alles in einem Browser laufen. Das klingt sowieso nach 
Sicherheitsproblemen. Unzählige von Tabs sind außerdem übelst 
unübersichtlich.

Warum nicht ein Betriebsystem das mehrere Ebenen von "Browsern" bzw. Web 
Renderern bietet?
Zum surfen nutzt man den Browser mit sicherheitsrelevanten 
Einschränkungen. Und Anwendungen die mehr erfordern werden in seperaten 
Level x Browsern ausgeführt. Wie eine normale Desktop Anwendung mit 
eigenem Fenster und mit einer Web Oberfläche.


Aber insgesamt klingen solche Ideen für mich künstlich. Wieso sollte die 
Welt der Programmierung und Anwendungen auch nur aus Webtechnologie 
bestehen? Das wäre doch irgendwie eine beeinträchtigte Vielfalt.
Die Anwender interessiert es sowieso nicht welche Technologie hinter 
einer Anwendung arbeitet.

Ich denke die "alles im Browser" Idee ist bereits gescheitert. Glaube 
dafür gibt es eher den Trend "alles im Smartphone" :D

von Florian S. (vatterger)


Lesenswert?

> Nur_ein_Typ schrieb:
>> Ich halte solche Aussagen für Schwachsinn.
> Nicht nur du! Darum haben wir jetzt auch überall Clouds, Server und
> Clients.

Server sind doch ne gute Sache, zumindest wenn es der eigene Server ist, 
über den man auch Kontrolle hat.


> Ich will nicht eine Situation haben, wo meine Programme und Daten auf
> irgendwelchen Servern liegen.

Das liegt rein an der Geldgeilheit und Paranoia von Unternehmen, mit 
GUI-Technologie hat das eher wenig zu tun. Der Enabler für dieses 
übergriffige Verhalten ist auch nicht der Browser oder HTML/CSS/JS, 
sondern die ständige Verfügbarkeit einer Internetverbindung. Gibt jetzt 
schon genug native Programme die ohne Internetverbindung keinen Mucks 
machen.

von Nur_ein_Typ (Gast)


Lesenswert?

wozu noch Betriebssysteme schrieb:
> Nur_ein_Typ schrieb:
>> Ich halte solche Aussagen für Schwachsinn.
>
> Nicht nur du! Darum haben wir jetzt auch überall Clouds, Server und
> Clients.

Die haben wir, weil es schlicht und ergreifend einfacher, sinnvoller, 
und ja, am Ende auch sinnvoller ist, Ressourcen zu teilen. Es ist 
schlicht bescheuert, eine eigene Hardware nebst Stromversorgung, 
Kühlung, Zugriffskontrollen und so weiter zu kaufen und zu unterhalten, 
damit darauf einmal im Monat die Abrechnung laufen kann.

> Nur_ein_Typ schrieb:
>> Ein Träumchen für Systemadministratoren und alle
>> anderen Menschen, die die Ökonomie hinter der Entwicklung und dem
>> Betrieb von Software verstehen.
>
> Tja, Ökonomie. Mehr brauchst du wohl nicht zu versehen - ich schon.

Du verstehst gar nichts, fürchte ich.

> Ich will nicht eine Situation haben, wo meine Programme und Daten auf
> irgendwelchen Servern liegen.
> [...]
> und für den Staat, Polizei und Geheimdienst. Alle Informationen werden
> über irgendwelche Datenleitungen gesendet. Alle.

Weil unser Staat und seine Organe wie Geheimdienste und Polizeien ja 
bekanntlich überhaupt gar keine Möglichkeiten haben, sich offen oder 
gegebenenfalls verdeckt Zugang zu Deinen Räumlichkeiten und Deine Daten 
zu verschaffen, und wenn Du so große Paranoia davor hast, daß der Staat 
Deine Daten sieht, wirst Du wohl Deine Gründe dafür haben. Obendrein 
verstehst Du offensichtlich nicht, daß Deine Daten in einem 
Rechenzentrum in Kapstadt, Sao Paulo, Mumbai, Singapur oder Bahrain vor 
dem Zugriff unseres Staates wesentlich sicherer sind als auf Deiner 
eigenen Infrastruktur -- und daß wir, wenn der Staat oder seine Organe 
tatsächlich zu einer Gefahr für die Bürger werden, ganz andere Probleme 
haben als Deine Daten, verstehst Du wohl auch nicht. Wenn das nämlich 
der Fall wäre, würden sich die Betreffenden den Zugriff auf diese Daten 
nämlich ohnehin schneller verschaffen, als Du "Huch" sagen kannst.

von Nur_ein_Typ (Gast)


Lesenswert?

TkinterAberNatürlich schrieb:
> Es muss ja nicht alles in einem Browser laufen. Das klingt sowieso nach
> Sicherheitsproblemen.

Für mich nicht.

> Unzählige von Tabs sind außerdem übelst unübersichtlich.

Im klassischen GUI-Umfeld gibt es für sowas die sogenannten 
MDI-Schnittstellen, und übersichtlicher sind die auch nicht. Bei meinen 
Browsern kann ich wenigstens wählen ob ich ein neues Fenster oder einen 
neuen Tab öffne, ob ich einen Tab in ein neues Fenster pinne oder in ein 
eigenes Standalone-Fenster überführe. Dadurch kann ich mit dieser 
Technik wesentlich mehr Übersicht erreichen als mit einem MDI-Singleton.

> Warum nicht ein Betriebsystem das mehrere Ebenen von "Browsern" bzw. Web
> Renderern bietet?
> Zum surfen nutzt man den Browser mit sicherheitsrelevanten
> Einschränkungen. Und Anwendungen die mehr erfordern werden in seperaten
> Level x Browsern ausgeführt. Wie eine normale Desktop Anwendung mit
> eigenem Fenster und mit einer Web Oberfläche.

Für sicherheitsrelevante Bereiche geht das zumindest unter Linux 
bereits. Einfach einen Browser mit dem gewünschten Sicherheitsprofil für 
das bevorzugte Framework in einen Docker-Container packen, das hilft 
schon.

Allerdings ist es aktuell so, daß die Technik selbst schon lange nicht 
mehr das primäre Angriffsziel ist. Das ist vielmehr der Anwender, der 
gerne mal auf alles klickt, das hinreichend bunt, zappelig und nicht 
schnell genug auf dem Baum ist.

> Aber insgesamt klingen solche Ideen für mich künstlich. Wieso sollte die
> Welt der Programmierung und Anwendungen auch nur aus Webtechnologie
> bestehen? Das wäre doch irgendwie eine beeinträchtigte Vielfalt.

Weil das viele Dinge sehr viel einfacher und preiswerter macht.

> Die Anwender interessiert es sowieso nicht welche Technologie hinter
> einer Anwendung arbeitet.

Ich kenne Deine Anwender ja nicht, aber meine wissen es sehr zu 
schätzen, wenn eine Software stabil läuft, sie nicht ständig für 
irgendwelche Updates rebooten müssen, sie dieselbe Software und 
Konfiguration auf unterschiedlicher Hardware benutzen können und die 
Kosten für Software, Anwendung und Betrieb niedrig sind.

> Ich denke die "alles im Browser" Idee ist bereits gescheitert.

Im Gegenteil: es fängt gerade erst an.

> Glaube dafür gibt es eher den Trend "alles im Smartphone" :D

Das Eine schließt das Andere nicht aus, sondern ein.

von wozu noch Betriebssysteme (Gast)


Lesenswert?

Nur_ein_Typ schrieb:
> Es ist
> schlicht bescheuert, eine eigene Hardware nebst Stromversorgung,
> Kühlung, Zugriffskontrollen und so weiter zu kaufen und zu unterhalten,
> damit darauf einmal im Monat die Abrechnung laufen kann.

Was für ein dummes Geschwätz.

Das Teuerste sind die Daten (private oder firmeninterne) und nicht die 
Hardware.

von Nur_ein_Typ (Gast)


Lesenswert?

wozu noch Betriebssysteme schrieb:
> Was für ein dummes Geschwätz.

Dann sag' doch ausnahmsweise mal was Intelligentes. Vielleicht auch mal 
etwas zum Thema des Threads, anstatt hier rumzutrollen.

> Das Teuerste sind die Daten (private oder firmeninterne) und nicht die
> Hardware.

Schon wieder nichts verstanden. Es macht nämlich keinen Unterschied, ob 
Du Deine Daten einem undurchsichtigen Programm oder Betriebssystem eines 
mehr oder weniger dubiosen Herstellers, oder einem von ihm betriebenen 
Server anvertraust.

So, jetzt aber wieder zurück zum Thema.

von TkinterAberNatürlich (Gast)


Lesenswert?

Nur_ein_Typ schrieb:
> Für mich nicht.

Das ergibt sich einfach durch die vergrößerte Angriffsfläche. Denn ein 
solcher Trend würde die sowieso schon komplex gewordenen Browser noch 
umfangreicher machen.

Nur_ein_Typ schrieb:
> Weil das viele Dinge sehr viel einfacher und preiswerter macht.

Inzwischen ist das relativiert. Durch die wachsende Komplexität der 
Webentwicklung sind das heute komplexe Projekte mit vielen 
Abhängigkeiten, verschiedenen Konzepten und build tools.
Einfach nur HTML oder CSS tippen ist an sich nicht schwierig. Aber 
einfach C++ tippen ist auch nicht schwierig.
Frameworks wie Angular sind nicht trivial und bieten selbst für Leute 
mit Vorerfahrungen eine steile Lernkurve die sich kaum von QT 
Entwicklung unterscheidet.

von wozu noch Betriebssysteme (Gast)


Lesenswert?

TkinterAberNatürlich schrieb:
> Durch die wachsende Komplexität der
> Webentwicklung

das ist das nächste Problem. JS ist eine Pest.

von Nur_ein_Typ (Gast)


Lesenswert?

TkinterAberNatürlich schrieb:
> Nur_ein_Typ schrieb:
>> Für mich nicht.
>
> Das ergibt sich einfach durch die vergrößerte Angriffsfläche. Denn ein
> solcher Trend würde die sowieso schon komplex gewordenen Browser noch
> umfangreicher machen.

Die letzten größeren Dinge, welche die Browser und Webprojekte komplexer 
gemacht haben, waren allerdings ausgerechnet Funktionen zur Verbesserung 
der Sicherheit wie HSTS, SOP und Co. Davor war es natürlich HTML5, aber 
daß HTML weiterentwickelt wird ist ja nun wirklich nichts Neues, und das 
gilt für GUI-Frameworks ja auch.

> Nur_ein_Typ schrieb:
>> Weil das viele Dinge sehr viel einfacher und preiswerter macht.
>
> Inzwischen ist das relativiert. Durch die wachsende Komplexität der
> Webentwicklung sind das heute komplexe Projekte mit vielen
> Abhängigkeiten, verschiedenen Konzepten und build tools.
> Einfach nur HTML oder CSS tippen ist an sich nicht schwierig. Aber
> einfach C++ tippen ist auch nicht schwierig.
> Frameworks wie Angular sind nicht trivial und bieten selbst für Leute
> mit Vorerfahrungen eine steile Lernkurve die sich kaum von QT
> Entwicklung unterscheidet.

Softwareentwicklung ist nun einmal komplex, da beißt die Maus keinen 
Faden ab. Bei ernstzunehmender Software sind die Einarbeitungsaufwände 
ins Tooling allerdings ein recht überschaubarer Posten, da geht es eher 
um andere Themen. Allerdings: wenn die Lernkurven von Qt und Angular 
ähnlich sind -- wobei ich ehrlicherweise sogar einen kleinen Vorteil bei 
Qt sehe -- dann spielen die Kosten dafür keine Rolle mehr, weil sie in 
beiden Fällen ähnlich sind und ich diese Kosten ohnehin berappen muß. 
Zudem sind das ja weitestgehend einmalige Kosten, die sich über die Zeit 
amortisieren.

Deswegen haben kluge Leute darüber nachgedacht, was denn so im Laufe der 
Lebenszeit einer Software sonst noch so an Kosten anfällt, abgesehen von 
der Beschaffung. Und, siehe da, denen ist aufgefallen, daß an 
klassischen GUI-Programmen noch zusätzliche Kosten für das Deployment 
und die Pflege anfallen. Und daß außerdem ja dann auch die 
Clientmaschinen leistungsfähig genug sein müssen, um die betreffenden 
GUI-Programme ausführen zu können -- und zwar sogar dann, wenn die 
betroffenen Mitarbeiter diese Programme womöglich nur für eine Stunde im 
Monat aktiv benutzen. Erinnert sich noch jemand an das Konzept der 
"Total Cost Of Ownership", das ein bekannter Hersteller entwickeln ließ, 
um die eigenen hohen Lizenzpreise verargumentieren und vor allem die 
ungeliebten Wettbewerber aus dem OpenSource-Umfeld diskreditieren zu 
können?

Nun, betrachten wir das doch einfach aus dieser Perspektive. Wenn die 
Entwicklungs- und damit die Beschaffungskosten unabhängig davon sind, ob 
es sich um eine GUI- oder um eine Websoftware handelt, egalisiert sich 
diese Position und spielt für weitere Betrachtungen keine Rolle mehr. 
Also können wir uns auf Vorzüge die und Nachteile von Web- gegenüber 
GUI-Software konzentrieren, und zumindest in Unternehmen haben 
Webapplikationen da in vielerlei Hinsicht die Nase weit, weit vorne. In 
Deployment, Wartung, Lastverteilung, Testbarkeit, und eventuell auch bei 
der Zugriffskontrolle und Auditierbarkeit hat Websoftware eindeutige 
Vorteile.

Wie jemand anders hier ausnahmsweise richtig angemerkt hat, interessiert 
es die Anwender nicht, mit welchem Technologiestack die Software 
entwickelt wurde. Ja, haargenau. Und deswegen gibt es mittlerweile eben 
auch Hybride wie das von mir bereits erwähnte Admin-Frontend pgAdmin4 
für PostgreSQL, das als Webapplikation entwickelt wurde und sowohl 
netzwerkweit zentralisiert über HTTP ausgerollt oder stattdessen mit 
einem Webbrowser als lokale Installation genutzt werden kann. Und dieses 
Konzept funktioniert so gut, daß ich zu behaupten wage: 99% der Leute, 
die pgAdmin4 in einer lokalen Installation benutzen, merken nicht einmal 
etwas davon, daß sie im Hintergrund mit einer Webapplikation arbeiten.

von vom Autopoliturverkäufer @ Kirmes zum Rekrutah (Gast)


Lesenswert?


von Nur_ein_Typ (Gast)


Lesenswert?

vom Autopoliturverkäufer @ Kirmes zum Rekrutah schrieb im Beitrag 
#6798561:
> Guck mal wieder ein GUI Framework, von Ex Qt-Leuten:
> 
https://www.heise.de/news/SixtyFPS-Toolkit-aus-Berlin-fuer-grafische-UIs-mit-Rust-C-und-JavaScript-6170408.html

https://xkcd.com/927/

von Sheeva P. (sheevaplug)


Lesenswert?

nurmal so schrieb:
> gibt es irgendwo ein tutorial wie so ein lokaler Webserver aussehen
> könnte? erst mal nur für Win und Linux wenn dann Android (ios wohl eher
> nicht?) gehen würden um so besser.
>
> irgend etwas ganz einfaches, comport, baudrate etc. auswählen connecten
> und  dann die empfangenen Daten in ein textfeld einfügen.

Aus Spaß habe ich Dir da mal schnell was gehackt, das findest Du -- aus 
Rücksicht auf den armen TO -- hier: [1]. Ich würde mich freuen, wenn die 
weiteren Gespräche darüber in dem neuen Thread stattfinden könnten, 
lieben Dank.


[1] Beitrag "Winzige Beispiel-Webapp mit Python und Flask"

von Sheeva P. (sheevaplug)


Lesenswert?

Der Opa aus der Muppet Show schrieb:
> Wir haben 3 verfeindete Religionen. Qt bzw Smalltalk, HTML5 und die
> Serverkonzepte.

Verzeih' bitte, aber das ist ja Unfug. Qt ist nicht Smalltalk, auch 
nicht mit dem Signals+Slots-Mechanismus, und HTML5 ist ein 
Serverkonzept, das allerdings auch lokal benutzt werden kann.

von Sheeva P. (sheevaplug)


Lesenswert?

TkinterAberNatürlich schrieb:
> Fast jeder ist von der alten Optik von Tkinter abgeschreckt worden.

Das stimmt. Und daß Tkinter in Tutorials immer prozedural gezeigt wird:
1
root = tkinter.Tk()
2
button = tkinter.Button(root, ...)
3
button.pack(side=tkinter.LEFT)
4
# ...
5
root.mainloop()

anstelle von objektorientiertem:
1
class MainWin(tkinter.Tk):
2
    def __init__(self, *args, **kwargs):
3
        super().__init__(*args, **kwargs)
4
        self.button = tkinter.Button(self, ...)
5
        self.button.pack(side=tkinter.LEFT)
6
# ...
7
MainWin().mainloop()

(ungetestet aus der Hand) ist auch nicht sonderlich hilfreich und ärgert 
mich jedes Mal, wenn ich es sehe... da rollen sich erfahrenen 
Entwicklern doch die Fußnägel auf, verdammt!

von Sheeva P. (sheevaplug)


Lesenswert?

wozu noch Betriebssysteme schrieb:
> Der Opa aus der Muppet Show schrieb:
>> bezeichnen wir doch als
>> Client-Betriebssystem
>
> Und hatten wir das nicht schon mal? Ein "Großrechner" + Zugriff per
> Terminal darauf? ;-) Jetzt halt nur noch bunter.

Ja, aber... damals hatten wir (wenn wir Glück hatten) 9600 Baud über 
spezielle, schweineteure Kabel, und die gesamte "GUI" mußte darüber 
transportiert werden.

Zwischenzeitlich hatten sich "Zwischenlösungen" etabliert, wie X11 und 
Citrix, solches Gerümpel halt. Das ging, aber wirklich glücklich war 
damit keiner.

Heute sieht das ein bisschen anders aus: Netzwerke sind überall billig 
verfügbar, clientseitig gibt es Technologien wie Webbrowser, die einmal 
die GUI übers Netz laden und dann nur noch Daten ziehen, eigene lokale 
Speichermöglichkeiten haben und sogar Datenbanken, ... und wir haben 
vielfach schnellere Rechner und Netze, mit so vielen neuen 
Möglichkeiten...

von Sheeva P. (sheevaplug)


Lesenswert?

Nur_ein_Typ schrieb:
> wozu noch Betriebssysteme schrieb:
>> Aber wenn es so toll ist, was folgt daraus? Dann brauchen wir keine
>> Betriebssysteme mehr. Ein Browser, in dem alles läuft, reicht doch.
>
> Ja, genau. Das ist genau das, was Sheeva vermutlich meint: Du brauchst
> nur noch eine minimale Installation, die gerade ausreicht, um einen
> Webrowser zu betreiben.

Ja, aber ich meine nicht nur das. Betriebssysteme werden unwichtig(er), 
das sehen wir ja auch schon im Serverumfeld mit CoreOS, Rancher und 
Ubuntu Core. Da laufen nurmehr rudimentäre Linux-Systeme mit der 
minimalen Ausstattung, um Container zu betreiben. Das wiederum führt zu 
einer nahezu totalen Entkoppelung von Hardware und Software, aber damit 
auch zu standardisierten Schnittstellen und somit dazu, daß 
Betriebssystem, Browser, und der Rest... am Ende unwichtig und 
austauschbar werden. Muß man nicht gut finden, ist aber so. ;-)

von Olaf (Gast)


Lesenswert?

> einer nahezu totalen Entkoppelung von Hardware und Software, aber damit
> auch zu standardisierten Schnittstellen und somit dazu, daß
> Betriebssystem, Browser, und der Rest... am Ende unwichtig und
> austauschbar werden. Muß man nicht gut finden, ist aber so. ;-)

Du erhoffst dir davon eine Vereinfachung deiner Programmieraufgaben weil 
Systeme scheinbar ueberschaubarer werden. Das Problem ist nur das es 
sehr schnell unterschiedliche Arten der Entkopplung in unterschiedlichen 
Versionsstaenden geben wird. Einfach weil Menschen das machen koennen, 
nicht weil es Sinn macht.
Eine Abstraktion komplexer Systeme scheint zunaechst sinnvoll weil sie 
weniger intellektuelle Ressourcen zum Verstaendnis erfordert. Es ist nur 
Bloed wenn Programmierer die dann freigewordenen Ressourcen sofort 
nutzen um ihre abstrahierten System erneut komplexer zu machen. .-)

Olaf

von Rolf M. (rmagnus)


Lesenswert?

Johannes S. schrieb:
> wozu noch Betriebssysteme schrieb:
>> Jetzt halt nur noch bunter.
>
> etwas anders ist es heute schon, die Terminals waren dumm und konnten
> nur Cursor positionieren und Zeichen anzeigen. Im HTML werden heute
> komplette Programme im Quellcode an den Client geschickt und über die
> vereinheitlichte (so die Theorie) HTML Engine dargestellt.

Das funktioniert erstaunlich gut. Kann man sogar wiederum mit Qt machen. 
Das heißt, da wird ein komplettes Qt-Programm inklusive der Qt selbst im 
Browser ausgeführt. Das wird aber nicht als Quellcode, sondern als 
Bytecode übertragen.
https://www.qt.io/qt-examples-for-webassembly

: Bearbeitet durch User
von Sheeva P. (sheevaplug)


Lesenswert?

Olaf schrieb:
> Du erhoffst dir davon eine Vereinfachung deiner Programmieraufgaben weil
> Systeme scheinbar ueberschaubarer werden.

Nö. Ich sehe, was ich sehe. Was ich mir erhoffe, ist davon unberührt.

> Eine Abstraktion komplexer Systeme scheint zunaechst sinnvoll weil sie
> weniger intellektuelle Ressourcen zum Verstaendnis erfordert.

Das ist aktuell sicher noch nicht der Fall, aber in ein paar Jahren...

> Es ist nur
> Bloed wenn Programmierer die dann freigewordenen Ressourcen sofort
> nutzen um ihre abstrahierten System erneut komplexer zu machen. .-)

Komplexer oder besser?

von Olaf (Gast)


Lesenswert?

> Komplexer oder besser?

Fuer einen selber ist das zuerst immer besser. Fuer andere ist es 
komplexer. Das geht solange bis dann irgendwann der Nachwuchs denkt: Oh 
oh, das ist aber kompliziert, da schreibe ich lieber eine neue 
Programmiersprache,  GUI, usw...

Olaf

von TkinterAberNatürlich (Gast)


Lesenswert?

Komplexität wird eigentlich immer nur dann zum Problem wenn es nicht 
umfassend dokumentiert ist.
Wie ich es hasse wenn bei umfangreichen Frameworks nur ein paar Code 
Beispiele reichen sollen.
Man verliert dabei so viel Zeit undokumentierten oder schlecht 
dokumentierten Code zu verstehen. Man könnte meinen die Entwickler haben 
gar kein Interesse daran, dass andere ihre Software nutzen. Wollten wohl 
nur öffentlich machen, dass es da was gibt, was sie selbst verstehen und 
nutzen.

von Georg A. (georga)


Lesenswert?

TkinterAberNatürlich schrieb:
> Wie ich es hasse wenn bei umfangreichen Frameworks nur ein paar Code
> Beispiele reichen sollen.

Und ich hasse es, wenn in das eine Beispiel gleich alle Bells&Whistles 
des Frameworks reingefummelt werden ;)

von Einer (Gast)


Lesenswert?

Olaf schrieb:
> Das Problem ist nur das es
> sehr schnell unterschiedliche Arten der Entkopplung in unterschiedlichen
> Versionsstaenden geben wird.

Überhaupt nicht. Die Schnittstelle der unterschiedlichen 
Virtualisierungen ist im Backend z.B. Posix. Die Schnittstelle im 
Frontend ist HTML inkl. DOM, WASM etc.

Noch nie konnten Anwendungen auf so unterschiedlichen Hardware- und 
Softwareplattformen laufen. Man muss sich nur mal vergegenwärtigen, auf 
was so eine HTML/WASM-App läuft: Desktops und Notebooks mit 
unterschiedlichen Browsern, Betriebssystemen, Prozessorarchitekturen, 
unterschiedlichste Mobil-Telefone, Tabletts, Fernseher, etc.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.