Kann man mit Javascript überhaupt "richtig" programmieren lernen?

4 Antworten

Hi Akazami,

ersteinmal sind JavaScript und Python zwei unterschiedliche Technologien. JavaScript verwendet genauso Bibliotheken und Frameworks wie Python auch. Es gibt viele mehr Libraries und Frameworks für JavaScript als für Python.

Wenn man JavaScript serverseitig verwendet wie z.B. Node.js, stehen auch Package-Dienste wie npm zur verfügung.

Ja mit JavaScript kann man richtig programmieren lernen, man kann hochkomplexe Webanwendungen schreiben und auf Softwarearchitektur wie MVC-Modelle, Modulue und Objektorientierte Programmierung zurück greifen.

Wer es noch schneller und performanter haben möchte kann weitere JavaScript-Laufzeitumgebung wie Deno oder Bun. Es noch weitere Laufzeitumgebunden die noch schneller arbeiten.

Python und JavaScript sind beide nicht vergleichbar, da JavaScript das Multitool für unterschiedliche Sachen dient und man kann es sogar für ESP's und Arduinos verwenden.

Woher ich das weiß:Berufserfahrung – Ich bin gelernter Mediengestalter Digital und Print(IHK)
Akazami 
Fragesteller
 03.04.2024, 01:34

Meinst du nicht eher Python ist für arduino und ESPS?

0
Mirko Marek  03.04.2024, 22:06
@Akazami

Es geht nur darum das JavaScript auch dafür nützlich ist. Es wird sowieso in Maschinencode umgewandelt.

0

JavaScript ist die größte Programmiersprache und du hast recht sie verwendet keine Packages und sowas jedoch hat sie auch einige "Erweiterungen" für fortgeschrittene zum Beispiel, Frameworks wie Angular, React oder Vue JS es ist SQL kompatibel dann gibt es da noch Node.JS und vieles mehr.

Ich habe mir JavaScript programmieren gelernt und es ist bis heute meine lieblingssprache und wenn man JavaScript kann sind die anderen Programmiersprachen nicht so schwer, denn Packages in Python sind vergleichmäßig einfach im gegensatz zu JavaScript's React

Woher ich das weiß:Hobby

Ave!

Kann man eigentlich mit Javascript richtig programmieren lernen?

Besser als mit dem Müll namens Python.

Dabei vermittelt JavaScript wenigstens Logikkonzepte im Grundsatz und ermöglicht eine performante Programmierung, die selbst mit Java und C# mithalten kann.

JavaScript hat sich als Universalsprache für alles herausgestellt und schneidet erstaunlich gut in nahezu jedem Bereich ab. Seien es native Anwendungen, Machine Learning, APIs oder anderes.

In Python zum Beispiel benutzt man ja sehr viele externe Librarys und in c benutzt man ja auch meist die HAL Library der IDE in der man programmiert.

npm stellt weit mehr Packages zur Verfügung als Python oder C. Hier beträgt der Faktor 10-20.

In Javascript macht man das ja (soweit ich das zumindest sehe) eigentlich überhaupt nicht.

Ich denke du bist ein bisschen festgefahren auf JavaScript als Scriptsprache im Browser. Dieser Gedanke ist Rückständig und hängt vor 20 Jahren fest.

Aber bei Python mit den verschiedenen Packages finde ich ist man so häufig am suchen einer Kleinigkeit, bei der man sein Wissen doch wieder um eine kleine Stelle erweitert.

Welches Wissen erweitert sich denn? Diese Packages sind nichts weiter, als von anderen Nutzern geschriebener Code, der den Umgang mit der Ursprache vereinfacht. Das ändert weder etwas an der Sprache, noch an ihrer Logik.

Ich kann auch ein Package schreiben und eine Doc schreiben. Das Rad hab ich damit aber immer noch nicht neu erfunden.

Wenn man die Sprache kann, dann ist auch egal, welches Package man sich installiert. Da gibt es nichts mehr zu lernen, sondern nur anzuwenden. Die Grundkonzepte sind nämlich schon bekannt.

Oder sehe ich das falsch und dies geht mit Javascript genauso gut?

Es geht mit JavaScript weitaus besser, weil Node.js bereits viele Konzepte beinhaltet, von denen Python nativ nur träumen kann.

Python ist viel leichter zu lernen und simpel zu schreiben.

JavaScript ist als Scriptsprache im Browser eben so simpel zu lernen und zu schreiben. JavaScript aber unter Node.js als All-Purpose-Sprache zu lernen und zu meistern benötigt viel Arbeit.

Woher ich das weiß:Studium / Ausbildung – Anwendungsentwickler, Spezialisierung auf IT-Sicherheit
Akazami 
Fragesteller
 31.03.2024, 22:59

