Flash (und clevere Alternativen)

Themen zum Programmieren, Skripten, etc.

Moderator: LiMuBei

Benutzeravatar
Centurion
91 % Vol.
Beiträge: 1063
Registriert: Donnerstag 10. Februar 2005, 16:27
Kontaktdaten:

Re: Flash (und clevere Alternativen)

Beitrag von Centurion » Dienstag 5. Februar 2013, 19:50

Hehe jo. Aber Dojo macht noch mit das beste draus. Ein großer Teil des Problems ist ja auch gar nicht die Sprache an sich sondern die Interpreter, die in den Browsern drin stecken und deren Standardverfahren bei jeglichen Fehlern halt "fail silently" ist. Bei der Arbeit benutzen wir jetzt teilweise server-side JS und haben da halt eine Engine die ziemlich strikt parst und bei Problemen sofort abbricht. Das hilft schon enorm.

Ansonsten kann ich zur Erheiterung, auch über andere Sprachen, nur das hier empfehlen: http://www.youtube.com/watch?v=kXEgk1Hdze0
What's a spectral wolf?
- It's the Fourier transform of a regular wolf, duh.

Benutzeravatar
Behemoth
Initiative Big Boss
Beiträge: 1827
Registriert: Donnerstag 10. Februar 2005, 14:48
Wohnort: Karlsruhe

Re: Flash (und clevere Alternativen)

Beitrag von Behemoth » Dienstag 5. Februar 2013, 20:12

Hm, wahrscheinlich kommt bei mir schon alle Hilfe zu spät, aber ich konnte fast alle Ausgaben von JavaScript vorhersagen bevor er sie ausgeführt hat. Und ich fand sie fast alle schlüssig. :?

Ich glaube man versteht es nur nicht, wenn einem "implicit type casting" nichts sagt und man die toString() Methode nicht kennt. 8)
Look at me, I'm invisible!

Benutzeravatar
Centurion
91 % Vol.
Beiträge: 1063
Registriert: Donnerstag 10. Februar 2005, 16:27
Kontaktdaten:

Re: Flash (und clevere Alternativen)

Beitrag von Centurion » Dienstag 5. Februar 2013, 20:28

Es geht ja nicht nur darum, dass man vorhersagen kann, was da raus kommt und nachvollziehen kann, warum das da raus kommt. Es geht auch darum, ob eine Sprache, die solche Ergebnisse bietet, gut entworfen ist. Gerade implicit type casting und vor allem welche Operatoren es erzwingen ist ja (meiner Meinung nach zu Recht) ziemlich umstritten. Ganz gut sieht man das z.B. daran, dass es eine Menge Leute gibt, die sagen, dass man für Vergleiche in JS grundsätzlich === verwenden sollte und == nur in absoluten Ausnahmefällen Sinn macht.
What's a spectral wolf?
- It's the Fourier transform of a regular wolf, duh.

Benutzeravatar
LiMuBei
J:I Chief
Beiträge: 1415
Registriert: Sonntag 23. Januar 2005, 18:44
Wohnort: Karlsruhe
Kontaktdaten:

Re: Flash (und clevere Alternativen)

Beitrag von LiMuBei » Dienstag 5. Februar 2013, 20:37

Meine Frustration rührt gerade daher, dass ich versuche einer bestimmten Untermenge der div's in meinem Dokument mit Hilfe von dojo automatisiert Callbacks für mouseenter und mouseleave zu verpassen. Eine - wie ich dachte - simple Aufgabe eigentlich. Ich hab's jedoch nicht hinbekommen, da ich offensichtlich nicht verstehe, was dojo.query eigentlich zurückgibt. Laut Doku eine NodeList. Laut Google Chrome hat die aber ungefähr gar keine Methoden, jedenfalls keine von denen die in der Doku stehen. Ich bin gelinde gesagt verwirrt. Offensichtlich lässt sich meine bisherige Programmiererfahrung so gar nicht auf JavaScript mappen. Die ungewohnte (und in meinen Augen absolut armeslige) Notation von JavaScript hilft da auch nicht gerade.
Against logic there is no armor like ignorance.

