# Entscheidungsproblem für mein Vorhaben, zwischen Java und C#



## Guest (27. Jun 2007)

Hallo,
als erstes möchte ich mal sagen, dass ich ein Entscheidungsproblem habe, und zwar weiß ich nicht, ob Java oder C# für mein Vorhaben besser geeignet ist.

*Was ich möchte:*
Ich möchte Plattformunabhängig programmieren können und eine (möglichst unkomplizierte) Programmiersprache benutzen, die nicht eines Tages durch was anderes ersetzt werden könnte, sondern Zukunftssicher bleibt. Aber wenn ich gezwungen bin, aus irgendwelchen Gründen, Plattformunabhängig zu programmieren, würde ich es tun, wichtig ist nur, dass ich damit mein Vorhaben erreichen kann (siehe unten).

*Was ich mit der Programmiersprache alles machen möchte:*
Ich möchte kleine Programme wie z.B. einen Internetbrowser (was einfach aussehendes und die ich dann immer weiter verbessern kann), und auch kleine 2D Spiele programmieren wie z.B. ein kleines 2D Online-RPG Spiel, oder Spiele wie Pong mit neue Ideen.


*Hobby oder Beruflich?*
Hobby, und meine Projekte sollen nicht mit viel aufwand erreicht werden können, wo ich Tage brauche, bis ich ein kleines Teil davon fertig habe (siehe C/C++). Die Programmiersprache soll auch für die Hobbyprogrammierer geeignet sein, die nicht nur Serverapplikationen schreiben wollen, sondern auch kleine Tools oder Spiele programmieren wollen.


*Welches Buch willst du dir zum erlernen von Java kaufen, wenn du dich für Java entscheidest?*
Java als erste Programmiersprache, mit CD-ROM, gebundene Ausgabe


*Und welches Buch für C#?*
Hab ich bereits, C# Schritt für Schritt, von John Sharp (Microsoft Press)


*Sonstige Probleme:*
*TCPA:* Gestern hab ich darüber gelesen, dass Microsoft damit sein Marktanteil sichern möchte, das heißt auch für mich, dass sie bald den Linux und Mac Usern das Leben schwer machen werden. Diese Chips die in Mainboards und auch andere Hardware intigriert werden soll, könnte den Usern zwingen, Windows zu benutzen (?), oder hab ich das falsch verstanden?
Ich hab gestern das Video der Seite "Against TCPA" angeschaut,..das nenn ich echt ein Freiheitsentzug, was die PC-Nutzer angeht..



Mehr fällt mir momentan nichts ein, aber ich würde mich sehr freuen, wenn mir jemand weiterhelfen könnte.




MfG


----------



## The_S (27. Jun 2007)

- echte Plattformunabhängigkeit bekommste mit C# nicht hin. Da bleibt nur Java.
- das eine Programmiersprache nie von einer anderen verdrängt oder abgelöst wird kann dir wohl niemand garantieren
- Mit C# ist es einfacher Plattformabhängig zu programmieren, Java bietet diese Möglichkeit jedoch auch über JNI und C++ Code
- deine Programmierziele solltest du mit beiden Sprachen erreichen können
- Projekte ohne viel Aufwand sind entweder klein oder schlecht. Wenn du schnell Ergebnisse sehen möchtest, dann verwende VB :roll:
- Da Java und C# von der Syntax sehr nahe beieinander liegen, sind beide etwa gleich "schwer" zu erlernen.


----------



## tfa (27. Jun 2007)

Anonymous hat gesagt.:
			
		

> *Sonstige Probleme:*
> *TCPA:* Gestern hab ich darüber gelesen, dass Microsoft damit sein Marktanteil sichern möchte, ...



Keine Angst. TCPA gibt es schon seit Jahren nicht mehr. 

tfa


----------



## Guest (27. Jun 2007)

danke erstmal für eure antworten 



> Keine Angst. TCPA gibt es schon seit Jahren nicht mehr.


hm.. im wiki steht, dass TCG (Trusted Computing Group) es fortsetzt.. heißt das also, dass es doch noch existiert, was TCPA da vorhatten?..


@Hobbit_Im_Blutrausch:
so wie ich sehe, muss ich am Ende doch noch selber entscheiden, da ich meine Ziele mit beiden Sprachen erreichen kann.. ich lese nur überall, dass C# einfacher sei, und VB hab ich auch schonmal verwendet, ich finde nur die Syntax von Java und C# besser als VB.. sonst hätt ich VB genommen, das war schließlich meine erste programmiersprache 




MfG


----------



## The_S (27. Jun 2007)

Anonymous hat gesagt.:
			
		

> @Hobbit_Im_Blutrausch:
> so wie ich sehe, muss ich am Ende doch noch selber entscheiden



Joa, das haben Entscheidungen so ansich, dass sie von jemanden getroffen werden müssen  .



			
				Anonymous hat gesagt.:
			
		

> da ich meine Ziele mit beiden Sprachen erreichen kann..



Plattformunabhängigkeit wird wie gesagt mit C# etwas schwerer  .



			
				Anonymous hat gesagt.:
			
		

> ich lese nur überall, dass C# einfacher sei



wo? Evtl. möchte sich Jango hierzu mal äußern, die ist imho ziemlich fit in C# . Aber wie gesagt, die Sprachen sind sich sehr ähnlich, von daher würde ich sie ca. auf das selbe Level setzen.



			
				Anonymous hat gesagt.:
			
		

> und VB hab ich auch schonmal verwendet



Dieser Vorschlag war auch net wirklich ernst gemeint. Wenn du alles schnell schnell und ohne viel Aufwand machen möchtest, brauchst du eine Sprache (wie VB), die dir schon so ziemlich alles vorgibt und man sich den Code nur noch mehr oder minder zusammenklicken muss.


----------



## tfa (27. Jun 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Anonymous hat gesagt.:
> 
> 
> 
> ...


Ich würde eher sagen, C# ist komplizierter, da die Sprache mehr Features hat.
Dinge wie Operatorüberladung, Delegates, Properties und Structs müssen auch erstmal verstanden werden.
Zumal der zusätzliche Nutzen dieser Features eher gering ist -- verglichen mit den potenziellen Problemen, die man sich damit einhandelt.

tfa


----------



## tfa (27. Jun 2007)

Anonymous hat gesagt.:
			
		

> danke erstmal für eure antworten
> 
> 
> 
> ...



Ich weiß nicht, was TCPA mit irgendwelchen Chips vorhatte, aber Microsoft wird es sicherlich nie gelingen, MacOS oder Linux zu "verbieten" bzw. vollständig am Markt zu verdrängen.

tfa


----------



## SnooP (27. Jun 2007)

C# ist definitiv nicht einfacher! Es hat sogar einige Sprachkonzepte, die es am Anfang imho sogar schwerer machen (explizite Angabe ob Call-by-Reference oder by-value, explizit machen von virtuellen Methoden etc...). Natürlich ist das nur eine Nuance schwerer als Java  - aber dabei dann zu sagen, dass es einfacher ist ... nenene 

C# hat einige ganz coole Sprachkonzepte, wie auch .Net selbst eigentlich ne ganz interessante Sache ist. Wenn man also Microsoft-Programmierung machen will... evtl. auch mal DirectX anfassen muss und dergleichen - dann .Net und C#... sonst Java, ganz platt formuliert 

Für Webentwicklung kann man sich auch noch überlegen ob man nich auch Ruby oder was anderes grooviges  lernen sollte/möchte... nur unter dem Kontext "schnelle Ergebnisse".


----------



## deleted (27. Jun 2007)

zum Buch:
Vergiss das "Tigerbuch". Das habe ich auch, aber nur weil mein Dozent der Meinung war, das ist gut.
Du solltest dir Galileo Java ist eine Insel (ACHTUNG: Version für Java6!!! kaufen), oder von Guido Krüger Handbuch der Javaprogrammierung.
Wenn du letzteres kaufst, kannst du es dir auch gratis hier herunterladen:
http://javabuch.de/
und in deinem Intranet installieren (AUCH zur kommerziellen Nutzung!).
Ich finde das extrem bequem, habe es immer auf dem Laptop dabei.
Herr Krüger brignt Ende des Jahres eine neue Fassung heraus (für java6).
Wesentliche Änderungen sind da aber eigentlich nicht zu erwarten.
Die neuen Features wie das Tray-Icon findest du mit ausführlichen Beispielen auch auf der Seite von SUN.

Java oder C#
Nimm auf jeden Fall Java. Als GUI solltest du Swing nutzen.
Das Ganze ist plattformunabhänig und Java steht unter der GPL mit Classpath Ausnahme.
d.h. wenn Microsoft der Ansicht ist, irgendwas zu ändern und du sollst dir dafür ständig ein neues Visual Studio kaufen, dann hast du keine Chance, da musst du mitmachen (z.B. wenn Microsoft der Ansicht ist, Windows2000 ist veraltet und die Nutzer mögen doch bitte alle neue Rechner kaufen und Vista nutzen).
Bei Java kannst du sicher sein, dass es auch für ältere Plattformen immer weitergepflegt wird, solange von der Community (den Javaprogrammieren) Bedarf besteht.

Spiele
Du musst dich in Java nicht auf 2d beschränken. Es gibt mit JMonkey etc. auch relativ gute (kostenlose!) 3d Engines.
Allerdings könnte das Ganze in .NET leichter sein wenn du planst gut Geld auszugeben (Support von Microsoft, DirectX10 und so Zeugs).
Als Hobbyentwickler bist du aber mit Java ordentlich bedient.

Zu TCPA:
Darüber könnte ich jetzt etwas ausführliches schreiben, was jedoch zu 99% in einer Diskussion ausartet.
Da das dafür das falsche Forum ist, lass ich es mal.
Wenn dich das Thema wirklich zu interessiert mach doch ein diesbezügliches Topic in der Plauderecke auf...


----------



## MasterEvil (27. Jun 2007)

C# ist imho sehr gut wenn man mit komplexen Dateioperationen zu tun hat. oder auch zur Hardwareansteuerung besser geeignet.
Java unterstützt zum Beispiel "normal" nicht vorzeichenlose Werte.
Da kann man zwar nen bissle trixen aber mit UINT64 zu rechnen ist zum Beispiel nicht möglich. Das Bedeutet zum Beispiel auch das man mit Dateien die Größer als 2 GB sind Probleme bekommen kann.

Für deine Zwecke ist Java aber vermutlich die bessere Wahl weil du ja plattformunabhängig programmieren willst. Es gibt zwar Mono womit du C# Code auch auf *nix Systemen ausführen kannst aber das ist auch noch nicht voll ausgereift und eben auch nur ein Gemeinschaftsprojekt und kein Framework von Microsoft!


----------



## Guest (27. Jun 2007)

@R.B.: 
Wieso sollte ich das Buch nicht kaufen? Werden dort die Themen unverständlich erklärt?  :? 
Weil ich eigentlich von vielen Leuten gehört habe, dass es gut sein soll.. 

Bis jetzt war es ja so, dass ich mir Java beibringen wollte, aber mit den Online-Tutorials nicht gut klargekommen bin,.. am besten wäre ein Buch zum erlernen von Java gut für mich geeignet, aber kein Plan, welches Buch ich nehmen soll.. Java ist auch eine Insel will ich nicht Online lesen und als Buch ist es viel zu dick :?  oder beinhaltet das Buch alles, was Java betrifft, so dass man nur das Buch braucht, um Java richtig gut erlernen zu können?  und was das Javabuch betrifft, hab ich auch viel gutes darüber gehört,..aber irgendwie kam ich mit der Online-Version nicht gut klar, ich müsste gleich nochmal schauen, ob es für mich leicht verständlich ist.


und was C# betrifft.. Plattformunabhängigkeit find ich eigentlich am wichtigsten.. jeder (Linux, Mac, Win, Solaris,..) Benutzer sollte mein Programm/Spiel auch benutzen können.. ich selbst möchte nicht nur bei Windows bleiben, sondern habe vor auf Mac zu wechseln, also doch noch Java??


Das einzigste Problem, die ich dann hätte, wäre ein Buch zu besorgen.. es soll eher was lockeres sein, als Profesorisch erklärtes Buch.. Kann mir da vielleicht jemand behilflich sein?



@SnooP:
Ich hab mich schonmal mit Ruby beschäftigt  aber was ich vorhabe, konnte ich mit Ruby nicht so erreichen.. es war einfach viel zu aufwendig, ein kleines GUI-Fenster angezeigt zu bekommen.. es ist eher für WebAnwendungen gedacht, da es auch durch "Ruby On Rails" bekannt geworden ist.. Meiner Meinung nach..





MfG


----------



## Guest (27. Jun 2007)

@MasterEvil:
Was aber, wenn Mono bald wirklich die möglichkeit bekommt den .NET-Framework "richtig" auf Unix-Systemen zu portieren?? weil mit jeder neuen Version bekommt es immer mehr funktionalitäten aus .NET-Framework..

Und als Java programmierer sollte man genau davor Angst haben, dass Java dann dadurch ersetzt werden könnte.. da dann .NET auch Plattformunabhängig sein könnte..

oder wie siehst du das?


----------



## SnooP (27. Jun 2007)

Bin jetzt zwar nicht angesprochen... aber warum sollte jemanden das angst machen?  ... wenn eine Technologie einfach besser ist, als eine andere dann wird sie sich evtl. auch durchsetzen - mir persönlich ist's dann auch egal, ob es von MS kommt oder wo auch immer her... - aber letztlich kann doch ein OpenSource Wrapper wie Mono nie vollständig die .Net Funktionalität der MS-Implementierung garantieren.

Also: Java ist einfach ne sehr ausgereifte, schöne Sprache... ich sehe nicht die Gründe da jetzt zu .Net zu wechseln - es sei denn man will gerade MS-Spezifische Dinge tun. Dann ist das ja durchaus ne sehr gute Lösung.


----------



## Jango (27. Jun 2007)

@ Hobbit => ja, ich sage was dazu:



			
				SnooP hat gesagt.:
			
		

> C# ist definitiv nicht einfacher! Es hat sogar einige Sprachkonzepte, die es am Anfang imho sogar schwerer machen (explizite Angabe ob Call-by-Reference oder by-value, explizit machen von virtuellen Methoden etc...). Natürlich ist das nur eine Nuance schwerer als Java  - aber dabei dann zu sagen, dass es einfacher ist ... nenene
> 
> C# hat einige ganz coole Sprachkonzepte, wie auch .Net selbst eigentlich ne ganz interessante Sache ist. Wenn man also Microsoft-Programmierung machen will... evtl. auch mal DirectX anfassen muss und dergleichen - dann .Net und C#... sonst Java, ganz platt formuliert
> 
> Für Webentwicklung kann man sich auch noch überlegen ob man nich auch Ruby oder was anderes grooviges  lernen sollte/möchte... nur unter dem Kontext "schnelle Ergebnisse".



Dem ist nichts hinzuzufügen. 
Doch: Für die Webentwicklung eignet sich auch ASP.NET.


----------



## Wildcard (27. Jun 2007)

Was mir hier ein wenig zu kurz kommt:
vergleicht mal die Anzahl der für Java erhältlichen Bibliotheken mit denen für C#.
Vergleicht mal die Anzahl professioneller IDEs (bzw. nennt mir eine freie 'professionelle' und überhaupt eine vernünftige die nicht nur unter Windows läuft).
Solange man nicht exzessiv die WinAPI verwenden will (für die man natürlich wieder C++ braucht) sehe ich derzeit keinen Grund C# zu verwenden.


----------



## Jango (27. Jun 2007)

Oh, ich befüchte, dass wird wieder einer der vielen "Pro - Contra" - Threads. 
Die Frage war ja nicht: Was ist besser? Sondern: Was sollte ich lernen?


----------



## Guest (27. Jun 2007)

hm.. ich denke, ich werde mich mal mit beiden Sprachen beschäftigen, aber hauptsächlich mit Java.
Gleich geh ich das Buch "Handbuch der Java Programmierung" also das Javabuch bestellen, aber weiß einer, ob die Studentenausgabe auch für einen Hobbyentwickler zu empfehlen ist? Amazon-Link

Es stand auf der Javabuch Seite -> http://javabuch.de/



MfG


----------



## ice-breaker (27. Jun 2007)

Anonymous hat gesagt.:
			
		

> @MasterEvil:
> Was aber, wenn Mono bald wirklich die möglichkeit bekommt den .NET-Framework "richtig" auf Unix-Systemen zu portieren?? weil mit jeder neuen Version bekommt es immer mehr funktionalitäten aus .NET-Framework..
> 
> Und als Java programmierer sollte man genau davor Angst haben, dass Java dann dadurch ersetzt werden könnte.. da dann .NET auch Plattformunabhängig sein könnte..
> ...


was wird wohl platformunahängiger?
Eine Sprache die direkt darauf konzipiert ist und dies mit dem VM-Konzept auch schafft oder eine Sprache bei der ein 3rd Party Hersteller ein Emulationswerkzeug schreibt um es unter anderen OS zum Laufen zu bekommen?
Also wenn eine neue Java-Version rauskommt ist direkt schon das Release für andere OS da, und das schaffen die Mono-Entwickler auch?


----------



## deleted (27. Jun 2007)

@Buch

Das "Tigerbuch" ist mehr ein Schulbuch.
Sprich:
Wenn du gar keine Ahnung von Programmieren hast (insb. von objektorientiertem Programmieren) ist das Buch für dich empfehlenswert.

Um speziell Java zu erlernen allerdings nicht.

Du wirst damit wenig Freude haben, wenn du bereits programmieren kannst, und nur Java lernen willst.

Sprich, wenn du dir sagst: "Habe keine rechte Ahnung davon, ich will ein Buch damit ich es lerne..." nimm das "Tigerbuch".
Als Ergänzung im Web dann noch eines der anderen Bücher lesen oder kaufen (Bücher kann man eh nie genug haben. Ich hab ein ganzes Regal voll mit Büchern die IT Themen in irgendeiner Weise thematisieren ).

Ansonsten wenn du dir sagst:
"Was ein Interface ist weiß ich, Threads und E/A Streams und die ganze Objektorientierung habe ich verstanden. Ich kann aber nur C++ und kein java!", dann lass das "Tigerbuch" auf jeden Fall weg, das ist dann rausgeworfenes Geld!


----------



## byte (27. Jun 2007)

Kauf Effective Java oder Thinking in Java und kombinier das mit den Online-Büchern (Java Insel +  Java Handbuch). Vorteil: Die Online-Bücher sind eher für den Einstieg oder zum schnellen Nachschlagen geeignet, in erstere guckst Du aber selbst als Fortgeschrittener/ Profi nochmal rein, ergo auf lange Sicht weniger Geldverschwendung.


----------



## Guest (27. Jun 2007)

hm.. bin jetzt etwas verwirrt.. 
sind die Bücher "Javabuch" und "Java ist auch eine Insel" also doch nicht gut für den Anfang, oder sind die Bücher "Thinking in Java" und "Effective Java" besser für den Einstieg?

Bin kein fortgeschrittener Java Programmierer, von daher wäre es besser, wenn es nicht von anfang an, fortgeschrittene Themen behandelt..


----------



## byte (27. Jun 2007)

In allen Büchern werden die Java Grundlagen behandelt. Aber Effective Java und Thinking in Java haben halt mehr Tiefgang und sind auch noch später interessant, wenn Du Java schon kannst.


----------



## MasterEvil (27. Jun 2007)

Anonymous hat gesagt.:
			
		

> @MasterEvil:
> Was aber, wenn Mono bald wirklich die möglichkeit bekommt den .NET-Framework "richtig" auf Unix-Systemen zu portieren?? weil mit jeder neuen Version bekommt es immer mehr funktionalitäten aus .NET-Framework..
> 
> Und als Java programmierer sollte man genau davor Angst haben, dass Java dann dadurch ersetzt werden könnte.. da dann .NET auch Plattformunabhängig sein könnte..
> ...



Ich würde mich freuen wenn C# überwiegend plattformunabhängig zu betreiben wäre!
Mir ist es doch im Endeffekt egal von wem oder was, ich würde dann auf jedenfall C# nutzen und nichtmehr Java wegen der Möglichkeit bei Bedarf tiefer auf die Systemebene zugreifen zu können.

Ab guck dir mal an was Sun alles zusammengestrickt hat um einigermaßen Plattformunabhängigkeit hinzubekommen. Das wird mit Mono so nicht mal ansatzweise zu realisieren sein. Da müsste Microsoft schonmal nen paar Euro springen lassen und ne ordentliche Besatzung ein paar Jahre dran rumwerkeln lassen.

Java wird weiterhin DIE plattformunabhängige Sprache sein und C# die starke, einfache Sprache unter Windows!


Ich hatte mal nen Programm von Java nach C# portiert, das meiste war da wirklich nur Copy&Paste und dann nen paar Objekte anpassen. Aber das meiste ist so gut wie identisch und auf den ersten Blick ist oft garnicht zu erkennen welche Sprache das nun genau ist.


----------



## deleted (27. Jun 2007)

byto hat gesagt.:
			
		

> In allen Büchern werden die Java Grundlagen behandelt. Aber Effective Java und Thinking in Java haben halt mehr Tiefgang und sind auch noch später interessant, wenn Du Java schon kannst.



Er will das als Hobby machen...
Nicht professionell 
Ich habe die Erfahrung gemacht:
Ein ZU umfangreiches Einstiegsbuch und der Frust ist schnell da.
Zumal wenn es auf Englisch in Fachsprache geschrieben ist.
Ein Hobby soll ja auch Spaß machen.
Und ich bezweifle dass ein Hobbyprogrammierer überhaupt alles braucht, was in den Onlinebüchern steht.
Zudem es in der Javadokumentation von SUN auch noch genug Beispiele, zusätzliche Erläuterungen usw. gibt.
(Ist im Übrigen dringend anzuraten, dass du dir die Javadoku runterlädst und sie gut beherrschen lernst!).
Also von daher würde ich von solchen schwergewichtigen Büchern sogar abraten...
Im Übrigen kommt es auch drauf an, WIE Themen behandelt werden.
Das Thema Netzwerk im Javabuch ist z.B. sehr gut.
Es startet gleich mlt der Frage "Was ist ein Netzwerk?" und so wird da auch rangegangen.
Sprich das versteht auch jemand, der keine Ahnung von Netzen hat.
Das von dir vorgeschlagene Buch wird bei Amazon beschrieben:
"You may think you're a hot Java programmer, but you aren't perfect--yet."
Also ich nehme an, dass das solche Erklärungen nicht beinhaltet.


----------



## AlArenal (27. Jun 2007)

Wenn es ein Hobby sein soll, hat er ja keinen Zeitdruck. Es hindert ihn also nichts daran sich mit beidem (und noch mehr) zu beschäüftigen und dann auf der Basis eigener Erfahrungen selbstständig Entscheidungen zu treffen.

Ist eh sinnvoller als in einem Java-Forum zu fragen, ob C# nicht besser geeignet ist und andere für sich denken zu lassen. Mein Brider mag keinen Fisch, da kann ich von Sushi schwärmen, wie ich will...


----------



## Guest (28. Jun 2007)

hallo,
ich hab nur noch eine letzte frage an euch.. das "Javabuch" behandelt doch nur Java 5 und nicht 6, oder?? Link
Ist es denn schlimm, oder sollte man ein Buch über die 6te Java Version kaufen?


Ansonsten vielen Dank für eure Hilfe, ich hab mich doch noch am Ende entschieden, hauptsächlich Java zu benutzen und nebenbei ab und zu C# zu erlernen, ich denk mal, das wäre keine falsche entscheidung von mir 



MfG


----------



## Jango (28. Jun 2007)

MasterEvil hat gesagt.:
			
		

> Ich hatte mal nen Programm von Java nach C# portiert, das meiste war da wirklich nur Copy&Paste und dann nen paar Objekte anpassen. Aber das meiste ist so gut wie identisch und *auf den ersten Blick ist oft garnicht zu erkennen welche Sprache das nun genau ist.*


 :shock:  :shock: 
Das kannst du jemandem erzählen, der C# nur vom Namen her kennt und allen üblen Nachreden glaubt.
Einer der wichtigsten Pfeiler der objektorientierten Programmierung ist die Kapselung. Dafür hat C# eigens Eigenschaftsmethoden mit _get_- und _set_- Accessoren. Hab ich in Java noch nicht gesehen. Sicher funktionieren auch _normale_ Methoden (wie in Java üblich), die man einfach konventionsgemäß irgendwie mit _get_ und _set_ benennt. Aber jeder C# - Programmierer würde dir solch einen Code um die Ohren hauen.
"paar Objekte anpassen" ja - nee - is klar! Was war das, ne etwas komfortablere "HelloWorld"-Anwendung?
Spätetesten in der Vererbung hättest du merken müssen, dass das mit "copy/paste" so nicht geht. 
Ich bin jetzt zu faul, diese, deine Aussage noch weiter zu kommentieren. Aber Fakt ist eins - bis eben hatte ich schlechte Laune, jetzt ist sie spurlos verschwunden und ich kann wieder lachen - DANKE!!!
Und der letzte Teil von deiner Aussage; der, den ich fett markiert habe - mal ehrlich, hast du wirklich schon mal C#-Code gesehen? Komm schon, ich verrate es auch nicht... :roll: 

Im Übrigen hat AlArenal völlig Recht: Man stellt solche Fragen weder in einem Java-Forum, noch in einem C#-Forum. 
Für solche Fälle gibts ja noch dies hier. Nur muss man sich dort auf eine längere Wartezeit einstellen.

MfG
Jango


Edit: 
Nur noch mal zur Info:
Die Klassenbibliothek hat nichts, oder besser nicht *nur* was mit der *Sprache* C# zu tun! Sie ist vielmehr Bestandteil des .NET Framworks. Und dieses umspannt mehr als nur eine Programmiersprache. Also nicht mit der von Java verwechseln!!! 
Und wer sich die Mühe machen möchte, diese Bibliothek mit der von Java zu vergleichen, der solle dies tun. Das .NET Framwork umfasst die Funktionalität unter anderem auch von Java - nur wurde hier auch viel neu entwickelt.
Klar, wurden die guten Dinge von Java übernommen. Warum auch nicht? Hat Sun doch nicht anders gemacht. Oder haben die damals eine völlig neue Hochsprache entwickelt, von der jetzt die ganze Welt abkuckt? Manchmal hab ich das Gefühl, manche glauben wirklich an sowas...

@Wildcard: Eine IDE für Linux möchtest du? Kein Problem. Hier hast du! Und frei noch obendrauf + GUI-Designer! War früher mal ein Kind des "SharpDevelop", ist aber bereits autark. 

Und jetzt noch was zum Urheber dieses Thread:
Investiere in die Zukunft und lerne C# (ich traue mir hier was in einem Java-Forum - aber egal). 
Das C# die komplette Funktionalität von Java beinhaltet, hab ich oben schon geschrieben. Was die Plattformunabhängigkeit angeht - das ist C#, bzw. das .NET Framwork auch. Zumindest für Linux und Windows. Aber für Windows alleine gibts nicht Besseres!  
Und die Wirtschaft setzt auch im Allgemeinen auf Windows. Selbst CNC-gesteuerte Maschinen laufen auf irgend einem Windows-OS...


----------



## SnooP (28. Jun 2007)

Das interessante an .Net ist ja eigentlich, dass es vom Konzept her schon so spezifiziert ist, dass es plattformunabhängig wäre. Immerhin ist die CRM nix anderes als eine Runtime und damit mit der Java-VM zu vergleichen... dazu kommen allgemein Spezifikationen über einheitliche Datentypen, etc... also eigentlich könnten jetzt ganz viele Hersteller sagen, wir machen jetzt mal ne eigene Version... zumal der Standard selbst offen ist. Problem ist... wie bei allen/vielen Dingen von MS... die wollen natürlich auch ihre Produkte verkaufen, so dass vernünftiges Arbeiten wohl nur mit der MS-Implementierung für Windows zu schaffen ist... das Fehlen einer guten IDE macht das ganze dann auch noch für den Entwickler wieder madig... sicher VisualStudio ist auf den ersten Blick ganz prima, alleine der GUI-Designer auch für ASP.Net da wird man in der Java-Welt nicht soo was vergleichbares finden (Marquee ist gut - aber nicht soo gut!). Mapping von Datenbank-Records in GUI-Elemente z.B. ist für kleinere Anwendung schnell und flink erledigt. Aaaaber... letztlich ist es eine Entwicklungsumgebung für Windows und die MS-Implementierung eine Verbesserung für die Windows-Programmierung.
Und für größere Anwendungen würde ich nach wie vor Java empfehlen auch auf Windows, weil a) einfach mehr Leute existieren, die das gut können  und b) bessere IDEs, c) bessere Framework-Unterstützung, d) allgemein bessere Unterstützung für Best-Practices etc... und finally - die Sprache ist nicht schlechter als .Net  - warum also großartig was anderes lernen.

Zu den Buchtipps. Das Javabuch finde ich ganz okay, hab ich mir damals auch gekauft muss aber sagen für nen Anfänger halte ich die Javainsel für schöner/besser - gucke in die Online-Version auch heute noch ab und zu mal rein.
Sehr gut sind imho die Head-First-Bücher für Java von Kathy Sierra der weibliche Java-Guru, vielleicht genau deswegen  ... deutsche Version heißt übrigens "Java von Kopf bis Fuß". Hab aber keine Ahnung von der Güte der Übersetzung. Ansonsten sind die von byto genannten Bücher sehr gut - aber imho nicht soo für den Einstieg geeignet.

Um der Diskussion noch ein wenig gutes zu tun  ... Investiere in die Zukunft und lern Java, die VM lässt sich und wurde bereits auf Microprozessoren implementieren und im Allgemeinen setzt auch die Wirtschaft auf Java  
Ich sehe zumindest in meinem Umfeld 90% Java... daneben noch ein wenig Cobol (siehe Sig!), C/C++ natürlich und erst gaaaanz hinten an ein wenig .Net ... aber selbst bei uns im Projekt wurde ne Handheld-Software dann doch nur mit C++ geschrieben, statt mit .Net/C# .. somit sehe ich die Durchdringung und Unterstützung durch Wirtschaft nicht soo.


----------



## Wildcard (28. Jun 2007)

Jango hat gesagt.:
			
		

> Investiere in die Zukunft und lerne C# (ich traue mir hier was in einem Java-Forum - aber egal).
> Das C# die komplette Funktionalität von Java beinhaltet, hab ich oben schon geschrieben. Was die Plattformunabhängigkeit angeht - das ist C#, bzw. das .NET Framwork auch. Zumindest für Linux und Windows. Aber für Windows alleine gibts nicht Besseres!
> Und die Wirtschaft setzt auch im Allgemeinen auf Windows. Selbst CNC-gesteuerte Maschinen laufen auf irgend einem Windows-OS...


Tut mir leid Jango, ich kann dich zwar gut leiden, aber das ist einfach Unsinn  :roll: 
Ob C# die Zukunft gehört wird sich zeigen oder auch nicht. ZZ ist es noch weit davon entfernt.
Das die Wirtschaft auf Windows setzt stimmt definitiv nicht. Windows läuft in der Regel auf der Client Seite. Serverseitig wird der Markt von Unix und Linux Rechnern dominiert und auf Applikationsebene/Middleware wirst du Java finden.
Schau dir alleine mal SAP an (und SAP ist Marktführer). Die Frontends sind alle in Java geschrieben, die Serverkomponenten mit ABAP, Java und vermutlich einer Prise C oder C++.
IBM setzt seit Jahren auf Java, SUN sowieso.
Nichtmal Microsoft hat viel C# Code vorzuweisen und mir ist auch sonst kein Global Player bekannt bei dem C# eine wichtige Rolle spielt.


----------



## AnonymerFred (28. Jun 2007)

Anonymous hat gesagt.:
			
		

> Ich möchte kleine Programme wie z.B. einen Internetbrowser [...] programmieren


Ein Internetbrowser ist alles andere als ein kleines Programm.


----------



## Yzebär (28. Jun 2007)

Wenn du den Anspruch hast, ein guter Programmierer werden zu wollen, wirst du nicht umhin kommen, dich mit beiden Sprachen auseinanderzusetzen. 

Von der Schwierigkeit des Erlernens nehmen sich Java und C# nichts. Wer die Grundprinzipien objektorientierten Designs einhält und auch Designpatterns anwendet, wird in beiden Sprachen auf einfache Art und Weise "guten" Code schreiben können.

Starten würde ich dennoch mit Java, weil es für Java eine größere Auswahl an frei verfügbaren Tools und Frameworks gibt.


----------



## Guest (28. Jun 2007)

@AnonymerFred:
Nein, hast mich vielleicht falsch verstanden  :?  Ich meinte mit WebGadgets (weiß nicht, wie es unter Java/Swing heißt..).
Ich hab das schonmal in einer Basic Sprache programmiert, es lief eigentlich schon sehr gut, aber war nicht Plattformunabhängig.. genau das ist mein Problem..

@Jango:
Du hast echt mut, muss ich dir sagen  So wie du denkst, hab ich bis jetzt auch immer gedacht, und wenn ich ab und zu mal die Neuigkeiten von Microsoft lese, komme ich immer wieder an die gedanken, zu Microsoft zu tendieren..


@Yzebär:
Genau das hatt ich auch vor  beides zu können.. dann könnte ich nicht sagen, dass x besser als y ist und wieso ich y genommen habe..  = Problem beseitigt


Für Java kauf ich mir morgen das Buch "Java ist auch eine Insel", und für C# hab ich schon ein Buch.. aber
was Java 6 angeht.. wann kommt eigentlich Java 7? Weil.. wenn ich das Buch morgen kaufe und gleich danach eine neuere Java Version erscheint, könnt ich nicht aktuell informiert sein, sondern nur über Java 6, oder??




MfG


----------



## Wildcard (28. Jun 2007)

Anonymous hat gesagt.:
			
		

> wann kommt eigentlich Java 7?


Irgendwann 2008 wird der Delphin soweit so sein. Besonders das native XML könnte durchaus spannend werden.
Ausser XPath ( :lol: ) kenne ich keine Sprache die das umsetzt.


----------



## Guest (29. Jun 2007)

Wildcard hat gesagt.:
			
		

> Anonymous hat gesagt.:
> 
> 
> 
> ...


Ich bin gespannt, wie sich C# bzw. .NET allgemein bis dahin weiter entwickelt. Es hat einen verdammt schnellen 
Start hingelegt und die Auswahl an Komponenten für die GUI Entwicklung ist bereits jetzt besser als bei Java.


----------



## MasterEvil (29. Jun 2007)

Anonymous hat gesagt.:
			
		

> ... und die Auswahl an Komponenten für die GUI Entwicklung ist bereits jetzt besser als bei Java...



Also das wird ich so nicht sagen, für Java gibt es weitaus mehr Komponenten als für .NET!
Zudem kommt noch hinzu das die meisten verfügbaren .NET Komponenten auch Extra-Kohle kosten und das meist nicht zu knapp. Java-Komponenten werden auch zu Hauf verkauft aber da findet man auch fast immer freie Äquivalente zu.
Außerdem finde ich es viel einfacher Java Komponenten auf eigene Bedürfnisse anzupassen aber das ist wahrscheinlich auch eher Gewöhnungssache.


----------



## AlArenal (29. Jun 2007)

Anonymous hat gesagt.:
			
		

> Ich bin gespannt, wie sich C# bzw. .NET allgemein bis dahin weiter entwickelt. Es hat einen verdammt schnellen
> Start hingelegt und die Auswahl an Komponenten für die GUI Entwicklung ist bereits jetzt besser als bei Java.



Sollte man auch nicht überbewerten. Schonmal das (mittlerweile) alte SAP R/3 gesehen? Es gibt gerade in den Firmen weltweit einen riesigen Haufen von Anwendungen, teils auch noch DOS-Anwendungen, mit denen die Nutzer prima klar kommen. Eye Candy spielt da keine Rolle. Das Geld und damit der Markt sitzt nunmal primär in den Firmen.


----------

