Forum: PC-Programmierung Java Script und WebGL


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von K. Lause (Gast)


Lesenswert?

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.

von DPA (Gast)


Lesenswert?

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.

von DPA (Gast)


Lesenswert?

Edit: Bei JS ausserhalb des Webbrowsers sieht das mit den Restriktionen 
aber auch wieder weniger schlimm aus.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

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.

: Bearbeitet durch User
von Εrnst B. (ernst)


Lesenswert?

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.

von K. Lause (Gast)


Lesenswert?

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.

von Georg (Gast)


Lesenswert?

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

von K. Lause (Gast)


Lesenswert?

Dann wird es mit Javascript doch eher nichts. Danke für eure Antworten.

von DPA (Gast)


Lesenswert?

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.

von Experte (Gast)


Lesenswert?

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.

von DPA (Gast)


Lesenswert?

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!

von vn nn (Gast)


Lesenswert?

DPA schrieb:
> 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

Erinnert irgendwie an 
https://hackernoon.com/im-harvesting-credit-card-numbers-and-passwords-from-your-site-here-s-how-9a8cb347c5b5?gi=4083cdd688c7

von Eric B. (beric)


Lesenswert?

vn nn schrieb:
> DPA schrieb:
>> 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
>
> Erinnert irgendwie an
> 
https://hackernoon.com/im-harvesting-credit-card-numbers-and-passwords-from-your-site-here-s-how-9a8cb347c5b5?gi=4083cdd688c7

Das dann wieder an http://wiki.c2.com/?TheKenThompsonHack

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.