Benutzeravatar
Centurion
91 % Vol.
Beiträge: 1063
Registriert: Donnerstag 10. Februar 2005, 16:27
Kontaktdaten:

Re: Flash (und clevere Alternativen)

Beitrag von Centurion » Dienstag 5. Februar 2013, 22:23

Okay, das kann ich gut nachvollziehen. Aber ich glaube da ist JavaScript als Sprache das geringste Problem. Der Punkt ist halt, dass Du UI-Entwicklung für's Web nicht mit so etwas wie Qt vergleichen kannst. Denn bei Dojo hast Du ja nicht nur ein Framework, das in JavaScript geschrieben wurde, sondern zusätzlich noch das Zusammenspiel mit HTML, CSS und der DOM-API. Alles Technologien mit ihrer eigenen Historie, die Dojo auch nicht ganz verdecken will. Konkret heißt das in dem Fall: onmouseover und onmouseout sind halt HTML-Attribute und als solche lassen sie sich per NodeList.attr() setzen. Dojo will HTML eben nicht verdecken, deshalb machen sie nicht extra noch mal Attribute auf der JavaScript-Ebene dafür. Was anderes ist es halt, wenn du Dojo Widgets benutzt, denn die sind dann zwar mit einem div verknüpft, haben aber auch ein JavaScript-Objekt, von dem sie repräsentiert werden und das evtl. eigene Events zur Verfügung stellt. Weiterhin bietet Dojo noch so etwas wie einen zentralen Event-Dispatcher, mit dem Du eigene Events und Listener definieren kannst. Der stellt auch mouseenter und mouseleave Events zur Verfügung, weil das eigentlich IE-spezifische Events sind, die Dojo auf anderen Browser emulieren muss.

Klar soweit? :D

Lange Rede kurzer Sinn: Ja es ist ätzend und undurchsichtig, liegt aber nicht direkt an JS sondern daran dass JS+Dojo+HTML+CSS+DOM eben nicht so eine konsistente Umgebung ist wie etwa Qt/C++.
What's a spectral wolf?
- It's the Fourier transform of a regular wolf, duh.

Benutzeravatar
LiMuBei
J:I Chief
Beiträge: 1415
Registriert: Sonntag 23. Januar 2005, 18:44
Wohnort: Karlsruhe
Kontaktdaten:

Re: Flash (und clevere Alternativen)

Beitrag von LiMuBei » Mittwoch 6. Februar 2013, 01:12

Das macht schon Sinn und hab ich mir auch fast so zusammengereimt. Ich finde im Moment zumindest die Doku von Dojo auch sehr schwach. Ich hab mir die vorgeschlagenen Einsteiger-Tutorials angeschaut und die sind halt echt für Leute die gar nix können. Nen div per Dojo rumschieben ist jetzt keine große Kunst. Aber danach wird's dann halt direkt sehr dünn. Und die Referenz ist z.B. total inkonsistent mit den Tutorials. In letzteren wird nämlich immer die require(["xx"], function(schlagmichtot){ ... });-Notation vorgestellt, in den Beispielen innerhalb der Referenz ist aber alles nur dojo.xy. Ist nun beides zulässig? Scheint so. Welches ist der bessere Weg? Ersteres ist auf jeden Fall deutlich weniger lesbar, scheint mir aber cleverer, weil nur geladen wird was da auch gebraucht wird. Da ist mir aber auch nicht klar, wieso ich der require-Funktion eine Funktion übergebe. Liegt's an nicht vorhandenen Scopes in JS? Ist es so zu verstehen, dass mir innerhalb der mitgegebenen Funktion die zuvor angegeben Pakete zur Verfügung stehen? Wird aus den Tutorials nicht klar, offensichtlich will man den gemeinen Webentwickler nicht mit sowas überfordern.

Naja, morgen nochmal mit kühlerem Kopf rangehen, aber der erste Eindruck ist nicht gut :D
Against logic there is no armor like ignorance.

Benutzeravatar
Centurion
91 % Vol.
Beiträge: 1063
Registriert: Donnerstag 10. Februar 2005, 16:27
Kontaktdaten:

Re: Flash (und clevere Alternativen)

Beitrag von Centurion » Mittwoch 6. Februar 2013, 10:21

LiMuBei hat geschrieben:Da ist mir aber auch nicht klar, wieso ich der require-Funktion eine Funktion übergebe. Liegt's an nicht vorhandenen Scopes in JS? Ist es so zu verstehen, dass mir innerhalb der mitgegebenen Funktion die zuvor angegeben Pakete zur Verfügung stehen?
Ja, genau so ist es. Funktionen sind in JS das einzige was einen lokalen Scope erzeugen kann. dojo.require() und überhaupt die ganze dojo.blabla-Notation sind deprecated, weil sie sich irgendwann mal überlegt haben, das sie globale Namespaces schlecht finden und dann auch gleichzeitig ihren Paket-Loader komplett geändert haben (nachzulesen hier und hier). Es war vorher schon so, dass Du per dojo.require() nur das geladen hast, was Du brauchst. Aber es war dann halt in einem globalen Objekt z.B. namens dojo.fx oder was auch immer.
What's a spectral wolf?
- It's the Fourier transform of a regular wolf, duh.

Benutzeravatar
Magic
WoW Dictionary
Beiträge: 1650
Registriert: Donnerstag 10. Februar 2005, 15:35
Wohnort: Tübingen

Re: Flash (und clevere Alternativen)

Beitrag von Magic » Mittwoch 6. Februar 2013, 21:23

Was ist denn dein Anwendungsgebiet, Alex? Hast du einfach aus Interesse Dojo probiert, oder willst du ein bestimmtes Ergebnis erzielen? Sicherlich gibt es Alternativen.
:zauberer2: Ilyrielle - Mage

Benutzeravatar
LiMuBei
J:I Chief
Beiträge: 1415
Registriert: Sonntag 23. Januar 2005, 18:44
Wohnort: Karlsruhe
Kontaktdaten:

Re: Flash (und clevere Alternativen)

Beitrag von LiMuBei » Donnerstag 7. Februar 2013, 01:35

Momentan bastele ich an einem interaktiven Programm für die Website der ICRA 2013. Von meinem bisherigen Verständnis her sollte Dojo dafür eigentlich genau das richtige sein. Ich muss mich wohl einfach noch eingewöhnen :)
Against logic there is no armor like ignorance.

Benutzeravatar
Centurion
91 % Vol.
Beiträge: 1063
Registriert: Donnerstag 10. Februar 2005, 16:27
Kontaktdaten:

Re: Flash (und clevere Alternativen)

Beitrag von Centurion » Donnerstag 7. Februar 2013, 10:15

Die hauptsächliche Frage ist aus meiner Sicht: Will man Widgets haben oder will man selber HTML bauen. In ersterem Fall würde ich Dojo empfehlen, in letzterem entweder jQuery oder evtl. Angular.js (davon sind gerade einige meiner Kollegen ziemlich begeistert)
What's a spectral wolf?
- It's the Fourier transform of a regular wolf, duh.

Benutzeravatar
Behemoth
Initiative Big Boss
Beiträge: 1827
Registriert: Donnerstag 10. Februar 2005, 14:48
Wohnort: Karlsruhe

Re: Flash (und clevere Alternativen)

Beitrag von Behemoth » Donnerstag 7. Februar 2013, 10:58

Es gibt sowohl von jQuery als auch von Dojo jeweils Versionen mit und ohne Widgets. Das ist dann tatsächlich nur noch Geschmackssache.
Look at me, I'm invisible!

Benutzeravatar
Centurion
91 % Vol.
Beiträge: 1063
Registriert: Donnerstag 10. Februar 2005, 16:27
Kontaktdaten:

Re: Flash (und clevere Alternativen)

Beitrag von Centurion » Donnerstag 7. Februar 2013, 12:00

Ja das stimmt. Nach meinem Geschmack sind die Widgets für jQuery überwiegend armselig und die für Dojo überwiegend gut. :D

Dafür geht reine HTML-Manipulation nach meinem Geschmack mit jQuery etwas einfacher als mit Dojo. YMMV.
What's a spectral wolf?
- It's the Fourier transform of a regular wolf, duh.

Antworten