FMFlash
tranceCoder
|
Wenn ich mir schon alleine die ganzen Konzepte wie Vererbung oder wie man mit Strings umgeht ansehe, so isind diese um einiges besser wie in C++ als Beispiel. Worin liegen denn die Vorteile der string-Behandlung von C# im Vergleich zu C++? Kennst du std::string? Wenn ich mir nicht die Mühe machen will alle Details selbst zu coden bevorzuge ich wxWindows. C++, schnell, X-Platform. Ich lehne .NET (so wie Java) strikt ab, imho sind Projekte wie wxWindows der richtige weg für XP-Lösungen statt ineffiziente Alternativen wie Java oder eben C#.
Bearbeitet von FMFlash am 19.01.2004, 23:02
|
Ringding
Pilot
|
Man muss .NET lassen, dass die String-Behandlung deutlich schneller ist als in den üblichen C++-Implementationen.
|
daisho
VereinsmitgliedSHODAN
|
Wenn jeder in Java programmiern würd, bräucht ma villeicht a ganz wenig bessere Hardware aber dafür würds diese ganze ******* Platform-Abhängigkeit in Programmen/Spielen nimmer gebn
|
Ringding
Pilot
|
Java - Write once, debug everywhere
Simple Java-Programme sind meistens plattformunabhängig, aber sobald das Zeug ein bissi größer wird, tendieren die Leute, allen möglichen plattformspezifischen Dreck hineinzustopfen, und dann hat man wieder das Dilemma.
|
FMFlash
tranceCoder
|
Man muss .NET lassen, dass die String-Behandlung deutlich schneller ist als in den üblichen C++-Implementationen. Eine string-klasse benutzt man (imho) auch nur wenn es um Bequemlichkeit geht und der Vorgang Performancetechnisch irrelevant ist. In allen anderen Fällen ist man mit c-strings wieder auf der Überholspur.  Aus interesse: Ist die string Implementation in der STL wirklich so ineffizient? Wenn jeder in Java programmiern würd, bräucht ma villeicht a ganz wenig bessere Hardware aber dafür würds diese ganze ******* Platform-Abhängigkeit in Programmen/Spielen nimmer gebn  Für Applikationen -> siehe Cross-Platform-Bibliothek Für Spiele -> detto (openGL) Darin liegt die Zukunft, nicht in halb-emulierten, langsamen Sprachen.
Bearbeitet von FMFlash am 20.01.2004, 00:13
|
Ringding
Pilot
|
pc 60 bzw pc 61 kann ich sehr empfehlen, für die größe passt relativ viel rein, bin sehr zufrieden damit 
Es gibt viele verschiedene Implementationen, manche langsamer, manche schneller. Im direkten Vergleich mit .NET sind sie aber bestenfalls gleichauf, meistens langsamer (hängt wohl mit der komplizierteren Memory-Allokation zusammen). Aber es sind halt alles general purpose Bibliotheken, die wirklich jeden Fall abdecken sollen. Mit special-purpose Strings kann man natürlich viel schneller sein, wenn man's braucht.
|
Rektal
Here to stay
|
eh kann kein operator overloading.. und das is IMO entscheident, weil was bringt mit eine superstringklasse, die mit dabei ist, wenn man selber nichts derartiges machen kann. Ich glaube hier liegt eine Fehlinformation vor. C# unterstuetzt operator overloading; nicht im selben Umfang wie C++, aber zu sagen kein operator overloading ist falsch.
|
Geigerzeiger
Addicted
|
Worin liegen denn die Vorteile der string-Behandlung von C# im Vergleich zu C++? Kennst du std::string? Naja da hab ich etwas falsch formuliert. Natürlich ist die std::string Klasse auch sehr gut. Ich wollte die strings in C ansprechen.
|
Oculus
void
|
was da grosse vorteil am .net ist (was java aber genauso bietet) ist der absolut getrennte speicherbereich, in dem der code abläuft und zusätzlich noch die palette an code und laufzeit-permissions
wer sich amal tiefer in die architektur der clr reinliest, wird sehn, dass das ganze sehr gut durchdacht und auch sinnvoll ist
nur leider werden die erweiterten features von kleinen applikationen nicht wirklich genutzt, wozu auch aber um große anwendungen per .net zu realisieren stellt sich wieder die frage der performance, wobei hier eigentlich nur die JIT-Kompilation einen engpass darstellt speicher braucht a .net anwendung nur unerheblich mehr, als eine vergleichbare gleichartig programmierte c++ anwendung
Bearbeitet von Oculus am 20.01.2004, 11:40
|
mat
AdministratorLegends never die
|
Ich glaube hier liegt eine Fehlinformation vor. C# unterstuetzt operator overloading; nicht im selben Umfang wie C++, aber zu sagen kein operator overloading ist falsch. mal gelesen, seltsam ich könnt schwören dass hatte ich aus verlässlicher quelle.. ich greif selber das c# (gesprochen: c gartenzaun) zeug nicht an, konnte es bis jetzt nicht brauchen.
|
Geigerzeiger
Addicted
|
ausserdem werden in C# keine pointer gebraucht, da im managed heap sowieso alles automatisch dynamisch angelegt wird. Man benötigt nur mehr Referenzen. Ich finde dies ist ein enormer Vorteil gegenüber C++. Klar in C++ gibt's auch Referenzen aber ich muß ich in C# nichtmehr um die speicherverwaltung kümmern
|
Rektal
Here to stay
|
Mein Senf: C# als Sprache sieht gut aus, mit ein paar Eigenheiten (switch und darin befindle empty cases). Nur die Plattformgebundenheit hat mich davor gescheut, und Mono wird noch ein wenig dauern bis es mithalten kann.
Ausserdem dachte ich mir, mit dem Framework kann man laessiger GUIs programmieren, war dann aber nicht so. Laengt nicht alles ist in Windows.Forms abgebildet, fuer manche sachen haett ich erst recht wieder auf Win32 API zurueckgreifen muessen (die auch als Teil des Frameworks abgebildet war), aber da wurds mir dann zu dreckig. Ausserdem aergert mich das nichtvorhandensein von dynamischen Layout-Managern (lass mich gern eines besseren belehren).
|
Ringding
Pilot
|
Mono wird nie mithalten können. Falls sie wirklich einmal aufholen sollten, würde Microsoft in Windeseile eine total inkompatible Erweiterung herausbringen.
|
Geigerzeiger
Addicted
|
Microsoft will uns abhängig machen! Mit .NET werden wir völlig plattformabhängig. Im Gegensatz dazu ist JAVA unabhängig vom Betriebsystem.
|
mat
AdministratorLegends never die
|
Microsoft will uns abhängig machen! Mit .NET werden wir völlig plattformabhängig. Im Gegensatz dazu ist JAVA unabhängig vom Betriebsystem. wenn du nur für windows produzieren willst und dir .NET taugt, dann nimm es. wenn du plattforumübergreifend arbeiten willst dann nimm eben JAVA. es gibt eine große auswahl an produkten in dieser softwarewelt und niemand zwingt dich zu irgendwas. ein problem erfordert eine lösung, und es ist deine sache wie du es löst! btw: ein problem is im code deiner sig.. wenn man den ausführen würde, dann käme es zu einem überlauf im 1. char und es würde ein leerer string rauskommen.
|