Forum: PC-Programmierung Umsteigen von Java auf C# / .net?


von Reinhold Rabe (Gast)


Lesenswert?

Hallo! Ich wollte mal Fragen, ob das lohnt von Java auf C# umzusteigen,
und wie schaut es da eigentlich mit der Performance aus? Ansprüche sind
u.A. RS232-Kommunikation sowie komfortable GUI-Programmierung.

von mr.chip (Gast)


Lesenswert?

Geht doch beides in Java gut. Also freiwillig würde ich mich ja nicht
dem bekannten Software-Monopolisten noch mehr ausliefern.

von Slowflyer (Gast)


Lesenswert?

Zur Performance kann ich dir leider nicht viel sagen. Habe aber schon
ein paar Anwendungen mit GUI und rs232 in C# fürs .net Framework 2.0
geschrieben. Funktioniert soweit ganz gut. Ich arbeite mit dem freien
Shardevelop und habe bisher gute Erfahrungen gemacht. Sicherlich ist es
ein Unterschied ob du professionelle Software schreiben willst oder
einfach irgendwelche Programme für den Hausgebrauch. Bit halt auch nur
ein Amateur.

von Dirk (Gast)


Lesenswert?

Also ich kann dir weder Java noch C# empfehlen,

Borland Delphi 7 ist DIE Lösung,

für GUI's sowieso das beste Tool, und für RS232 gibt
es Freeware on Masse, siehe www.torry.ru.

Abschließend:

Bezüglich der Komponenten (auch freien), der GUI-Gestaltung,
der Compilezeit (Delphi = RAD) kann es keine, ich wiederhole keine
andere Programmiersprache +- IDE aufnehmen. Und das gute ist
du erhälts eine standalone-running EXE und brauchst keine
xxx DLL's.

Die Nachfolger Delphi 8/2005/2006 sind was die IDE betrifft
wesentlich langsamer geworden und auch der Ressourcenbedarf ist
exponentiell gestiegen.

von Thomas (Gast)


Lesenswert?

Flamewar!

Warum muss eigentlich immer, wenn mal einer fragt, ob er von A nach B
umsteigen soll, jemand kommen, der sagt, das C, D und Ook besser sind?

Im übrigen hat RAD relativ wenig mit geringer Compilezeit zu tun, das
ist bestenfalls ein geringer Teil. Und ob keine DLLs "das gute" ist,
lässt sich auch bestreiten.

PS: Eiffel ist noch besser!

von Thomas (Gast)


Lesenswert?

Sharpdevelop ist mit Sicherheit eine super IDE, aber welchen Vorteil
bietet die gegenüber Visual Studio? Das ist ja auch kostenlos
verfügbar, und wenn ich sowiso mit propritären Tools arbeite, warum
dann nicht gleich die original IDE von MS? Die ist Sharpdevelop nämlich
immer noch überlegen. Schade, dass für Mono unter Linux nichts
vergleichbares Verfügbar ist.

Ansonsten denke ich, dass C# auf dem PC auf jeden Fall die Zukunft ist.
Mit .NET, C# und VS2005 hat MS wirklich mal tolle Arbeit geleistet, und
ab Vista ist .NET fester Bestandteil des Systems. D.h. jeder wird deine
Software nutzen können, ohne etwas nachzuinstallieren und die
Performance ist allemal besser als die von Java (für GUI Anwendungen).
Unter Linux konnte Java auf Grund der proprietären Lizenz ohnehin nie
Akzeptanz gewinnen, dafür sieht momentan alles danach auch, dass sich
mit Mono eine .NET kompatible Umgebung etablieren wird.
Für Serveranwendungen und Eingebettete Systeme wird Java natürlich
weiterhin eine wichtige Rolle spielen.

von Dirk (Gast)


Lesenswert?

@Thomas

Weil jemand schon durchaus Erfahrungen gemacht hat mit A, B und C.

Und der Kollege oben hat ebend noch keine mit C# gemacht.
Sicher gibt es Gründe für die man C# besser einsetzen kann,
aber nie bei dem Thema RS232 und GUI.

Zum Thema RAD wollte ich keinen Roman schreiben und jeder
der z.B. Delphi und Visual C++ kennt, weiß auch wie RAD
in der Praxis aussehen kann.

Also über Applikation mit oder ohne DLL's würde ich sehr wohl
mit dir streiten :), dir sagt bestimmt der Begriff DLL-Hölle
etwas.

von Thomas (Gast)


Lesenswert?

