C# vs. Java

Status
Nicht offen für weitere Antworten.
Grafikprogrammierung:
Ich sagte, dass sich die Grafikprogrammierung unter Linux ein wenig anders gestaltet als unter Windows in Zusammenhang mit Treibern etc. Und zwar wie Du diese ansprichst usw.

Produkt-Manager:
Dann schreib gleich dazu worauf sich seine Aussage bezog und nicht, dass er generell alles mit Longhorn in Verbindung bringt. Dass das VS 2005 wesentlich vor Longhorn kommt (wo nichtmal noch feststeht, in welcher Form es auf den Markt kommt), steht fest und alle neuen Features sind noch nicht raus. Aber es gibt Leute die haben bereits einen Blick darauf geworfen und wissen, was in etwa kommen wird - und da sind wahrlich einige neue Features dabei.

Omondo:
Und ja, ich kenne Omondo, hab ich selber laufen, weils das einzig gscheite free UML-Plugin für Eclipse ist. Und langsam. Und es fehlen viele Features. Und ein Graus bei der Installation, weils mit der Hälfte der Eclipse-Versionen net kann, oder du einiges tun musst, damits funktioniert.

Eclipse-Plugins generell:
Ja, richtig, es gibt viele Plugins die free sind und teilweise gar nicht so schlecht. Viele findest aber auch erst, wenn du entweder von jemanden darauf gestoßen wirst, oder wenn du viel Zeit hast um alle zu probieren, ob sie wohl den Wünschen entsprechen.

UML - Visualisierung:
Mir persönlich ist das vollkommen egal, ob es 100%ig UML-konform ist. Ich verwende UML um zu designen, um zu analysieren und um vorhandenes visuell abzubilden. Ob es 100%ig UML-konform ist, ist mir deshalb egal, weil ich zB einem Manager zeigen will was dahinter steht. Nachdem der sowieso nur eine Grafik sehen will und nicht versteht was dahinter ist, ist es vollkommen egal ob es standard-konform ist oder nicht. Ich und die Leute die dran arbeiten müssen das gleiche verwenden und auch verstehen - dann gibt es auch kein Problem mehr.

Klassen die nicht kompatibel sind etc:
Du unterstellst mir da in jeder Post, dass ich dir etwas unterstelle. Schwachsinn. Du hast sicherlich jede Menge Erfahrung und die spreche ich dir nicht ab. Du hast auch sicherlich wesentlich mehr Erfahrung was Java angeht, auch kein Thema. Aber ich kann mir beim besten Willen nicht vorstellen, dass eine Klasse, die im Linux-System rumgräbt auch unter Windows funktioniert. Hier wirst das gleiche Verhalten haben, wie es uns die Win32-API zeigt.
 
nitronic hat gesagt.:
Grafikprogrammierung:
Ich sagte, dass sich die Grafikprogrammierung unter Linux ein wenig anders gestaltet als unter Windows in Zusammenhang mit Treibern etc. Und zwar wie Du diese ansprichst usw.

Gib doch mal Beispiele als immer im Dunklen zu fischen. Denn Java bietet gerade wegen Betriebssystemunterschiede für alles eine Plattformunabhängige API.
nige neue Features dabei.

nitronic hat gesagt.:
Omondo:
Und ja, ich kenne Omondo, hab ich selber laufen, weils das einzig gscheite free UML-Plugin für Eclipse ist. Und langsam. Und es fehlen viele Features. Und ein Graus bei der Installation, weils mit der Hälfte der Eclipse-Versionen net kann, oder du einiges tun musst, damits funktioniert.

Es gibt noch andere, aber da kannst du gern selber nach googlen. Und wenn du damit meinst es auf 3.0 laufen zu lassen, nur um dein Schwaches Gedächtnis aufzufrischen:
3.0 ist BETA.
Auf 2.1 ist die installation ein Kinderspiel.
Und nur zur Informationen, beim Einsatz von Beta Produkten kann mann kein Reibungslosen Ablauf garantieren deswegen heisst es ja auch beta.


nitronic hat gesagt.:
Eclipse-Plugins generell:
Ja, richtig, es gibt viele Plugins die free sind und teilweise gar nicht so schlecht. Viele findest aber auch erst, wenn du entweder von jemanden darauf gestoßen wirst, oder wenn du viel Zeit hast um alle zu probieren, ob sie wohl den Wünschen entsprechen.

