JavaScript Code-Prüf-Programm gesucht

Es wäre vielleicht besser wieder zu VBA zurückzugehen, denn dort bist du ja anscheinend glücklich und bekommst auf wundersame Weise Codeanalyse ohne eine IDE (wie?).

Dir wurden die existierenden Lösungen für JS genannt, wenn dir diese nicht passen solltest du vielleicht ein entsprechendes Tool einfach selbst entwickeln, so wie du das darstellst sollte das ja ganz einfach sein. Vielleicht sogar in VBA.
 
Zuletzt bearbeitet:
cumulonimbus8 schrieb:
Ach nein… Programmcode ist Programmcode, Ausführungsregeln desselben sind Ausführungsregeln desselben. Ob das ActionScript ist, VBA, WSH, JS, HTML. Es braucht nur die nötige Engine die es parst und die Fehler meldet. Mehr Wunder nicht!
Und diese verdammte Engine ist in jedem Browser enthalten.
Um JavaScript zu analysieren, musst du den DOM interpretieren. Dazu brauchst du natürlich noch eine grafische Ausgabe. Außerdem sollten die Tests realitätsnah sein... Genau das bietet jeder Browser.

Wenn du nicht in der Lage bist, parallel in einem einfachen Editor mit Syntax Highlighting (da reicht VIM) und dem Browser zu arbeiten, dann bist du bei JavaScript schlicht und ergreifend falsch.

Und nein, HTML ist eben nicht auf der selben Schiene wie JS. Das liegt z.B. schon daran, dass HTML eine MARKUP Sprache ist, die selbst gar nichts kann.
Und auch VBA und JS kannst du nicht vergleichen. VBA ist stark typisiert, JS genau wie PHP schwach typisiert. Es gibt auch für PHP keinen besseren Test, als den Code einfach mal auszuführen und sich die Logs anzugucken, die man hoffentlich angelegt hat.
 
Ich werfe mal Sublime Text mit der Package Control in den Raum.
Dazu dann die JSLint + LiveReload Packages installieren.

Damit komme ich z.B. sehr gut zurecht bei der Entwicklung, da jeder Speichervorgang zu einem Neuladen im Browser führt und man das so gleich testen kann. Optional habe ich dann noch Prefixr, Emmet, SidebarEnhancements und JSFormat installiert, um das Ganze noch komfortabler zu machen.
 
@Backslash
Es wäre vielleicht besser wieder zu VBA zurückzugehen, denn dort bist du ja anscheinend glücklich und bekommst auf wundersame Weise Codeanalyse ohne eine IDE (wie?).
Weißt was… Ich bin nicht klüger als ein Problem zu haben und sogar eine Lösungsvorstellung anzubieten bzw. nach der zu suchen. Wenn die Antwort heißt, dass es so was nicht gibt - gut. Dann habe ich Pech.
Dir wurden die existierenden Lösungen für JS genannt, wenn dir diese nicht passen solltest du vielleicht ein entsprechendes Tool einfach selbst entwickeln, so wie du das darstellst sollte das ja ganz einfach sein. Vielleicht sogar in VBA.
Mir wurde vieles genannt - und wenn das Lösungen sind dann bin ich von 5 Jahrzehnten Programmdebugging auf dieser Welt enttäuscht. Selbst ein Flash CS5 mit seinem tollen Preis ist für mich in der praktischen Handhabung lachhaft gegen allein W97 mit seinem VBA.


@Daaron
Wenn du keine Ahnung hast wie man Programmiert… nein, falsch: Wenn du keine Ahnung hast was Ergonomie im Umgang mit Programmen ist dann bist du zu bemitleiden.

Und diese verdammte Engine ist in jedem Browser enthalten.
Da nützt sie mir nur nichts!
Um JavaScript zu analysieren, musst du den DOM interpretieren.
Und das kann keine Editor wenn es offesichtlich jeder Browser kann? Ich bin begeistert!
Dazu brauchst du natürlich noch eine grafische Ausgabe.
Hä? Grafik? Wovon redest du nur? Was ich da Programmiere hat nichts mit tollem Homepagelayout zu tun, es geht um Funktionem, Programmlogigk im Hintergrund die auf verdeckte Weise einen Output liefern!
Außerdem sollten die Tests realitätsnah sein... Genau das bietet jeder Browser.
Jau. Deswegen editiere ich, save ich, werfe da in den Browser… Gehts noch umstädlicher?
Wenn du mit ›realitätsnah‹ das optische Erscheinungsbild meinst - siehe unten: ich meine nämlich was völlig anderes. Mich interessiert nicht, ein Ergebnis zu sehen - mich interessiert der Code selbst der das Ergebnis herbeiführt!

Wenn du nicht in der Lage bist, parallel in einem einfachen Editor mit Syntax Highlighting (da reicht VIM) und dem Browser zu arbeiten, dann bist du bei JavaScript schlicht und ergreifend falsch.
Und du bist hier falsch wenn du mir nur Ohrfeigen statt Hilfe geben willst :mad: Und des könnte sein, dass ich mit JS nicht ausgesucht habe…
SyntaxHighLighting habe ich und es reicht mir ganz offensichtlich nicht vorhandene Missgriffe aufzudecken. Wenn die Hälfte der Zeit draufgeht nach einem Tippfehler zu fahnden oder anderen Nicklichkeiten - dann ist das alles andere als performat. Und genau da soll mit vrfl. noch mal die Maschine helfen bei! Vor dem Ablaufenlassen bei Dingen die solche Testläufe von vornherien als sinnlos deklarieren.

Und nein, HTML ist eben nicht auf der selben Schiene wie JS. Das liegt z.B. schon daran, dass HTML eine MARKUP Sprache ist, die selbst gar nichts kann.
Prima. Weiß ich sogar ganz von alleine. Was hat das mit meiner Frage nach Debugging zu tun?
Und auch VBA und JS kannst du nicht vergleichen.
Oh, Herr… Es geht um den Editor. Und ob nun VBA den Fehler findet oder DOM - dann wir der gefunden (weils nicht funktioniert) und man wird mich doch wohl auch darüber aufklären können wo das stattfindet??!
VBA ist stark typisiert, JS genau wie PHP schwach typisiert. Es gibt auch für PHP keinen besseren Test, als den Code einfach mal auszuführen und sich die Logs anzugucken, die man hoffentlich angelegt hat.
Das glaube ich erst wenn ich das sehe. Der Code wird interpretiert, das gehe was schief. und das soll keine Instanz registrieren und behandeln können? Sind wir im Programmiermittelalter?
Wenn ich vra statt var schreibe sehend das meine Augen und meine Gehirn. Ein Editor soll das nicht können, Stunden vor einem Testlauf und dem auswerten eins Logs? Wer immer das Log schreibt kann es genauso auch live ins Editorfenster einblenden!!!


@slaves
Und an alle: es geht nicht um den Begriff Browser und den Umgang mit Browsern. Es geht um da Schreiben und Vorprüfen von Code auf allergröbste Böcke in einem Editor. Word kann doch auch Schreibfehler aufdecken weil es regen zu Syntax und Grammatik kennt.
Mir kann keiner weismachen, dass das was der Mensch kann indem er simple Regeln befolgt beim Drüberlesen über eine Codewüste nicht auch eine Maschine könnte? Ich fall' vom Glauben ab!



Blasen wir das alles ab, das Tool was ich brauch gibts offensichtlich nicht.
Fändet ihr das normal, dass ich in Word erst als PostScipt ausdrucken muss um dann über einen PS-Fähigen Betrachter Syntaxfehler angezeigt zu bekommen? Offenbar wohl…


CN8




Nachtrag: der von Lint optimierte Code lief erst gar nicht mehr. Ich musste ein Backup bemühen.
Aptana teste ich gerade (oder versuche es), aber die Firewall ist dagegen… Das lässt Begeisterung aufkommen… Und offen weiß ich mit dem Boliden für meine Zwecke nicht die Bohne anzufangen. Wer erklärt mir das Ding?
 
Ich glaube slaves Vorschlag kommt deinem Wunsch noch am nächsten. Die Konsole des Browsers gibt, abgesehen vom syntax highlighting des Editors, die nützlichsten Hinweise auf Syntaxfehler. Kannst sie ja so weit aufziehen, dass du von der Website selbst nichts mehr siehst. Ist natürlich angenehmer, wenn Editor und Browser ihren eigenen Bildschirm haben. Komfortabler als dieses Setup fände ich ein dediziertes Programm zur JS-Syntax-Kontrolle auch nicht.
 
Zuletzt bearbeitet:
Komodo Edit 8.5 oder Adobe Brackets mit JSHint Plugin.
 
cumulonimbus8 schrieb:
Es geht um da Schreiben und Vorprüfen von Code auf allergröbste Böcke in einem Editor. Word kann doch auch Schreibfehler aufdecken weil es regen zu Syntax und Grammatik kennt.

WebStorm, Aptana Studio, Netbeans, Sublime Text... blah was auch immer. Die können es alle, man muss sich nur vernünftig einarbeiten. Und JA, wirklich gute Editoren kosten auch mal Geld, denn das ist verdammt komplexe Software. Syntax-Prüfung und Autovervollständigung verhindern fast alle Tippfehler. Mit etwas Übung sind Tippfehler aber das kleinste Problem vom Entwickler...
Bei den Webtechnologien ist es halt etwas speziell. Der Browser ist ein Teil der Entwicklungsumgebung und das ist auch das tolle am Web. Du arbeitest genau da, wo man es am Ende auch nutzt. Man kann da tolle Sachen mit machen, wenn man sich drauf einlässt.

Und deine Probleme mit JSLint sind normal. Es verletzt deine Gefühle, da hat Douglas Crockford selbst vor gewarnt... :D
Nimm JSHint oder auch gar nix, wenn man damit nicht zurecht kommt hilft es einem auch nicht...
 
cumulonimbus8 schrieb:
Das glaube ich erst wenn ich das sehe. Der Code wird interpretiert, das gehe was schief. und das soll keine Instanz registrieren und behandeln können? Sind wir im Programmiermittelalter?
Wenn ich vra statt var schreibe sehend das meine Augen und meine Gehirn. Ein Editor soll das nicht können, Stunden vor einem Testlauf und dem auswerten eins Logs? Wer immer das Log schreibt kann es genauso auch live ins Editorfenster einblenden!!!
Du raffst es immer noch nicht. Interpreter-Sprachen kompilieren erst zur Laufzeit. Bis sie kompilieren, ist ihr Ergebnis vollkommen offen. Und selbst nach der Kompilierung kann vieles, was eigentlich nicht korrekt aussieht, vollkommen beabsichtigt sein.

Schon mal so etwas gesehen?
PHP:
$renderModule = 'Renderer_'.$renderType;
$renderer = new $renderModule();
Ja, das funktioniert tatsächlich, ist teilweise sogar sehr sinnig. Aber bei solchen Konstrukten hebelst du selbst hartgesottene Syntax Highlighter und Autocompleter aus.

Genauso könnte auch
Code:
vra itemName;
durchaus korrekt sein. Hierzu müsste "vra" lediglich ein Präfix-Operator sein, der weiter oben dynamisch definiert wurde.

Bei Interpreter-Sprachen siehst du viele Sachen tatsächlich erst, wenn du einen Unit-Test in der einen oder anderen Form durchführst. Das kann in Form eines console.log() bzw. print_r() erfolgen, kann aber auch auf eine komplexere Klasse zurückgreifen.

Word kann doch auch Schreibfehler aufdecken weil es regen zu Syntax und Grammatik kennt.
Die Syntax und Grammatik von Interpretersprachen können erst zur Compile- und Laufzeit geprüft werden, vorher nicht. Die Dinger sind viel zu flexibel, als dass man sie mit vordefinierten Tests angreifen könnte.
Dir, als menschlicher Entwickler, fällt so etwas dann natürlich auf, weil du genau weißt, dass du solche Konstrukte nie schreiben würdest. Aber was weiß die Maschine über deinen Stil und deine Zielsetzung?
 
Du raffst es immer noch nicht. Interpreter-Sprachen kompilieren erst zur Laufzeit. Bis sie kompilieren, ist ihr Ergebnis vollkommen offen. Und selbst nach der Kompilierung kann vieles, was eigentlich nicht korrekt aussieht, vollkommen beabsichtigt sein.
Das tut weh.
Ich kenne die Unterschiede zwischen Interpreter und Compiler. Aber du raffst es nicht, dass eine Compiler losrennt und etwas compilieren will, dass ein Interpreter etwas schluckt um es zu verdauen. Und was mach die beiden genau und allerspätestens dann? Sie überprüfen den Code! Und ihnen wird bewusst, wo etwas faul ist - weil rummst. Syntaxlogik vs. Programmlogik, klingelt da was?
Und was macht der dumme Depp von Mensch vorm Bildschirm? Er sieht das Getippte. Er beherrscht Syntaxregeln. Er kann also Tippfehler u.a.m. erkennen noch bevor
ie Konsole des Browsers gibt, abgesehen vom syntax highlighting des Editors, die nützlichsten Hinweise auf Syntaxfehler
…irgendwas im Browser (in dem es sich ja so wundervoll editiert) interpretiert wird. Bevor ist das Stichwort! Bevor ich überhaupt Trial & Error im Browser probiere kann, ohne einen Millimeter Programmlogik, eine Codeprüfung erfolgen ob dieser Code absolute Regelverstöße oder Anomalien enthält. Mehr als das will ich nicht! Ich will das Diktat überprüfen, nicht die Geschichte die das Diktat erzählt.
Dass gewisse Editoren das könne weiß ich. Ich brauch den richtigen. Ein JS-Anstupsen mit einfachem, kommentarlosen Versagen als Resultat ist so hilfreich wie der weltberühmnte Allgemeine Schutzfehler. Und immer Code speichern, rüberwuchten ist maximal unhandhabbar.

Ich erwarte in Zeiten von Smartphones die wie Siri auf mich hören und mitdenken, in Zeiten komplexer grafiküberflutender Egoshooter offenbar zu viel ein kleines Programm zu finden das das kann was die Graue Substanz zwischen meinen Ohren fertigbringt: ein Diktat zu korrigieren.