Ja, sagt er, aber dir scheint der Begriff .Net-Framework nichts zu sagen
;-) Davon abgesehen gibt es bekanntermaßen ja auch Vorteile bei der
dynamischen Linkung.

Mit Verlaub gesagt, behaupte ich, dass C#/.Net "RAD"-mäßig Delphi in
nichts nach steht. Und, dass es nicht für GUI geeignet sei, kann man
schnell ins Reich der Legenden verweisen...

von Dirk (Gast)


Lesenswert?

.Net-Framework sagt mir neben seinen Vorteilen aber auch

- hohe Startzeit der Applikation (u.U. nur beim ersten Mal)
- hohe Anforderungen an CPU-Speed, Hauptspeicher, Festplatte

guck Dir nur mal nur dein Verzeichnis \Windows\Assembly an

Von nicht C#/.NET != GUI geeignet habe ich übrigens nicht gesprochen.

von Thomas (Gast)


Lesenswert?

Wahr gesprochen, aber die Argumentation ist ja die, dass man sich
Sicherheit bei der Ausführung mit einem gewissen (setze: deutlichen)
Performanceverlust erkauft. Da der OP aber von Java (!) kommt, scheint
dies ohnehin keine Rolle zu spielen, denn in dieser Liga spielt C#/.Net
ja auch.

Aprospos Festplatte:

\windows\assembly 180 MB
\windows\system32 730 MB

So, was ist der Punkt?

Und wegen des nicht für GUI, nun, dein Satz: "Sicher gibt es Gründe
für die man C# besser einsetzen kann, aber nie bei dem Thema RS232 und
GUI." war für mich aber genau so zu verstehen. Ich frage, was wenn
nicht GUI macht man denn dann mit .Net unter einem fenstrigen
Betriebssystem? Gut, Netzverteiltes Zeug halt noch. Aber das das
Framework auch für's GUI gedacht ist, lässt sich nicht von der Hand
weisen.

von Dirk (Gast)


Lesenswert?

Passt gut zur aktuellen Diskussion:

http://www.heise.de/newsticker/meldung/76571

@Thomas: vor allem mal das Forum durchlesen.

von Wilfried Nesensohn (Gast)


Lesenswert?

Original Frage:

Hallo! Ich wollte mal Fragen, ob das lohnt von Java auf C# umzusteigen,
und wie schaut es da eigentlich mit der Performance aus? Ansprüche sind
u.A. RS232-Kommunikation sowie komfortable GUI-Programmierung.

Meine Meinung dazu:

Wenn du exklusiv fuer Windows programmierst, JA. Die Performance ist
tendenziell besser, GUI usw. seit .NET2 auch sehr komfortabel und RS232
natuerlich kein Problem. Den Umstieg solltest du sehr schnell schaffen,
die meisten grundlegenden Dinge sind sehr aehnlich geloest. Erst bei
komplexeren Themen unterscheiden sich die zwei Sprachen dann doch etwas
mehr, sollte aber dennoch kein grosses Problem darstellen. Und da sich
die Java Philosophie ganz deutlich von .NET unterscheidet, ist hier
.NET einfach ueberlegen (Ich rede hier von einer gewissen Hardwarenaehe
mit RS232)

Und man sollte sich beim Lesen meiner Antwort vor Augen halten dass ich
auch eher von Microsoft abgeneigt bin. Wenn man aber Arbeit erledigen
will, dann sollte man gewisse Ideologien und Hassbilder beiseite legen
und Fakten sprechen lassen, und technisch ist hier .NET die bessere
Wahl. (Ueber Delphi kann ich nichts sagen, kenne es nicht)

Ich hoffe fuer dich dass du die fuer dich richtige Sprache auswaehlst.

MfG

von Noonien (Gast)


Lesenswert?

Kennt jemand von euch schon monodevelop.com ?
Hab ewig gebraucht um es zu Installieren (Linux Anfänger) - ist ganz
nett auch wenn ich trotzdem VS bevorzuge. Ist aber ja auch noch in der
Entwicklung.

Ich hab es übrigens weder geschafft auf Windows ein mit Mono
kompiliertes Programm zu starten noch auf Linux ein mit VS erstelltes.

VS -> Linux  -liegt wohl daran dass Mono .Net2 noch nicht unterstützt
Mono-> Windows  -müsste doch MS kompatibles .Net1 sein? Oder sind die
GUI Klassen komplett anders?

Das Programm war jeweils eine einfache Dialoganwendung...

von Johnny (Gast)


Lesenswert?

Vielleicht kann ich der Verwirrung auch noch ein paar kleinigkeiten
zufügen :-)

