WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Java vs .NET (http://www.wcm.at/forum/showthread.php?t=203739)

Stefan2733 16.11.2006 12:26

Java vs .NET
 
Hallo Leute!

Ich solle mich von der Firma aus mit einer der Beiden Programmiersprachen (Java und .NET) auseinandersetzen. Da ich bisher mit keiner der Beiden Erahrung habe wollte ich mal anfragen, was im Allgemeinen die "bessere" Sprache wäre, also für Windows- und Internetanwendungen?

Könntet ihr mir da einen Tipp geben?

Daisayah 16.11.2006 16:59

Die Frage ist falsch.
Sie müsste entweder "Java oder C#" bzw. "J2EE/Spring/EJB oder .NET" lauten.

pong 16.11.2006 17:12

Zitat:

Beiden Programmiersprachen (Java und .NET)
Du möchtest davor vielleicht - zumindest - die Anbieter Pages behirnen und zu dem Schluss kommen, dass .net keine Programmiersprache ist.

Zitat:

was im Allgemeinen die "bessere" Sprache wäre, also für Windows- und Internetanwendungen?
Gegenfrage: Was schmeckt besser türkise Äpfel oder rosa Bananen?

pong

Biri 16.11.2006 17:26

hi,

na c# natürlich :D (= eine .net sprache, andere wären vb.net, ironpython, ruby.net)
Ist einfach viel cooler wie java.

...freu mich schon auf die schimpfer, die ich jetzt bekommen werden. :cool:

fg
hannes

Jaguar 16.11.2006 19:24

Die Frage ist hier nicht welche Sprache cooler ist, sondern was die Anforderung an die Applikation ist.

Wenn sichs um eine reine Windows Applikation und für Webanwendunge ASP handelt, dann ist man mit .NET deutlich besser bedient (klarerweise kann das Microsoft hier besser unterstützen als andere).

Sobald du aber als Killerrequirement die Anforderung hast, daß die Applikation auf unterschiedlichen Plattformen laufen soll, dann führt an Java eh nichts vorbei.

Mono ist bei weitem noch nicht so weit um zuverlässig .NET Applikationen auf ander Plattformen zu bringen. (Meine akutellen Tests mit Mono 1.2 waren mehr als enttäuschend sobald man über simple Konsolenapplikationen hinausgeht)

Die ersten Fragen die sich also stellten (wie das nun mal so ist in der Softwareentwicklung: Phase 1 Requirementsengineering):
- was sind die genauen Anforderunge an die Applikation:
- welche Plattform(en),
- native Client od. webbased Client (wenn webbased: welcher Webserver. (eine reine Konsolenanwendung solls ja wohl nicht werden)
- Interfaces und/oder Integration zu bestehenden Systemen? (Wenn ja welche und welche API*s in welchen Sprachen stellen diese zur Verfügung). Sprich: was gibts schon und soll eingebunden/wiederverwertet werden.

Und dann, wenn das alles klar ist kann man ne ernsthafte Aussage über das zu verwendende "Tool" (Java od. C#/VS) treffen.

Biri 16.11.2006 22:55

hallo,

Zitat:

Die Frage ist hier nicht welche Sprache cooler ist, sondern was die Anforderung an die Applikation ist
stimmt, deshalb auch das :D
aber:
Zitat:

Ich solle mich von der Firma aus mit einer der Beiden Programmiersprachen (Java und .NET) auseinandersetzen
Es wurde nichts von Projektanforderungen gesagt, wobei ich dir natürlich zustimmte: Wichtig sind die Anforderungen, verwendete Technologie ist immer zweitrangig. (Ich programmiere viel lieber .net, aber der Kunde wollte Java, also wurde es Java)

Zitat:

die Anforderung hast, daß die Applikation auf unterschiedlichen Plattformen laufen soll
echt - Java läuft?
Aber nur wenn es grade will...

fg
hannes (der kein java mag, außer in gebrühter form + mit milch)

Jaguar 17.11.2006 00:04

Zitat:

Original geschrieben von Biri
hallo,

stimmt, deshalb auch das :D
aber:
Es wurde nichts von Projektanforderungen gesagt, wobei ich dir natürlich zustimmte: Wichtig sind die Anforderungen, verwendete Technologie ist immer zweitrangig. (Ich programmiere viel lieber .net, aber der Kunde wollte Java, also wurde es Java)

echt - Java läuft?
Aber nur wenn es grade will...

fg
hannes (der kein java mag, außer in gebrühter form + mit milch)

Na irgend eine Anforderung von der Firma wird schon dahinter sein. Glaube nicht, daß es sich heute eine Firma leisten kann mal einfach so eine Evaluierung von etwas zu machen ohne Hintergedanken und konkreter beabsichtigter Einsatzmöglichkeiten.

Ich schließe mich dir an, wenns um die persönliche Meinung geht: Zur Zeit bin ich selbst seit .NET 1.0 Hauptberuflich als C# Entwickler tätig. Mir gefällt C# in vielen Punkten weit besser als Java (z.B. Property-Konstrukt, Delegates, etc..) und ich programmiere sehr gerne damit. Allerdings gibts im Vergleich zu Java auch ein paar Schwachpunkte (z.B. kein zwingendes Exceptionhandling, die InvokeRequired Problematik, Altlasten und Einschränkungen hervorgerufen durch die darunter liegenden Win32 APIs, etc.).
Das perfekte Tool gibts halt leider (noch) nicht.

Und auch wenns dir gegen den Strich geht ;) .. Java Applikationen laufen sehr gut wenn man weiß was man tut und die richten Tools benützt. Aber die gleiche Aussage kann man auch auf C#/den .Net Framework anwenden. Genauso kann man mit beiden Tools viel Blödsinn anstellen ohne fundiertere Kenntnisse.

Drum seh ich die Programmiersprache mehr als Mittel zum Zweck. Java war der Hype von 1995 jetzt ist es C#/.Net und in 10 Jahren wirds die Sprache XY sein. Wenn ich sage ich fixiere mich auf eine Sprache ohne nach links und rechts zu schauen und sag die eine ist cool und die andere mag ich nicht, dann löst diese Einstellung weder das gegebene Problem noch zahlt sie meinen Gehalt ;)

Biri 17.11.2006 09:07

hallo,

Zitat:

Glaube nicht, daß es sich heute eine Firma leisten kann mal einfach so eine Evaluierung von etwas zu machen ohne Hintergedanken und konkreter beabsichtigter Einsatzmöglichkeiten
stimmt, das ist tatsächlich sehr ungewöhnlich. @Stefan: arbeitest du dort als prkatikant?

Zitat:

Java Applikationen laufen sehr gut wenn man weiß was man tut und die richten Tools benützt
Das mag schon sein, ich hab halt bisher noch kein Java Prog. gesehen, dass stabil läuft, gut aussieht und performant ist. :D

Ich gebe dir grundsätzlich in allen genannten Punkte recht - v.a. "Programmiersprache == Mittel zum Zweck". Ich hab vor, in nächster Zeit mich mal mit Ruby zu beschäftigen, hab ich bisher nur theoretsich und es scheint einige neue/interessante ansätze zu haben.

fg
hannes

Jaguar 17.11.2006 12:03

Zitat:

Original geschrieben von Biri
.. Das mag schon sein, ich hab halt bisher noch kein Java Prog. gesehen, dass stabil läuft, gut aussieht und performant ist. :D
.....

Naaaja...

- stabil laufen: das liegt wohl eher am Programmierer als an der Sprache.

- gut aussehen: jede Java Applikation kann ein System Look&Feel haben seit (nicht schlagen jetzt) .. ich glaub 1.3? Geb dir recht, daß dies am Anfang die Hemmschwelle war, Java für UIs einzusetzten. Aber seit das mit dem UIManager gelöst ist, ist das ein Argument von Leuten die sich nicht auskennen. Mit System Propertys kann man die Darstellung der einzelnen systemspezifeschen Sachen auch noch einstellen.

- performant: Gegen C++/Assebmler, etc Ja.. Gegen .NET Sprachen wohl kaum. Einen Zwischencode hast da und dort. Also als C# Anhänger über die Performance von Java zu lästern ist dreist ;)
Und Performancebremsend kannst auch unter C# programmieren:

Kleiner Test (der Klassiker): Wie prüft man, ob eine String Variable keinen Wert enthält (sprich ob sie null ist oder einen Empty String enthält)? Na? :D

Biri 17.11.2006 12:59

hey, das wird ja doch noch eine lustige unterhaltung. ;)

ad stabil laufen: wenn du ein fertiges packet auf 3 pc's installierts - auf 1 läuft es, auf 2 nicht und es kommt irgendeine (weiß nimma genau) exception, welche darauf schließen lässt, dass es was mit dem GUI zusammenhängt. Dann installierst du das zeug in einer vm-ware und es geht ebenso wie auf den anderen 2 pc's. naja, das nenn ich nicht gerade stabilität. (der pc auf dem es nicht ging war ein notebook mit "ungewöhnlicher" grafikkarte)

gut aussehen: stimmt schon, dass sich hier viel getan hat - gui schaut jetzt besser aus, dafür is noch langsamer. Im Vergleich zu einer modernen xaml oberfläche (winfx - präsentation foundation) schauen java guis aber schon sehr alt aus...

ad performance: natürlich kann man in jeder sprache so programmieren, dass das prog. langsam läuft. in java tut es das mal per default. :hammer: auch spiele wo performance das wesentliche kriterium ist werden schon managed programmiert - ab vista + dx10 wird das noch vermehrt der fall sein. Zeig mir mal einen 3d-shooter in java, der aktuelle grafik verwendet und schnell ist!

stringvariable prüfen:

PHP-Code:

if (string.IsNullOrEmpty(mystring))
... 

fg
hannes

spunz 17.11.2006 13:22

Zitat:

Original geschrieben von Biri


Das mag schon sein, ich hab halt bisher noch kein Java Prog. gesehen, dass stabil läuft, gut aussieht und performant ist. :D

ich habe noch kein .net programm gesehen welches nicht gigantische speichermenge verbrät und nach mehreren stunden laufzeit noch lahmer als java wird.

nach diversen klogriffen hat selbst herold .net gekübelt...

fazit: java/.net is a schaß :p

Biri 17.11.2006 13:33

hi,

@spunz: stimmt genau - java + net == schas
außerdem ist ja dieses ganze computer zeugs teufelswerk.
da drückst irgendwelche tasten und plötzlich kann das jemand anders lesen. vor 300 jahren wärst du am scheiterhaufen gelandet, wenn du sowas vorgezeigt hättest. :lol:

jetzt bin ich aber neugierig - nachdem java/net == schas, welche programmiersprache verwendest du?

fg
hannes

spunz 17.11.2006 14:06

ich leide an diversen java/.net anwendungen die ihr programmier-terroristen-hexer-teufel zusammenpfuscht :p :D


/me zündet den scheiterhaufen unter biri an :D

Jaguar 17.11.2006 16:48

Zitat:

Original geschrieben von Biri
hey, das wird ja doch noch eine lustige unterhaltung. ;)

