Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wozu C#, wenn es C/C++ gibt?
NoOneKnows
myCSharp.de - Member

Avatar #avatar-1526.gif


Dabei seit:
Beiträge: 334
Herkunft: Hannover

beantworten | zitieren | melden

Zitat
Original von Code-Hacker
Eben nochmal den Thread durchgesehen und bin da auf das Stichwort Effizienz von NoOneKnows gestoßen. Das mit der Effizienz wurde des öfteren getestet und es kamen verschiedene Ergebnisse bei verschiedenen Aufgaben heraus. Und schlecht abschneiden tut C++ da nicht wirklich, teilweise sind die Programm gleich effizient. Und ein Java/C#-Programm wird mit weniger Quellcode bestimmt nicht mehr verrichten als das C++-Programm. Es sei denn du gehst von der Tiparbeit des Programmierers aus.
Da magst du durchaus Recht haben, daß sich diese Sprachen im endeffekt doch nicht soviel nehmen. Ein wichtiger Apsekt ist jedoch, das es zeitaufwendiger ist eine Problematik mit C++ zu lösen als sie mit Java oder C# anzugehen. In C++ müssen einem im Hintergrund immer tausende Dinge bewußt sein, sonst rennt man sich schnell den Kopf ein. In C# hält sich das vielmehr in Grenzen, man kann sich leichter auf das wesentliche konzentrieren. Außderdem kommt hinzu das es in C++ länger braucht einen Wissensstand zu erreichen als in C#, sprich C# oder Java lassen sich viel leichter erlernen. Wenn man Jahre benötigt um sich in C++ einschließlich Standardbibliotheken usw. zurechtzufinden, dann ist das für heutige ansprüche uneffizient. Allerdings existiert C++ lange genug, so daß viele Fachkundige vorhanden sind. Wer kann heute schon von sich behaupten, daß er C# + Framework bis in alle Ecken kennt? Dafür ist die Sprache noch zu jung. Aber man sieht das C# extrem großes potenzial hat. Von daher wird sich C++ niemals als anwendungsorientierte Programmiersprache behaupten können, auch wenn es in der Vergangenheit anders war. C++ entspricht für mich nicht mal ansatzweise dem, was man modernes programmieren nennt *salz in die wunde streu*
([bb]|[^b]{2})
private Nachricht | Beiträge des Benutzers
Franknstein
myCSharp.de - Member



Dabei seit:
Beiträge: 531

beantworten | zitieren | melden