Da sind alle Plugins aufgelistet:
http://eclipse-plugins.2y.net/eclipse/index.jsp

Und das mann sich informieren muss ob ein Produkt gut oder schlecht ist, muss mann bei allem.

nitronic hat gesagt.:
UML - Visualisierung:
Mir persönlich ist das vollkommen egal, ob es 100%ig UML-konform ist. Ich verwende UML um zu designen, um zu analysieren und um vorhandenes visuell abzubilden. Ob es 100%ig UML-konform ist, ist mir deshalb egal, weil ich zB einem Manager zeigen will was dahinter steht. Nachdem der sowieso nur eine Grafik sehen will und nicht versteht was dahinter ist, ist es vollkommen egal ob es standard-konform ist oder nicht. Ich und die Leute die dran arbeiten müssen das gleiche verwenden und auch verstehen - dann gibt es auch kein Problem mehr.

Genau der selbe Quatsch wie:
Meine HTML Seite muss im IE gut aussehen. Ob das Standardkonformes HTML ist oder nicht, iss mir doch egal hauptsache meine Clankollegen können auf die phaette pAgE.


nitronic hat gesagt.:
Klassen die nicht kompatibel sind etc:
Du unterstellst mir da in jeder Post, dass ich dir etwas unterstelle. Schwachsinn. Du hast sicherlich jede Menge Erfahrung und die spreche ich dir nicht ab. Du hast auch sicherlich wesentlich mehr Erfahrung was Java angeht, auch kein Thema. Aber ich kann mir beim besten Willen nicht vorstellen, dass eine Klasse, die im Linux-System rumgräbt auch unter Windows funktioniert. Hier wirst das gleiche Verhalten haben, wie es uns die Win32-API zeigt.

Glauben heisst nicht wissen.
Ein Beispiel:
Unter Windows gibt es kein Sendmail sonder das Windows Pendant dazu. Da mann sich also nicht darauf verlassen kann das dieses oder jenes Programm verfügbar ist unter Java, gibt es von Sun die JavaMail API (Bestandteil von J2EE) . Die mann entweder so konfigurieren kann das sie über bestehende Mailserver sendet (sprich mann muss nichts am Code ändern, höchstens die Konfiguration) oder selbständig agiert. Das heisst das ist gleichzeitig ein MailServer der auch auf SMTP Sendungen horcht.
Weiteres Beispiel:
Ordner im Dateisystem. Unter Windows werden die Ordner Seperator mit \ dargestellt unter Unix mit / . Java beachtet dies und es gibt die Eigenschafft
File.seperator
Mit diesem kann man plattformunabhängig dieses Darstellen. Beispiel images\bild.gif
bzw images/bild.gif
Java: "images"+File.separator+"bild.gif"

Sprich sämmtliche Klassen die du im J2SE / J2EE findest sind komplett plattformunabhängig und so umfangreich (mehrere Tausend) das mann keine Betriebssystemspezifische Programmierung braucht.
Wem das noch nicht genügend Klassen sind der bekommt bei Apache (die Commons Libs) die nochmals mehrere tausend Klassen die wieder komplett Plattformunabhängig sind.

Sorry nitronic, ich diskutiere gerne mit dir, aber mich ärgert das du deine Vermutungen als Wahrheit darstellst.
Wie eben die Vermutung das mann auf Betriebssystemspezifische Komponenten zurückgreifen muss.
 
Hmm, wenn SirGawain jetzt noch nicht suizidgefährdet ist, dann hat er gute
Nehmerqualitäten. Wisst ihr eigentlch, was ihr einem ANFÄNGER mit so einer
Diskussion antut? :)
 
Original geschrieben von Martin Schaefer
Hmm, wenn SirGawain jetzt noch nicht suizidgefährdet ist, dann hat er gute
Nehmerqualitäten. Wisst ihr eigentlch, was ihr einem ANFÄNGER mit so einer
Diskussion antut? :)

Ja mei, nur die harten kommen in den Garten :)
 
Grafik:
Gut, dann zeig mir bitte wie ich unter Linux und Windows einen virtuellen Desktop per Java anspreche. Vielleicht gehts ja mit einer einzigen Implementierung. Ich würds nur gerne sehen.