ad stabil laufen: wenn du ein fertiges packet auf 3 pc's installierts - auf 1 läuft es, auf 2 nicht und es kommt irgendeine (weiß nimma genau) exception, welche darauf schließen lässt, dass es was mit dem GUI zusammenhängt. Dann installierst du das zeug in einer vm-ware und es geht ebenso wie auf den anderen 2 pc's. naja, das nenn ich nicht gerade stabilität. (der pc auf dem es nicht ging war ein notebook mit "ungewöhnlicher" grafikkarte)

gut aussehen: stimmt schon, dass sich hier viel getan hat - gui schaut jetzt besser aus, dafür is noch langsamer. Im Vergleich zu einer modernen xaml oberfläche (winfx - präsentation foundation) schauen java guis aber schon sehr alt aus...

ad performance: natürlich kann man in jeder sprache so programmieren, dass das prog. langsam läuft. in java tut es das mal per default. :hammer: auch spiele wo performance das wesentliche kriterium ist werden schon managed programmiert - ab vista + dx10 wird das noch vermehrt der fall sein. Zeig mir mal einen 3d-shooter in java, der aktuelle grafik verwendet und schnell ist!

stringvariable prüfen:

PHP-Code:

if (string.IsNullOrEmpty(mystring))
... 

fg
hannes

Du machst mir Spaß :D

ad gut aussehen: Auf den Rechnern wo ein Java GUI langsam rennt, läuft .NET auch nicht grad exterm flott und ein WPF GUI meist schon überhaupt nimmer nativ weil in den Kisten die Graka das eh nicht packt und der Prozessor das GUI Rechnen muß. Und ein XML GUI zu rendern geht ja sicher gleich viiiiiiiiiiel schneller (XML parsen braucht ja schon mal üüüberhaupt keine Zeit.. ja klar *lol*).

Klar sehen die neuen WPF GUIS moderner aus. Brauchen aber deutlich mehr Resourcen für die Umsetzung und scneller werden sie auf gleicher Hardware auf keinen Fall. Nur irgendwann ist die Hardware dann so schnell das es egal sein wird. Aber dann steht uns eh schon wieder was neueres ins Haus.

ad performance: .NET Applicationen und Java Applikationen sind Geschwindigkeitsmäßig per default gleich. 3D Shooter in Java kenn ich nicht, ich kenn aber auch keinen der auf .NET läuft.
Und sobald du bei einer .NET Sprache auf Windows APIs zugreifst (auch bei dem von dir angesprochenen DirectX 10) hast unter .NET nichts anderes als ne Wrapperklasse die im Hintergrund erst wieder auf die alten Win32 Funktionen zurückgreift (dh. eigentlich eine laufzeitbremsende Zwischenschicht die du da verwendest). Also von managed weit entfernt! Klar steigen viele um, aber nicht weils managed ist sonder die Framework APIs an vielen stellen freundlicher zu handhaben sind als direkt Win32 APIs was wiederum die Produktivität steigert in Kombination mit neueren Sprachen wie C#. Der ganze .NET Framework baut in der untersten Schichte bei allem betriebssystemspezifischen Funktionen auf Win32 auf. Wenn also performante Applikationen dein Hauptziel sind, ist .NET als Plattform auch danebengegriffen.

Jaguar 17.11.2006 17:02

Zitat:

Original geschrieben von spunz
ich habe noch kein .net programm gesehen welches nicht gigantische speichermenge verbrät und nach mehreren stunden laufzeit noch lahmer als java wird.

nach diversen klogriffen hat selbst herold .net gekübelt...

fazit: java/.net is a schaß :p

Das mit dem Speicherverbrauch liegt aber eindeutig an der Qualität der geschriebenen Software (bzw. dem mehr-oder minder erfahrenen Programmiere, der jene entwickelt hat).
Problem vieler .NET Benutzer ist die Meinung: ah es gibt eh den Garbagecollector. Da ist das mit dem Resourcenfreigeben eh kein Problem mehr (Das hab ich sogar mal bei nem Softwareaudit zu hören bekommen, bin in Gelächter ausgebrochen). Da liegt genau das Problem bei vielen. Nur darauf kann man sich nicht blind verlassen.

Selbst unter .NET kommst ohne Memoryprofiler nicht aus. Es ist teilweise sogar leichter Memleaks zu reißen als unter C++ (wenn man nicht weiß was man tut, grad im Bereich GDI und Delegates). Wir haben uns diese Erfahrungen über 3 Jahre im Entwicklungsteam auch erst erarbeiten müssen (ist immer so bei neuen Technologien die keiner kennt). Und die Applikationen die wir erstellen laufen soweit durchgehen auf Rechnern mit Tochscreens über Wochen und Monate ohne Neustart. Und die halten ihren Speicherverbrauch im geplanten Rahmen und werden auch nicht langsamer. Ohne Memoryprofiler kommst da aber nicht weit. Genausowenig wie in anderen Programmiersprachen. Noch dazu wenn die Programme dann Größenordnungen von mehreren 100.000 Zeilen Code haben.

Jaguar 17.11.2006 17:03

Zitat:

Original geschrieben von spunz
ich leide an diversen java/.net anwendungen die ihr programmier-terroristen-hexer-teufel zusammenpfuscht :p :D


/me zündet den scheiterhaufen unter biri an :D

Dann dürfts euch nicht die billigen Studenten und ehemaligen selbst angelernten VB Entwickler für solche Programme holen, die glauben: mit den neuen Tools eine Applikation zusammenklicken reicht. :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag