Zukunftssicher - Java oder C#?
-
Hey,
also erstmal: Ich möchte hier keinen erneuten Flamewar auslösen, sondern einfach nur ein paar hilfreiche Beiträge zum Thema Java vs. C# haben.Also, ich programmiere eigentlich noch nicht so lange. Derzeit bin ich 14 Jahre alt und habe mit 12 mit HTML/CSS angefangen, später weitergemacht mit PHP/MySQL, bin dann über die Scriptsprache TI-Basic gestolpert, habe wenig später mir mal JavaScript angeschaut und habe vor ein paar Monaten angefangen mir C++ beizubringen. C++ war mir allerdings ein bisschen zu kryptisch, weswegen ich bei der Konsolenprogrammierung geblieben bin.
Jetzt habe ich mir vorgenommen eine andere Programmiersprache zu lernen, die auch für die nächsten Jahre noch brauchbar ist (ich möchte in ein paar Jahren eventuell Informatik/Software-Entwicklung/... studieren). Das heißt ich will eine Sprache lernen, die ich auch noch im späteren Beruf oder beim Studium verwenden kann, ohne 1000 Mal umsteigen zu müssen.
Ich habe schon sehr viel bei Google recherchiert und gelesen, dass Java und C# zwei sehr gefragte objektorientierte Sprachen sind. Der einzigste Unterschied soll wohl sein, dass Java eine plattformunabhängige Sprache ist (läuft also auch unter Linux) und C# mit Mono nur teilweise plattformunabhängig ist (Mono soll angeblich auch noch nicht so ausgereift sein). Außerdem gibt es Java ja schon ein bisschen länger, weswegen ich die Befürchtung habe, dass es vielleicht bald einen Nachfolger (mal abgesehen von C#) bekommt.Jetzt mal zu meinem Vorhaben: Wie ich oben schon geschrieben habe, will ich die Sprache auch noch in Zukunft verwenden können. Wenn ich in Richtung Software-Entwicklung gehen will, müsste ich also auch Betriebssysteme abseits von Windows nutzen. Ich selbst tendiere eigentlich eher zu C#, aber ich weiß nicht, ob die Sprache heutzutage an Universitäten unterrichtet wird und ob man sich auch auf Mono & Co. verlassen kann, wenn Plattformunabhängigkeit mal eine Rolle spielt.
Und bietet Java soll ja eine sehr portable Sprache sein, d.h. man kann sie zur Programmierung von Android-Apps oder im Web verwenden. Vor allem interessiert mich letzteres: Bietet Java einen Ersatz für PHP?
Und wie sieht es mit GUIs aus? Liegt da Java oder C# vorne?Ich hoffe ihr könnt mir einigermaßen helfen. ^^
-
Anima schrieb:
Der einzigste Unterschied soll wohl sein, dass Java eine plattformunabhängige Sprache ist (läuft also auch unter Linux) und C# mit Mono nur teilweise plattformunabhängig ist (Mono soll angeblich auch noch nicht so ausgereift sein).
Gilt nur im Marketing. Tatsächlich gilt für beide Sprachen: Compile once, debug everywhere!
Man braucht trotzdem ein Testsystem und meistens kann man den Code nicht 1:1 auf das andere System übernehmen. Es kann die Sache vielleicht vereinfachen, aber ich würde davon nicht ausgehen.Anima schrieb:
Vor allem interessiert mich letzteres: Bietet Java einen Ersatz für PHP?
Mit z.B. Java Servlets kann man z.B. auf einem Apache Tomcat PHP ersetzen.
Kannst aber auch ASP.Net mit C# nehmen auf einem Windows Server und PHP ersetzen.Anima schrieb:
Und wie sieht es mit GUIs aus? Liegt da Java oder C# vorne?
Mit WPF kann wohl Java AWT/Swing/SWT nicht mithalten. WPF ist aber nigelnagel neu. Allerdings läuft WPF nur unter Windows. Was verstehst du aber genau unter deiner Frage? Was ist für dich vorn?
Ganz allgemein:
Nimm das, was dir besser zusagt. Der Umstieg ist nicht wirklich schwer. Bei uns an der Hochschule kommt zudem C# und Java dran. Wenn es dir genügt unter Windows zu programmieren, dann bist du mit C# besser bedient. Sonst nimmst du halt Java. Spielt nicht wirklich eine grosse Rolle. Wichtig sind die Programmierkonzepte.Grüssli
-
Du machst Dir viel zu viele unnötige Gedanken.
Viele Anfänger haben Angst eine Sprache zu lernen, weil sie in ein paar Jahren nicht mehr verwendet werden könnte. Erstens kann niemand in die Zukunft schauen, zweitens ist Softwareentwicklung mit lebenslangem Lernen verbunden und drittens sterben Sprachen solchen Kalibers nicht in ein paar Jährchen.
Mir gefällt C# und das .NET Framework besser als Java. Aber das ist Geschmacksache.
Außerdem: Wenn Du fitt in einer der beiden Sprachen bist, wirst Du Dich in der anderen auch sehr schnell zu Hause fühlen.
EDIT: Tippfehler ohne Ende
-
Ich schliesse mich meinen Vorrednern an. Mach dir nicht so viele Gedanken darueber. Als Informatiker wirst du eh Kontakt mit zig Sprachen haben und immer mal wieder dir ne neue aneignen muessen.
Bis du mit dem Studium fertig bist vergehen eh noch locker 10 Jahre und wie da dann der Markt aussieht kann dir niemand sagen. Auf jeden Fall sind im Moment sowohl C# als auch Java sehr gefragte Sprachen. Nimm einfach, was dir besser gefaellt. Mir persoenlich hat .NET immer mehr besser gefallen als Java.
-
Auch C++ ist für die nächsten Jahre noch brauchbar. Gerade mit dem neuen Standard. Nimm was dir am besten gefällt.
-
Anima schrieb:
C++ war mir allerdings ein bisschen zu kryptisch, weswegen ich bei der Konsolenprogrammierung geblieben bin.
Was ist C++ denn im Vergleich zur Konsolenprogrammierung? Das klingt wie "Englisch liegt mir nicht, deshalb bleib ich lieber beim Zeitunglesen". Es gibt auch englische Zeitungen. Und C++ auf der Konsole. Wenn du natürlich gleich irgendein "C++ für xyz"-Buch genomme hast, das dir neben der Sprache auch noch irgendwelche GUI-Frameworks beibringen wollte, versuchs mit C++-Konsolenprogrammierung.
Das heißt ich will eine Sprache lernen, die ich auch noch im späteren Beruf oder beim Studium verwenden kann, ohne 1000 Mal umsteigen zu müssen.
Wenn du erstmal eine der Sprachen gut kannst und dahinter steigst, ist der Umstieg auf andere Sprachen lange nicht mehr so schweirig, wie sie ganz neu zu lernen.
Ich habe schon sehr viel bei Google recherchiert und gelesen, dass Java und C# zwei sehr gefragte objektorientierte Sprachen sind.
Beide (vor allem Java) sind aktuell ziemlich gehyped. Es gibt sogar Software-Firmen, die ihre Software in Java komplett neu schreiben, weil die Vorstände der Kundenfirmen gehört haben, dass Java total cool ist und deshalb die Software jetzt bitte in Java statt in C++ haben wollen. Die Vorstände der Softwarefirma wollen dann natürlich auch total coole Software verticken und geben Unsummen aus, um die gut funktionierende C++-Software als coole Java-Software komplett neu zu schreiben. Ungeachtet jeglicher technischer Probleme. Schon wegen solcher Hypes sind Java-Entwickler aktuell recht begehrt.
Außerdem gibt es Java ja schon ein bisschen länger, weswegen ich die Befürchtung habe, dass es vielleicht bald einen Nachfolger (mal abgesehen von C#) bekommt.
C gibts auch schon länger. Es hat einen Nachfolger (C++), der einen Nachfolger hat (Java), der einen Nachfolger hat (C#). Trotzdem ist C nicht tot. Also keine Angst vor alten Sprachen
Jetzt mal zu meinem Vorhaben: Wie ich oben schon geschrieben habe, will ich die Sprache auch noch in Zukunft verwenden können.
Trifft auf die meisten Sprachen zu.
Wenn ich in Richtung Software-Entwicklung gehen will, müsste ich also auch Betriebssysteme abseits von Windows nutzen.
Nein. Gibt genug Entwickler, die noch nie woanders als auf und für Windowsmaschinen entwickelt haben.
Vor allem interessiert mich letzteres: Bietet Java einen Ersatz für PHP?
Du vergleichst da Äpfel mit Birnen, das macht wenig Sinn.
-
pumuckl schrieb:
Beide (vor allem Java) sind aktuell ziemlich gehyped.
Nanu? Hast du das letzte Jahrzehnt im Kälteschlaf verbracht? Java ist inzwischen langweilig und etabliert, von Hype keine Spur. Oder der Hype dauert seit über 10 Jahren an, kann auch sein, aber dann ist es kein echter Hype mehr, oder?
C++ hatte seinen Hype übrigens in der ersten Hälfte der 90er.
-
Dravere schrieb:
Gilt nur im Marketing. Tatsächlich gilt für beide Sprachen: Compile once, debug everywhere!
Tatsache? Ich musste meine Anwendungen noch nie debuggen nachdem (~=weil) ich die von meiner Mac Workstation auf den Linux Server deployed hab
pumuckl schrieb:
Anima schrieb:
C++ war mir allerdings ein bisschen zu kryptisch, weswegen ich bei der Konsolenprogrammierung geblieben bin.
Was ist C++ denn im Vergleich zur Konsolenprogrammierung? Das klingt wie "Englisch liegt mir nicht, deshalb bleib ich lieber beim Zeitunglesen". Es gibt auch englische Zeitungen. Und C++ auf der Konsole. Wenn du natürlich gleich irgendein "C++ für xyz"-Buch genomme hast, das dir neben der Sprache auch noch irgendwelche GUI-Frameworks beibringen wollte, versuchs mit C++-Konsolenprogrammierung.
Hast du den Satz absichtlich nicht verstanden? C++ war ihm zu kryptisch, darum ist er mit dem Lernen nicht weiter als Konsolenprogrammierung gekommen/gegangen.
Beide (vor allem Java) sind aktuell ziemlich gehyped. Es gibt sogar Software-Firmen, die ihre Software in Java komplett neu schreiben, weil die Vorstände der Kundenfirmen gehört haben, dass Java total cool ist und deshalb die Software jetzt bitte in Java statt in C++ haben wollen. Die Vorstände der Softwarefirma wollen dann natürlich auch total coole Software verticken und geben Unsummen aus, um die gut funktionierende C++-Software als coole Java-Software komplett neu zu schreiben. Ungeachtet jeglicher technischer Probleme. Schon wegen solcher Hypes sind Java-Entwickler aktuell recht begehrt.
lebst du noch in 2000?
Vor allem interessiert mich letzteres: Bietet Java einen Ersatz für PHP?
Du vergleichst da Äpfel mit Birnen, das macht wenig Sinn.
Uh nein tut er nicht. Ja Java kann ein Ersatz für PHP sein.
protip @ OP: welche Sprache von den beiden du lernst ist egal, lern Programmieren. Lern eine von beiden, und wenn du die verstanden hast lern die andere, die hast du dann auch in wenigen Wochen drauf. Programmieren können ist schließlich nicht das auswendig können von Standardbibliotheken. Wenn du einen Beruf anfängst wirst du dich eh nochmal von vorne in neue Sachen einarbeiten müssen; und im Studium wird dir übrigens auch keine Programmiersprache beigebracht, am öftesten benutzt werden dort allerdings C und Java.
-
Man kann ja beides lernen, so unterschiedlich sind diese Sprachen wohl gar nicht.
Java für Handy und Co und Linuxe, C# für Windows. Ein bißchen scheint mir der derzeitige Hype in Richtung Scriptsprachen und funktionale Sprachen zu gehen.
Der Vorteil von Java ist, das durch den Hype sehr viele Tuts und Programmiertechniken verfügbar sind. Außerdem gibt es durch die langschweifige Schreiberei bei Java viele Erleichterungshilfen wie Scala oder Groovy ( http://www.oio.de/public/java/groovy/groovy-einfuehrung.htm ).
Was man ein wenig im Auge behalten könnte, ist die trotz vieler Vorerfahrungen noch immer in den Kinderschuhen steckende Parallelprogrammierung.
-
Wenn du Wirtschaftsinformatik machen willst Java ansonsten JavaScript.
-
Auch eine Insel schrieb:
Wenn du Wirtschaftsinformatik machen willst Java ansonsten JavaScript.
-
tg3463v634v6 schrieb:
Dravere schrieb:
Gilt nur im Marketing. Tatsächlich gilt für beide Sprachen: Compile once, debug everywhere!
Tatsache? Ich musste meine Anwendungen noch nie debuggen nachdem (~=weil) ich die von meiner Mac Workstation auf den Linux Server deployed hab
Wenn du nur in deinem Bereich bleibst, kann dies womöglich problemlos funktionieren. Wenn du aber Endkunden belieferst und die Anwendungen etwas grösser werden, ist es ein feuchter Traum, dass Java irgendwie plattformunabhängiger wäre als C#, C++ oder sonst irgendeine Sprache. Vor allem wenn eine der Plattformen noch Windows und die andere unixartig ist.
Grüssli
-
Ich finde Platformunabgängigkeit völlig überbewertet. Viele stecken da viel Energie rein und brauchen es am Ende nicht.
Ich persönlich entwickel primär C# unter Windows und Java unter Linux (Mint).
Ob du nun C# lernst und dann Java oder genau umgekehrt ist völlig egal - die beiden Sprachen sind so ähnlich das du das in sehr kurzer Zeit drinne hast.
Überleg dir einfach was du so gerne schreiben würdest, und dann schau welche Sprache dafür am geeignetsten ist.
-
Bashar schrieb:
pumuckl schrieb:
Beide (vor allem Java) sind aktuell ziemlich gehyped.
Nanu? Hast du das letzte Jahrzehnt im Kälteschlaf verbracht? Java ist inzwischen langweilig und etabliert, von Hype keine Spur. Oder der Hype dauert seit über 10 Jahren an, kann auch sein, aber dann ist es kein echter Hype mehr, oder?
Kommt drauf an bei wem. Bei den Entwicklern ist es etabliert. Aber normalerweise setzt sich so ein Hype mit einiger zeitlicher Verzögerung in den höheren Ebenen fort. Was bei Entwicklern nurnoch ein müdes Gähnen hervorlockt ist bei den Schlipsträgern am oberen Ende der Excelschubserkette grade das Neueste vom Neuen.
-
pumuckl schrieb:
Kommt drauf an bei wem. Bei den Entwicklern ist es etabliert. Aber normalerweise setzt sich so ein Hype mit einiger zeitlicher Verzögerung in den höheren Ebenen fort. Was bei Entwicklern nurnoch ein müdes Gähnen hervorlockt ist bei den Schlipsträgern am oberen Ende der Excelschubserkette grade das Neueste vom Neuen.
Du meinst, Java hat sich durchgesetzt, weil die Entwickler davon so begeistert waren, und mit 10 Jahren Verspätung greift die Begeisterung auf das Management über? Naja, ich war nicht dabei und kenne nur die Klagen einzelner betroffener, aber die sagen im Gegenteil, dass Java zuerst den Entscheidern verkauft wurde, die es dann den Entwicklern aufgedrückt haben.
-
David W schrieb:
Ich finde Platformunabgängigkeit völlig überbewertet. Viele stecken da viel Energie rein und brauchen es am ende nicht.
Sehe ich genauso. Im Forum liest man oft so Sachen wie "Nimm XY, weil das laeuft auf Windows und Linux und Mac und Bla". In der Realitaet ist das nicht wirklich so oft ein Kriterium. Meistens entwickelt man doch nur fuer Windows oder iOS oder Linux. Ich hab auf jeden Fall noch nicht einmal ein Projekt gesehen, dass auf zig Plattformen laufen sollten.
-
Ich schon.
-
Tyrdal schrieb:
Ich schon.
Dann nenn mal bitte eins das auf allen Plattformen (ich gehe jetzt nicht von mobilen Endgeräten aus) läuft und in der gleichen Sprache programmiert wurde.
-
RDE_AVS_NGL läuft auf Windows und Linux. Kennste wahrscheinlich nicht. Ist speziell fürs GÜZ Letzlinger Heide gemacht worden.
-
Cybertec schrieb:
Tyrdal schrieb:
Ich schon.
Dann nenn mal bitte eins das auf allen Plattformen (ich gehe jetzt nicht von mobilen Endgeräten aus) läuft und in der gleichen Sprache programmiert wurde.
Ich schaue mal kurz mein Dock durch:
Terminal - Nein, bash aber ja
FirstClass - Ja
Opera - Ja
FireFox - Ja
Safari - Jein (Windows + Mac)
Eclipse - Ja
Netbeans - Ja
MS Office - Nein
LibreOffice - Ja
FileMaker - Ja
...soll ich weiter machen?
Prinzipiell ist die Mehrheit der Software die ich täglich verwende Multiplatform fähig. Die Commandline Tools die auf allen Unix-Artigen Systemen laufen, lasse ich sowieso mal aussen vor.