Wennn ich näher über dieses Thema nachdenke, dann komme ich zu dem Schluss, dass man C++ nicht mit C# vergleichen kann. C# ist extrem mächtig bei der Entwicklung von Anwenungen, die benutzerfreundlich sind. Klar, dafür wurde ja C# auch desingt, ebenso wie es für sichere Anwendungen desingt wurde, da man keine Rücksprungadressen überschreiben oder Overflows erzeugen kann.
C++ dagegen wurde so desingt(kommt natürlich auf den Compiler an), dass C++-Programme sehr gut optimiert sind(Keine ArrayÜberlaufprüfungen oder sowas) und daher auch auf langsameren Maschienen weniger Resourcen fressen(wobei es auch auf den Programmierstil ankommt). Außerdem wurde bei C++ Wert darauf gelegt, dass man mit C++ viele Möglichkeiten bezüglich des Programmierstils hat.(Was bei C# auch bald der Fall ist). Denn man kann mit C++ in einem Programm prozedural, objektorientiert, generisch und was weiß ich nicht noch welche Stile verwenden.

--
mfg
Franknstein
Besuchen sie das VisualC++ - Forum
private Nachricht | Beiträge des Benutzers
Vellas
myCSharp.de - Member



Dabei seit:
Beiträge: 854

beantworten | zitieren | melden

Hi!

@NoOneKnows:
Stimmt. Man muss auch das zeitliche betrachten. Ich beschäftige mich jetzt seit 2 Jahren intensiev mit C++ und davor 1 Jahr lang (oder länger) nur theoretisch, wobei ich niemanden hatte der mir irgendwie hätte sagen können was ich falsch mache (mittlerweile lache ich über den Fehler). Und ich kann es immer noch nicht perfekt. Wobei mir die C-Vorlesungen wonach man ausegehen kann das man ANSI-C relativ gut beherrscht sehr geholfen haben, aber das reicht für C++ lange nicht.

Bei C# habe ich mit einem Referenzbuch angefangen und nachdem ich mich mit C++ mehr beschäftigt habe und da alles verstanden habe und auch durch Pascal und Delphi kann ich C# schon viel besser, wenn ich auch das Framework nicht wirklich gut ausnutzen kann, da ich mich darin nicht direkt auskenne. Aber wie du sagst es ist ein wesentlicher Zeitunterschied.

@Franknstein:
Stimmt man hat bei C++ versucht möglichst ein Allroundwerkzeug zu haben und hat dabei viele stärken verschiedener Programmiersprachen (siehe Stroustup Auflage 4. Seite 1.4 "Historische Anmerkungen") berücksichtigt, was auch einigermaßen geklappt hat, aber dafür wie bereits gesagt auch schwer zu erlernen ist.
In C# wird wie in Java alles wie ein Objekt behandelt.


Irgendwie finde ich verleitet C# zur GUI. Was sicher auch wichtig ist in der Softwareentwicklung. Da C# so sicher ist, ist es auch leichter darin ein halbwegs sicheres Programm zu realisieren. C++ kann man wederum sehr gut verwenden wenn es um zeitkritische Routinen geht, wobei man sich da mehr auf die Logik und Richtigkeit als auf das aussehen konzentrieren muss. Zumindest ist das so mein Empfinden wenn ich in den beiden Sprachen programmiere. Darauf komme ich aus folgendem Grund: Ich habe überlegt mein letztes Projekt zu überarbeiten und diverse Routinen in eine C++-DLL packe und für die Grafik und damit zusammenhängende Sachen mit C# realisiere. Da C++ gute Effizienz liefert und C# durch Sicherheit verwaltende Aufgaben und weniger zeitkritische Routinen gut erledigen kann ohne das ich mir unbedingt über 100 andere Sachen noch einen Kopf machen muss.

@Noodles:
Ich werde mal gucken, vielleicht finde ich ja einen Job in meiner Nähe suche schon seit längerem.


Code-Hacker
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

Hallo,

die ganze Diskussion läuft für mein Empfinden in eine gänzlich falsche Richtung. Es war nach einem Vergleich der *Sprachen* C# und C++ gefragt ... Argumente bezüglich der Eignung zur Entwicklung von GUIs sind hier eindeutig fehl am Platze, auch die MFC und wxWindows und Windows Forms haben hier nichts verloren. Denn es geht um die Sprache, und nicht um die zusätzlich erhältlichen Frameworks.

Die wesentlichen Unterschiede bei den Sprachen - schaut man sich einmal die Sprachreferenzen an - sind wohl:

- C# ist deutlich stärker objekt-orientiert als C++
- C# bietet ein Exception-Handling mit try / catch / finally
- C# verzichtet auf Pointer, benutzt statt dessen Referenzen
- C# bietet keine Destruktoren und keine Mehrfachvererbung
- C# baut die OOP stärker aus als C++ mit beispielsweise override und new

Die sonstigen Sprachkonstrukte sind relativ ähnlich, Unterschiede liegen hier nur noch in Details, wie zum Beispiel, dass bei switch kein case-Fallthrough mehr möglich ist.

DAS sind die Unterschiede zwischen den Sprachen. Weder C++ noch C# sind per se besser oder schlechter für GUIs geeignet, da beide Sprachen das nicht out-of-the-box können, sondern zusätzliche Frameworks brauchen.

In diesem Sinne,


Golo
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de
private Nachricht | Beiträge des Benutzers
Xqgene
myCSharp.de - Member



Dabei seit:
Beiträge: 2189

beantworten | zitieren | melden

Zitat
Original von golohaas.de
- C# bietet keine Destruktoren

es gibt Destruktoren auch in C# (oder heißen zu mindest so), die werden allerdings ganz anders behandelt.
- man kann mit dessen Hilfe nicht bestimmen, wann ein Objekt zerstört wird.
- Intern wird Destruktor in eine Finalize Methode übersetzt.
- wird irgendwann von GC aufgerufen
- man soll aber die Verwendung von Destruktoren vermeiden, das es zu Leistungeinbußen führt


Bsp:
using System;

namespace ConsoleApplication1
{
	class Class1
	{
		public Class1()
		{
			Console.WriteLine("Erstellt!");
		}
		~Class1()
		{
			Console.WriteLine("Gelöscht!");
		}
		[STAThread]
		static void Main(string[] args)
		{
			new Class1();
			GC.Collect();

			Console.ReadLine();
		}
	}
}
"A programmer is a tool which converts coffein to code."

Evely ToDo-Manager 1.2 (Build 1.2.585)
private Nachricht | Beiträge des Benutzers
NoOneKnows
myCSharp.de - Member

Avatar #avatar-1526.gif


Dabei seit:
Beiträge: 334
Herkunft: Hannover

beantworten | zitieren | melden

Zitat
Original von golohaas.de
die ganze Diskussion läuft für mein Empfinden in eine gänzlich falsche Richtung. Es war nach einem Vergleich der *Sprachen* C# und C++ gefragt ... Argumente bezüglich der Eignung zur Entwicklung von GUIs sind hier eindeutig fehl am Platze, auch die MFC und wxWindows und Windows Forms haben hier nichts verloren. Denn es geht um die Sprache, und nicht um die zusätzlich erhältlichen Frameworks.
Eine Sprache ohne Bibliotheken ist wertlos, von daher ist das drumherum schon wichtig. Denn wenn du programmierst gehts es nicht darum in wie weit die Sprachen syntaktisch unterschiedlich sind, sondern vielmehr um den Aufwand eine Problematik umzusetzen. Was nützt dir die beste Syntax (ist außerdem eh Geschmackssache), wenn viele Funktionalitäten in den Standardbibliotheken fehlen? Von daher verbinde ich mit einer Programmiersprache nicht nur eine Syntax sondern auch den Umgang mit den verfügbaren Bibliotheken.
Zitat
- C# bietet keine Destruktoren und keine Mehrfachvererbung
Ne, jede Klasse darf einen Destruktor besitzen, auch wenn der Nutzen eher Fragwürdig ist.

Mehrfachvererbung brauchts auch nicht unbedingt. Wenn man sich ein vernünftiges Klassenmodell ausdenkt, kommt man sehr gut ohne aus. Mehrfachvererbung macht die Sache auch komplizierter als sie meist wirklich ist.
([bb]|[^b]{2})
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

Hallo!

Eine Sprache ohne Bibliotheken ist nicht wertlos ... natürlich unterscheiden sich Programmiersprachen an sich schon ziemlich heftig, was zum Beispiel die Möglichkeiten angeht, Code sauber und objektorientiert strukturieren zu können.

Der Punkt mit den Klassenbibliotheken ist doch, dass es an und für sich jedem offen steht, eine entsprechende Anbindung für jede x-beliebige Sprache zu schreiben. Keine Sprache ist an eine bestimmte Bibliothek unabdingbar gebunden.

Von daher macht es schon Sinn, die Sprache an sich zu vergleichen.

In Basic zum Beispiel (ich meine damit NICHT VB.NET) fehlt mir zum Beispiel die OOP, eine vernünftige Fehlerbehandlung, ... an Perl / Python / PHP gefällt mir nicht, dass sie nicht stark und statisch typisiert sind ... an C++ mag ich eben wieder was anderes nicht. Das hat doch mit den Frameworks zunächst mal gar nichts zu tun.

Gut, zu C# gehört das .NET Framework, aber welches Framework gehört denn nnun zu C++? Das hängt ja wohl vom jeweiligen Hersteller ab, also was soll's? Wenn nach der Berechtigung von C# gegenüber C++ gefragt wird, spielt das Framework zunächst keine Rolle, denn dieses gibt es ja genauso auch für C++.

Man muss also auf die Unterschiede in den Sprachen schauen, und auch hier hat C# einige Vorteile gegenüber C++ meiner Meinung nach ...

Viele Grüße,


Golo
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

Code-Hacker:
Glaube mir, ich habe 10 Jahre in C/C++/IA86 gearbeitet und dabei Software
für Echtzeitsysteme gemacht.
Für diesen Bereich wird sicher auch noch für lange Zeit C# nicht geeignet sein.
Auch kann man "selbst in C/C++" vernünftig Programmieren, und wenn man
sich an gewisse Konventionen hält, auch ohne leaks u.ä.

Es geht MIR hier auch nicht um die Eleganz einer Sprache oder ähnliches.
Aber das DotNet-Framework ist soviel umfangreicher als jede mir bekannte
C/C++ Umgebung.

Und das man in ein C++ Programm einen GC implementieren kann,
ist mir vollkommen klar, er ist aber nicht standartmässig drin, das ist es doch.

Bei DotNet und damit auch C# ist soviel von Haus aus drin, das man sich
in den anderen Systemen erst selber erstellen muss, siehe CodeAccess,
Datenbanken, WindowsForms, WebForms, Compact-Framework ....

Ich hatte mal einen Kollegen, der hat sich 1986 eine "Textverarbeitung" geschrieben in '123' ( falls dir das was sagt ;-)).
Es geht, es funktioniert, aber man kann es sich auuch einfacher machen.


Und nur weil Du in der glücklichen Lage bist Lage bist C++ zu meistern,
trifft das leider auf das Groh der normalen Programmierer die ich bis jetzt
getroffen nicht ganz zu.
Die beherrschen zwar das Programmieren mir C/C++ aber was dabei rauskommt
ist selten wirklich effizient(Resourcenschonend) und/oder absturzsicher programmiert.

In DotNet ist es nicht so einfach Memmoryleaks, und fehler durch Pointer-arithmetik zu produzieren.
private Nachricht | Beiträge des Benutzers
NoOneKnows
myCSharp.de - Member

Avatar #avatar-1526.gif


Dabei seit:
Beiträge: 334
Herkunft: Hannover

beantworten | zitieren | melden

@golohaas.de
Okay, dann unterscheiden sich unsere Auffasungen etwas. Klar ist die Syntax auch wichtig bzw. ob OOP oder nicht. Aber Syntax ist Geschmackssache und OOP-Sprachen gibts mittlerweile auch schon genügend. Von daher ist dies, meiner Meinung, nicht der entscheidende Punkt. Die Bibliotheken bestimmen über den Leistungsumfang. Für C/C++ kann man sich sicherlich noch tausende DLLs ausm Netz ziehen. Bei .NET ist jedoch schon so gut wie alles wichtige dabei. Außerdem ist der Umgang mit Libraries in C/C++ aufwendiger als in C# mit dem Framework. Dazu kommt, daß Programmiersprachen nicht jede X-beliebige Bibliothek nutzen kann. So differenziert man z.B. Assembler/C-Biblotheken, COM-Libraries oder .NET-DLLs. Und wenn ich eben aufgrund des alters einer Sprache oder warum auch immer bestimmte Arten nicht nutzen kann oder nur mit viel Aufwand, dann ist das ein Entscheidender negativer Punkt, schließlich muß der Quellcode im schlimmsten Falle neugeschrieben werden.
Zitat
Original von golohaas.de
Von daher macht es schon Sinn, die Sprache an sich zu vergleichen.
Hast ja auch recht, im grundegenommen hängt es auch damit zusammen, wie Effizient eine Programmiersprache ist. Es entscheidet sich jedoch auch durch viele andere Faktoren. Die ursprüngliche Frage war ja: Wozu C#, wenn es C/C++ gibt? Der Grund ist eben, das C und C++ heutzutage einfach uneffizient sind. Und daher sollte man das Gesamtbild sehen
([bb]|[^b]{2})
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

Okay, ich gebe Dir an und für sich recht ... aber um auf die ursprüngliche Frage noch einmal einzugehen ...

Nach Deiner Argumentation ist mir nicht klar, wozu ich C# brauche ... was geht bitte mit C# + .NET Framework, was nicht auch mit C++ + .NET Framework ginge?

Ich gebe zu, die Frage ist absichtlich provokativ gestellt ;-)
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de
private Nachricht | Beiträge des Benutzers
Vellas
myCSharp.de - Member



Dabei seit:
Beiträge: 854

beantworten | zitieren | melden

Hi!

@FZelle:
Meistern tu ich die Sprache auch nicht. Ich mache auch noch des öfteren Fehler die zwar im nachhinein irgendwie peinlich sind. Deswegen würde ich sagen das mir noch etwa 1-2 Jahre Erfahrung fehlen bis ich evtl. von beherrschen sprechen darf. So war meine letzte Aussage aber auch nicht gemeint.

Was C# betrifft so denke ich schon das es in der Windowswelt stark an bedeutung bereits zugenommen hat. Allerdings glaube ich kaum das es für wirklich zeitkritische Dinge eingesetzt wird, da dort C/C++ vielleicht sogar Assembler (wohl eher bei nicht optimierenden Compilern) viel besser geeignet sind.


@NoOneKnows:
Ich muss golohaas.de zustimmen. Eine Sprache ohne Bibliothek ist durchaus sehr wertvoll. C beispielsweise kann man ganz genau so ohne Bilbiothek nutzen und die Sprache verliert kaum etwas. Immerhin kann man sich alles was C bereits mitliefert genau so implementieren, wenn man es braucht. Was man natürlich nicht macht, immerhin gehört sie zu C, also bringt das nicht all zuviel. Assembler ist dafür vielleicht sogar ein besseres Beispiel, da muss man eigentlich alles selbst machen, wenn man keine API verwenden kann muss man sich in die Grafikkartenprogrammierung einarbeiten.

Ich sehe C/C++ nicht als uneffizient an. Besonders bei C kann man es wirklich innehalb von 4 Monaten schaffen es zu können. Mehr Zeit hatte ich auch nicht bis zur Klausur (wobei die noch nicht ganz rum sind). Und es geht wirklich, wenn man sich damit ein wenig auseinandersetzt. Immerhin hat man so ANSI-C drauf, ob man es dann beherrscht oder nicht ist eine andere Sache, aber notfalls weiß man einfach wo man nachsehen kann. C++ dauert da schon entscheident länger und die rein OOP orientierten Sprachen sind den Hybriden gegenüber teilweise wirklich leichter zu erlernen, da man direkt ein Konzept und nicht mehrere lernt.

@golohaas.de:
C++ bietet auch das fangen von Ausnahmen, allerdings nur try und catch, es gibt also keinen finally Block. Referenzen sind zumindest in C++ auch möglich.


Code-Hacker
private Nachricht | Beiträge des Benutzers
NoOneKnows
myCSharp.de - Member

Avatar #avatar-1526.gif


Dabei seit:
Beiträge: 334
Herkunft: Hannover

beantworten | zitieren | melden

Zitat
Original von golohaas.de
Nach Deiner Argumentation ist mir nicht klar, wozu ich C# brauche ... was geht bitte mit C# + .NET Framework, was nicht auch mit C++ + .NET Framework ginge?
Ganz einfach: Alles was mit C# & Framework geht, geht auch mit C++ & Framework. Überrascht? Der Unterschied ist bloß, das sich der C#-Entwickler schon längst von dem wohlverdienten Geld in der Südsee sonnen kann, während der C++-Programmier seine Zeit schweißbadend vorm Computer verbringt Und darin liegt für mich die Ineffizienz. Zugegeben ist in bestimmten Bereichen C++ unabdingbar. Klassisches Beispiel ist die Spiele-Entwicklung. Jedoch stellen Spiele-Programmierer nur einen winzigen Anteil an allen Software-Entwicklern. Hauptsächlich wird in der Wirtschaft anwendungsorientierte Software, wie Frontends, Datenbank-Applikationen, usw. geschrieben. Und da kommt es auf Highspeed-Development an und nicht auf Highspeed-Applikationen. Programmierer sind teuer und da kann es sich ein Unternehmen nicht leisten einen Programmierer 3 Monate mit einer Endbenutzernawendung in C++ zu beschäftigen, wo es in C# vielleicht 1 Monat bräuchte.
Zitat
Original von Code-Hacker
Ich sehe C/C++ nicht als uneffizient an. Besonders bei C kann man es wirklich innehalb von 4 Monaten schaffen es zu können. Mehr Zeit hatte ich auch nicht bis zur Klausur (wobei die noch nicht ganz rum sind). Und es geht wirklich, wenn man sich damit ein wenig auseinandersetzt. Immerhin hat man so ANSI-C drauf, ob man es dann beherrscht oder nicht ist eine andere Sache, aber notfalls weiß man einfach wo man nachsehen kann. C++ dauert da schon entscheident länger und die rein OOP orientierten Sprachen sind den Hybriden gegenüber teilweise wirklich leichter zu erlernen, da man direkt ein Konzept und nicht mehrere lernt.
Drücken wirs so aus: C++ ist uneffizienter als C# Is ja auch logisch. Wie kann eine Sprache, die vor langer Zeit entstanden ist, effizienter sein als eine Sprache die gerade mal 2 Jahre hinter sich hat. So konnte man aus den Fehlern von C++ lernen und eine neue moderne Programmiersprache entwickeln. Und bei dem Entwicklungs-Apperat, der hinter C# bzw. .NET stand kann man sich auch sicher sein, daß dabei etwas vernünftiges heraus kommt.

So und nun an alle C++-Fans hier: Wenn ihr C++ so effizient und so gut findet, und ihr denkt das es nichts besseres gibt, warum befasst ihr euch dann mit C#?
([bb]|[^b]{2})
private Nachricht | Beiträge des Benutzers
hauptmann
myCSharp.de - Member



Dabei seit:
Beiträge: 771
Herkunft: Österreich/Kärnten

beantworten | zitieren | melden

Zitat
Original von golohaas.de
- C# bietet ein Exception-Handling mit try / catch / finally

C++ unterstützt ebenfalls Exeption Handling. Sogar (Win32)C hat das schon unterstützt: try,catch,finally und leave.
private Nachricht | Beiträge des Benutzers
Vellas
myCSharp.de - Member



Dabei seit:
Beiträge: 854

beantworten | zitieren | melden

Hi!

@NoOneKnows:
Eigentlich kam das so das mir in einem Praktikum als ich nach einer IDE fragte zu MS neuer Sprache C# geraten wurde (warum auch immer, der Typ mag MS eigentlich gar nicht so richtig und proggt es auch nicht). Nunja, ich habe mich damit befasst und fand einige Sachen gar nicht schlecht, z.B. das gezwungene "break" in switch-case-Verteilern. Allerdings konnte ich nicht all zu viele unterschiede die rein sprachlicher Natur waren feststellen. Imho braucht man kein foreach und ob man in C# explizit einen nonBoolean prüfen muss mit einem gegenwert oder ob C++ das selbst macht war mir ohnehin immer Wurst, wobei es da scheinbar auch einige Fehler von Programmierern gab, wenn sie nicht explizit verglichen haben.

Ich finde C++ auch weiterhin besser, allein weil ich damit auch Plattformunabhängige Systeme erstellen kann (wobei es mehr Plattformen für C als C++ gibt, da fehlen wohl noch die eine oder andere). Abgesehen davon habe ich bei mC++ noch zusätzlich (wenn auch bis zu diesem Zeitpunkt nicht ausgereift) neben .NET die STL verwenden zu können was heißt das ich mich nicht unbedingt in alles neu einarbeiten muss, desweiteren entsteht so der Vorteil das ich bereits entwickelte Namsespaces/Klassen(/Bibltiotheken) ohne weitere Schwierigkeiten wiederverwenden kann.

In wiefern C# effizienter ist hängt größtenteils allerdings damit zusammen wie gut ich C/C++ kann. Wenn ich das besser kann, würde ich es auch weiter programmieren. Dies ist bei mir und (O-)Pascal genau so. Ich komme nicht ganz mit dieser Syntax klar (ich hasse sie) und hasse noch ein paar andere unschöne Dinge und ich kann C/C++ wesentlich schneller und effizienter programmieren und genau so verhält es sich in C#, jemand der lieber C++ programmiert wird sich in C# vielleicht von anderen dingen gestört fühlen und deswegen lieber bei C++ bleiben.

Und ich finde es nicht verwerflich das sich ein C++ Programmierer mit C# beschäftigt obwohl er das andere lieber mag. Umso mehr Sprachen man einmal programmiert hat umso besser kommt man in Projekte rein besonders wenn bei diesen mehr als nur eine Sprache benutzt wird und man in (fast) allen wenigstens mal die Grundlagen erlernt hat.

@hauptmann:
Ja, aber es gibt kein finally (siehe mein letztes Posting).


Code-Hacker
private Nachricht | Beiträge des Benutzers
hauptmann
myCSharp.de - Member



Dabei seit:
Beiträge: 771
Herkunft: Österreich/Kärnten

beantworten | zitieren | melden

Zitat
Original von Code-Hacker

@hauptmann:
Ja, aber es gibt kein finally (siehe mein letztes Posting).
r

in C++ nicht, aber bei Win32 C gibts ein finally
private Nachricht | Beiträge des Benutzers
Ftee
myCSharp.de - Member



Dabei seit:
Beiträge: 71

beantworten | zitieren | melden

Ich denke das die Diskussion hier immer wieder in Richtung GUI-Entwicklung schlägt.
Selbst (bzw. ganz sicher!) ist C# ohne Windows.Forms für GUIs ziemlich aufgeschmissen.

Wer Borland IDEs kennt, sieht ganz klar die Handschrift des Delphi-Entwicklers an der gesamten WYSIWYG-IDE Umgebung Ich muss sogar sagen, die die Windows-Forms in einigen Bereichen der VCL sogar noch recht deutlich hinterherhinken! Von daher liegen (wenn es auf die GUI-Entwicklung ankommt) immer nocht Delphi bzw. Borland C++ Builder relativ weit vorne. Die VCL ist ein wirklich gutes und sehr durchdachtes Framework.

An Sprach-Diskussionen habe ich nie verstanden, warum man eine bestimmte Sprache als das Allheilmittel herausstellt?

- brauche ich eine Anwendung die performant auf möglichst verschiedenen Rechnern läuft, nehme ich VC++
- brauche ein zum ersten Beispiel noch ne gute GUI und kann im Gegensatz auch ein wenig Performance verzichten, nehme ich Borland (Delphi, BCB)
- brauche ich eine Anwendung die auf möglichst vielen Plattformen läuft, nehme ich Java.
- brauche ich eine Anwendung, die eine möglichst lange Lebenszeit haben soll, und unter Windows läuft, nehme ich C#
- brauche ich was für Pocket PC, nehme ich C# (eventuell in Verbindung mit VC++ DLLs für Rechenintensives)
- brauche ich was für den Palm, nehme ich GCC

usw...

Muss ich ein Konzept für die Industrie erarbeiten, kommt C# eh nich in Frage. Überrede mal nen Admin das er ein Framework auf einem laufenden Produktivrechner installieren soll..... kannste vergessen. Da geht kein Weg über BCB oder VC++. C# wird da noch lange nicht eingesetzt. Nicht bevor Longhorn sich durchgesetzt hat, also in ca. 6 Jahren.

Es geht beim programmieren nicht darum, eine bestimmte Sprache zu beherrschen. Das kann im Falle C++ kaum einer. COM/COM+ noch dazu, die MFC, die WinAPI etc..... das ist nunmal alles dabei, und muss oft genug benutzt werden.

Es kommt darauf an, einen Kunden eine Lösung zur Verfügung zu stellen, die einwandfrei funktioniert. Wie bunt das ist, ist ihm wurscht wenns das tut was es soll, und er keine weitere Arbeit damit hat. Und ob er 1 oder 3 Monate wartet, ist ihm (wenn das Programm denn auch dann genau das macht was ER will) ziemlich egal....
private Nachricht | Beiträge des Benutzers
NoOneKnows
myCSharp.de - Member

Avatar #avatar-1526.gif


Dabei seit:
Beiträge: 334
Herkunft: Hannover

beantworten | zitieren | melden

Zitat
Original von Ftee
Selbst (bzw. ganz sicher!) ist C# ohne Windows.Forms für GUIs ziemlich aufgeschmissen.
Entwicklung von Endbenutzeroberflächen ist heutzutage gefragter denn je, deshalb dreht sich viel um Windows.Forms. Aber im endeffekt mach es nur einen kleinen, aber sehr bedeutenden Teil des Frameworks aus. Und die kinderleichte Oberflächenentwicklung ist nunmal eine Stärke von C#. "Hätte, wäre, wenn" bringt an dieser Stelle garnichts.
Zitat
- brauche ein zum ersten Beispiel noch ne gute GUI und kann im Gegensatz auch ein wenig Performance verzichten, nehme ich Borland (Delphi, BCB)

Genauso nennt sich eine der wichtigsten GUI-Sprachen VB6 und die hat keinen unbedeutenden Anteil.
Zitat
Überrede mal nen Admin das er ein Framework auf einem laufenden Produktivrechner installieren soll..... kannste vergessen.
Naja, du verallgemeinerst das zu sehr. Sicherlich hat .NET noch keine große Präsenz, aber die nimmt stetig zu. Wir bei uns im Unternehmen, und es sei gesagt, daß wir unsere Brötchen nicht mit der Software-Entwicklung verdienen, setzten sehr wohl auf die .NET-Technologie. Auf nahezu allen Prodiktivsystemen befindet sich daher bei uns auch das .NET-Framework 1.1. Du stempelst das so ab als wärs das reinste Risiko das Framework irgendwo zu installieren und das ist schlichtweg falsch. .NET hat eine sehr sichere Architektur. Wenn man sich die Zeit nimmt und es sich näher anschaut würde man dies auch zur Kenntnis nehmen.
Zitat
Muss ich ein Konzept für die Industrie erarbeiten, kommt C# eh nich in Frage.
[...]
Da geht kein Weg über BCB oder VC++. C# wird da noch lange nicht eingesetzt.
Was heißt denn Konzept? Man kann für allesmöglcihe ein Konzept erstellen. Und du stellst es jetzt wieder so dar, als wenn C# generell Schrott wär. Ich verweise gern wieder darauf, daß Unternehmen bereits die .NET-Technologie verwenden und damit ihre Software realisieren. Selbst dein geliebtes Borland verschließt sich in keinsterweise der .NET-Technologie, im Gegenteil sie versuchen beispielsweise mit dem C#-Builder oder mit Delphi auf den Zug aufzuspringen. Fragt sich ja dann warum? Schließlich fördern sie mit diesem Schritt auch den Wachstum von .NET. Auf längere Zeit gesehen werden sich sich schwelich dieser neuen Technologie verschließen können.
Zitat
Es kommt darauf an, einen Kunden eine Lösung zur Verfügung zu stellen, die einwandfrei funktioniert. Wie bunt das ist, ist ihm wurscht wenns das tut was es soll, und er keine weitere Arbeit damit hat. Und ob er 1 oder 3 Monate wartet, ist ihm (wenn das Programm denn auch dann genau das macht was ER will) ziemlich egal....
Dem Kunden mag es egal sein, aber einem ökonomisch handelnden Unternehmen sicherlich nicht. Oder würdest du freiwillig 2 Monatsgehälter eines Programmiers aus dem Fenster werfen?
([bb]|[^b]{2})
private Nachricht | Beiträge des Benutzers
NoOneKnows
myCSharp.de - Member

Avatar #avatar-1526.gif


Dabei seit:
Beiträge: 334
Herkunft: Hannover

beantworten | zitieren | melden

Zitat
Original von NoOneKnows
Zitat
Original von Ftee
Selbst (bzw. ganz sicher!) ist C# ohne Windows.Forms für GUIs ziemlich aufgeschmissen.
Entwicklung von Endbenutzeroberflächen ist heutzutage gefragter denn je, deshalb dreht sich viel um Windows.Forms. Aber im endeffekt mach es nur einen kleinen, aber sehr bedeutenden Teil des Frameworks aus. Und die kinderleichte Oberflächenentwicklung ist nunmal eine Stärke von C#. "Hätte, wäre, wenn" bringt an dieser Stelle garnichts.
Zitat
- brauche ein zum ersten Beispiel noch ne gute GUI und kann im Gegensatz auch ein wenig Performance verzichten, nehme ich Borland (Delphi, BCB)

Genauso nennt sich eine der wichtigsten GUI-Sprachen VB6 und die hat keinen unbedeutenden Anteil.
Zitat
Überrede mal nen Admin das er ein Framework auf einem laufenden Produktivrechner installieren soll..... kannste vergessen.
Naja, du verallgemeinerst das zu sehr. Sicherlich hat .NET noch keine große Präsenz, aber die nimmt stetig zu. Wir bei uns im Unternehmen, und es sei gesagt, daß wir unsere Brötchen nicht mit der Software-Entwicklung verdienen, setzten sehr wohl auf die .NET-Technologie. Auf nahezu allen Prodiktivsystemen befindet sich daher bei uns auch das .NET-Framework 1.1. Du stempelst das so ab als wärs das reinste Risiko das Framework irgendwo zu installieren und das ist schlichtweg falsch. .NET hat eine sehr sichere Architektur. Wenn man sich die Zeit nimmt und es sich näher anschaut würde man dies auch zur Kenntnis nehmen.
Zitat
Muss ich ein Konzept für die Industrie erarbeiten, kommt C# eh nich in Frage.
[...]
Da geht kein Weg über BCB oder VC++. C# wird da noch lange nicht eingesetzt.
Was heißt denn Konzept? Man kann für allesmöglcihe ein Konzept erstellen. Und du stellst es jetzt wieder so dar, als wenn C# generell Schrott wär. Ich verweise gern wieder darauf, daß Unternehmen bereits die .NET-Technologie verwenden und damit ihre Software realisieren. Selbst dein geliebtes Borland verschließt sich in keinsterweise der .NET-Technologie, im Gegenteil sie versuchen beispielsweise mit dem C#-Builder oder mit Delphi auf den Zug aufzuspringen. Fragt sich ja dann warum? Schließlich fördern sie mit diesem Schritt auch den Wachstum von .NET. Auf längere Zeit gesehen werden sie sich nur schwerlich dieser neuen Technologie verschließen können.
Zitat
Es kommt darauf an, einen Kunden eine Lösung zur Verfügung zu stellen, die einwandfrei funktioniert. Wie bunt das ist, ist ihm wurscht wenns das tut was es soll, und er keine weitere Arbeit damit hat. Und ob er 1 oder 3 Monate wartet, ist ihm (wenn das Programm denn auch dann genau das macht was ER will) ziemlich egal....
Dem Kunden mag es egal sein, aber einem ökonomisch handelnden Unternehmen sicherlich nicht. Oder würdest du freiwillig 2 Monatsgehälter eines Programmiers aus dem Fenster werfen?
([bb]|[^b]{2})
private Nachricht | Beiträge des Benutzers
Ftee
myCSharp.de - Member



Dabei seit:
Beiträge: 71

beantworten | zitieren | melden

Zitat
Original von NoOneKnows
Zitat
Original von Ftee
Selbst (bzw. ganz sicher!) ist C# ohne Windows.Forms für GUIs ziemlich aufgeschmissen.
Entwicklung von Endbenutzeroberflächen ist heutzutage gefragter denn je, deshalb dreht sich viel um Windows.Forms. Aber im endeffekt mach es nur einen kleinen, aber sehr bedeutenden Teil des Frameworks aus. Und die kinderleichte Oberflächenentwicklung ist nunmal eine Stärke von C#. "Hätte, wäre, wenn" bringt an dieser Stelle garnichts.
Zitat
- brauche ein zum ersten Beispiel noch ne gute GUI und kann im Gegensatz auch ein wenig Performance verzichten, nehme ich Borland (Delphi, BCB)

Genauso nennt sich eine der wichtigsten GUI-Sprachen VB6 und die hat keinen unbedeutenden Anteil.
[/quote]

Auch Visual Basic hat einen Nachteil, und der nennt sich Runtime-Engine.
Zitat
Zitat
Überrede mal nen Admin das er ein Framework auf einem laufenden Produktivrechner installieren soll..... kannste vergessen.
Naja, du verallgemeinerst das zu sehr. Sicherlich hat .NET noch keine große Präsenz, aber die nimmt stetig zu. Wir bei uns im Unternehmen, und es sei gesagt, daß wir unsere Brötchen nicht mit der Software-Entwicklung verdienen, setzten sehr wohl auf die .NET-Technologie. Auf nahezu allen Prodiktivsystemen befindet sich daher bei uns auch das .NET-Framework 1.1. Du stempelst das so ab als wärs das reinste Risiko das Framework irgendwo zu installieren und das ist schlichtweg falsch. .NET hat eine sehr sichere Architektur. Wenn man sich die Zeit nimmt und es sich näher anschaut würde man dies auch zur Kenntnis nehmen.

Ich rede von Produktivrechner, die in der Industrie z.B. die Datenkontrolle von SPSen übernehmen. Da sind die Leute schon froh wenn das endlich einwandfrei funktioniert. Wenn so ein Rechner wegen eines neu installierten Frameworks und/oder updates nicht mehr so läuft wie vorher, dann hängt der Admin an der Hallendecke.... und du gleich mit
Der macht nichts auf seinem Rechner ohne unsägliche Schmerzen dabei zu emfinden. Und das fängt schon bei einfachen Updates an.
Zitat
Zitat
Muss ich ein Konzept für die Industrie erarbeiten, kommt C# eh nich in Frage.
[...]
Da geht kein Weg über BCB oder VC++. C# wird da noch lange nicht eingesetzt.
Was heißt denn Konzept? Man kann für allesmöglcihe ein Konzept erstellen. Und du stellst es jetzt wieder so dar, als wenn C# generell Schrott wär. Ich verweise gern wieder darauf, daß Unternehmen bereits die .NET-Technologie verwenden und damit ihre Software realisieren. Selbst dein geliebtes Borland verschließt sich in keinsterweise der .NET-Technologie, im Gegenteil sie versuchen beispielsweise mit dem C#-Builder oder mit Delphi auf den Zug aufzuspringen. Fragt sich ja dann warum? Schließlich fördern sie mit diesem Schritt auch den Wachstum von .NET. Auf längere Zeit gesehen werden sich sich schwelich dieser neuen Technologie verschließen können.

Du unterschlägst, das ich bei Zukunfstsicherheit bereits auf C# verwiesen habe. Und zum "heissgeliebten Borland" ..... Ich dachte eigentlich das klargeworden ist, das es mir ziemlich scheissegal ist mit was ich was programmieren muss. Es kommt darauf an was gefordert ist, und was noch integriert werden muss. DANACH suche ich aus, welche Sprache, Framework oder Entwicklungsumgebung ich nutze.
Zitat
Zitat
Es kommt darauf an, einen Kunden eine Lösung zur Verfügung zu stellen, die einwandfrei funktioniert. Wie bunt das ist, ist ihm wurscht wenns das tut was es soll, und er keine weitere Arbeit damit hat. Und ob er 1 oder 3 Monate wartet, ist ihm (wenn das Programm denn auch dann genau das macht was ER will) ziemlich egal....
Dem Kunden mag es egal sein, aber einem ökonomisch handelnden Unternehmen sicherlich nicht. Oder würdest du freiwillig 2 Monatsgehälter eines Programmiers aus dem Fenster werfen?

Ähm.... ich weiss nicht was du für Kunden meinst.... wenn ich von Kunden rede, dann SIND das Unternehmen. Und nicht grade kleine. Und ein ökomomisch arbeitendes Unternehmen nimmt in erster Linie das, wo man schon GUTE Erfahrung mit hatte, bevor was neues genommen wird. Und wenn ich für bestimmte Klassen und Schnittstellen die allesamt in C++ geschrieben sind meine Hand ins Feuer legen kann, weil die woanders schon rund um die Uhr ohne Ausfalls ihren Dienst tuen, dann nehme ich die als DLL mit in das nächste Projekt, wenn ich die da gebrauchen kann.

Der Kunde bekommt das was er wünscht, ohne das er zusätlichen Aufwand hat. Wenn die Frage nach dem .NET-Framework mit "nein" bzw. "was ist das?" beantwortet wird.... gut. Dann wird es eben nicht genommen.
Steht der Kunde vorher nicht fest, d.h. die Anwendung wird für ein Clientel geschrieben welches sich erst noch für das neue Produkt interessieren muss, ist es relativ egal womit man es realisiert wurde. Aber auch da würde ich nach Anforderung entscheiden.

Dieser Sprachenglaubenskrieg ist so ziemlich das zweitalbernste nach dem OS-Glaubenskrieg.

Man nimmt das was man am besten gebrauchen kann. Punkt.
private Nachricht | Beiträge des Benutzers
r00t
myCSharp.de - Member



Dabei seit:
Beiträge: 141
Herkunft: Schwäbisch Gmünd

beantworten | zitieren | melden

Zitat
Dieser Sprachenglaubenskrieg ist so ziemlich das zweitalbernste nach dem OS-Glaubenskrieg.

jungs das was ihr so schreibt ist wirklich interessant, aber seid ihr alle nicht mitglieder des myCSHARP Forums?!
posted by the real prince of persia
private Nachricht | Beiträge des Benutzers
NoOneKnows
myCSharp.de - Member

Avatar #avatar-1526.gif


Dabei seit:
Beiträge: 334
Herkunft: Hannover

beantworten | zitieren | melden

@Ftee:
Klar ist es ein Glaubenskrieg... Die Frage ist ja, wer ihn gewinnt Aber im Endeffekt wunderts mich das hier in dem C#-Forum einige C/C++-Anhänger präsent sind. Vor allem das sie Partout nicht einsehn wollen, daß C# die besser Sprache is Ne, Scherz. Jede Sprache hat seine Stärken und Schwächen, wobei C# allerdings als eine Sprache mit vielen Stärken und wenigen Schwächen ist.

Übrigens noch Danke an Code-Hacker für die Einsicht in die Gedankengänge eines C++lers
([bb]|[^b]{2})
private Nachricht | Beiträge des Benutzers
Vellas
myCSharp.de - Member



Dabei seit:
Beiträge: 854

beantworten | zitieren | melden

Hi!
Zitat
Original von NoOneKnows
@Ftee:
Klar ist es ein Glaubenskrieg... Die Frage ist ja, wer ihn gewinnt Aber im Endeffekt wunderts mich das hier in dem C#-Forum einige C/C++-Anhänger präsent sind. Vor allem das sie Partout nicht einsehn wollen, daß C# die besser Sprache is Ne, Scherz. Jede Sprache hat seine Stärken und Schwächen, wobei C# allerdings als eine Sprache mit vielen Stärken und wenigen Schwächen ist.
Stimmt! Ich bin aber davon überzeugt das jeder Programmierer immer eine Sprache hat in der er besonders gut ist. Und in der Windowswelt ist C# auf jedenfall sehr bedeutend und vielleicht ja auch immer mehr auf Linux.
Zitat
Original von NoOneKnows
Übrigens noch Danke an Code-Hacker für die Einsicht in die Gedankengänge eines C++lers
*g*


Code-Hacker
private Nachricht | Beiträge des Benutzers
Ftee
myCSharp.de - Member



Dabei seit:
Beiträge: 71

beantworten | zitieren | melden

wobei ich allerdings der Meinung bin, das man sich lieber mehr allgemeines Verständnis der allgemeinen Grundlagen und Methoden aneignen und pflegen sollte.... über mehrere Sprachen hinweg.
Spezialisten in einer bestimmten Sprache gibts wie Sand am Meer. (Ausser vielleicht SAP )

Aber wenn man zu sehr auf eine Sprache oder einem Framework festhängt, wird man meiner Meinung nach "Betriebsblind".

Hat man ein paar Sprachen durch, oder ist gezwungen ständig verschiedene zu benutzen, merkt man halt das es letztendlich auch C# nur ein weiteres Werkzeug ist.
In ein paar Jahren wird auch C# durch etwas besseres abgelöst.

Im Moment ist es in Verbindung mit .NET wirklich ein gut gelungenes Gesamtkonzept. Keine Frage. Aber alles (auch C#) hat Vor- und Nachteile.
private Nachricht | Beiträge des Benutzers
NoOneKnows
myCSharp.de - Member

Avatar #avatar-1526.gif


Dabei seit:
Beiträge: 334
Herkunft: Hannover

beantworten | zitieren | melden

Zitat
Original von Ftee
Aber wenn man zu sehr auf eine Sprache oder einem Framework festhängt, wird man meiner Meinung nach "Betriebsblind".
Auf jeden Fall! Ich denke mal die meisten hier Forum haben nicht mit C# angefangen, sondern vorher was anderes geproggt. Aber von allen Sprachen die ich bis jetzt intensiver gelernt habe, und das sind ein halbes Dutzend (darunter auch C++ :-), ist C# die modernste und ausgeklügelteste...
Zitat
In ein paar Jahren wird auch C# durch etwas besseres abgelöst.
Das nennt sich dann C* oder so... Überhaupt ne Frage dazu, die ich mir schon öfter gestellt hab: Gibt es noch etwas besseres als die objektorientierte Programmierung? Früher dachte man ja auch die prozedurale Programmierung sei das Wahre. Bloß ich kann mir net vorstellen wie der nächste Entwicklungsschritt aussehen sollte...
([bb]|[^b]{2})
private Nachricht | Beiträge des Benutzers
Ftee
myCSharp.de - Member



Dabei seit:
Beiträge: 71

beantworten | zitieren | melden

C# ist auf jeden Fall sehr verdammt gut überlegt. Es hat den sehr guten Editor von MS, und der Aufbau des Frameworkes und der Sprache auch viel von der VCL. Die IDE ist Borland sehr ähnlich.
Man merkt, das der Delphi-Entwickler dabei gewesen ist. Wobei für mich ein grosser Teil der Komforts vom Editor ausgeht! Der ist fast so gut wie Ultraedit, einzig die Tasten und Macroverwaltung ist noch nicht ganz das Wahre, aber gibt ja immer was zu meckern

Das Projektmanagement ist schlicht genial. Es ist kein Problem eine Solution mit 3 Dutzend Unterprojekte zu halten. Und das man die Startapplikation mittels zwei Klicks auswählen kann ist beim debuggen EXTREM hilfreich.

Ich arbeite sehr gerne damit.

Für mich war C++ mit der STL immer das höchste. Und ich halte es immer noch für sehr gelungen. C# bzw. .NET hat allerdings den Riesengrossen Vorteil, das es der Beginn eines Abschieds von COM ist! DAS ist es, was mich unter Windows immer wieder an den Rand der Verzweifelung trieb. Das Konzept des GACs insgesamt halte ich für sehr zukunftsfreundlich, obwohl ein "zumüllen" des Systems so leicht begünstigt wird, aber wie gesagt: es gibt immer was zu meckern

Ich denke, das .NET allgemein ein grosser Schritt in der Windows-Welt ist. Insgesamt denke ich, das sich das Konzept und die Sprache auch unter Linux Freunde schaffen wird. Das dieses unterstützt wird, dafür wird Novell schon Sorgen. Auch die haben Interesse für MS und eigene Produkte möglichst identische Sourcen zu haben, und so gleiches Look&Fell sowie interne Integrität auf beiden Welten zu bieten.

.NET ist die Zukunft. Davon gehe ich aus. Es wäre ein Fehler auf altes zu beharren. Trotzdem wirds der grosse Umbruch erst mit Longhorn kommen.
private Nachricht | Beiträge des Benutzers
zeus
myCSharp.de - Member

Avatar #avatar-8.jpg


Dabei seit:
Beiträge: 451
Herkunft: /home

beantworten | zitieren | melden

Zitat
Original von NoOneKnows
[...]
Zitat
In ein paar Jahren wird auch C# durch etwas besseres abgelöst.
Das nennt sich dann C* oder so... Überhaupt ne Frage dazu, die ich mir schon öfter gestellt hab: Gibt es noch etwas besseres als die objektorientierte Programmierung? Früher dachte man ja auch die prozedurale Programmierung sei das Wahre. Bloß ich kann mir net vorstellen wie der nächste Entwicklungsschritt aussehen sollte...

Hi,

es gibt die sog. methodenorientierte Programmierung, ist aber nicht umbedingt das wahre: http://www.c-plusplus.de/forum/viewtopic.php?t=59767&start=30&postdays=0&postorder=asc&highlight=
Viele Grüße
www.mycsharp.de

Bitte vor dem Fragen immer in die FAQ schauen und die Suche benutzen. Danke.
private Nachricht | Beiträge des Benutzers
Franknstein
myCSharp.de - Member



Dabei seit:
Beiträge: 531

beantworten | zitieren | melden

Zitat
von Ftee
C# ist auf jeden Fall sehr verdammt gut überlegt. Es hat den sehr guten Editor von MS, und der Aufbau des Frameworkes und der Sprache auch viel von der VCL.

Bitte bringt mich nicht um wenn ich behaupte, dass der VS-Editor nicht so soderlich gut ist. Wer schonmal mit Eclipse gearbeitet hat, der wird das selbe von VS denken wie ich. Der VS-Editor ist schon nicht mehr auf dem neuesten Stand, da am Editor glaube ich seit VS2001(und es gab auch kaum Verbesserungen zu VS6 bis auf das bessere Intellisense und die Funktionen ausblenden) kaum was gemacht wurde. Eclipse bietet da viel mehr aber ist dennoch übersichtlicher als VS. Nur leider ist Eclipse manches mal sehr langsam. Ich werde daher nach meinem jetztigen Projekt
a) Eclipse mit Java verwenden
b) Eclipse mit dem C#-Plugin verwenden

Nun, .net hat zwei gewaltige Fortschritte(Was die Programmierer davon halten weiß ich nicht):
-keine Verwendung der Registry nötig (soll auch garnicht mehr gemacht werden)
-wie Ftee schon gesagt hat kein Comgefubbel mehr

--
mfg
Franknstein
Besuchen sie das VisualC++ - Forum
private Nachricht | Beiträge des Benutzers
NoOneKnows
myCSharp.de - Member

Avatar #avatar-1526.gif


Dabei seit:
Beiträge: 334
Herkunft: Hannover

beantworten | zitieren | melden

Zitat
Original von zeus
es gibt die sog. methodenorientierte Programmierung, ist aber nicht umbedingt das wahre: http://www.c-plusplus.de/forum/viewtopic.php?t=59767&start=30&postdays=0&postorder=asc&highlight=

Sieht strange aus. Hier ein Beispiel Code von C-mol:

// Methodenorientiertes C-mol Programm zur Flächenberechnung

#include <stdio.h>
#include <math.h>
#define STYLE_NEWLINE 1
#define STYLE_UNDERLINED 2

struct SRechteck
{
	float SeiteA, SeiteB;
};

struct SKreis
{
	float radius;
};

// Berechnungsmethodemethod
FlaecheBerechnen()
{
	// Prolog
	FlaecheBerechnen() 
	{
		printf("Berechne Flaeche...\n") 
	}

	//Handling für Kreis
	float <SKreis>() 
	{	
		const float PI=3.1415;
		float Flaeche;
		Flaeche = PI*that.radius*that.radius;
		print("%f", Flaeche);
		return Flaeche;
	}

	//Handling für Rechteck
	float <SRechteck>() 
	{
		float Flaeche;
		Flaeche = that.SeiteA*that.SeiteB;
		return Flaeche;
	}

};


// Eingabemethodemethod
Einlesen()
{
	// Prolog
	Einlesen() 
	{
		printf("Bitte geben Sie alle notwendigen Daten fuer ");
	}

	// Handling für Rechteck
	void <SRechteck>() 
	{
		printf("das Rechteck ein:\n");
		printf("Seite a: ");
		scanf("%f", &(that.SeiteA));
		printf("Seite b: ");
		scanf("%f", &(that.SeiteB));
		printf("\n");
	}

	// Handling für Kreis
	void <SKreis>() 
	{
		printf("den Kreis ein:\n");
		printf("Radius: ");
		scanf("%f", &(that.radius));
		printf("\n");
	}
	
};

// Ausgabemethodemethod
Ausgeben(int Style)
{
	// Epilog
	~Ausgeben() 
	{
		if(Style == STYLE_NEWLINE) 
		{
			printf("\n");
		}
		else if(Style == STYLE_UNDERLINED) 
		{
			printf("\n------------------------------\n\n");

		}
	}

	// Handling für Kreis
	void <SKreis>() 
	{
		printf("Kreis mit Radius = %f", that.radius);
	}


	// Handling für Rechteck
	void <SRechteck>() 
	{
		printf("Rechteck mit Seite a = %f und Seite b = %f", that.SeiteA, that.SeiteB);
	}

	// Handling für die Flächen-Ausgabe
	void <float>(char *Typ) 
	{
		printf("%sflaeche = %f", Typ, that);
	}
	
};

// Hauptprogrammint main()
{
	struct SRechteck *pRechteck = new SRechteck;
	struct SKreis *pKreis = new SKreis;
	float Flaeche;

	// Flächenberechnung für Rechteck
	Flaeche = FlaecheBerechnen()<-Einlesen()<-pRechteck();
	Ausgeben(STYLE_NEWLINE)<-pRechteck();
	Ausgeben(STYLE_UNDERLINED)°Flaeche("Rechteck\0");

	// Flächenberechnung für Kreis
	Flaeche = FlaecheBerechnen()<-Einlesen()<-pKreis();
	Ausgeben(STYLE_NEWLINE)<-pKreis();
	Ausgeben(STYLE_UNDERLINED)°Flaeche("Kreis\0");
	delete pRechteck;
	delete pKreis;
	return 0;
}
Und so den direkten Vorteil kann ich im Moment nicht erkennen. Wahrscheinlich muß man sich damit erst näher befassen. Im grundegenommen ist es ja wieder ein Schritt zur prozeduralen Programmierung. Dort hat sich alles immer um Prozeduren gedreht, nicht wie bei OOP um die Daten. Nur das bei MOP mit einer Methode alles verarbeitet werden kann. Aber wenn ich die Methode sowieso um diesen Typ jeweils erweitern muß, dann kann ich auch gleich das Objekt entsprechend erweitern. Mit Hilfe von Interfaces kann man auch an Objekten solche Verallgemeinerungen vornehmen.
([bb]|[^b]{2})
private Nachricht | Beiträge des Benutzers
Franknstein
myCSharp.de - Member



Dabei seit:
Beiträge: 531

beantworten | zitieren | melden

Wenn ich mir das so anschaue denke ich, dass z.B. für die Handhabung von Dateien in einem komplexen Format diese Art der Programmierung effizent ist...

--
mfg
Franknstein
Besuchen sie das VisualC++ - Forum
private Nachricht | Beiträge des Benutzers
CarstenP
myCSharp.de - Member



Dabei seit:
Beiträge: 65
Herkunft: Berlin

beantworten | zitieren | melden

So, ich mag auch nochmal meine Cents dazugeben:

<zyn>
C# ist VB, verpackt in C++.
</zyn>

Auf den ersten Blick sieht C# ja schon aus wie C++, außer dass die hässlichen -> wegfallen. Und das ist dann wieder die Verwandtschaft zu VB: ein "." ist immer richtig. Das ist für den Einstieg wirklich gut. Und natürlich die GC, wobei die Beschreibung, wie die im Detail arbeitet, mindestens einen Dipl.-Ing. zum Verständnis voraussetzt

Der eigentliche Vorteil von C# liegt abgesehen von Kleinigkeiten eben nicht in der Syntax, sondern im Framework. Das, was die schicke ATL in C++ ist, ist im Framework in noch schickeren Klassen eingepackt.

An C# vermissen tu ich aber auch ein paar Dinge: Header-Files (statt der ***** Assembly-Referenzen und zur Trennung von Deklaration und Definition sowie die Möglichkeit, bitte alle Operatoren überladen zu können (diesen Sonderweg für [] habe ich bis heute noch nicht in seiner Sinnhaftigkeit erfasst) und Mehrfachvererbung. Interfaces finde ich immer noch irgendwie eklig, und wenn ich mir einige meiner Klassen anschaue, wimmelt es dort vor Reflection, nur um Interfaces zu vermeiden...

So, und bei aller Diskussion darf man nicht vergessen, dass C# eine Sprache mitten in der Entwicklung ist. Auch C++ war in frühen Jahren nicht wirklich ausgereift. Mit den 2.0-Compilern wird uns noch eine Menge an (hoffentlich schönen) Neuerungen ins Haus stehen.

<Absatz />

Wie man an einigen Postings sieht, ist MS die Verzahnung von C# mit VS.NET und dem Framework offenbar sehr gut gelungen ("C# hat eine tolle Bibliothek und eine tolle IDE") -- wenngleich man über den Sinn so mancher Vorlagen innerhalb des VS wohl trefflich streiten könnte: Ich persönlich halte die meisten Vorlagen, insbesondere auf Datenbank-Anwendungen bezogen, für völlig sinnlos, und das übelste Verbrechen ist für mich nach wie vor das "Data-Binding" von Controls. Wer sich da einmal dran gewöhnt hat, dem dürfte es schwer fallen, mal eine N-Tier-Anwendung sauber zu programmieren.

C# an sich ist für mich jedenfalls nur das recht ordentlich geglückte Ergebnis der Forderung, der Programmierer solle sich um das Lösen einer Aufgabe kümmern können, statt sich mit den Anforderungen einer Sprache herumzuschlagen. Das erkennt man unter anderem daran, dass MS selbst wieder von der ungarischen Notation abgekehrt ist (weil sie überflüssig ist unter C#/.NET).

Übrigens, was die Sicherheit angeht, so ist das, was in ein paar Postings hier im Thread geschrieben wurde, eher das Zustimmen zu Microsofts DAU-Schutz: "Schützen wir den Computer mal besser vor der Dusseligkeit des Programmierers!" Denn auch in C lässt sich sicherer Code schreiben. Wer einen B-Tree im Speicher aufbaut, sollte auch wissen, wie man ihn wieder sauber abbaut, und wer partout "strcpy()" statt "strncpy()" benutzen will, dem ist halt nicht zu helfen...
/// <summary>
/// Signatur
/// </summary>
private Nachricht | Beiträge des Benutzers