Ist Java oder C# für Anfänger leichter zu erlernen?
-
µngbd schrieb:
Ja. Mich erinnern diese (recht häufigen) Diskussionen immer mehr an die Frage, ob man Weiss- oder Rotwein trinken soll.
Dieser Vergleich passt sehr gut, denn es kommt auch beim Trinken von Weiss- oder Rotwein auf folgendes an:
1. Was man lieber hat.
2. Was man dazu isst.@Stradivari,
Wenn du wirklich auf Windows programmieren willst, dann würde ich auch zu C# raten, da C# einige Vorteile in diesem Bereich gegenüber Java vorweisen kann. Zum Beispiel die sehr einfache Möglichkeit über P/Invoke WinAPI Funktionen aufzurufen. Auch dürfte das Deployment von C# Anwendungen auf Windows Platformen etwas leichter sein. Gibt ja Programme, welche in Java geschrieben sind und sich auf Windows über ein C# Programm starten lassen.@player4245,
Nur so am Rande wegen dem "Fakt ist, dass es C# nur für Windows gibt":
http://www.mono-project.com/Main_Page
Grüssli
-
player4245 schrieb:
Benutzt einfach die Sprache von der ihr überzeugt seid, und lasst anderen Leuten ihren (Fehl)glauben.
Welche Sprache besser ist lässt sich pauschal nicht sagen, Fakt ist, dass es C# nur für Windows gibt und Java für mehrere Systeme. Dafür hast du mit C# einen besseren Zugriff auf Windows (systemnah). Wenn du deine Projekte jedoch auch mal veröffentlichen willst sollte die Portierung auch eine Rolle spielen. Denn ich denke ein nicht geringer Teil der potenziellen Nutzer benutzt auch Linux.C# ist genauso plattformunabhängig. Das einzige was an Windows gebunden ist, ist das .NET Framework. Aber dafür gibt auf anderen Systemen Mono, somit lassen sich so gut wie alle für .net entwickelten Anwendungen auch unter Linux etc. ausführen. Ich programmiere ausschließlich unter Linux mit c# und Mono, bisher hatte ich noch nichts, was nicht funktioniert hat.
-
Ich erkenne C# nicht als Plattformunabhängig an nur weils für Linux einen Emulator gibt (der auch nicht 100% funktioniert). Und das .NET Framework ist fest mit der Sprache verbunden.
-
player4245 schrieb:
Ich erkenne C# nicht als Plattformunabhängig an nur weils für Linux einen Emulator gibt (der auch nicht 100% funktioniert). Und das .NET Framework ist fest mit der Sprache verbunden.
doppelter Fail. .NET ist nicht fest mit c# verbunden. Du kannst auch .NET mit visual basic oder c++ verwenden. Und sag mir mal was mit mono nicht funktionieren soll??
-
Hallo
WPF ist AFAIK nicht mit mono möglich.
chrische
-
Ich kenn mich mit Mono nicht aus, aber Tatsache ist, dass es nicht alle Bibliotheken unterstützt.
-
player4245 schrieb:
Ich kenn mich mit Mono nicht aus, aber Tatsache ist, dass es nicht alle Bibliotheken unterstützt.
Auch unter Java hast du Bibliotheken die ans Betriebssystem gekoppelt sind
-
aber nicht in der Standardbibliothek.
-
player4245 schrieb:
Ich kenn mich mit Mono nicht aus, aber Tatsache ist, dass es nicht alle Bibliotheken unterstützt.
Und deswegen ist für dich C# nicht Platformunabhängig? Wenn du sagen würdest, dass .Net nicht vollständig Platformunabhängig ist, dann wäre es noch in Ordnung.
Wenn ich mich recht erinnere, so ist .Net 2.0 fast vollständig in Mono enthalten. Wenn in Java neue Versionen rauskommen, sind die ja meistens auch zuerst nicht auf allen Platformen sofort vorhanden. Bis ich meinem Tutor an der Uni Java 1.6 Programme abgeben konnte, weil er keine vernünftige JRE Version 6 für seinen Apple hatte ...
Grüssli
-
player4245 schrieb:
aber nicht in der Standardbibliothek.
Was ist für dich die Standardbibliothek? .NET definiert nur BCL und FCL.
-
Stradivari schrieb:
Welche der beiden Sprachen ist für einen totalen Neuling leichter erlernbar? Oder kann man als Neuling beide Sprachen ähnlich leicht erlernen, da sie sich ja in vielen Punkten ähneln?
IMHO sind beide Sprachen etwa gleich leicht zu erlernen. Du könntest also im Grunde fast würfeln, welche Sprache Du nimmst.
Besser wäre es aber zu überlegen, was Du später denn damit machen willst. Möchtest Du eher Desktop Anwendungen (Richclient) für Windows schreiben, dann könnte C#/.NET etwas interessanter für Dich sein (wegen WPF). Möchtest Du hingegen plattformunabhängige Richclients oder Webanwendungen schreiben, dann würde ich auf jeden Fall eher zu Java raten.
-
Dravere schrieb:
player4245 schrieb:
Ich kenn mich mit Mono nicht aus, aber Tatsache ist, dass es nicht alle Bibliotheken unterstützt.
Und deswegen ist für dich C# nicht Platformunabhängig? Wenn du sagen würdest, dass .Net nicht vollständig Platformunabhängig ist, dann wäre es noch in Ordnung.
Nicht vollständig plattformunabhängig ist leider zu harmlos ausgedrückt. Denn das UI Framework (WPF) ist bei Richclient Anwendungen ein ganz wesentlicher Anteil. Du müsstest also die gesamte Oberfläche neu programmieren, um die Anwendung wirklich plattforumabhängig zu deployen.
Bei Anwendungen ohne Richclient Oberfläche mag das anders sein.
-
chrische5 schrieb:
Hallo
Ich denke, dass WPF ein gutes Argument für C# ist. Des weiteren solltest du dir überlegen, ob du für Windows programmieren willst. Wenn ja, bleibt die Frage, warum dann nicht C# nehmen. Die Toolchain ist sehr gut und Umsetzung grafischer Oberflächen gelingt problemlos auch mit WinForms.
chrische
Was ist an WPF so toll? Und wir haben schon im anderen Thread festgestellt, dass die Java-Toolchain haushoch überlegen ist.
-
Hallo
Das hatten wir nicht festgestellt. Wenn das deine Art der Beweisführung ist, dann verstehe ich deine Freude an Esoterik. WPF ist unglaublich intuitiv, bedienerfreundlich und hebt wohlwollen von WinForms ab. Ich mag es einfach und vertrete nur meine persönliche Meinung.
chrische
-
DEvent schrieb:
chrische5 schrieb:
Hallo
Ich denke, dass WPF ein gutes Argument für C# ist. Des weiteren solltest du dir überlegen, ob du für Windows programmieren willst. Wenn ja, bleibt die Frage, warum dann nicht C# nehmen. Die Toolchain ist sehr gut und Umsetzung grafischer Oberflächen gelingt problemlos auch mit WinForms.
chrische
Was ist an WPF so toll? Und wir haben schon im anderen Thread festgestellt, dass die Java-Toolchain haushoch überlegen ist.
Toller Thread, der fast nur aus Beiträgen von DAUs besteht
Ich wette 95% der User kennen .NET nur von Bildern
-
Stradivari schrieb:
ich habe vor programmieren zu lernen, weiß aber noch nicht genau ob es Java oder C# werden soll. Bisher weiß ich durchs lesen von Artikeln und Einführungen bloß was ein Integer, ein Boolean , ein Array etc.
naja, da C# zum grossen teil ein Java-nachbau ist (dazu eine schuss C++ und ein kleine prise delphi), spielt es eigentlich keine rolle, was du nimmst. willst du dir keine proprietären microsoft-technologien an die backe nageln und suchst maximale plattformunabhängigkeit, dann nimm Java, ansonsten ist es fast egal. aber schau mal da: http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp
Stradivari schrieb:
Später würde ich hauptsächlich für Windows Programme schreiben wollen (ein Punkt für C#?).
ja, das spricht ein bisschen für C#, obwohl Java unter windows auch gut funzt.
-
byto schrieb:
Nicht vollständig plattformunabhängig ist leider zu harmlos ausgedrückt. Denn das UI Framework (WPF) ist bei Richclient Anwendungen ein ganz wesentlicher Anteil. Du müsstest also die gesamte Oberfläche neu programmieren, um die Anwendung wirklich plattforumabhängig zu deployen.
Ich habe explizit hingeschrieben, dass es fast vollständig .Net 2.0 zur Verfügung stellt. WPF kam erst mit .Net 3.0.
(Und brauchbar wohl auch erst mit 3.5? Naja, da lehne ich mich ein wenig weit aus dem Fenster, ich nehme es lieber wieder zurück :))Aber nur weil es nicht in der aktuellsten Version vorliegt, zu behaupten, dass es keinen Anspruch darauf hat, als Platformunabhängig zu gelten, finde ich schon ein wenig heftig. Vor allem ist das GUI nur ein Teil und wahrscheinlich im Vergleich eher der kleinere vom .Net Framework.
Ich habe schon viele Konsolenprojekte mit .Net erstellt, auch sehr praktisch und angenehm in .Net.
Grüssli
-
Bashar schrieb:
Tim schrieb:
DEvent schrieb:
Java.
Wenigstens lügst du dir diesmal keine falschen Argumente zusammen, sondern lässt sie gleich weg
Psst, oder willst du die falschen Argumente unbedingt noch nachgeliefert bekommen?
Es würde den Thread zumindest attraktiver gestalten. So rein aus humoristischer Sicht
-
Stradivari schrieb:
Welche der beiden Sprachen ist für einen totalen Neuling leichter erlernbar? Oder kann man als Neuling beide Sprachen ähnlich leicht erlernen, da sie sich ja in vielen Punkten ähneln?
Jacke wie Hose, die Sprachen sind im Prinzip gleich, nimm was du willst, hauptsache kein C++ oder sowas
-
Dravere schrieb:
byto schrieb:
Nicht vollständig plattformunabhängig ist leider zu harmlos ausgedrückt. Denn das UI Framework (WPF) ist bei Richclient Anwendungen ein ganz wesentlicher Anteil. Du müsstest also die gesamte Oberfläche neu programmieren, um die Anwendung wirklich plattforumabhängig zu deployen.
Ich habe explizit hingeschrieben, dass es fast vollständig .Net 2.0 zur Verfügung stellt. WPF kam erst mit .Net 3.0.
(Und brauchbar wohl auch erst mit 3.5? Naja, da lehne ich mich ein wenig weit aus dem Fenster, ich nehme es lieber wieder zurück :))Aber nur weil es nicht in der aktuellsten Version vorliegt, zu behaupten, dass es keinen Anspruch darauf hat, als Platformunabhängig zu gelten, finde ich schon ein wenig heftig. Vor allem ist das GUI nur ein Teil und wahrscheinlich im Vergleich eher der kleinere vom .Net Framework.
Ich habe schon viele Konsolenprojekte mit .Net erstellt, auch sehr praktisch und angenehm in .Net.
Grüssli
Naja, kannst du einfach dein .NET2.0 oder .NET3.0 Projekt nehmen und es auf anderen Plattformen einfach so laufen lassen? Mit Java, Python, Perl, Ruby, usw. kannst du das. Auch gibt es nur Mono für Linux. Wie sieht es mit Solaris, MacOS, *BSD aus?
Die "Plattformunabhänigkeit" von .NET und C# ist nur Marketing. Es würde anderes aussehen, gäbe es eine Referenzimplementierung vom Hersteller persöhnlich und/oder würde das Framework unter eine freien Lizenz stehen, wie z.B. einer MIT, BSD, LGLP Lizenz.
So wie ich das aber sehe, macht die Mono-Community die ganze Arbeit und von MS gibt es nur ein "Wir versprechen euch nicht zu verklagen (vielleicht)". Welche Unterstützung hat den Mono vom Hersteller?
Dagegen ist Java Open Source, steht unter einer freien Lizenz, hat offizielle Unterstützung und offizielle Referenzimplementierungen von Sun für fast alle Systeme. Java wird auch von der Community weiter entwickelt und verbessert. Deswegen hat sich auch Java als Industriestandard etabliert, dagegen ist C# ein "Wir haben auch Java" von MS.
Dann stellt sich die Frage an den Tools die du zur Verfügung hast. Wieder in Java hast du eine ganze Palette von Enterprise-Tools und alle sind frei und kostenlos. Eclipse, JBeans, IntelliJ, Maven2, Ant. Was hast du außer Visual Studio für C#?