CN8
 
Brackets + JSLint + Chrome...

aber eigentlich wurden dir schon viele solche Konstrukte genannt.
 
Worauf Daaron hinaus wollte ist, dass ein Linter für JS ungleich lomplexer als einer für VB ist. Aber ich veratehe auch dein Problem nicht. Die genannten Vorschläge werden von dir ignoriert.

Wenn du einfach nur nen Programm genannt haben willst das grfisch auf Syntaxfehler aufmerksam machen kann, verrate ich dir mein Setup für JS:
SublimeText 3 Beta+Node.js+JSHint+SublimeLinter Plugin+SublimeLinter-jshint Plugin

Mit dem Setup hab och automatische Syntaxüberprüfung für JS innerhalb von SublimeText. Sublime ist auch nur nen paar MB groß, kostet allerdings 70$
Wie aber bereits weiter oben geschrieben hat, darf ein guter Editor auch mal was kosten, ist immerhin das Werkzeug mit dem ich täglich arbeite. Ein Handwerker wird auch den unterschied zwischen nem Festool Akkuschrauber und nem Aldi Billigding bemerken.
 
cumulonimbus8 schrieb:
Und was macht der dumme Depp von Mensch vorm Bildschirm? Er sieht das Getippte. Er beherrscht Syntaxregeln. Er kann also Tippfehler u.a.m. erkennen noch bevor
ie Konsole des Browsers gibt, abgesehen vom syntax highlighting des Editors, die nützlichsten Hinweise auf Syntaxfehler
…irgendwas im Browser (in dem es sich ja so wundervoll editiert) interpretiert wird.
Es gibt mehr als genug gute Syntax Highlighter, die die gröbsten Tipfehler herausfinden. Aber du weigerst dich ja, so mächtige Tools wie Eclipse zu verwenden. Du willst Funktionen wie in Eclipse mit dem Speicher-Footprint eines Notepad++... und das klappt einfach nicht. Auch WENN Tools wie Geany, Gedit oder Notepad++ durchaus gute Highlighter (inklusive Fehlererkennung) haben, können sie bei weitem nicht alles.

Und so manches, was mir selbst komplexere Highlighter als falsch anzeigen, ist am Ende richtig. Anderes, was sie als richtig erkennen, ist falsch. Am Ende bleibt GERADE bei JS eben nur "F5 und beten".

Ich erwarte in Zeiten von Smartphones die wie Siri auf mich hören und mitdenken
Kleiner Tip an dieser Stelle... Siri "wohnt" nicht im iPhone. Das iPhone hätte niemals genug Rechenleistung und Speicherkapazität. Das Zeug wird in riesigen Serverfarmen ausgewertet...

in Zeiten komplexer grafiküberflutender Egoshooter
...welche teilweise 3-4GB RAM belegen, zusammen mit 20-30GB Festplatte und einen großen i7 an seine Grenzen bringen.

ein Diktat zu korrigieren.
Um es in für dich verständlichen Bildern auszudrücken:
Stell dir Sprachen wie JS oder PHP als ein Diktat in einer Sprache vor, deren Wortschatz und Schreibweise sich innerhalb des Textes permanent in Abhängigkeit des Textes ändern können.
Nehmen wir mal die JS-Zeile $$('nav .level_1 > li');. Ist sie korrekt? Was sagst du, ohne genaue Kenntnisse aller ANDEREN vorher im DOM geladenen Dateien?
 
Zuletzt bearbeitet: (Syntax! Syntax!)
Daaron schrieb:
Nehmen wir mal die JS-Zeile $$('nav .level_1 > li);. Ist sie korrekt? Was sagst du, ohne genaue Kenntnisse aller ANDEREN vorher im DOM geladenen Dateien?

Die ist auf jedenfall inkorrekt weil das schließende Anführungszeichen fehlt :)

Aber prinzipiell hast du recht.
 
Das Problem bei JS ist m.M. nach, dass man meist nicht JS alleine hat, sondern oft JS dynamisch generiert bzw. von einer dynamischen HTML-Webseite eingebaut wird, die dir daher jedes Mal ein anderes DOM liefert, welches dir jedes Syntax-Highlighting durcheinanderwirbelt.

Was dann gültig ist, kann nur der Browser wissen (und die sind sich ja auch nicht immer einig).
 
Genau das wollt ich damit sagen, danke.
Mein obiger Code ist korrekt... wenn vorher auf dem einen oder anderen Weg die Mootools-Bibliothek geladen wurde, die die Funktion $$() bereit stellt. Hier kanns schon daran scheitern, dass der Entwickler zu den ganz Coolen gehören wollte und folgendes probiert hat...
HTML:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" async defer></script>
natürlich mit Mootools, nicht mit jQ...
 
Zurück
Oben