Was macht man denn noch mit Java außer die Scriptsprache im Browser?
Ich hatte eben mit python angefangen, weil man danach auch relativ leicht skripte zum Beispiel für Datenanalyse erstellen kann. (Bin aktuell noch am Anfang meine Programmier Karriere. Ich würde mal sagen die Basic Konzepte einer Sprache hab ich jetzt auch soweit verstanden, jetzt gehts eben um das üben. Da dachte ich, dass Python mir da weiterhilft)

Wenn man die Sprache kann, dann ist auch egal, welches Package man sich installiert. Da gibt es nichts mehr zu lernen, sondern nur anzuwenden. Die Grundkonzepte sind nämlich schon bekannt.

Das schon ja. Aber das anwenden, neu einlesen, verstehen von Doku, Code Beispiele schnell verstehen ist ja auch ein Skill der sich entwickeln muss. Und das finde ich in den meisten Fällen gar nicht so einfach. Da hänge ich oft über simplen Sachen.

Welches Wissen erweitert sich denn? Diese Packages sind nichts weiter, als von anderen Nutzern geschriebener Code, der den Umgang mit der Ursprache vereinfacht. Das ändert weder etwas an der Sprache, noch an ihrer Logik.

Und natürlich, wissen erweitert sich nicht so, dass ich sage jetzt kann ich besser programmieren. Aber eben das beschäftigen mit unbekannten Code finde ich auch sehr schwer als Anfänger.

Oder sehe ich das falsch?

Was sind denn kleine Projekte, die man mit Node.js erstellen kann?

0
regex9  31.03.2024, 23:34
@Akazami
Was macht man denn noch mit Java außer die Scriptsprache im Browser?

Java ist eine gänzlich andere Programmiersprache als JavaScript. Innerhalb eines Webbrowsers kannst du Java allenfalls unter Verwendung von WASM oder über ein Browserplugin ausführen. Innerhalb der Webentwicklung ist Java daher eher im Backend (Serverseite) vertreten.

JavaScript wird unter anderem auch schon verwendet, um mobile Apps oder Desktop-Apps zu entwickeln. Ein klassisches Beispiel ist VS Code. Der Editor wurde mit JavaScript/TypeScript geschrieben.

Ich hatte eben mit python angefangen, weil man danach auch relativ leicht skripte zum Beispiel für Datenanalyse erstellen kann

Dafür eignet sich JavaScript auch schon gut.

(...) Da dachte ich, dass Python mir da weiterhilft (...)

Wenn du bisher JavaScript gelernt hast und nun Praxiserfahrung sammeln wolltest, wäre es günstig, auch bei JavaScript zu bleiben. Wenn du z.B. Spanisch (Theorie) lernst und es nun festigen möchtest, beginnst du ja auch nicht plötzlich mit Italienisch.

Was sind denn kleine Projekte, die man mit Node.js erstellen kann?

Du könntest dir einen Crawler bauen, der Daten sammelt, analysiert/auswertet und dann eine geeignete Präsentation findet. Eine weitere Idee wäre ein Chat, welcher über WebSockets kommuniziert.

1
MagisterSamael  31.03.2024, 23:35
@Akazami
Was macht man denn noch mit Java außer die Scriptsprache im Browser?

Zuerst: JavaScript, nicht Java. Das sind zwei völlig unterschiedliche Sprachen.

Theoretisch kann man alles machen. Aktuell zeigt sich tatsächlich eine klare Linie hin zu Desktop-Anwendungen, die völlig in JavaScript geschrieben sind:

  • Visual Studio Code
  • Discord
  • Microsoft Office (einige Apps)
  • GitHub Desktop

Nur eine kleine Auswahl an Programmen, die komplett über JavaScript realisiert wurden: https://www.electronjs.org/de/

Und natürlich, wissen erweitert sich nicht so, dass ich sage jetzt kann ich besser programmieren. Aber eben das beschäftigen mit unbekannten Code finde ich auch sehr schwer als Anfänger.
Oder sehe ich das falsch?

Ich sehe das naive Nutzen von hunderten Packages gerade als Anfänger kritisch. Erstmal die Sprache vollends lernen und dann auf Packages zurück greifen. Die Packages sollen Dinge vereinfachen - ja. Aber wenn du die Dinge nicht selbst kannst, dann bringen dir die Packages auch nicht.

Ein typisches Beispiel für das Overusing von Packages sieht man beispielsweise am is-odd Package für JavaScript, das nichts anderes hinzufügt als eine Funktion, die true zurück gibt wenn ein Integer ungerade ist.

Das ist ein Einzeiler - Wenn man weiß wie:

x%2!==0

Bei 300.000 wöchentlichen Downloads ist das einfach eine Lachnummer.

Deshalb: Bevor du Packages nutzt, versuch die Dinge selbst herzustellen. Wenn du das kannst oder zumindest das Konzept verstehst, dann kannst du auch Packages nutzen.

Was sind denn kleine Projekte, die man mit Node.js erstellen kann?

Grundsätzlich alles, was man sich vorstellen kann und will.

1
MagisterSamael  31.03.2024, 23:38
@regex9
Eine weitere Idee wäre ein Chat, welcher über WebSockets kommuniziert.

Würde das schon eher in die fortgeschrittene Kategorie verschieben und mit React oder Vue verbinden.

0
Akazami 
Fragesteller
 31.03.2024, 23:53
@MagisterSamael

Alles klar. Danke euch beiden! Und das mit Javascript und Java war ein Schreibfehler, da weiß ich schon, dass das zwei verschiedene paar Schuhe sind ^^Nur noch eine Frage zum Schluss: Ist es dann mit Javascript auch zum Beispiel möglich Datenanalyse zu betreiben? Dass du das is-odd Package schwach findest, das verstehe ich. Aber ich habe zum Beispiel von solchen wie dem BeautifulSoap oder dem Pandas Package.
Diese sind als Anfänger sehr sehr schwer.

0
MagisterSamael  01.04.2024, 17:24
@Akazami
Ist es dann mit Javascript auch zum Beispiel möglich Datenanalyse zu betreiben?

Ja, tatsächlich ist Web-scraping auch angenehmer und einfacher, weil JavaScript bereits nativ mit der DOM umgehen kann. Zudem ist JS ein Meister im Umgang mit XML und JSON. Somit ist die Datenanalyse und -verarbeitung schnell und einfach zu realisieren.

0
malte314  01.04.2024, 14:06
Besser als mit dem Müll namens Python.

Äußerst spaßhaft, Python im Gegensazu zu Javascript als »Müll« zu bezeichnen ...

0
MagisterSamael  02.04.2024, 06:28
@malte314

Ja, die, die Python über JavaScript stellen wollen, sind exakt die, die JavaScripts Eigenarten anbringen, wie etwa das verketten von Zahlen und Strings, oder dass bspw. ein leeres Array ungleich ein leeres Array ist.

Also die, die absolut keine Ahnung von Computertechnik haben.

Hätten sie das nämlich, dann wüssten sie, dass diese Eigenarten nichts negatives ist, sondern völlig nachvollziehbar und sogar nützlich.

Python ist so versimpelt und verblödet, dass das vielleicht was für Leute sein mag, die schnell was kleines realisieren wollen ohne sich mit der Theorie beschäftigen zu müssen.

0
malte314  02.04.2024, 22:38
@MagisterSamael

Da haben Sie ja interessante Ansichten. Ich für meinen Teile Stelle keines über das andere und finde von daher auch den Vergleich zu dramatischen Gunsten JavaScriptes ihrerseits äußerst befremdlich. Mit Computertechnik hat es allerdings durchaus wenig zu tun, wenn `[40, 100, 1, 5, 25, 10].sort()` eigenständig die Zahlen in UTF-16 umwandelt und das Ergebnis `[1, 10, 100, 25, 40, 5]` ist.

Die starke Aussage, Verfechter von Python hätten allesamt »absolut keine Ahnung von Computertechnik« finde ich nicht gut. Zumal viele Bioinformatiker, die meiner Erfahrung nach großes Informatikwissen haben, Python lieben.

Hätten sie das nämlich, dann wüssten sie, dass diese Eigenarten nichts negatives ist, sondern völlig nachvollziehbar und sogar nützlich.

Den Eindruck habe ich bei den »Eigenarten« von JavaScript durchaus nicht. Endlich ist zwar alles nachvollziehbar, jedoch nicht vermittels der »Computertechnik«.

Python ist so versimpelt und verblödet, dass das vielleicht was für Leute sein mag, die schnell was kleines realisieren wollen ohne sich mit der Theorie beschäftigen zu müssen.

Das sind leere Phrasen der Informatiker-Hybris.

0
MagisterSamael  03.04.2024, 00:54
@malte314
Mit Computertechnik hat es allerdings durchaus wenig zu tun, wenn `[40, 100, 1, 5, 25, 10].sort()` eigenständig die Zahlen in UTF-16 umwandelt und das Ergebnis `[1, 10, 100, 25, 40, 5]` ist.

Da sieht man, dass du absolut keine Ahnung von der Materie hast:

Der Faktor dahinter liegt dabei, dass JavaScript keine typisierte Sprache ist. Um die Performance dennoch auf einem mit C# adäquaten Level zu halten, hat sich etabliert, dass grundsätzlich bei Array-Vergleichen pauschal mit Strings gearbeitet wird, da eine Umwandlung eines Integers in einen String weitaus schneller ist, als der umgekehrte Fall.

In Einzelvergleichen werden im Gegensatz zum Array vorher die Typen bestimmt und sobald die Typen sich unterscheiden, wird auch hier in String umgewandelt.

Daher auch: 1+"1" = "11"

Diese Form der Umwandlung ist wie bereits angesprochen viel schneller als eine Abwägung in jedem Einzelfall.

Wenn man dies also weiß und auch die Hintergründe versteht, ist es absolut kein Problem JavaScript korrekt anzuwenden. Die, die über solche Dinge meckern, verstehen einfach den Hintergrund nicht - wie man sieht.

Wenn ich selbst ein Programm schreibe und ein Array sortiert haben will - und weiß, dass es nur aus Integern besteht - ist es ein leichtes, indem ich die Sortierfunktion manuell überschreibe:

array.sort((a,b)=>a-b);

oder für dein Beispiel äquivalent:

[40, 100, 1, 5, 25, 10].sort((a,b)=>a-b);

Es liegt also nicht an JavaScript, sondern am Dödel, der davor sitzt.

Den Eindruck habe ich bei den »Eigenarten« von JavaScript durchaus nicht. Endlich ist zwar alles nachvollziehbar, jedoch nicht vermittels der »Computertechnik«.

Dann nenn mir ein neues Beispiel, nachdem du durch dieses durchgerattert bist.

0
malte314  03.04.2024, 16:48
@MagisterSamael

Lieber Herr Magister, ich sehe ein, dass Sie in diesem Punkt gewonnen haben. An was ich nicht gedacht hatte, war, dass es in JavaScript die Unsinnigkeit heterogener Arrays gibt. Vor diesem Hintergrund ist das standardmäßige Sortierverfahren freilich eine gut durchdachte Eigenheit.

Nun will ich aber noch Folgendes sagen und es ist ein gut gemeinter Rat darin: Lassen Sie doch solche Einleitungen wie »Da sieht man, dass du absolut keine Ahnung von der Materie hast« weg. Das macht es dem Gegenüber bloß schwieriger, Ihnen in der Sache recht zu geben. Außerdem ist es maßlos unhöflich und ich wehre mich gegen solche Beleidigungen ausdrücklich.

Also zu Ihrer abschließenden Aufforderung. Es ist mir durchaus nicht klar, was Sie ursprünglich mit »Computertechnik« meinten. Ich assoziiere den Begriff mit der »technischen Informatik« also den physikalischen, mechanischen und elektrotechnischen Grundlagen der Rechner. In diesem Sinne ist ein direkter Vergleich der beiden Sprachen meiner Meinung nicht sinnig. Überhaupt: Ich bin kein Verfechter von Python. Ich hatte mich ursprünglich nur an ihrer polemischen Abwertung der Sprache gestört. Dass Sie ein eifriger Polemiker und damit kein von mir geliebter Gesprächspartner sind, zeigten Sie allerdings auch in der Einleitung dieses Kommentars.

1
cleanercode  01.04.2024, 16:59

Und wenn der Fragesteller eine Desktop-Anwendung erstellen möchte? JS wäre da nicht so gut geeignet - also meine Vermutung.

0
MagisterSamael  01.04.2024, 17:04
@cleanercode

JavaScript ist dafür hervorragend geeignet und viele bekannte große Anwendungen sind auch in JavaScript geschrieben, weil sich gezeigt hat, dass JavaScript schneller und vor allem Leichtgewichtiger als etwa C# ist:

https://www.electronjs.org/

Der bekannteste Code-Editor Visual Studio Code ist vollkommen mit JavaScript über Electron eben wegen diesen Argumenten realisiert: Er ist Schnell, Leichtgewichtig und Simpel.

0

Hey,

in Javascript gibt es ähnlich viele Bibliotheken, viele davon findest du auf GitHub und auf npm, fall du node.js serverseitig einsetzt. Gerade auf node läuft es sehr ähnlich zu python, was Pakete angeht. Im Browser importierst du die als Skripttag, also etwas anders. Tatsächlich ist ein sehr bekanntes, wenn auch altes Beispiel jQueyry, was auf sehr sehr vielen Webseites eingesetzt wird. Du kannst dir hier ein Beispiel ansehen, wie jQuery verwendet wird, dies lässt sich auf viele andere Bibliotheken übertragen: https://jquery.com/download/#using-jquery-with-a-cdn.

Grüße

Woher ich das weiß:Hobby – seit 2020 Erfahrung mit PHP, Laravel, Vue sowie Javsscript
Bizarrus  01.04.2024, 14:36

Du hast noch vergessen Desktop-Environments zu erwähnen, wie Beispielsweise electron. Das läuft aber auch eher mit/wie Node ab.

1