Eclipse:
Tatversion: 2.1.2 - ca. 15 Personen von 35 hatten ein Problem Omondo zu installieren. Nicht aufgrund Ihrer fehlenden Kenntnisse, sondern aus der Tatsache heraus, dass es schlicht und einfach nicht funktioniert hat. Windows 2000 und XP.

Dass es mit einer Beta sehr wahrscheinlich nicht funktioniert, ist mir klar. Aber siehe oben.

Ad Plugins:
Jup, den Link kenne ich mittlerweile auch. Dennoch ist es sehr mühsam, das für sich passende Plugin zu finden. Da verwende ich das was im VS integriert ist.

UML:
Dein Vergleich hinkt. Du vergleichst hier Äpfel mit Birnen. Ich benötige kein UML um es mit einem weiteren Programm bearbeiten zu können, sondern um für mich und mein Team das Design zu entwerfen bzw. ein Design zu generieren. Hierzu muss ich es nicht mit anderen Tools etc. weiterverarbeiten, wodurch es auch nicht nötig ist, sich an einen Standard zu halten.

Betriebssystem:
Es gibt aber auch Fälle, in denen ich Funktionen verwenden möchte, die vom OS zur Verfügung gestellt werden .... vergleichbar mit der Win32 API.
 
Original geschrieben von nitronic

Eclipse:
Tatversion: 2.1.2 - ca. 15 Personen von 35 hatten ein Problem Omondo zu installieren. Nicht aufgrund Ihrer fehlenden Kenntnisse, sondern aus der Tatsache heraus, dass es schlicht und einfach nicht funktioniert hat. Windows 2000 und XP.

Komisch, ich habe die installation jetzt mehrmals durchgeführt und war jedesmal absolut kein Problem ;)
Deine Fehlerbeschreibung (weils halt nicht funktioniert hat) ist nicht wirklich aussagekräftig.

Original geschrieben von nitronic

Jup, den Link kenne ich mittlerweile auch. Dennoch ist es sehr mühsam, das für sich passende Plugin zu finden. Da verwende ich das was im VS integriert ist.

Wenn du nicht mal 15 minuten dich informieren kannst was benötigt wird dann ist das dein Problem. Im übrigen wirst du dich ja hoffentlich auch täglich informieren was es neues an Techniken gibt, verschiedene Usenetgroups lesen usw.
Dann bekommt mann auch ohne sich gezielt zu informieren mit, welche Plugins was taugen.

Original geschrieben von nitronic

Dein Vergleich hinkt. Du vergleichst hier Äpfel mit Birnen. Ich benötige kein UML um es mit einem weiteren Programm bearbeiten zu können, sondern um für mich und mein Team das Design zu entwerfen bzw. ein Design zu generieren. Hierzu muss ich es nicht mit anderen Tools etc. weiterverarbeiten, wodurch es auch nicht nötig ist, sich an einen Standard zu halten.

Nein ich vergleich nicht Äpfel und Birnen. Es geht um warbare Programmierung. Und wenn das nächste Programmiererteam mit eurem Krampf da arbeiten muss und das entgegen den Standards ist dann werden die Entwicklungskosten in die Höhe springen.

Original geschrieben von nitronic

Es gibt aber auch Fälle, in denen ich Funktionen verwenden möchte, die vom OS zur Verfügung gestellt werden .... vergleichbar mit der Win32 API.

Wenn mann umbedingt über die Winapi ein File lesen will, anstatt die JSDK Klassen zu nutzen ist mann selber schuld.
Mann kann mit Java Plattformunabhängig programmieren, mann muss es nicht. Und ja du kannst auch über Java COM Objecte nutzen. Nur ist dies nicht teil des Standards, und wenn jemand mein das unbedingt durchführen zu müssen, dann hat er sich ganz gezielt gegen Plattformunabhängigkeit entschieden.

Das ist seine Entscheidung, aber deine Aussage lautete:
Wobei die Plattformunabhängigkeit auch so eine Sache ist .. da musst auch wieder aufpassen, welche Klassen Du verwendest und vor allem gestaltet sich die Grafikprogrammierung unter Linux (Treiber bla bla bla) ein wenig anders als unter Windows.

Und das sind absolut 2 komplett falsche Aussagen:
Mann muss nicht aufpassen welche Klassen mann verwenden muss. Denn aufpassen das dies nicht passiert bedeutet, das es ausversehen passieren kann.

Wenn aber jemand explizit irgendwelche Externen Klassen benutzt um z.b Zugriff auf COM zu erhalten dann ist das geplant und hat absolut nichts mehr mit "Kann passieren wenn mann nicht aufpasst" zu tun.

Genauso war deine Aussage "Grafikprogrammierung unter Linux (Treiber bla bla) ein wenig anders als unter Windows" absolut falsch.
Java2D und Java3D sind beide absolut plattformunabhängig.

Und darum geht es. Du stellst Behauptungen auf von denen du entweder:
- weil du es nicht besser weisst
- du trotz besseren wissen
Unwahrheiten darstellst. Und das geht mir ehrlich gesagt tierisch auf den Senkel.

Ich sag es nochmal: Keiner muss alle Techniken kennen. Aber wenn jemand sich bei einer nicht so ganz auskennt, dann kann er nicht darüber richten.
 
Omondo:
Wenn ich wüsste worans gelegen hat, könnte ich es dir auch sagen. Nach mehrmaligen Versuchen hats Eclipse dann erkannt. War nur nervig.

Plugins:
Das hat mit 15 Minuten informieren nichts zu tun. Für gewöhnlich weiß man was gebraucht wird. Stehen aber 15 Plugins mit dem gleichen Funktionsumfang zur Verfügung hat man 15 Plugins zu testen. Und da werden mehr als 15 Minuten benötigt.

Standards:
Standards dort wo sie sinnvoll sind. In unserem Fall wird NIE jemand anders damit zu tun haben. Und wir arbeiten auch ausschließlich auf Windows. Warum also andere Tools verwenden, als die, die ohnehin in unserer Umgebung inkludiert sind? Ein guter .NET-Entwickler wird damit auch umgehen können. Ohne viel Aufwand.

Ad aufpassen:
Klar wird dies absichtlich getan, daher vielleicht meine Formulierung nicht korrekt.

Grafikprogrammierung:
Es stellt sich immer die Frage was erstellt werden muss und entsprechend werden auch die Hilfsmittel bez. Grafikprogrammierung eingesetzt. Greifst Du tief ins System ein, kann ich mir nicht mehr vorstellen, dass Java2D und Java3D ausreichend sind. Aber vielleicht belehrst du mich ja eines besseren....
 
Original geschrieben von nitronic

Plugins:
Das hat mit 15 Minuten informieren nichts zu tun. Für gewöhnlich weiß man was gebraucht wird. Stehen aber 15 Plugins mit dem gleichen Funktionsumfang zur Verfügung hat man 15 Plugins zu testen. Und da werden mehr als 15 Minuten benötigt.
Langsam wirds mir echt zu bunt.
Wer Java und Eclipse programmiert der weiss welche Plugins was taugen oder nicht, weil er sie schon mehrfach gehört hat.

Original geschrieben von nitronic

Standards:
Standards dort wo sie sinnvoll sind. In unserem Fall wird NIE jemand anders damit zu tun haben. Und wir arbeiten auch ausschließlich auf Windows. Warum also andere Tools verwenden, als die, die ohnehin in unserer Umgebung inkludiert sind? Ein guter .NET-Entwickler wird damit auch umgehen können. Ohne viel Aufwand.

Einerseits ist es dir zu zeitaufwendig dich mal ein paar Minuten über Plugins zu informieren, im Gegenzug sollen sich aber Programmierer um eher schlechte Abweichungen vom Standard informieren und dafür genug Zeit haben.
Du drehst es wie du es brauchst oder?


Original geschrieben von nitronic

Ad aufpassen:
Klar wird dies absichtlich getan, daher vielleicht meine Formulierung nicht korrekt.

Wenn du das mit der Formulierung nicht hinbekommst, dann sag in dem Fall lieber nichts. Das währe so als wenn ich sagen würde:
.NET Programme sind auf Windows 2000 nicht lauffähig.

Du würdest mich zurecht zusammenscheissen, und wenn ich dann irgendwann sagen würde:
Ich wollte sagen sie sind nicht auf Windows 2000 lauffähig wenn mann kein .net Framework installiert hat, dann ist das nur eine dumme Ausrede.
Ich werde aber sowas erst gar nicht sagen.


Original geschrieben von nitronic

Grafikprogrammierung:
Es stellt sich immer die Frage was erstellt werden muss und entsprechend werden auch die Hilfsmittel bez. Grafikprogrammierung eingesetzt. Greifst Du tief ins System ein, kann ich mir nicht mehr vorstellen, dass Java2D und Java3D ausreichend sind. Aber vielleicht belehrst du mich ja eines besseren....
Java 2D reicht vollkommen für alle Arten von Desktop Applikationen die grafische Darstellung benötigen.
Bei 3D ist Java3D schon sehr leistungsfähig. Wenn es aber konkret um 3D Spiele geht dann gibt es Java Libs für OpenGL die wiederrum plattformunabhängig sind.
Aber .net und Java sind beide nicht die besten Kandidaten für performancehungrige 3D Spiele. Ob sie es in Zukunft werden, wird sich zeigen.
Mann kann auch DirectX mit Java programmieren, verliert aber dann die Plattformunabhängigkeit.
Hier findest du die Möglichkeit über Java3D DirectX zu nutzen:
http://www.j3d.org/implementation/java3d-OpenGLvsDirectX.html
 
Mal ganz davon abgesehen, dass diese Diskussion keinem etwas bringt. Ich persönlich kann Java, sicherlich nicht so gut wie Du, Christian, keine Frage. Nur habe ich mich mal gegen Java entschieden, was auch mehrere Gründe hat das sind mitunter auch Gründe, die für andere relevant sind und über die sich jeder klar werden soll, der sich fragt C# oder doch Java.

Ich programmiere mittlerweile ausschließlich auf Windows-Systemen (nicht dass ich nicht unter Linux programmieren würde, aber unsere Software ist auf Windows ausgelegt, weil eben alle unsere Kunden Windows verwenden bzw. ohnehin ein komplettes System inkl. Hardware, OS etc. kaufen). Hier kann ich Software entwickeln die sich perfekt in Windows integriert und das ohne viel Aufwand.

Weiters habe ich den Vorteil, dass sich die Software automatisch, ohne mein Zutun an den jeweiligen Style (Theme) des Benutzers anpasst, ohne Verrenkungen unternehmen zu müssen. Wie dies unter Java zu erreichen ist, keine Ahnung - ehrlich gesagt. Unter .NET muss ich da gar nichts dafür tun.

Unsere Systeme laufen mit einem MS-SQL-Server, hier bietet .NET und VS eine wesentlich angenehmere Variante was Administration etc. betrifft. Zumindest finde ich es angenehmer. Du, Christian, vielleicht nicht.

Wir verwenden unter anderem NUR eigens entwickelte Steuerelemente. Deren Entwicklung geht unter .NET + VS ein wenig schneller von statten als unter Java - dies ist übrigens nicht meine Aussage, weil ich unter Java noch nie derartige Elemente gebastelt hab, sondern von einem unserer Programmierer, der übrigens aus der Java-Welt stammt.

Weiters geht es mir am Senkel, in Java ständig einmal ein Getter zu machen und einmal ein Setter. In .NET benötige ich dazu genau _EINE_ Methode und nicht zwei. Bei 10 Properties macht sich das dann schon bemerkbar.

Und das sind einige der Gründe warum ich meine Projekte meist nicht mit Java mache.

Wie ich schon mehrmals bemerkt habe: Wenn die Anwendung plattform-unabhängig sein muss, dann greif selbst ich zu Java. Sind bei mir jedoch nur die wenigsten Projekte.
 
Zusatz zu deiner letzten Post:
Es geht hier darum, jemanden die Entscheidung einfacher zu machen, ob er C# oder Java nehmen soll. Und ich glaube NICHT dass ER weiß WELCHES Plugin er für Eclipse verwenden soll.

Plugins die zweite:
Geh bitte, schön dass für dich DEINE Vergleiche alle richtig sind. Teste ein komplexes Plugin ob es Deinen Ansprüchen gerecht wird. Das sind dann vermutlcih ein paar Minuten ... ja, jetzt wirds mir zu bunt.
Und wer mit UML zurecht kommt, der kommt auch mit der Visio-Visualisierung zurecht. Da muss nix umgelernt werden.

Ad Grafik-Game:
Jo, wie Du in deiner ersten Post richtig gesagt hast: C++
 
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück