Ergebnis 1 bis 6 von 6

Dilemma der vielen Sprachen

  1. #1 Zitieren
    Ratler, nicht Mod!  Avatar von Dennik
    Registriert seit
    May 2010
    Ort
    Da wo der Pfeffer wächst
    Beiträge
    3.074
    Guten Abend liebe Community,

    ich studiere Wirtschaftsinformatik im dritten Semester, habe mittlerweile Java und C/C++ in der Uni gelernt / programmiert und nebenbei viel C# rumprobiert. Auch in Python und Javascript habe ich mich eingearbeitet, aber eher nur theoretisch um einen Überblick über die Möglichkeiten der Anwendung zu bekommen, könnte aber bei den beiden Scriptsprachen ohne Tutorials nichts reißen, weil mir die ganzen Bibliotheken nicht geläufig sind.

    So das kurz zu mir, jetzt zu meinem Dilemma. Abseits von meinen obligatorischen Fächern habe ich großes Interesse am Coden und Rumspielen. Zusammen mit ein paar Freunden haben wir viele verrückte Ideen und würden am Liebsten alles gleichzeitig ausprobieren und programmieren. Vor allem Server/Client, sowie Webapplikationen und Moblie Apps interessieren mich sehr stark. Andererseits faszinieren mich Fächer in meinem Studium wie Systemprogrammierung. Vor allem JavaScript mit seinen ganzen möglichen Erweiterungen und OpenSource APIs finde ich total überladen und unübersichtlich. Ich würde jetzt von mir behaupten, dass ich einen groben Überblick über die prominentesten Hochsprachen habe, würde jetzt aber gerne mit einer beginnen und diese wirklich meistern. Also neben der Uni viele Projekte starten, die über einfache Chat-Server hinausgehen. Glücklicherweise ist mein bester Kumpel ein Ass was Frontend angeht, so dass ich mich nicht mehr als über die grobe GUI Planung Sorgen machen muss und mich voll aufs Backend konzentrieren kann.

    Meine Frage lautet demnach: Wenn ich vor habe, das komplette Spektrum der Serverseite, sowie die Algorithmus der Clientenseite zu programmieren, gerne alles verstehe, was ich da für Funktionen und Bibliotheken anbiete, sowie plattformunabhängig arbeiten möchte und auch Lust habe vielleicht mal etwas hardwarenaher zu arbeiten (Rawsberry etc.), welche Sprache würde sich da lohnen? Wo gibt es den besten Mix zwischen Benutzer Freundlichkeit und übersichtlicher Bibliotheken, sowie die Möglichkeit Datenbanken, Server, Clients, Webapps, verschiendenste OpenSource Dienste in Anspruch zu nehmen, und dabei gerne auch sehr elementar arbeiten kann? Des Weiteren muss ich noch sagen, dass ich auch gerne eine Kombination aus den Sprachen nutzen würde, wenn sowas möglich ist. Zb. Server in C++ und Client in Scriptsprache, aber wie gesagt, ich weiß nicht ob so etwas nicht auch Nachteile mit sich bringt.

    Lange Rede, kurzer Sinn, ich möchte alles machen und weiß nicht welche Sprache sich wohl dazu am Besten eignet. Es geht mir wie gesagt nicht um den Einstieg. Den hatte ich bereits in Java, und auch nicht darum das Programmieren zu lernen, dafür hatte ich C, mir geht es darum alle Facetten der Sprache auszunutzen und mit neusten Technologien zu arbeiten. Ich bin sowohl Linux, als auch Windows Affin, würde mich sogar fast als Windows Fanboy bezeichnen .

    Ich habe natürlich ganz bewusst konkurrierende Ziele formuliert und natürlich kommt es auf die Gewichtung der einzelnen Faktoren an, was ich mir jedoch wünsche wären Anregungen und Hinweise von versierten Leuten, die wesentlich besser bescheid wissen als ich selbst. Könnte natürlich auch weiter nach Try and Error Prinzip die Sprachen lernen und ausprobieren, aber ist natürlich umständlicher, als sich erst einmal komplett für die nächsten paar Monate / Jahre, an ein Dogma zu gewöhnen.
    Dennik ist offline Geändert von Dennik (22.02.2016 um 20:42 Uhr)

  2. #2 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Mir ist beim lesen der ersten 3 Absätze schon der Gedanke gekommen: "Typischer Windows Nutzer"
    Schmeiß dein Windows mal für ein halbes Jahr aus dem Fenster und benutz mal ausschließlich ein Linux oder was anderes Unixoides mit möglichst minimalistischem Desktop-Environment, damit du möglichst viel im Terminal machen musst.
    Warum? Weil ich Sadist bin
    Nein, Spaß. Du sollst dabei etwas lernen. Nicht den Umgang mit Linux (wobei das als praktischer Nebeneffekt dabei vermutlich raus kommt), sondern was ein Werkzeug ist und was ein gutes Werkzeug aus macht.

    Wenn du den Gas und Wasser Installateur zu dir rufst, weil da so komisch Wasser aus der Wand tropft. Kommt der dann mit einem großen Hightech "Wasserschaden-Reparatur-Werkzeug" an? Oder hat der nen ganzen Koffer voller kleiner simpler Werkzeuge wie Hammer, Meißel, Schraubendreher, Schraubenschlüssel, Zange, ... dabei?

    The right tool for the right job. => The right programming language for the right purpose.

    Deine Programmiersprachen sind nur Werkzeuge. Es gibt nicht "Das eine beste Werkzeug"! Wenn dein einziges Werkzeug ein Hammer ist, wird jedes Problem zum Nagel. (Gott, ist heute dumme Sprüche Tag?)
    Was du raus finden musst, sind die Vor und Nachteile einzelner Programmiersprachen und ihre Eigenarten, um dann gegebenenfalls entscheiden zu können, welche Sprache für welchen Einsatzzweck die richtige ist. Und da gibts dann sogar oft noch ne Auswahl zwischen mehreren.
    Du wirst feststellen, dass es da auch eine Menge Gemeinsamkeiten gibt.

    Außerdem, glaub bloß nicht, dass du immer die freie Wahl haben wirst. Wenn du später in eine Firma kommst, und dort wird an dem Projekt ausschließlich in C# gearbeitet, kannst du auch nicht sagen: "Ich hab mich aber auf Fortran spezialisiert.". Man wird von dir verlangen, dass du dich binnen weniger Wochen in jede Sprache einarbeiten kannst. Und wenn es einmal *klick* gemacht hat, ist das auch gar nicht so schwer.
    Jede Bibliothek auswendig zu kennen, wird wiederum so gut wie niemand von dir verlangen. Und wenn doch, hat er meistens keine Ahnung vom Programmieren.
    Nebenbei ist die Informatik eine sehr schnelllebige Branche. Da weiß doch heute noch keiner, was es in 5 Jahren an neuen coolen Programmiersprachen gibt. Willst du da jedes mal bis aufs Blut alles zu lernen?


    Lange Rede kurz:
    Du fragst nach der Eierlegenden Wollmilchsau, der einen Programmiersprache die alles abdeckt, um dich dann da perfekt drin ein zu arbeiten.
    Antwort: Diese Sprache gibt es nicht, und es macht keinen Sinn sich so dermaßen auf eine Sprache zu versteifen.

    Achja, Programmiersprachen kombinieren, geht. Der Webserver dieses Forums ist in C geschrieben, die Forensoftware in php, mein Browser in C++ und die Seite verwendet JavaScript zur Darstellung diverser Elemente. Ist dir das Zusammenspiel genug?
    Lookbehind ist offline

  3. #3 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.101
    Lookbehind hat schonmal recht, ergänzend dazu:

    Zitat Zitat von Dennik Beitrag anzeigen
    ...mir geht es darum alle Facetten der Sprache auszunutzen und mit neusten Technologien zu arbeiten.
    Spoiler:(zum lesen bitte Text markieren)
    Du könntest mir beim Gothic-Mod-Manager helfen, eine Few-Pages-Webanwendung, die so cutting-edge-scharfe Technologien verwendet, dass du dich schneiden wirst : D
    (Gott, ist heute dumme Sprüche Tag? - jop schaut so aus)
    Server-Seite in Java 8 + Spring 4, Front-End in HTML5+ES6 (node.js convertet das zu browser-JS), SASS anstelle von CSS, Websockets ist auch dabei und WebGL (3D hardwarebeschleunigt im Browser) ebenso wie python > 3. Und falls du Bock auf ORM order NoSQL hast, könnte ich auch noch gebrauchen, bzw. irgendwas datenbankartiges...


    Im Ernst, du suchst dir normalerweise ERST das "Soll" aus: Was soll das Ergebnis des Projektes sein?
    Und DANN das wie, also Sprache, Tools, Libs, Frameworks...

    Bei den Sprachen die du aufgezählt hast fehlt definitiv noch sowas wie Haskell für ein abgerundetes Portfolio, und C nach Assembler übersetzen ist auch ganz gut zumindest theoretisch mal gemacht zu haben. Und du solltest imo in mindestens einer Sprache sehr gut werden, wenn du bei tiefergehenden Themen wie Sprachdesign & Compilern mitreden willst.
    Achja:
    Gewisse Dinge fallen einem erst auf wenn man komplexere Designs entwirft bzw. in großen Projekten mitarbeitet. Generell sind große Projekte etwas, was man im Studium meistens nicht hat und die dir völlig neue Erfahrungen mit Programmierpraxis und Build-Systemen (Build-Server etc.) und Systemkomplexität liefern werden.

    Das alles ist aber größtenteils unabhängig von einzelnen Programmiersprachen. Java (meine Hauptsprache) ist sehr gut, wenn du von einem sehr großem und profesionellem Toolumfeld und Ökosystem im Serverbereich profitieren willst, andere Sprachen haben woanders mehr Potential...
    Kellendil ist offline Geändert von Kellendil (22.02.2016 um 22:25 Uhr)

  4. #4 Zitieren
    Ratler, nicht Mod!  Avatar von Dennik
    Registriert seit
    May 2010
    Ort
    Da wo der Pfeffer wächst
    Beiträge
    3.074
    Zitat Zitat von Lookbehind Beitrag anzeigen
    Mir ist beim lesen der ersten 3 Absätze schon der Gedanke gekommen: "Typischer Windows Nutzer"
    Schmeiß dein Windows mal für ein halbes Jahr aus dem Fenster und benutz mal ausschließlich ein Linux oder was anderes Unixoides mit möglichst minimalistischem Desktop-Environment, damit du möglichst viel im Terminal machen musst.
    Warum? Weil ich Sadist bin
    Nein, Spaß. Du sollst dabei etwas lernen. Nicht den Umgang mit Linux (wobei das als praktischer Nebeneffekt dabei vermutlich raus kommt), sondern was ein Werkzeug ist und was ein gutes Werkzeug aus macht.

    Wenn du den Gas und Wasser Installateur zu dir rufst, weil da so komisch Wasser aus der Wand tropft. Kommt der dann mit einem großen Hightech "Wasserschaden-Reparatur-Werkzeug" an? Oder hat der nen ganzen Koffer voller kleiner simpler Werkzeuge wie Hammer, Meißel, Schraubendreher, Schraubenschlüssel, Zange, ... dabei?

    The right tool for the right job. => The right programming language for the right purpose.

    Deine Programmiersprachen sind nur Werkzeuge. Es gibt nicht "Das eine beste Werkzeug"! Wenn dein einziges Werkzeug ein Hammer ist, wird jedes Problem zum Nagel. (Gott, ist heute dumme Sprüche Tag?)
    Was du raus finden musst, sind die Vor und Nachteile einzelner Programmiersprachen und ihre Eigenarten, um dann gegebenenfalls entscheiden zu können, welche Sprache für welchen Einsatzzweck die richtige ist. Und da gibts dann sogar oft noch ne Auswahl zwischen mehreren.
    Du wirst feststellen, dass es da auch eine Menge Gemeinsamkeiten gibt.

    Außerdem, glaub bloß nicht, dass du immer die freie Wahl haben wirst. Wenn du später in eine Firma kommst, und dort wird an dem Projekt ausschließlich in C# gearbeitet, kannst du auch nicht sagen: "Ich hab mich aber auf Fortran spezialisiert.". Man wird von dir verlangen, dass du dich binnen weniger Wochen in jede Sprache einarbeiten kannst. Und wenn es einmal *klick* gemacht hat, ist das auch gar nicht so schwer.
    Jede Bibliothek auswendig zu kennen, wird wiederum so gut wie niemand von dir verlangen. Und wenn doch, hat er meistens keine Ahnung vom Programmieren.
    Nebenbei ist die Informatik eine sehr schnelllebige Branche. Da weiß doch heute noch keiner, was es in 5 Jahren an neuen coolen Programmiersprachen gibt. Willst du da jedes mal bis aufs Blut alles zu lernen?


    Lange Rede kurz:
    Du fragst nach der Eierlegenden Wollmilchsau, der einen Programmiersprache die alles abdeckt, um dich dann da perfekt drin ein zu arbeiten.
    Antwort: Diese Sprache gibt es nicht, und es macht keinen Sinn sich so dermaßen auf eine Sprache zu versteifen.

    Achja, Programmiersprachen kombinieren, geht. Der Webserver dieses Forums ist in C geschrieben, die Forensoftware in php, mein Browser in C++ und die Seite verwendet JavaScript zur Darstellung diverser Elemente. Ist dir das Zusammenspiel genug?
    Wow, das ist ja wirklich eine schöne (und durch die blöden Sprüche auch sehr bildliche) Antwort ! Vielen Dank dafür!


    Zitat Zitat von Kellendil Beitrag anzeigen
    Lookbehind hat schonmal recht, ergänzend dazu:



    Spoiler:(zum lesen bitte Text markieren)
    Du könntest mir beim Gothic-Mod-Manager helfen, eine Few-Pages-Webanwendung, die so cutting-edge-scharfe Technologien verwendet, dass du dich schneiden wirst : D
    (Gott, ist heute dumme Sprüche Tag? - jop schaut so aus)
    Server-Seite in Java 8 + Spring 4, Front-End in HTML5+ES6 (node.js convertet das zu browser-JS), SASS anstelle von CSS, Websockets ist auch dabei und WebGL (3D hardwarebeschleunigt im Browser) ebenso wie python > 3. Und falls du Bock auf ORM order NoSQL hast, könnte ich auch noch gebrauchen, bzw. irgendwas datenbankartiges...


    Im Ernst, du suchst dir normalerweise ERST das "Soll" aus: Was soll das Ergebnis des Projektes sein?
    Und DANN das wie, also Sprache, Tools, Libs, Frameworks...

    Bei den Sprachen die du aufgezählt hast fehlt definitiv noch sowas wie Haskell für ein abgerundetes Portfolio, und C nach Assembler übersetzen ist auch ganz gut zumindest theoretisch mal gemacht zu haben. Und du solltest imo in mindestens einer Sprache sehr gut werden, wenn du bei tiefergehenden Themen wie Sprachdesign & Compilern mitreden willst.
    Achja:
    Gewisse Dinge fallen einem erst auf wenn man komplexere Designs entwirft bzw. in großen Projekten mitarbeitet. Generell sind große Projekte etwas, was man im Studium meistens nicht hat und die dir völlig neue Erfahrungen mit Programmierpraxis und Build-Systemen (Build-Server etc.) und Systemkomplexität liefern werden.

    Das alles ist aber größtenteils unabhängig von einzelnen Programmiersprachen. Java (meine Hauptsprache) ist sehr gut, wenn du von einem sehr großem und profesionellem Toolumfeld und Ökosystem im Serverbereich profitieren willst, andere Sprachen haben woanders mehr Potential...
    Das mit den größeren Projekten scheint wirklich eine gute Idee zu sein. Ist ja auch der Grund, warum ich mich jetzt nach einer Startsprache umschaue, einfach um dann damit ein erstes großes Projekt zu starten . Vielen Dank dir für dein Angebot und die Antwort, werde dir gleich mal ne PN schreiben .

    Okay dann beschreibe ich das SOLL mal ein bisschen besser. Ich möchte mit zwei Kollegen eine App entwickeln, einfach um dabei so viel wie möglich zu lernen. Haben uns jetzt ne kleine TODO/Kalender App als Ziel gesetzt, einfach weil da alles dabei ist: Datenbankserver, der auf dem neusten Stand sein muss, Offline Arbeit mit Synchronisation, Mobile App, etc.. Email-Clients, Crawler-Server, Chat-Programme habe ich schon mal programmiert mit Erfolg (in C) und kleinere Spielereien mit Threads in Java. Hab auch schon Erfahrung mit dem Aufbau (nicht Umsetzung) von ER -> SQL-Datenbanken. Ich weiß, dass es krank viele Wege zum Ziel gibt und vermutlich unterstützen bestimmte Sprachen dabei alle einzelnen Aufgaben, sodass man zum Beispiel nur JavaScript bräuchte. In diese Richtung ging meine Frage . Hab in meinem Werkstudentenjob viel mit Visual Studio zu tun und für mich wäre es jetzt erst einmal ganz natürlich zu sagen, dass ich die App in C# und mit Hilfe von Xamarin programmiere, den Webservice und den Server in C++ und bei der Datenbank dann sterbe . Wie schon erwähnt blicke ich bei JavaScript nicht ganz durch. Habe aber schon gelesen, dass Serverseitig Java wirklich viel auf dem Kasten hat und es auch wundervolle Bibliotheken gibt um Datenbanken zu kreieren und Anfragen zu stellen. Das wäre natürlich ein immenser Vorteil. Da stellt sich dann aber die Frage: wie muss der passende Client dazu aussehen?

    Also mich würde mal interessieren (vor allem von den Windows Skeptikern) mit welchen Sprachen / Editoren / Bibliotheken und Frameworks ihr die Sache angehen würdet.
    Dennik ist offline

  5. #5 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.429
    Zitat Zitat von Dennik Beitrag anzeigen
    Das mit den größeren Projekten scheint wirklich eine gute Idee zu sein. Ist ja auch der Grund, warum ich mich jetzt nach einer Startsprache umschaue, einfach um dann damit ein erstes großes Projekt zu starten .
    Es gibt nicht die optimale "Startsprache", um damit tiefer ins Programmieren einzusteigen und damit ein großes Projekt umzusetzen. Natürlich könntest du fünf Leute fragen, welche Sprache man nehmen soll, und vermutlich wirst du fünf verschiedene Antworten bekommen - abhängig von den Vorlieben oder Arbeitsfeldern der Befragten. Das ist also nicht zielführend. Man muss einfach anfangen und sich an eine größere Sache wagen. Ob dieses große Projekt dann am Ende ein Erfolg wird und genau das herauskommt, was man sich zu Projektbeginn vorgestellt hat, ist dabei zweitrangig. Wichtiger ist, dass man dabei Erfahrung sammelt und dabei auch gezwungenermaßen stärker mit der Sprache und ihren Features (und ihren Unzulänglichkeiten) vertraut wird. Aus der Erfahrung kann man dann auch besser für zukünftige Projekte entscheiden, ob diese Sprache für dieses oder jenes Projekt sinnvoll ist.

    Außerdem wirst du, wenn du im Bereich Softwareentwicklung länger unterwegs bist, diesen Prozess mit mehreren Sprachen durchmachen. Das ist auch insofern sinnvoll, als dass man erst im Vergleich verschiedener Sprachen wirklich merkt, wo die Schwächen und Stärken einer Sprache liegen. Es bringt also nichts, sich von vornherein auf eine Sprache einschießen zu wollen. Vermutlich wirst du die Sprachen ohnehin von Projekt zu Projekt wechseln.

    Zitat Zitat von Dennik Beitrag anzeigen
    Okay dann beschreibe ich das SOLL mal ein bisschen besser. Ich möchte mit zwei Kollegen eine App entwickeln, einfach um dabei so viel wie möglich zu lernen. Haben uns jetzt ne kleine TODO/Kalender App als Ziel gesetzt, einfach weil da alles dabei ist: Datenbankserver, der auf dem neusten Stand sein muss, Offline Arbeit mit Synchronisation, Mobile App, etc.. Email-Clients, Crawler-Server, Chat-Programme habe ich schon mal programmiert mit Erfolg (in C) und kleinere Spielereien mit Threads in Java. Hab auch schon Erfahrung mit dem Aufbau (nicht Umsetzung) von ER -> SQL-Datenbanken. Ich weiß, dass es krank viele Wege zum Ziel gibt und vermutlich unterstützen bestimmte Sprachen dabei alle einzelnen Aufgaben, sodass man zum Beispiel nur JavaScript bräuchte. In diese Richtung ging meine Frage . Hab in meinem Werkstudentenjob viel mit Visual Studio zu tun und für mich wäre es jetzt erst einmal ganz natürlich zu sagen, dass ich die App in C# und mit Hilfe von Xamarin programmiere, den Webservice und den Server in C++ und bei der Datenbank dann sterbe . Wie schon erwähnt blicke ich bei JavaScript nicht ganz durch. Habe aber schon gelesen, dass Serverseitig Java wirklich viel auf dem Kasten hat und es auch wundervolle Bibliotheken gibt um Datenbanken zu kreieren und Anfragen zu stellen. Das wäre natürlich ein immenser Vorteil. Da stellt sich dann aber die Frage: wie muss der passende Client dazu aussehen?

    Also mich würde mal interessieren (vor allem von den Windows Skeptikern) mit welchen Sprachen / Editoren / Bibliotheken und Frameworks ihr die Sache angehen würdet.
    • SQL-Datenbank: MySQL. Das ist quelloffene Software, man kann sie plattformübergreifend betreiben (DB-Server kann sowohl unter Windows als auch unter Linux, MacOS und noch ein paar anderen Systemen laufen). Außerdem ist MySQL so weit verbreitet, dass es für sehr viele Programmiersprachen auch entsprechende Anbindungsmöglichkeiten gibt, sodass ein Zugriff auf die Datenbank mit Hilfe von Code in der jeweiligen Programmiersprache möglich ist.
    • App: Keine Ahnung, aber wenn du in C# bewandert bist und es Möglichkeiten gibt, in C# geschriebene Programme auf allen relevanten Plattformen zum Laufen zu bringen, dann probiere das doch.
    • Webservice und Server: Natürlich kann man Webseiten in C++ erstellen, aber warum sollte man das wollen? (Sogar Bjarne Stroustrup rät davon ab. ) Einen Webserver willst du normalerweise nicht von Grund auf neu programmieren, wenn's da schon brauchbare Sachen gibt, denn dazu müsstest du z. B. das komplette HTTP-Protokoll implementieren (oder zumindest die für deinen Anwendungsfall relevanten Teile davon), und das kann dauern. So etwas wie Apache, lighttpd oder nginx kann man da sicher nutzen, die bringen das schon mit. In welcher Sprache man dann die auf dem Server laufende Anwendung schreibt, kommt darauf an, was man machen will.
    Thoronador ist offline

  6. #6 Zitieren
    Ritter
    Registriert seit
    Feb 2003
    Beiträge
    1.554
    Hui, mein Account funktioniert ja noch

    Zitat Zitat von Dennik Beitrag anzeigen
    Lange Rede, kurzer Sinn, ich möchte alles machen und weiß nicht welche Sprache sich wohl dazu am Besten eignet. Es geht mir wie gesagt nicht um den Einstieg. Den hatte ich bereits in Java, und auch nicht darum das Programmieren zu lernen, dafür hatte ich C, mir geht es darum alle Facetten der Sprache auszunutzen und mit neusten Technologien zu arbeiten.
    Sorry, aber genau dieser Satz zeigt mir, dass du noch sehr unerfahren bist.
    Die Welt der Softwareentwicklung besteht nicht nur aus erlernen der Syntax und das Kennenlernen von Bibliotheken und die Welt ist auch nicht nur objektorientiert. Gerade funktionale Sprachen sind derzeit im Trend und sie erfordern eine komplett andere Denkweise, wie man es sonst von objektorientierten Sprachen kennt, weil sie zustandslos sind und somit Seiteneffekte ausschließen. In der objektorientierten Welt würde man sagen, alle Objekte sind unveränderbar (immutable) und gerade dies ist ein sehr großer Vorteil, wenn man z.B. auf Nebenläufigkeit achten muss. Inzwischen findet in C# und Java auch eine Verschmelzung der funktionalen Programmierung statt. In Java wurden jetzt die Lambda-Ausdrücke eingeführt und C# bekommt immer mehr Features aus F#. Aber auch in der Welt der Objektorientierung gibt es unterschiedliche Ansätze. Während man es z.B. in C# oder Java mit Klassen zu tun hat, hat man es in JavaScript mit sog. Prototypen zu tun und btw. JavaScript besitzt überhaupt keine Standard-Bibliotheken .

    Jede Sprache hat seine Vor- und Nachteile und jede Sprache verfolgt ein etwas anderes Konstrukt und jede Sprache hat seinen bestimmten Einsatzzweck. Wer meint, wenn er Java kennt, kennt er alle Sprachen, der irrt sich gewaltig. Wer mit einer neuen Sprache anfängt, der fängt quasi wieder von Null an, denn es geht darum die Sprache und vor allem das Paradigma kennenzulernen. In der Praxis ist es eh üblich, dass ein Entwickler mit mehreren Sprachen hantieren muss.

    Ich arbeite inzwischen seit 6 Jahren beruflich als Softwareentwickler und erlebe immer wieder, dass selbst hochstudierte Entwickler, die schon seit mehreren Jahrzehnten Software entwickeln, zum Großteil ihre primäre Sprache nicht verstanden haben und grundsätzlich immer wieder die selben Fehler machen. Dazu gehört z.B. dass das SOLID-Prinzip (Objektorientierung) nicht eingehalten wird. Auch verstehen die meisten das MVC bzw. MVP-Pattern nicht und gerade solche Techniken sind in der objektorientierten Welt wichtig, um wartbare und vor allem testbare Software zu schreiben. Daher lege ich dir auch ans Herz, dich mit Unittests auseinanderzusetzen. Ich arbeite in einer Firma, wo man den Test schon in der Design-Phase komplett missachtet hat. Die Folge ist nun, dass der Regressionstest länger dauert, als die Entwicklung. Die Entwickler werden ausgebremst, weil die Tester nicht hinterherkommen und solche Probleme bestehen in vielen Firmen. Daher gehen inzwischen viele Firmen den Weg des TDD (Test-driven-development), d.h. zuerst wird der Test geschrieben und dann wird entwickelt und gerade was das Testen angeht, kommt in einem Informatikstudium viel zu kurz. Ich kenne es selber, dass man als Student gar nicht die Zeit dazu hat, sich noch mit so einem Kram zu kümmern, aber die Erfahrung zeigt, dass der Test sogar noch wichtiger ist, als das Implementieren von Features.

    Es kommt also nicht unbedingt darauf an, welche Sprache man verwendet, sondern ob man diese auch so einsetzt, sodass die Software wart- und testbar ist? Natürlich kann man z.B. mit C# eine "fancy" App mit viel Bling Bling schreiben aber es gibt nichts schlimmeres, wenn die Software komplett verbuggt ist, weil sie nicht testbar ist. Alles, was nicht testbar ist, ist gleichzeitig sog. legacy code.

    Da du eine App schreiben willst und mit Java ein wenig Erfahrung hast, dann benutze doch Java und schreib eine Android-App.
    Serverseitig kannst du ja auch Java verwenden. Java ist auch die Sprache, die zum Großteil auf Servern zum Einsatz kommt. Darüber hinaus kannst du ja dann auch Erfahrung mit TDD und dem SOLID-Prinzip sammeln. Wenn du für die Datenbank-Verbindung ein OR-Mapper, wie z.B. Hibernate nimmst, dann ist es sogar egal, welche SQL-Datenbank du nimmst, sei es MySQL, MS SQL oder Oracle Database, denn der OR-Mapper abstrahiert die Verbindung.

    Suche also nicht die Eierlegende Wollmilchsau, sondern überlege, was du willst. Der Rest erübrigt sich schon fast von alleine.
    Whiz-zarD ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •