• Tanzia

JavaScript: Multitool-Programm oder ungeeignet für die Entwicklung umfangreicher Software?


Hallo zusammen!

Ich bin's, Tanzia! Ich bin zurück mit einem neuen Thema. Wenn ihr irgendwie mit Programmierung zu tun habt, ist euch das Wort JavaScript vielleicht ein Begriff. Als ich 2014 anfing, mich mit den Programmiersprachen vertraut zu machen, habe ich anfangs Java und JavaScript verwechselt; sind sie gleich oder verschieden? Worin besteht der Unterschied? Wenn Java gut für Backend ist, wird JavaScript dann nur für das Frontend verwendet? Es gab so viele Verwirrungen zwischen diesen ähnlichen Namen. Auch wenn du noch nie von JavaScript gehört hast, mach dir keine Sorgen. Ich habe einige Zeit investiert, um den Weg zu JavaScript einzugrenzen & wie in meinem vorherigen Artikel habe ich mit einem Entwickler gesprochen, der seine Zeit dafür einsetzt. Lass uns gemeinsam eine Runde durch dieses Thema drehen.



Bis Anfang der 2000er Jahre war JavaScript eine der am weitesten verbreiteten Programmiersprachen, obwohl viele Leute versuchten, sie zu vermeiden. Die Gründe für die Ablehnung von JavaScript waren vielfältig: Es war extrem langsam, wodurch die Komplexität dessen was man damit erstellen konnte, eingeschränkt wurde. Es gab Probleme mit der browserübergreifenden Kompatibilität des Geschriebenen und kein zuverlässiges Vektorgrafik- oder Canvas-System, so dass die Entwickler:innen grafisch nicht viel tun konnten. Die Schnittstelle DOM war schwer zu verstehen, um es freundlich auszudrücken. Zur gleichen Zeit versuchten eine Reihe anderer Sprachen sich in den Webbrowser einzufügen und scheiterten. Seit den frühen 2000er Jahren wird JavaScript zunehmend für die Frontend-Webentwicklung verwendet. Am Backend herrschten Sprachen wie PHP, Python, C++, Java, Ruby und Perl vor. Im Jahr 2009 dachte jemand, dass es eine gute Idee wäre, JavaScript ins Backend zu verlagern, und Node.Js war geboren.


Die Popularität von JavaScript in der Webentwicklung ist also vor allem ein Phänomen nach 2009. Wahnsinn, wie sich die Dinge verändert haben!

Lohnt es sich, Zeit zu investieren?


Aus der Sicht einiger Entwickler:innen ist JavaScript eine faul getippte Sprache, die kein sehr formales Typensystem hat und übermäßig fehlerverzeihend ist, was eine perfekte Umgebung für Anfänger:innen schafft. Das Beste an JavaScript ist, dass es sowohl im Frontend als auch im Backend verwendet werden kann. Es kann für mobile (React Native, Apache Cordova) und Desktop-Entwicklung (Electron) verwendet werden. JavaScript und C++ sind zwei Sprachen, die sich sehr ähnlich sind und mit denen man die gleichen Dinge machen kann, denn der Code sieht fast gleich aus. Selbst C++ ist in allen Bereichen mindestens zehnmal schneller als JavaScript. Es gibt keinen Streit darüber, wer schneller ist. Der einzige Unterschied besteht darin, dass C++ aufgrund seiner Multiparadigmen-Natur und seiner fortgeschritteneren Syntax nicht von allen geschätzt wird. Dein Browser interpretiert alle Dateien, die der Server schickt und JavaScript hilft dir größtenteils, mit der Website zu interagieren, ohne dass du unbedingt mit dem Server kommunizieren musst. Aus diesem Grund ist JavaScript eine clientseitige Skriptsprache.



Source: 2021 Developer Survey - Stack Overflow

Framework und Bibliothek sind zwei Teile von JavaScript. Wenn du versuchst, Frameworks im Kontext von JavaScript-Frameworks und JavaScript-Bibliotheken zu definieren, kannst du dir das so vorstellen: JavaScript-Bibliotheken sind wie Möbelstücke, die einem bereits gebauten Haus Stil und Funktion hinzufügen. Frameworks, auf der anderen Seite, sind eine Art von Vorlage, die du verwendest, um das Haus selbst zu bauen.


Trotz seiner enormen Vorteile gibt es eine Menge Nachteile, die die Vorherrschaft von JavaScript in der Frontend-Entwicklung verhindern. Es eignet sich nicht für groß angelegte Softwareentwicklung, bei der Wartbarkeit und Zuverlässigkeit entscheidend sind, oder für Hochleistungssoftware.


Letzte Woche hatte ich ein Treffen mit Mridul Roy, Full-Stack-Entwickler bei der dpa-IT services GmbH. Er hat ein Jahr in der Backend-Entwicklung verbracht, ist dann aber ins Frontend gewechselt und ist nun schon seit über fünf Jahren in diesem Bereich tätig. Wie in meinem vorherigen Artikel habe ich auch hier wieder einen Entwickler befragt, um seine Sichtweise auf die Full-Stack-Entwicklung zu erfahren. Lassen wir ihn sprechen!

Bitte nimm dir einen Moment Zeit, um dich vorzustellen.

Derzeit bin ich bei der dpa-IT Services GmbH (Deutsche Presse Agentur IT Services GmbH) angestellt, wo ich als Full-Stack-Entwickler in einem Scrum-Team Services & Lösungen für die Medien- & Kommunikationsbranche entwickle. Dabei vertiefe ich meine Kenntnisse in Vue.js inklusive vue-testing-library, TypeScript & TailwindCSS. Mit Vue.js bin ich für die Planung, Umsetzung und Weiterentwicklung von Anwendungen in wechselnden Projekten verantwortlich. Bei der Umsetzung eines Projektes orientiere ich mich nicht nur an den Anforderungen des Kunden oder Product Owners, sondern auch an meinen eigenen Erwartungen: ein Produkt, das ich selbst nutzen würde, von dessen Features ich überzeugt bin & das Spaß macht.


Was denkst du über die Wahl der Fullstack-Entwicklung? Mit welcher Programmiersprache arbeitest du am liebsten?

Eigentlich habe ich bei der dpa als Junior-Webentwickler angefangen, einige Web-Lösungen zu implementieren, einschließlich einiger Funktionen für E-Paper-Apps (iOS- und Android-Plattformen). Später brauchte mein Unternehmen mehr Unterstützung im Bereich Kundenservice und so kam ich als App & Service Manager dazu. Aber ich vermisste immer mein Leben als Programmierer und den Spaß daran. Also habe ich meinen Karriereweg zurück auf die Schiene des Coding-Lebens geändert und bin als Fullstack-Entwickler eingestiegen. Für Frontend-Entwicklung verwende ich am liebsten Vue.js und für Backend-Entwicklung bevorzuge ich Node.js.


Wenn ich dich bitte, einige der wichtigsten technischen Begriffe zu nennen, die man als Vue.js-Entwickler:in kennen sollte, welche wären das?

Vue.js ist ein progressives JavaScript-Framework. Es ist flexibel und bietet eine reibungslose Integration in JavaScript-Projekte. Es erlaubt den Entwicklern auch, Vorlagen in HTML und JavaScript zu schreiben und zu erstellen. Ein weiterer Grund, sich für Vue.js zu entscheiden, ist seine Einfachheit. Es hat auch Advanced CLI, die Gerüstbau von Projekten viel schneller bietet.


Was gefällt dir an Vue.js? Gibt es aus deiner Sicht irgendwelche Einschränkungen?

Was mir am meisten am Vue.js-Framework gefällt, ist dieKombination aus einigen der erstaunlichsten Funktionen der Frameworks React und Angular. Die Entwickler können mit einem Framework arbeiten, das auf einem einseitigen Datenfluss basiert und der komponentenbasierten Methode folgt, genau wie React.js. Außerdem können sie mit demselben Framework arbeiten, das Vorlagen mit einer einfacheren Syntax als Angular bietet. Allerdings hat es auch einige Einschränkungen. Es ist nicht skalierbar und daher nicht für große Projekte geeignet.


Wenn ich wissen möchte, ob du etwas an dem Framework, an dem du arbeitest, ändern willst, was wäre das?

Vue.js hat einen Mangel an weit verbreiteten und aktualisierten Plugins. Vue.js hat viel weniger Plugins im Vergleich zu Angular oder React. Dieser Aspekt ist wichtig zu beachten, da Entwickler sich nicht vollständig auf Vue.js verlassen können, da es an häufig verwendeten Plugins mangelt. Um Hilfe zu bekommen, müssen die Entwickler ständig auf andere Sprachen ausweichen.


Was sind die Dinge, auf die ein:e Entwickler:in achten sollte, wenn er oder sie als Full-Stack-Entwickler:in arbeitet?

Manchmal ist es schwierig, sich über die neuen Versionen des Frameworks oder der Bibliothek auf dem Laufenden zu halten. Daher wäre es gut, wenn der Entwickler sich an ein Ökosystem hält.


Was ist dein Zukunftsplan mit dieser Sprache? Möchtest du weiterhin mit dieser Sprache arbeiten oder hast du vor, zu einer anderen zu wechseln?

Derzeit arbeite ich mit der Version 3.0 des Vue.js-Frameworks, das die Composition-API-Funktionen einführt und mit dem ich sehr zufrieden bin. Ich würde gerne weiter daran arbeiten und mich zusätzlich auf ein anderes Framework "JEST" konzentrieren. Ich bin auch daran interessiert, in naher Zukunft mit dem 'NUXT' Framework zu arbeiten, das auf Vue.js basiert.


Ende des Interviews


Für die Frontend-Webentwicklung ist JavaScript so etwas wie ein Multitool mit Programmierfunktionen, mit dem sich eine Vielzahl von Problemen lösen lässt. Es ist so ziemlich die einzige Sprache, mit der man richtige Webseiten erstellen kann. Ich bin zwar kein JavaScript-Profi, aber dennoch würde ich die Sprache nicht für den Einsatz außerhalb des Webs empfehlen. TypeScript ist eine viel "anständigere" Alternative zu JavaScript. matched.io ist kürzlich von JavaScript auf TypeScript umgestiegen, da TypeScript auf jede Javascript-Version abzielen kann, die ein:e Entwickler:in möchte (ES2015, ES2016, ESNext, etc.), und es einfach ist, Tippfehler abzufangen. Außerdem ermöglicht TypeScript eine bessere und präzisere Autovervollständigung/Intellisense/Codevervollständigung. Also, wenn jemand interessiert ist, probiere es aus!


Nicht zuletzt möchte ich Herrn Roy dafür danken, dass er seine Sichtweise und seine Erfahrungen mit uns geteilt hat!



Wir sehen uns nächste Woche wieder, mit etwas Neuem.


Bis dahin, viel Spaß beim Programmieren!