Moinsen, ich bin am überlegen ob ich es mir antun soll Java Script zu
lernen. Ich beabsichtige diverse Festigkeitsberechnungen auf meiner
Website zur Verfügung zu stellen. Weil ich mich schon immer irgendwie
für OpenGL interessiert habe bietet sich für mein Vorhaben WebGL an.
Die Rahmenstrukturen können mit der Maus direkt gezeichnet werden,
Knoten gesetzt werden, Daten auf die Festplatte abgespeichert werden und
ebenso hochgeladen werden. Im Hintergrund laufen komplexe
Matritzenberechnungen ab.
Mich würde nur interessieren wo die Grenzen von JavaScript sind, ist
mein Vorhaben damit realisierbar oder sollte ich zu einer anderen
Programmiersprache greifen? Wie gesagt OpenGL muss sein weil ich es aus
Interesse lernen will.
K. Lause schrieb:> Daten auf die Festplatte abgespeichert werden
Download und Upload sind möglich, speichern auf einem Webdav sofern
entsprechend Eingerichtet auch, aber Zugriff auf Dateien auf der lokalen
Festplatte direkt nicht.
Ansonsten ist in JS eigentlich alles machbar. Alle Sachen die Ressourcen
ausserhalb der Kontrolle des Seitenbetreibers brauchen muss der
Betroffene aber natürlich erst erlauben. Und was WebGL angeht, das ist
eine recht abgespeckte Version von GLES. Bilder und Videos zu Texturen,
Vertex und Fragment Shader, also das übliche, gehen, aber erwarte keine
spezielleren Dinge.
3D Mause werden im browser vermutlich auch nicht gehen. Mappen von 2D
auf 3D Koordinaten auf intuitive Weise ist auch nicht trivial und oft
nicht möglich.
K. Lause schrieb:> Moinsen, ich bin am überlegen ob ich es mir antun soll Java Script zu> lernen. Ich beabsichtige diverse Festigkeitsberechnungen auf meiner> Website zur Verfügung zu stellen. Weil ich mich schon immer irgendwie> für OpenGL interessiert habe bietet sich für mein Vorhaben WebGL an.
JavaScript ist eine beschissene Sprache und die Verwendung auf Webseiten
ist komplette ausgeufert. Gerade deshalb kommst du leider schon bei
normalen Webseite nicht mehr um JavaScript herum. Also lern es zusammen
mit einem der beschissenen Frameworks das diesen Monat gerade modern für
Webseitengestaltung ist.
Ob JavaScript neben der Webseitengestaltung für deine Berechnungen
reicht wirst du beim Lernen von JavaScript nebenbei merken.
Ob dir im nächsten Schritt WebGL für 3D-Darstellungen etwas nützt hängt
neben deinen Anforderungen auch davon ab, was heutige Browser
unterstützen. Laut https://caniuse.com/webgl sieht es nicht so schlecht
aus.
> Die Rahmenstrukturen können mit der Maus direkt gezeichnet werden,> Knoten gesetzt werden, Daten auf die Festplatte abgespeichert werden und> ebenso hochgeladen werden.
Aus dem Browser heraus etwas auf der Festplatte des Benutzers speichern
ist so eine Sache. Aus Sicherheitsgründen soll ein Browser nicht
ungefragt und ferngesteuert überall hin speichern dürfen. Es gibt aber
(neben Cookies) ein paar Mechanismen zum Speichern relativ kleiner
Datenmengen. Einmal das Web-Storage API und dann das Indexed-DB API.
Benutzer müssen dazu ihre Einwilligung geben. Dann gibt es natürlich die
Möglichkeit, dass ein Benutzer eine Datei herunter läd, die er speichern
kann wo er möchte. Der Webserver muss den Download mit passendem
Mime-Type anbieten.
> Im Hintergrund laufen komplexe> Matritzenberechnungen ab.
Du solltest dir schon überlegen, ob die Berechnungen auf der
Client-Seite (im Browser) ablaufen sollen. Dann kommst du um JavaScript
nicht herum. Wenn die Berechnungen auf dem Server laufen sollen kannst
du alles nehmen was dir lieb ist.
K. Lause schrieb:> Moinsen, ich bin am überlegen ob ich es mir antun soll Java Script zu> lernen.
Was kannst du denn schon an Sprachen?
z.B. könntest du das ganze mit C++ und QT machen, und anschließend für
den Webbrowser in WASM compilieren:
https://wiki.qt.io/Qt_for_WebAssembly
Da gibt's ein paar Einschränkungen bzgl. OpenGL/WebGL, aber im Großen
und Ganzen sollte das schon machbar sein.
Das sieht natürlich interessant aus, der Safari und Android browser wird
auch unterstützt, was mit ein Grund war warum ich überhaupt WebGL in
Erwägung gezogen habe.
In C++ bin ich einigermaßen fit, mit WASM müsste ich mich dann gar nicht
in eine neue Sprache einarbeiten.
K. Lause schrieb:> Im Hintergrund laufen komplexe> Matritzenberechnungen ab.>> Mich würde nur interessieren wo die Grenzen von JavaScript sind
1. Du legst damit deine Software offen - musst du selbst entscheiden.
2. Javascript wird oft abgeschaltet, weil das aus Sicherheitsgründen
empfohlen wird. Das könnte Interessenten abhalten.
Bei Server-Side-Scripting übergibst du nur die Ergebnisse an den User.
Georg
Georg schrieb:> 1. Du legst damit deine Software offen - musst du selbst entscheiden.
Nunja, das transpilierte minifizierte zeug, das man da heute auf
Webseiten so findet, ist für Entwicklungszwecke nicht wirklich geeignet.
> 2. Javascript wird oft abgeschaltet, weil das aus Sicherheitsgründen> empfohlen wird. Das könnte Interessenten abhalten.
Viele Seiten funktionieren heute ohne JS gar nicht mehr. Für viele Leute
ist abschallten also gar nicht mehr möglich.
K. Lause schrieb:> Dann wird es mit Javascript doch eher nichts. Danke für eure Antworten.
Javascript ist modern. Das mögen die meisten hier nicht.
Hier frickelt man lieber mit irgendwelchem alten Käse herum anstatt
Software zu schreiben, die auf praktisch jedem System der Welt, egal ob
Desktop, Notebook, Tablet, Handy oder Fernseher läuft, egal welches
Betriebssystem installiert ist.
Tip: Lern Javascript. Alleine der immense Pool an Opensource-Pakete mit
inzwischen über eine Millionen Projekte! Auf Platz 2 kommt Java mit etwa
300000 Projekte.
Es gibt mehr Javascript als Java, Python, PHP und C# zusammen! Sprachen
wie C, C++ oder der einstige Superstar von vor 10 Jahren, Perl, spielen
keine Rolle mehr.
Die Software-Welt hat sich die letzten 5 Jahre massiv verändert. Kann
man ignorieren oder akzeptieren.
Experte schrieb:> Alleine der immense Pool an Opensource-Pakete mit> inzwischen über eine Millionen Projekte!
Das ist nicht zwangsläufig positiv. Einmal webpack und babel, schon bist
du bei >1000 mitreingezogenen Dependencies.
Zudem gibt es für jeden scheiss Packete, egal wie unsinnig, Beispiel:
ansi-red und seine ~25 Swesterpakete/Projekte
https://www.npmjs.com/package/ansi-red
Und das ist nur die Spitze des Eisbergs!