Ich komme von der Delphi 4, 5, und 6 Welt. Damit war ich auch super
zufrieden und man hat sich extrem schnell seine Tools programmiert. Mit
der Zeit wurde es dann aber immer stiller in der Delphi Community im
Internet und ich man fühlte sich wie auf einem Abstellgleis...

Um wieder mit dabei zu sein, machte ich einen C# für .NET Kurs und war
begeistert! Das ganze ist einfach up to date und die Community, Flut
der Codebeispiele, und Foren etc. in Internet ist gewaltig.
Bekanntlich arbeitet der ehemalige Chefentwickler von Delphi nun im
Hause Microsoft und dies hat sich auch positiv aufs Visual Studio
niedergeschlagen. Vieles ist nun sehr ähnlich oder gar besser wie in
Delphi.
Meiner Meinung nach steht das Visual Studio 2005 dem Delphi in nichts
(ausser der Geschwindigkeit) nach und kann es bedenkenlos empfehlen!
Ein einigermassen aktueller PC ist zum Betrieb des Visual Studio 2005
allerdings dringend zu empfehlen, da es schon nicht das schnellste
ist.
Ich arbeite viel mit Microcontrollern und benötige auch des öfteren die
serielle Schnittstelle. Ab .NET 2.0 ist eine Komponente für die serielle
Schnittstelle standartmässig vorhanden.

Mit Java habe ich selber nie gearbeitet, aber laut Aussagen von
Kollegen findet man in C# viele parallelen zu Java. Vieles wurde jedoch
sehr vereinfacht und die Einarbeitungszeit sollte sich in Grenzen
halten.

Ich würde mal das kostenlose Visual Studio 2005 C# bei Microsoft
downloaden und testen. Damit kann man eigentlich schon alles machen was
man so braucht als Einzelperson.

Gruss
Johnny

von Hansen (Gast)


Lesenswert?

Hallo,

kann zu dem Thema leider nichts beitragen. Da sich hier aber einige
Experten versammelt haben, wollte ich wohl nach dem Unterschied
zwischen C++ und C# fragen? Welche Sprache hat die Zukunft?


Danke für Eure Antworten

Gruß

Der Hansen

von Ferdinand S. (noonien) Benutzerseite


Lesenswert?

C++ wird normalerweise unmanaged kompiliert, C# managed. Die C#
Programme werden in eine Zwischensprache umgewandelt die erst zur
Laufzeit "richtig" kompiliert wird. Das macht das Programm
Plattformunabhängiger.

Von der Programmierung ist C# in etwa eine mischung aus C++ und Visual
Basic

von Thomas (Gast)


Lesenswert?

C++ hatte mit dem managed Krams nix zu tun, bevor es von Microsoft
gekapert wurde. C++ hat davon auch auf anderen Plattformen ein
vollkommen unabhängiges Leben. Das kann man hier nicht so
zusammenwerfen.


>Welche Sprache hat die Zukunft?

Beide. Aber wenn du Windows mit .NET programmieren willst, dann nimm
auf jeden Fall C#. Dieses Gegurke mit managed C++ kann man sich nicht
antun.

von Ferdinand S. (noonien) Benutzerseite


Lesenswert?

Es ging ja um die unterschiede, deshalb schrieb ich "normalerweise
unmanaged" (auch wenn der begriff unmanaged (für normale progs) von ms
eingeführt wurde)

Und ich stimme zu: .Net + C++ = schrecklich

C# ist da sehr viel passender und vor allem einfach zu erlernen.

von Johnny (Gast)


Lesenswert?

Kann mich da auch anschliessen.

C# .NET ist perfekt für Applikationen die auf Windows laufen.

C++ (unmanaged, ohne .NET) ist "praktisch zwingend" notwendig um
Treiber und sehr systemnahe Software zu schreiben. Ausserdem ist es
besser portabel, falls mal auf ein anderes Betriebssystem gewechselt
werden soll. Allerdings muss dies schon im vornherein beachtet werden,
sonst muss später evtl. doch nochmals der ganze Code angepasst werden.

Wenn man sich für .NET entscheidet, dann sehe ich momentan nur C# oder
Viasual Basic als ernsthafte Kandidaten für die Sprache.

von Bartli (Gast)


Lesenswert?

> Ausserdem ist es besser portabel, falls mal auf ein anderes
> Betriebssystem gewechselt werden soll.

Najaaa...mittlerweile gibt es mit Mono und DotGNU .NET implementationen
für Unixartige. DotGNU kenn ich jetzt nicht so gut, aber Mono ist
definitiv produktiv einsetzbar.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.