Laden...

C# vs Java: Vor- und Nachteile

Letzter Beitrag vor 15 Jahren 55 Posts 25.647 Views
C# vs Java: Vor- und Nachteile

Hey,

letzte Zeit muss ich in Java entwickeln. Meine Frage wäre wo sieht ihr die Vor / Nachteile von Java gegenüber .Net und C#?
Bei Java habe ich immer Probleme mit GUI Entwicklung, keine gute Unterstützung von IDE und zweitens die GUI ist sehr träge.

Grüße

Ich entwickle beruflich sehr viel in Java. Im Vergleich mit C# wirst du wohl die Sprache "Java" meinen, nicht die gleichnamige Technologie, da sonst dein Vergleichskontext das .NET Framework hätte sein müssen.

Ich vermute bereits jetzt, dass du eigentlich die Technologie "Java" gemeint hast und nehme stattdessen an, dass du .NET meintest, und versehentlich C# getippt hast, weil die Buchstaben so nahe beieinander liegen.

Wie auch immer: Java ist mächtig. Man spricht nicht umsonst vom "Industriestandard". Die Toolchain für die Entwicklung ist überragend (ein Rechtsklick im Codeeditor von Eclipse bietet mir mehr als der gesamte Codeeditor von Visual Studio), der Support aus der Open-Source-Community und den Global Playern der Softwareindustrie ist um ein Vielfaches besser als bei .NET. Sämtliche Innovationen werden durch handfeste Spezifikationen untermauert, es wird recht wenig "herumexperimentiert", die Spezifikationsimplementierungen erfüllen, gerade im Enterprise-Bereich, ihren Zweck meist recht gut, ist dem nicht so, etablieren sich schnell Alternativen. Siehe Spring vs. Enterprise Java Beans.
Man fühlt sich in Java einfach weniger Experimenten ausgeliefert. Da wird halt nicht mal schnell ein "partial"-Schlüsselwort in die Sprache eingebaut, damit der GUI-Editor besser mit Forms-Klassen zurechtkommt. Sowas hinterlässt bei mir, denke ich an .NET, immer einen etwas faden Beigeschmack.

.NET hingegen lockt mit komfortableren Tools. WPF und WinForms fühlen sich erstmal besser an als Swing (auch wenn Swing aufgeräumter ist), und Microsoft liefert meiner Meinung nach oft größere Innovationen. Viele Dinge sind einfacher als in Java. Weniger Konfiguration, weniger Deployment, mehr direktes Programmieren. Man unterscheide einfach mal den Unterschied zwischen Java und .NET, wenn es um die Nutzung von XML geht. In Java muss ich erstmal eine Factory anlegen, da natürlich erstmal die Implementierung in die XML Toolchain injiziert werden muss. Dann erhalte ich den DocumentBuilder, dann das Document, sodass ich, bis ich ein XML Dokument ansprechen kann, schon drei bis fünf Zeilen geschrieben hab. .NET ersetzt dies durch "new XmlDocument()".
Der .NET Programmierer fühlt sich, als drehe sich die Welt um ihn. Microsoft liefert die perfekte, nahtlose Integration der Toolchain. SQL Server, IIS, .NET, Office, BizTalk, ... alles passt so wunderschön zusammen. In Java ist die Integration diverser Tools oft umständlicher und erfordert oft viel Rumprobieren.

Wie auch immer, obwohl mir .NET lieber ist, finde ich, dass es keinen Gewinner gibt. Sowohl Java als auch .NET sind beide sehr mächtig und werden wohl langfristig nebeneinander existieren.

Hallo zusammen,

ich muss auf der Universität auch mit Java arbeiten. Sicherlich würde ich lieber bei C# bleiben aber ich kann das ja nicht entscheiden 🙂

Im .NET wurden sehr viele Dinge (speziell zugriff auf Dateien, Datenbank, Hardware, usw) durch spezielle Klassen vereinfacht.
Jedoch in Java muss man sich vorher X Objekte anlegen um damit arbeiten zu können. Und oft ist es auch dann noch nicht so konfortabel.
Natürlich ein Vorteil ist dass es OS unabhängig ist und somit ohne große Änderungen auf fast jedem OS läuft. Bei C# geht das zwar auch teilweise mit Mono, aber ich denke dass man das nicht wirklich vergleichen kann.

Etwas was mich in Java extrem stört ist die GUI-Entwicklung.
Die Swing Controls sehen nicht schön aus und es ist auch sehr umständlich.
Dabei ist die Performance auch nicht wirklich gut.

Wir z.B. müssen in der Uni ein Spiel (ala Mühle, TicTacToe, Risiko) programmieren.
Und dabei wäre es natürlich zu schön wenn man .NET mit WPF verwenden könnte.
Denn damit wäre es relativ einfach eine schöne Gui zu erstellen.
Aber in Java wirds wohl bei ein paar Punkten und Strichen bleiben 😉

Also in Großem und Ganzen kann ich marco.b zustimmen.
Aber für mich gibt es einen Gewinner und der ist natürlich C# 👍

Gruss
Michael

hmmm...da habt ih recht, in Java muss man X Objekte anlegen um damit arbeiten zu können. Das ist wirklich nicht konfortabel. Ich bin auch der Meinung, dass man mit C# schneller eine komplexe Anwendung entwickeln kann. Falls sich Mono durchsetzen wird, dann sehe ich für Java schwarz.
Eine reine Windows Anwendung würde ich nie mit Java programmieren und die meisten Anwendungen werden doch für Windows geschrieben. Ich frage mich warum in der Industrie immer noch so viel mit Java gearbeitet wird.

Nein, das sieht du falsch. Selbst wenn sich Mono etabliert, ist Javas Zukunft rosig. Bei Banken und Versicherungen zum Beispiel basiert das meiste auf Java, C und Assembler. Hier hat .NET keine Chance, da 50% der Software auf z/OS Großrechnern läuft, und die IT-Landschaft sehr heterogen ist. Noch dazu wird eine Infrastruktur benötigt, von der man ausgehen kann, dass sie sehr lange unterstützt wird, am besten von verschiedenen implementierenden Firmen. Dies bietet Java mit ihrer Enterprise Spezifikation sehr wohl im Gegensatz zu .NET und Microsoft.

Ich finde, mit deiner Beschränkung auf die GUI-Entwicklung sieht du die Sache etwas zu einseitig!!

Die andere Seite ist auch, dass Java schlicht wesentlich älter ist als .NET

und dass Banken doch eher träge sind ist auch kein Geheimnis

Hallo zusammen,

nur ein paar Ergänzungen, was mir persönlich an Java aufgefallen ist / auffällt; für ein wirkliches Fazit kenne ich Java zu schlecht.

Java ist betriebssystemunabhängig.
Das ist IMHO Vor- und Nachteil zugleich. Warum Vorteil, brauche ich nicht weiter zu erläutern.
Leider müssen aber oft aufgrund der unterschiedlichen Betriebssysteme Kompromisse in Sachen Leistungsfähigkeit eingegangen werden. In manchen Punkten abstrahiert Java für meine Verhältnisse zu viel.

Ein Vorteil von .NET: Die CLR mit der IL.
Das Tolle daran ist, dass man eigentlich beliebige Programmiersprachen kombinieren kann. .NET bedeutet also nicht automatisch C#.
Auch bietet sie an manchen Stellen Funktionen, über die Java (noch) nicht verfügt - "echte" Generics und Delegaten als Beispiele. Der praktische Vorteil fällt aber eher gering aus.

Teilweise fehlt mir in Java die Typsicherheit:
An Stellen, an denen unter .NET zu 100% eine Enumertation erwartet werden würde, stößt man in Java sehr oft auf Integerwerte nebst passenden Konstanten - teilweise in irgendeiner anderen Klasse.

Zur Sprache selbst: Mich persönlich stört auch das Fehlen von Properties - man muss mit getXXX und setXXX Methoden arbeiten. Auch die checked Exceptions können manchmal sehr aufregen.

Man fühlt sich in Java einfach weniger Experimenten ausgeliefert.

Dieses Gefühl habe ich auch unter .NET nicht mehr als unter Java.

der Support aus der Open-Source-Community und den Global Playern der Softwareindustrie ist um ein Vielfaches besser als bei .NET.

Die offizielle Javadoc, die ich verwende, liegt IMHO allerdings um einiges hinter der MSDN.
Dafür gibt es eigentlich nichts, für das es in Java kein Paket (entspricht ungefähr .NET Assembly) gibt - und häufig sogar ein kostenloses.

ein Rechtsklick im Codeeditor von Eclipse bietet mir mehr als der gesamte Codeeditor von Visual Studio

Das ist wahr.
NetBeans ist z.B. mit VS Prof. + ReSharper vergleichbar.

Dafür gibt es eigentlich nichts, für das es in Java kein Paket (entspricht ungefähr .NET Assembly) gibt - und häufig sogar ein kostenloses.

Das Pendant zur Assembly ist ein Jar. Kein Paket. Ein Paket ist das Pendant zu einem Namespace!

Die andere Seite ist auch, dass Java schlicht wesentlich älter ist als .NET
und dass Banken doch eher träge sind ist auch kein Geheimnis

Nein, ich arbeite in der DMS- und Workflow-Branche für Banken und Versicherungen. Ich kann dir aus Erfahrung sagen, dass es dort nicht mit ein paar Windows-/Linuxkisten getan ist. Wie würdest du .NET im z/OS integrieren? Es liegt nicht nur am Alter, dass Microsoft dort keinen Fuß fasst!!

es gibt auch Sachen, die ich in Java vermisse z.B. Delegates, Indexer, Properties...
Was mich noch stört in Java, ist die Konvention public-Methoden klein zu schreiben. Ach habe ich noch vergessen Attributes und unsafe code.

ich bin sicher, wenn .NET platformunabhängig wäre, würde es Java irgendwann verdrängen - man kann damit eigentlich alles machen.
Jetzt eine Frage die hoffentlich in ausrechendem Maße zu dem Thema passt: Warum ist Java platformunabhängig, und .NET nicht? Es gibt bei Java doch auch die Platform usw. und diese nervigen Updates... (weil Windows es nicht mitliefern darf, richtig?)
gut, es gibt die zwischensprache wie IL nicht, aber daran kann es doch nicht liegen? Die (Java)Platform funktioniert auch auf allen Systemen - wieso?

Hallo,

Die offizielle Javadoc, die ich verwende, liegt IMHO allerdings um einiges hinter der MSDN.
Dafür gibt es eigentlich nichts, für das es in Java kein Paket (entspricht ungefähr .NET Assembly) gibt - und häufig sogar ein kostenloses.

Ja, da kann ich dir voll und ganz zustimmen.
Denn wenn man in der Java-API etwas nachschaut dann findet man oft nicht viel brauchbares.
Sicherlich kenne ich mich darin noch nicht so gut aus wie in der MSDN aber auch die gefundenen Informationen lassen oft viele Wünsche übrig.

So etwas wie WPF und dessen Vorteile gibt es in Java leider nicht.
Und verglichen mit C# hat es eine schlechtere Performance was man eigentlich ziemlich schnell bemerkt.
Deshalb würde ich es auch nie für eine Anwendung nehmen die fast immer nur auf Windows ausgeführt werden muss.

Gruss
Michael

Viele fehlende, aber sehr nützliche Dinge(Properties(sollen ja in Java 7 kommen), Delegates, ...) wurden ja bereits genannt.
Aber es gibt in Java kein call by reference? Warum?

Ich finde, mit deiner Beschränkung auf die GUI-Entwicklung sieht du die Sache etwas zu einseitig!!

Was bleibt dir in .NET übrig? Wie du ja richtig gesagt hast: In der Enterprise-Welt ist der Zug zugunsten von Java abgefahren. Du kommst mit einer .NET-Anwendung heutzutage in kein Rechenzentrum. Wenn da nicht J2EE draufsteht oder die Geschichte wenigsten in einem etablierten App-Server läuft, ist das Gespräch schon beendet.

Ob .NET im Embedded-Bereich eine Chance hat? Ich denke nicht. Windows CE ist einfach zu schlecht um den neuen Handy-BS paroli bieten zu können. Über Jahre keine Innovationen, nur Kosmetik.

Die allerletzte Chance für .NET und auch für MS selbst ist Silverlight. Und auch hiet scheint es nicht voranzugehen, obwohl die Technologie selbst den Mitstreitern überlegen ist.

Wenn ICH heute die Wahl hätte: Ich würde Java machen. Nicht weil ich Java so sehr mag oder besser finde, sondern weil es über kurz oder lang alles andere wegdrückt.
Es bietet in jedem Falle bessere Berufschancen.

Mit .NET wird man noch eine Weile Client-Anwendungen machen, ein bißchen Web- und Mittelstandssoftware. Dann stirbt der Client und damit MS und .NET.

Ich denke der Silverlight Zug ist abgefahren. Mit der Integration von JavaFX in die JVM seit dem Update 10 der Version 6, existiert eine neue mächtige Technologie zur Entwicklung von RIA. Mit JavaFX lassen sich GUIs deklarativ beschreiben, mit 100 zeilen Code lassen sich GUIs erstellen, was bisher mit ähnlichem Aufwand schlicht unmöglich war.

Guter Artikel zum Thema:

http://www.codecomplete.de/blogs/xamlblog/archive/2008/11/10/javafx-versus-wpf-und-silverlight.aspx

M.E. ist das Rennen hier noch nicht entschieden. Gerade weil Google und Apple mit Sun hier definitiv nicht an einem Strang ziehen (bei Google mag sich das ändern). Und anders als bei den großen Rechnern hat Sun hier kaum Verbündete wie IBM und Co.. Synergie-Effekte sind wegen der schwachen Stellung von Java auf PC-Clients und der Tatsache, dass JavaFXScript eine eigene Sprache darstellt gering. Die Trennung zwischen Anwendungslogik und Oberflächendeklaration fehlt bei JavaFX (im Gegensatz zu XAML) aktuell. Ob das in der Praxis eine Rolle spielt muss sich natürlich zeigen. Zur Zeit wird letzteres wenig ins Gewicht fallen, aber wenn PC und mobile Clients sich funktional annähern, kann sich das durchaus ändern. Vermutlich wird die OS-Community recht schnell Tools - vergleichbar mit ExpressionBlend - basteln.

Aber meiner Erfahrung nach spielen Produktivitätsvorteile sowieso oft nur eine untergeordnete Rolle, ob sich eine Technologie durchsetzt. Aspekte wie Verbreitung sind oftmals wichtiger. Und das ist wegen der starken Verbreitung von Java auf Consumer-Handys das größte Pfund von JavaFX.

Es bietet in jedem Falle bessere Berufschancen.

bist Du dir sicher, dass es so ist? mag sein heute noch aber in 10 Jahren....hmmm...Die meisten Programme werden doch für Windows geschrieben. Fast überall ist man auf UI/GUI angewiesen, und da kann C# punkten. Man kann doch Anwendungen effizienter und schneller schreiben und das ist auch ein wichtiger wirtschaftlicher Aspekt. Schau die viele Firmen, die versuchen alles was bis jetzt mit C++, Delphi geschrieben worden ist auf .NET/C# migrieren. Beispiele: Infineon wird die ganze Tool-Suite mit .NET entwickelt, von Vector-Informatik werden die neue Tools auch mit C# entwickelt, bei Siemens Medical Solution das Software wird auch mit C# gemacht bzw von C++ nach C# migriert, das gleiche bei Siemens A&D STEP7 Projekt für über 100 Softwareentwickler für über 2 Jahre (riesiges Projekt) wird auch mit C# gemacht....und, und, und

Ich denke, da kann Java einfach nicht mithalten. Wie oft braucht man Plattformunabhängiges Software?

Mit .NET wird man noch eine Weile Client-Anwendungen machen, ein bißchen Web- und Mittelstandssoftware. Dann stirbt der Client und damit MS und .NET.

Sehr interessante Theorie, kannst Du die begründen?

Ich denke, da kann Java einfach nicht mithalten. Wie oft braucht man Plattformunabhängiges Software?

So sieht deine Märchenwelt aus, danke für die Beschreibung. Zielt aber leider an der Realität vorbei. Natürlich werden viele Projekte mit C# / .NET entwickelt, .NET greift natürlich vieles von dem ab, was im Windows-Umfeld entwickelt wird. Das war's dann aber auch. Im Enterprise-Bereich ist dies leider nicht gerade viel, denn dort findet Windows nur auf den reinen Clientmaschinen Verwendung, als Host für Office und einem Browser. Das Geschäft im Enterprisebereich läuft aber - wie könnte es anders sein - auf dem Server ab. Und da ist Java unangefochten Nummer 1, .NET spielt keine große Rolle.

Du redest wie gesagt sehr GUI-fokusiert. Vielleicht solltest du dich mal mit der Java Enterprise Edition befassen, damit du siehst, auf welche Dienste es im Unternehmensumfeld ankommt und was Java diesbezüglich bietet. Die Kontra-Swing-Argumente in diesem Thread sind lächerlich. Software in diesem Bereich spielt sich eh meistens im Web ab, oder die Clients werden in einer OS-spezifischen Umgebung geschrieben. Oft wird tatsächlich .NET als Client für eine Javasoftware eingesetzt, sofern es entsprechendes Know-How auf beiden Gebieten gibt. Das ist aber nicht ganz die Position, in der Microsoft das .NET Framework gern sehen würde - als kleiner Endpunkt einer Java-basierten Infrastruktur in einem großen Unternehmen.

ich persönlich denke im Übrigen, dass Microsoft einen wichtigen Trend diesbezügl. verschlafen hat: Den der Applikationsserver (siehe GlassFish, JBoss,...)

Sehr interessante Theorie, kannst Du die begründen?

Kann ich mal versuchen, das zu begründen?

Komplette .NET-Anwendungen machen (leider) oft nur in halbwegs homogenen Umgebungen einen Sinn. Die finden sich sehr oft in erwähnten mittelständischen Umgebungen - da der Mittelstand auch nicht bekannt dafür ist, besonders risikofreudig hinsichtlich seiner Infrastruktur zu sein, wird das wohl auch noch eine Weile so bleiben und komplexen .NET-Anwendungen einen Nährboden geben.

Im Gegensatz zu svenson glaube ich nicht an Webanwendungen. Die Dinger entwickeln sich meiner Meinung nach immer mehr zu einer Kombination aus einem JS-Framework, ein bisschen HTML, einem dahinterklemmenden CMS und vor allem Services, die irgendwo im Hintergrund die eigentliche Arbeit machen. Ich sehe (aus meiner täglichen Arbeit heraus) keinen kommerziellen Einsatz für plugingetriebene Mechanismen - Flash, Silverlight, JavaFX. Die werden nicht sterben, aber weiter ihr Nischendasein dort fristen, wo Flash schon seit Jahren ist - Privatanwender und besonders hippe Einzelfälle von Unternehmen meist aus dem Werbe-, Spiel- und Marketingumfeld. Wer sich die Krankenhaus-Silverlight-Demo anschaut und mit aktuell in Krankenhäusern im Einsatz befindlicher Software vergleicht, der sieht auch sofort, wieso das meine Meinung ist.

.NET hat meiner Meinung nach insbesondere über die WCF allerdings die Chance, sich auch in heterogenen Umgebungen in Softwaresysteme nahtlos zu integrieren. In Kombination mit der unbestreitbaren Leichtigkeit des Entwickelns unter .NET dürfte das auch langfristig das Überleben des Frameworks sichern.

(Java hat kein Pendant zur IL im Framework? hääää? Bytecode, wie wär's damit? Man kann auch mit anderen Programmiersprachen gegen das Javaframework programmieren, der Unterschied ist nur, dass das nicht der Intention der Architekten von Java entsprach. Wo die Vielfalt an Sprachen für .NET ein Vorteil sein soll, muss mir auch erst jemand zeigen. Ebenso, wo Eclipse und die Entwicklung darin dem Visual Studio (mit einigen Addins, aber versucht mal Eclipse ohne Plugins...) überlegen sein soll. Ich hasse Eclipse. Weil ich's benutzen musste.)

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

@marco.b: tja, schau aber die Beispiele was ich aufgelistet habe, das sind alles riesige Projekte und die basieren auch auf Client-Server-Modell aber wie gesagt alles unter Windows.
Ich habe mal eine Datei mit über 13000000 Nummern auslesen müssen und überprüfen, ob alle Nummern eindeutig sind. Das habe ich mit Hashtable gelöst. Einmal habe ich die Nummern unter C# in die Dictionary geladet und dann habe ich das gleiche mit Java versucht, rate wer war performanter.

Ich habe da noch einen ganz wichtigen Punkt. Für Java gibts nicht so ein tolles Forum wie myCsharp.de. 😁

@marco.b: tja, schau aber die Beispiele was ich aufgelistet habe, das sind alles riesige Projekte und die basieren auch auf Client-Server-Modell aber wie gesagt alles unter Windows.

Medical Care ist definitiv Mittelstandssoftware. Nicht das Riesenprojekt, die anderen Beispiele sind jetzt auch nicht wirklich so riesig. Klar, bei den Zielgruppen kann man homogene Umgebungen voraussetzen. Das ist aber im großen Geschäft nicht der Fall.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

Medical Care ist definitiv Mittelstandssoftware. Nicht das Riesenprojekt, die anderen Beispiele sind jetzt auch nicht wirklich so riesig.

Kennt denn jemand große Projekt auf .NET basieren?

Nicht wirklich. Das ist ja der Punkt. Ich kenne allerdings, um fair zu sein, kein einziges großes Projekt, das auf EINER Technologie aufbaut. Da erübrigt sich der .net/java-Vergleich.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

Ich kann LaTino in vollem Maße zustimmen. Und natürlich gibt es auch Großprojekte, bei denen .NET zum Einsatz kommt (zum EINSATZ kommt, nicht aber die gesamte Infrastruktur ausmacht!). Das sind aber nunmal die Ausnahmen.

Zur Performance: Java und .NET Sprachen nehmen sich bezügl. Ausführungsgeschwindigkeit nichts. Java ist hier und da langsamer, an anderen Stellen aber wieder schneller. Jedenfalls ist es kein Argument für .NET, das irgendein Softwareunternehmen überzeugen kann.

Ich kann LaTino in vollem Maße zustimmen.

Juhu! 😉

MS stellt das eigentlich recht clever an. .NET und C# macht für den Anwender mal abgesehen von der benötigten Infrastruktur keinen echten Unterschied zu Java. Geschwindigkeit, Aussehen - das ist alles letzten Endes nur Kosmetik. "Hauptsache det looft", sozusagen. Aber C# insbesondere bringt ein paar Konstrukte mit, die dem Programmierer das Leben leichter machen. Die das Entwickeln beschleunigen. Der mehr Flexibilität in der Entwicklung zu geringeren Kosten als bei Java ermöglichen. Sieht für mich so aus, als versuche MS, das Problem an der Wurzel (dem Programmierer) zu packen. Was mich angeht, haben sie damit jedenfalls Erfolg 😉.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

Dann stirbt der Client und damit MS und .NET.

Hmm, das sehe ich nicht so. .NET selber wird, denke ich mal, nicht aussterben. Dafür steckt MS viel zu viel Ressourcen in das Thema. Selbst neue Entwicklungen bei MS werden schon teilweise in .NET geschrieben (BizTalk 2009 enthält viel .NET Code). Ich denke mal nicht, das MS in seinen eigenen Projekten .NET einsetzen würde, wenn .NET auf einem absterbenden Ast sitzt.

Und das Java sich in Enterprise Umfeld druchgesetzt hat, liegt IMHO einfach an der Zeit. Java gibt es länger als .NET. Mit der Zeit ändert das sich vielleicht, vielleicht aber auch nicht. Das wird man sehen.

.NET hat meiner Meinung nach insbesondere über die WCF allerdings die Chance, sich auch in heterogenen Umgebungen in Softwaresysteme nahtlos zu integrieren. In Kombination mit der unbestreitbaren Leichtigkeit des Entwickelns unter .NET dürfte das auch langfristig das Überleben des Frameworks sichern.

Full ACK.

Kennt denn jemand große Projekt auf .NET basieren?

Selbst an dem Projekt an dem ich beteiligt bin, wird zwar viel .NET geschrieben, aber halt nicht alles. Das ist auch IMHO noch nicht möglich (bzw. wird es nie sein). Ca. 80% aller Fremdfirmen, mit denen wir zusammen arbeiten, nutzen Java, PHP, C++ und noch andere Sachen. Die Daten werden von verschiedenen DBMS (SAP, Oracle, MSSQL, DB2) über WebServices ausgetauscht. Erst alle Einzelprojekte jeder Firma ergibt das Gesamtprojekt. Sowas ist also IMHO unmöglich alles in .NET zu schreiben.

Was mich angeht, haben sie damit jedenfalls Erfolg

Jepp, sehe ich ebenso.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

Ebenso, wo Eclipse und die Entwicklung darin dem Visual Studio (mit einigen Addins, aber versucht mal Eclipse ohne Plugins...) überlegen sein soll. Ich hasse Eclipse. Weil ich's benutzen musste.)

Ich hasse Eclipse auch 😄, halte aber NetBeans für eine Entwicklungsumgebung, die sowohl VS 2008 wie auch Eclipse übertrifft (mit einem sehr guten GUI-Builder übrigens).

Hallo,

Beruflich entwickle ich mit .Net/C#. In der (schulischen) Ausbildung hab ich fast 2000 Stunden Java programmiert.
**IDE **
Die .Net IDE's sind im vergleich zu den Java-IDE's viel Angenehmer. Hier merkt man einfach Microsoft's Erfahrung (Okey, selbst #Develope finde ich besser als einige der Java-IDE's). (Eclipse war der reine Horror für mich.

Framework
Das .Net Framework ist um einiges konsistenter als das Java-Framework. Und Microsoft scheut auch nicht Fehler zu korrigieren, auch wenn sich eine Signatur dadurch ändert. Top! daumen hoch Ansonsten geben sich Funktionsumfang und auch verfügbare 3-Anbieter-Teile nicht viel.

Sprache
Hier gibt's eigentlich nur einen (für mich) relevatnen Punkt: Properties.
Dadurch ist alles besser lesbarer und ... geschlossener. 🙂

Entwicklung/Trends
Wenn man mal so anschaut, was .Net im vergleich zu Java "augehohlt" hat! Huijuijui!! Eine Änderung bei großen Unternehmen ist natürlich langsame, da muss man wohl noch ein paar Jahre abwarten. (Naja, zumindest eine der größten IT-Firmen der Welt stellt zumindest auf .Net um.) Sollte .Net sein tempo beibehalten, sieht Java bald verdamt alt aus.

Trotz alle Vermutungen, Theoriene, Statistiken und Prophezeiungen. Nur eine kann es wirklich sagen und zeigen

    die Zeit.

Gruß
Juy Juka

Ich hasse Eclipse auch 😄, halte aber NetBeans für eine Entwicklungsumgebung, die sowohl VS 2008 wie auch Eclipse übertrifft (mit einem sehr guten GUI-Builder übrigens).

Netbeans ist okay, das stimmt. Der GUI-Builder ist...besser als in Eclipse, weil überhaupt vorhanden. Schlechter als Expression Studio, schlechter als die WPF-Tools im VS2008. Wenn schon, wollen wir doch auch immer die neuesten verfügbaren Tools vergleichen 😉.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

Eclipse verfolgt eine komplett andere Philosophie bei der Entwicklung, das ist schwer direkt mit VS zu vergleichen. Hier aber mal ein paar Dinge in Eclipse, die mir in Visual Studio leider fehlen (nur soviel zum Thema Microsoft-Erfahrung bezügl. GUIs):

* Etwa das 5-fache an Refactoringmöglichkeiten
* Bei Klick auf Identifier sehe ich markiert die anderen Stellen, an denen er Verwendung findet (wird jetzt erst in VS 2010 umgesetzt, für Eclipse seit Jahren Standard)
* Direktes Anzeigen von Fehlern und Warnungen im Dateibaum des Projekts anhand des Dateiicons
* Markieren von Fehlern beim Editieren. Funkt in VS generell auch, aber wesentlich unstabiler als bei Eclipse. Manche Fehler werden beim Editieren direkt erkannt und markiert, andere erst beim Kompilieren. Manche Fehler die ich behebe, bleiben markiert, bis ich wieder einen Build starte. In Eclipse sehe ich immer die tatsächlichen Fehler. Das Feedback beim Editieren ist genau dasselbe, wie beim Kompilieren.
* Direkte SVN/CVS-Integration und das kostenlos und stabil
* Visual Studio hat immer diese dummen Vereinfachungen drin. wenn ich schon sehe, dass standardmäßig Linq in jedes neue Projekt eingebunden wird, könnt ich den Bildschirm gegen die Wand schmeißen. Oder auch die 4, 5 using-Direktiven, die standardmäßig in jeder neuen Klasse drin sind - klar man kann sich ein Template exportieren. Aber wieso muss ich denn solche Dinge explizit abschalten? Nur weil ein paar Anfänger nicht wissen, wie Verweise einzubinden sind? Mich stört es einfach, wenn Dinge in mein Projekt eingebunden sind, die ich nicht brauche. Das mag Prinzipsache sein, aber für mich ist das wichtig.
* Eclipse hat n besseren Build-In-Support von Buildtoolchains (Ant / Maven)

Um auch mal für VS zu sprechen:
* Der GUI-Editor von VS schlägt jeden anderen um Längen. Netbeans hat zwar eine ganz nette Lösung, die ist aber selbst in der 6.5 ziemlich verbuggt.
* VS fühlt sich - abgesehen vom Codeeditor - besser an. Die Designerunterstützung ist super
* In VS findet man sich schneller zurecht
* Die Auto-Codevervollständigung ist einmalig. So schnell und zackig bieten das weder Eclipse noch Netbeans an.

Da ist es wieder das Problem mit dem Tellerrand.
Jeder meint, das er den alleinig wichtigen Teilbereich in der SW-Entwicklung vertritt.

Diejenigen die EnterpriseApps schreiben glauben, das das der grössere Markt und
damit der wichtigere ist, und die Desktop Entwickler glauben das gleiche.
Wobei die Enterpriseentwickler immer meinen von Obenherab schauen zu müssen.

Tatsache ist, das beide Bereiche gross sind, aber zumindest in den letzten 10
Jahren hat der Desktop Markt weitaus mehr zugenommen als der Enterprisemarkt,
da eben durch .NET und CO auch der kleine Handwerker jetzt erschwingliche
spezial Software bekommen kann.
Weshalb macht denn SAP so einen Bohai um den kleinen Mittelstand?

Der Enterprisemarkt wird derzeit durch BI aufgebläht, wobei sich zeigen wird, ob
das dann auch etwas bringt.

Hallo zusammen,

eine interessante Diskussion hier 😃
Ich arbeite sowohl an Projekte in .NET als auch in Java und muss sagen, dass ich persönlich lieber an den .NET-Projekten arbeite.

Was ich bei Java schmerzlich vermisse sind Delegates, call by reference und echte Enums. Auch die Unterstützung für Generics ist wegen der Abwärtskompatibilität umständlich zu handhaben. Und die Java API Dokumentation ist ein Grauß. Man muss Glück haben wenn man Beispielcode finden will.

Die IDE Ecplipse bietet ein fast unüberschaubares Maß an Funkionen, von denen manche nützlich sind und manche eben nicht. Ausserdem stürzt es mir öfter ab als VS, und durch die vielen benötigen Plugins ist es oft sehr träge.

Warum Java im Enterprise-Bereich so gut etabliert ist liegt aber meiner Meinung nach vor allem daran, dass sich Windows zu spät als Betriebssystem für Server durchgesetzt hat. Und wenn man keinen Windows-Server hat bleiben nicht viele (moderne) Alternativen zu Java.

@mabo: ich bin mit 100% einverstanden.

**IDE **
Die .Net IDE's sind im vergleich zu den Java-IDE's viel Angenehmer. Hier merkt man einfach Microsoft's Erfahrung (Okey, selbst #Develope finde ich besser als einige der Java-IDE's). :::

Zum Thema IDE das wird wohl einfach Geschmackssache bleiben, sofern man die freie Wahl hat. Jede hat seine Vorteile, z.B bin ich zur Zeit gezwungen ein Java-Projekt in Eclipse zu machen ( ich mags echt nich 🙁 ) weil es im Vergleich zu Netbeans sinnvoll AspectJ integriert, und in der Architektur halt eben auf Aspekte gesetzt wird. Andererseits hab ich mich gestern geärgert als ich in VS 2008 eine Klasse geschrieben hab und Felder angelegt. Es ist nich möglich sich für alle Felder automatisch Properties generieren zu lassen, sondern nur für jedes einzeln. In Netbeans standardmäßig kein Problem. Aber im groben würde ich sagen, das sind Nuancen.

Zum Thema GUIs, meine Meinung ist das Swing durch JavaFX abgelöst wird. Eine GUI deklarativ zu beschreiben ist wohl einfach der natürlichere Ansatz, wie ja auch mit WPF. Außerdem existieren hierbereits Tools für Photoshop und Illustrator. Man muss einfach auch sehen, dass diese Technik sehr neu ist. Wenn das passiert ist seh ich auch keine großen Unterschiede mehr zwischen Java und C#

Zum Thema VM, die JVM ist einfach älter, und die Abwärtskompabilität ist durchaus ein Problem. So ist es durchaus nervig dass, Generics nur auf Sprachebene vorhanden sind, aber keinen wirklichen Typ darstellen. Hier durchaus ein Pluspunkt für .NET bei denen das Typsstem ja "extern" ist. Hier hat meiner Meinung nach Microsoft den "Vorteil", dass es nachziehen kann und eine saubere Architektur vorweisen kann. Nichtsdestotrotz die JVM gibts quasi für jede Plattform und das was sie tut, tut sie mittlerweile extrem performant für ne VM. Sehe jetzt hier auch keinen Gewinner.

Zum Thema Enterprise, hier ist es natürlich eher ein Vorteil für Java schon länger dabei zu sein und auch auf "echten" Server-OS zu laufen. Hier würde ich zur Zeit ausschließlich auf J2EE setzen.

Zum Thema Sprache selber, gehe ich davon aus dass es in Zukunft eher Richtung Multiparadigmensprache gehen wird, da funktionale Ansätze im Kommen zu sein scheinen. Also eher Java mit Closures (hoffentlich schon in Version 7) oder Scala, oder F# und C#-Mischung. Aber das dürfte eine rein persönliche (eher universitäre und nicht aus der praxis kommende) Meinung sein

  1. ich muss sagen das noch recht viele unwahrheiten im umlauf sind.
  2. ich muss sagen das negatives durch unwissen verbreitet wird (aber das ist überall so und eigendlich normal)

daher will ich mal ein paar dinge in die runde werfen (das wird ein längerer post...)

* Direkte SVN/CVS-Integration und das kostenlos und stabil dafür gibt es auch für vs kostenlose plugins.

Visual Studio hat immer diese dummen Vereinfachungen drin. wenn ich schon sehe, dass standardmäßig Linq in jedes neue Projekt eingebunden wird, könnt ich den Bildschirm gegen die Wand schmeißen. Oder auch die 4, 5 using-Direktiven, die standardmäßig in jeder neuen Klasse drin sind - klar man kann sich ein Template exportieren. Aber wieso muss ich denn solche Dinge explizit abschalten? Nur weil ein paar Anfänger nicht wissen, wie Verweise einzubinden sind? Mich stört es einfach, wenn Dinge in mein Projekt eingebunden sind, die ich nicht brauche. Das mag Prinzipsache sein, aber für mich ist das wichtig.

Ich habe mal eine Datei mit über 13000000 Nummern auslesen müssen und überprüfen, ob alle Nummern eindeutig sind. Das habe ich mit Hashtable gelöst. Einmal habe ich die Nummern unter C# in die Dictionary geladet und dann habe ich das gleiche mit Java versucht, rate wer war performanter.

wenn du die templates nciht benutzen willst, dann erstelle doch einfach ein leeres projekt... wo liegt da das problem? oder erstelle dein eigenes template das voll und ganz deinen wünschen entspricht. dieses argument ist ziemlich schwammig...

* Etwa das 5-fache an Refactoringmöglichkeiten
* Bei Klick auf Identifier sehe ich markiert die anderen Stellen, an denen er Verwendung findet (wird jetzt erst in VS 2010 umgesetzt, für Eclipse seit Jahren Standard)
* Direktes Anzeigen von Fehlern und Warnungen im Dateibaum des Projekts anhand des Dateiicons
* Markieren von Fehlern beim Editieren. Funkt in VS generell auch, aber wesentlich unstabiler als bei Eclipse. Manche Fehler werden beim Editieren direkt erkannt und markiert, andere erst beim Kompilieren. Manche Fehler die ich behebe, bleiben markiert, bis ich wieder einen Build starte. In Eclipse sehe ich immer die tatsächlichen Fehler. Das Feedback beim Editieren ist genau dasselbe, wie beim Kompilieren.

diese funktionen bietet resharper & co auch. gut es kostet was aber eclipse hatte diese funktionen auch nciht von anfang an und microsoft bessert mit jeder version nach...

@ disskusion um großprojekte:

das bereits gennante step7 projekt mit seinen 100 mitarbeitern gehört eigendlich zum großprojekt TIA von siemens. da kommt also noch das komplette HWCN, HMI, SIMOTION und und und hinzu. alles im allem sind das weltweit über 1000 entwicker die daran arbeiten. 95% davon ist c# .net 2.5 SP1. Verteilt ist das projekt unter mehreren standorten in deutschland, ungarn, china, indien, usa und schweden(oder finnnland? ich habs ehrlichgesagt vergessen.... sagen wir einfach skandinavien).
wir haben insgesamt jetzt bereits über 10 millionen c# LOC (ich weiß das weil ich einer der wenigen bin, der auf fast alle sourcen zumindest lesenden zugriff haben)

ich denke das dürfte als großprojekt durchgehen.

@ diskussion um server und rechenzentren:
stark vertreten ist momentan ASP.NET. ich war mal bei einem projekt, da haben wir für einen namenhaften, großen automobilhersteller eine werkssteuerung mit MES unterbau gemacht, wobei dir komplette bedienung auf ASP.NET basiert hat. das war ein ziemlich großer cluster für den webserver und die webservices (alle in .net) und das MES system.

bei siemens selbst ist in derern rechenzentren eine starke ms präsenz zu finden. Viele admintools werden daher auch in c# geschrieben, da hier die anbindung sehr komfortabel und schnell umzusetzen ist.

tja, schau aber die Beispiele was ich aufgelistet habe, das sind alles riesige Projekte und die basieren auch auf Client-Server-Modell aber wie gesagt alles unter Windows.
Ich habe mal eine Datei mit über 13000000 Nummern auslesen müssen und überprüfen, ob alle Nummern eindeutig sind. Das habe ich mit Hashtable gelöst. Einmal habe ich die Nummern unter C# in die Dictionary geladet und dann habe ich das gleiche mit Java versucht, rate wer war performanter.

sehr plumper vergleich... genauso plump wie die allermeisten direkten .net vs java vergleiche im internet... unabhängig davon wer da gerade die nase vorne hatte.

@allgemiene diskussion:

im forum hatten wir dieses thema schon des öfteren und das fazit war immer das gleiche: beide haben ihre daseinsberechtigung und werde auch in zukunft nebeneinander existieren.

sehr plumper vergleich... genauso plump wie die allermeisten direkten .net vs java vergleiche im internet... unabhängig davon wer da gerade die nase vorne hatte.

ja da hast Du recht, ich habe ein dummes Beispiel gepostet. Aber immer hin, bei der Performance Messung muss man mit irgendwelchen Indikatoren arbeiten. Am anfang wollte ich das Problem mit Java lösen aber es hat nicht geklappt dann habe ich deswegen VS 2005 runtergeladet und erst dann gelöst. Das gleiche Problem habe ich mal mit Delphi gehabt. Delphi hat standardmäßig keine HashTable implementierung und da habe ich eine Open-Source Impl. eingesetzt. Trotzdem war Hashtable von C# um Fakto 5 schneller als Hashtable (klar, nicht original von Borland) von Delphi, wobei Delphi native code erzeugt. Das sind Sachen, die auch bei der Entwicklung eine Rolle spielen. Damit möchte ich sagen, dass Microsoft impl. von Hashtable (Dictionary..) clever gelöst hat

im forum hatten wir dieses thema schon des öfteren und das fazit war immer das gleiche: beide haben ihre daseinsberechtigung und werde auch in zukunft nebeneinander existieren.

Dass die beide ihre daseinsberechtigung haben ist mir schon klar, ich wollte eigentlich fragen, wo die Stärken von Java bzw. C# liegen oder anders ausgedrückt wo und für was werden die Sprachen eingesetzt z.B. C# für GUI und Windows-Anwendungen, weil...., Java für Enterprise bereich, weil....

Grüße

.net/c# und Java sind direkte Konkurrenten. Man kan beide für so ziemlich dieselben Zwecke einsetzen und beide haben da jeweils auch ähnliche Fähigkeiten. .net ist neuer und entwickelt sich momentan deutlich rasanter, Java hat dafür eine deutlich ältere und erfahrenere Community. Kann man auch daran erkennen, daß viele erfolgreiche, über Jahre gereifte Projekte aus der Java-Welt in die .Net-Welt portiert worden sind. Wenn ich mir anschaue, welche zusätzlichen Libraries ich neben dem .net-Framework nutze, sind das fast ausschließlich portierte Java-Projekte (NHibernate, Spring.net, Log4net). Das funktioniert momentan ganz gut, weil auf Java-Seite so viel Zeit und Arbeit in gut funktionierende Konzepte gesteckt wurde. Ich seh auf .net-Seite bisher nicht so viele nichtkommerzielle Ansätze mit ähnlicher Qualität und bin gespannt, wie sich das weiterentwickeln wird.

Naja, wenn Du mal auf Codeplex schaust, oder doe ALT.NET anschaust,
wirst Du feststellen, das .NET auch sehr viele eigenständige Projekte hat.

Gerade seit FW 3.5 mit Lambda und co gibt es so viele beuerungen, die es mit Java nicht gibt...

ich frage mich auch warum Sun (also Java) Konzepte wie z.B. delegates nicht eingeführt bzw. nicht einführen möchte. Lambda, WPF...und andere Neuerungen da ist Microsoft doch schneller.

Ich kann auch mal meinen Senf dazugeben.

Ich habe über drei Jahre Java programmiert (vorher mit C/C++) angefangen. Hier natürlich die ganze Schiene (JSP, Struts, Tomcat, EJB, Eclipse, Ant usw.). Dann hatte ich zu einer Unternehmung gewechselt, die mittels C# und .NET entwickelt. Ich hatte mich schon teilweise total lausig gefühlt, weil ich auf diese, in der "Java-Welt" verpönte Umgebung umgestiegen bin, bzw. auch musste, es gab halt in dem Ort kein anderes Stellenangebot.

Ich dachte aber auch, da ich ja jahrelang mit Open-Source-Tools gearbeitet hatte, dass vieles jetzt ganz anders wird, denn man kann ja erwarten, so dachte ich jedenfalls, dass die kommerziellen Angebote wesentlich besser sind, als die frei entwickelten, da man ja dafür bezahlen muss.

Die Sprache C# habe ich mir sehr schnell angeeignet, ich habe sehr sehr schnell gemerkt, dass C# als Antwort zu Java entwickelt wurde. Ich würde einfach mal behaupten, dass C# 95 Prozent Java abdeckt. Sehr gut fand ich Indexter, Delegates, und Eventhandling, sonst war ja alles identisch. Mit out und in kann ich nix anfangen, ist imo kein schöner Programmierstil. Sicher gibt es noch ein paar mehr Sachen, die fallen mir aber jetzt gerade nicht ein.

Leider musste ich mich noch mit 1.1 begnügen. Hier ging es dann schon los. Es gab z.B. keine Generics, die es aber in Java schon länger gab. Un die Entwicklungsumgebung 1.1, na, wie soll ich da jetzt sagen, war einfach lausig.

.NET 2.0 war schon ein Megaschritt und kam dann auch wieder etwas an Eclipse ran. Ich muss wirklich sagen, dass ich anfangs total enttäuscht von der IDE war. Ich hatte wirklich gedacht, dass man für Geld mehr bekommt als für das kostenlose Eclipse und was war, Pustekuchen. Der absolute Hammer war auch noch 1.1, da bin ich öfters an die Decke gegangen in der Arbeit. Das ist wie ein Arzt, der jahrelang mit den besten Werkzeugen arbeitet und dann nur noch einen Hammer und eine Schere in der Hand hat.

Mitlerweile habe ich mich daran gewöhnt. Es gibt auch viele kostenlose Plug-Ins für die IDE (z.B. Koda ect.), so dass ich jetzt mitlerweile ganz gut damit arbeiten kann.

Vorteilhaft finde ich auch, dass sehr viele Tools aus der Java-Welt nach C# portiert wurde, um nur mal einige zu nennen: NAnt, NHibernate, NDoc, NUnit und noch viele mehr.

Ich würde nie mehr in Java programmieren, wenn ich weiß, dass das Programm auf einer Windows-Umgebung laufen soll. Auch finde ich es angenehmer in C# zu programmieren als in Java. Die GUI-Entwicklung in .NET ist der absolute Hammer, verglichen mit Java, hier teilweise hardgecoded Swing-Anwendungen programmiert. Jemand, der Jahre lang z.B. mit Struts oder JSF gearbeitet hat und dann mit ASP.NET entwickelt muss dieses Framework einfach nur toll finden. Nix geht schneller. Was meint ihr, wie lange ich immer gebraucht habe, um Struts + Tomcat + Servlet aufzusetzen und dann was zum laufen zu bringen. In ASP.NET einmal Control reingezogen - fertig. Neben den Webanwendungen sind natürlich auch die GUI-Anwendungen mittels WPF und Windows-Forms der Hammer, unschlagbar.

Was ich aber immer noch vermisse, ist Eclipse. Manchmal, wenn ich gewisse Aktionen in VS durchführen möchte, z.B. Add Reference, dann weiss ich, dass ich mal schnell surfen kann. In der Arbeit sagen wir dann immer, ich habe jetzt die Microsoft-Methode ImRightBack aufgerufen. Das ist total nervig, weil dann einfach eine Zeit lang nix mehr geht. Bei Eclipse war es so, dass es eher länger gebraucht hat um zu starten, jedoch nach dem starten ist das Teil gelaufen (wenn nicht vollgepackt mit irgendswelchen PlugIns).

Fazit. Ich werde weiterhin hauptsächlich mittels C# entwickeln und bin super zufrieden damit - trotzdem fehlt mir, nach nun annähernd zwei Jahren C#-Entwicklungszeit, immer noch sehr Eclipse. Es ist so, wie ich im Web mal gelesen habe ...

Visual Studio is a great tool ... but Eclipse is in another league!

Leider musste ich mich noch mit 1.1 begnügen. Hier ging es dann schon los. Es gab z.B. keine Generics, die es aber in Java schon länger gab.

Java kennt keine Generics. Ich rede von der Runtime, nicht der Sprache. In dem Sinn hat Java (die Sprache) etwas, das dem Programmierer vorgaukelt, es gäbe Generics - das hatte es wirklich schon lange, bevor .NET (also die Runtime) Generics bekam.

http://www.jroller.com/scolebourne/entry/generics_bashing_your_head_against

Ich greife es nur auf, weil's genau einer der Mythen ist, die über Java/.NET verbreitet werden: dass Java es "zuerst" hatte und .NET das Konzept nur übernommen hätte. Tatsächlich ist es aber genau ein Beispiel für jene Stellen, an denen .NET technologisch tatsächlich überlegen ist. Nutzt aber nichts - da geb ich dir recht - wenn die Entwicklertools (in den Augen vieler Entwickler) nicht mithalten können. Zudem sind Entwickler oft erstaunlich unflexibel, so dass der Umstieg auf Java oder .NET immer irgendwie erzwungen werden muss. Vorher wird sich zurückgelehnt und nach Herzenslaune FUD verbreitet. Wenn man die Technologie verbreiten will, muss man aber bei den Entwicklern ansetzen - ein Grund, wieso Monkeyboy Ballmer auf Bühnen herumtanzt und "Developers" skandiert 😉.

Gruß,

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

Nachtrag dazu: O'Reilly haben gerade ihre regelmäßige Analyse des Programmiersprachen-Buchmarktes veröffentlicht. Inwieweit das irgendeine Aussage über Verbreitung und Entwicklung einer Sprache gibt, soll jeder selber für sich bestimmen.

http://radar.oreilly.com/2009/02/state-of-the-computer-book-mar-22.html

LaTino
Ich find die BusinessObjects-Treemaps einfach nur genial...schade, dass nur die feststehenden Grafiken veröffentlicht sind 😄

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

Naja, wenn Du mal auf Codeplex schaust, oder doe ALT.NET anschaust,
wirst Du feststellen, das .NET auch sehr viele eigenständige Projekte hat.

Gerade seit FW 3.5 mit Lambda und co gibt es so viele beuerungen, die es mit Java nicht gibt...

das ist aber alles noch SEHR jung. In den Java-Ports stecken ja neben Mannjahrzehnten Entwicklungszeit auch mehrere Jahre Erfahrung im produktiven Betrieb. Die Frage ist ja, wie viele dieser Projekte in einem Jahr (und in zweien, dreien) noch weiterentwickelt werden.

das ist aber alles noch SEHR jung.

.net ist auch sehr jung. erst ab .net 2.0 ist etwas vernünftiges entstanden und das wird zunehmend bemerkt.

edit: und genau das ist der eignedliche hauptvorteil. es arbeiten im prinzip die selben leute an den .net projekten, die auch an den java-projekten gearbeitet waren. nur können die .net projekte ohne altlasten neuentwickelt werden.

oft denke ich mir auch, das man für die eine oder andere software komplett von vorne anfangen sollte und diese gelegenheit bekommt man mit .net.

@GarlandGreene:
Und?
Wenn alle Leute immer so herangehen würden, würden wir immernoch im
Lendenschurz um ein Feuer laufen, weil sich das ja in den letzten tausend Jahren so bewährt hat.

Auch gäbe es dann weder Java noch z.b. Hibernate.

Es ist sicherlich richtig, das z.b. Castle deutlich mehr installationen hat, als z.b.
LinFu, aber das ändert nichts an der Tatsache, das LinFu deutlich leistungsfähiger ist.
Was sich schon dadurch bemerkbar ist, das es zum std. Proxy bei NHibernate geworden ist.

Genauso ist es bei ORMappern und allen anderen Sachen.

Bei .NET frage ich mich zuweilen allerdings, wo nun der Ersatz/Nachfolger der COM+ Technologie steckt? ... Ich denke das ist zur Zeit das grösste Versäumnis.

@GarlandGreene:
Und?
Wenn alle Leute immer so herangehen würden, würden wir immernoch im
Lendenschurz um ein Feuer laufen, weil sich das ja in den letzten tausend Jahren so bewährt hat. [...]

Ich glaube, hier wird etwas als Kritik ausgelegt, was keine war.

Ich meine nur, daß man momentan, eben weil .Net noch so jung ist, noch nicht abschätzen kann, wo die Reise hin geht. Kommerzielle Erweiterungen gibt es schon lange und wird es weiterhin zuhauf geben, aber im Java-Umfeld sind in der Vergangenheit einige interessante Projekte gerade im nichtkommerziellen Umfeld entstanden (von denen ja viele zu .net portiert worden sind), die über viele Jahre hinweg aktiv weiterentwickelt worden sind. Und DAS muss sich im .Net-Umfeld erst noch entwickeln. Mehr hab ich gar nicht gesagt.

Na, ich hab jetzt nicht so richtig konzentriert gelesen, aber einen Punkt meine ich zu vermissen: Die LayoutManager.

Die gingen mir als Anfänger zunächst tierisch auf die Nerven, aber gerade das GridBagLayout mit seinen Constraints macht richtig viel Freude wenn man es erstmal beherrscht. Ansonsten macht mir Java auch deutlich weniger Spaß als C# wegen dem EventHandling, Delegates, Properties und alledem. Aber das Malemalemachen ist bei Java doch etwas schöner gelöst finde ich. Ich spiele da auf die Shapes und vorallem die Positionierung mit gebrochenen Zahlen an und natürlich auf die AffineTransform. Für letzteres vermisse ich ein Pendant in C# ganz dolle, wäre dankbar für einen Hinweis, gleiches gilt auch für die LayoutManager - dann würde ich sofort wieder auf C# umsteigen.....

DiscMaster

"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg

Hallo DiscMaster,

in C# es gibt eine LayoutEngine-Klasse, mit der man eigene Layout-Manager implementieren kann, sowie das TableLayoutPanel und das FlowLayoutPanel als fertige Layout-Manager.

herbivore