c++ != c# ?
c++ != c# ?
ich dachte immer c# sei nur eine andere schreibweise für c++, doch nun ist das anscheindn nicht so?
kann mich da jemand aufklären?
danke
kann mich da jemand aufklären?
danke
Bevor Du einen Beitrag postest:
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?
- feltel
- Webmaster
- Beiträge: 10368
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Nee, C++ und C# sind nicht das gleiche. C++ gibts schon viel länger als C#, welches von Microsoft entwickelt wurde (im Rahmen der .net-Initiative). In weit die aber sprachlich/syntaktisch verwandt sind kann ich nicht sagen, obwohl ich sicherlich nicht falsch liegen würde wenn ich sage, das C# ne Abart von C und/oder C++ ist.
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
@mohameth: Um dir ein Bild von C# zu machen empfehle ich dir mal ein Blick in dieses online-Buch: http://www.galileocomputing.de/openbook/csharp/
es wäre wohl eher treffend, wenn man C# als eine Mischung aus java und C++ bezeichnen würde.feltel hat geschrieben:In weit die aber sprachlich/syntaktisch verwandt sind kann ich nicht sagen, obwohl ich sicherlich nicht falsch liegen würde wenn ich sage, das C# ne Abart von C und/oder C++ ist.
@mohameth: Um dir ein Bild von C# zu machen empfehle ich dir mal ein Blick in dieses online-Buch: http://www.galileocomputing.de/openbook/csharp/
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
c# hat (auch wenn Microsoft etwas anderes behauptet) so gut wie gar nichts mit c++ zu tun. Es ist der Sprache mehr als deutlich anzusehen, dass sie von Java abgeleitet ist. Ebenso deutlich ist, dass dabei rein aus Prinzip ein paar Änderungen angebracht wurden, nur um nicht exakt wie java zu sein.
Wenn du Java kannst, kannst du auch c# (nach kurzer Einarbeitung), wenn du C++ kannst, bist du C# noch immer sehr fremd.
Wenn du Java kannst, kannst du auch c# (nach kurzer Einarbeitung), wenn du C++ kannst, bist du C# noch immer sehr fremd.
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
Oder wenn ich z.B. hier sehe, was da mit BufferedReader, InputStreamReader usw. gemacht werden muß um von der Konsole zu lesen, da ist mir ein einfaches "lastName = Console.ReadLine();" doch sympathischer.
Oder um noch etwas anderes zu nennen, properties finde ich sind auch eine sehr gute Sache.
PS: Für die java Hacker vielleicht interessant, hier gibt es ein Überblick über C# aus der Sicht von java: http://www.25hoursaday.com/CsharpVsJava.html
Naja, selbst wenn man sagt, dass c# nur an java angelehnt ist, dann hat java immernoch Anlehnungen an C++ und sei es nur der Aufbau von while, for,... Konstrukten, die {}, &&, ||, == und ähnliches.hupfdule hat geschrieben:c# hat (auch wenn Microsoft etwas anderes behauptet) so gut wie gar nichts mit c++ zu tun. Es ist der Sprache mehr als deutlich anzusehen, dass sie von Java abgeleitet ist.
Ich würde es nicht als "aus reinem Prinzip" bezeichnen. Wenn man bei C# z.B. nichtmehr darauf achten muß das Klassenname == Dateiname ist, dann halte ich das durchaus für sinnvoll.Ebenso deutlich ist, dass dabei rein aus Prinzip ein paar Änderungen angebracht wurden, nur um nicht exakt wie java zu sein.
Oder wenn ich z.B. hier sehe, was da mit BufferedReader, InputStreamReader usw. gemacht werden muß um von der Konsole zu lesen, da ist mir ein einfaches "lastName = Console.ReadLine();" doch sympathischer.
Oder um noch etwas anderes zu nennen, properties finde ich sind auch eine sehr gute Sache.
Also ich kannte nur C und etwas C++ und habe mich sehr schnell in c# zurecht gefunden. Eben weil die ganzen Konstrukte im Prinzip gleich aufgebaut sind. Das einzige was neu und etwas gewöhnungsbedürftig war ist, dass man alles gleich am Anfang in eine Klasse packt. Aber auch daran habe ich mich schnell gewöhnt, da ich in Ada95 auch immer alles in eine Prozedur packen mußte.Wenn du Java kannst, kannst du auch c# (nach kurzer Einarbeitung), wenn du C++ kannst, bist du C# noch immer sehr fremd.
PS: Für die java Hacker vielleicht interessant, hier gibt es ein Überblick über C# aus der Sicht von java: http://www.25hoursaday.com/CsharpVsJava.html
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
- Leonidas
- Beiträge: 2032
- Registriert: 28.04.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Naja, sind eben alle C-styled Sprachen, und == hat so fast jede Programmiersprache.BeS hat geschrieben:Naja, selbst wenn man sagt, dass c# nur an java angelehnt ist, dann hat java immernoch Anlehnungen an C++ und sei es nur der Aufbau von while, for,... Konstrukten, die {}, &&, ||, == und ähnliches.
Ack!BeS hat geschrieben:Ich würde es nicht als "aus reinem Prinzip" bezeichnen. Wenn man bei C# z.B. nichtmehr darauf achten muß das Klassenname == Dateiname ist, dann halte ich das durchaus für sinnvoll.
Properties in C# kenne ich nicht (nur in Python), aber Console.ReadLine() ist ein Aufruf der Library und hat nicht direkt was mit der Sprache zu tun. Ich denke mit J# könnte man das auch so machen. Oder man kann sich einen Wrapper schreiben, der die BufferedReader usw. vereinfacht, denn ja, das ist irgendwie übertrieben kompliziert.BeS hat geschrieben:Oder wenn ich z.B. hier sehe, was da mit BufferedReader, InputStreamReader usw. gemacht werden muß um von der Konsole zu lesen, da ist mir ein einfaches "lastName = Console.ReadLine();" doch sympathischer.
Oder um noch etwas anderes zu nennen, properties finde ich sind auch eine sehr gute Sache.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.
- devilx
- Beiträge: 734
- Registriert: 26.08.2003 22:57:20
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Filderstadt
-
Kontaktdaten:
Wenn du C oder C++ kannst ist es ueberhaupt nicht schwer sich in anderen Sprachen zurecht zu finden, da du das Grundlegende bereits weist, die Aufbauweise einer Sprache kennst und weisst wie sie funktioniert. Mit einer API referenz solltest du da bereits recht weit kommen, selbst wenn du die Sprache nicht beherrscht, dafuer aber C/C++.Wenn du Java kannst, kannst du auch c# (nach kurzer Einarbeitung), wenn du C++ kannst, bist du C# noch immer sehr fremd.
When you smile, the world smiles with you
When you fart, you stand alone
... a place full of dorkness
When you fart, you stand alone
... a place full of dorkness
- Leonidas
- Beiträge: 2032
- Registriert: 28.04.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Naja gut, Haskell ist vielleicht nicht so relevant, aber Lisp: Maxima, Emacs und einiges mehr. Also so irrelevant ist sie nicht, nur weil es eine funktionale Sprache ist (die Liste in der Wikipedia ist irgendwie cool, dort steht sehr interessantes drin).peschmae hat geschrieben:Er meinte relevante Sprachen
Nein, aber ich habe mal mit Ook# gespielt, hihi.peschmae hat geschrieben:(Schon mal Whitespace versucht? )
Was man auch nicht verwechseln sollte ist Managed C/C++ und C#.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.
Ich bin der Meinung, dass man Programmiersprachen nicht "kann" sonder sie benutzt. Außerdem ist es wohl viel mehr Wert um eine Sprache benutzen zu können, sich gut in den Bibliotheken auszukennen, Frameworks und deren Konzepte zu kennen als die reine Syntax zu kennen. Mag sein das Java und c# ähnliche Syntax besitzen, ähnlichen Bibliotheksumfang usw. besitzen, deswegen gilt meiner Meinung nach sicherlich nicht das ein guter Javaprogrammierer automatisch ein guter C#-Programmierer oder umgekehrt ist. Jedoch kann sich sicherlich ein guter Programmierer, der eine ganze Weile mit einer dieser beiden gearbeitet hat, sich normalerweise schneller in die andere Sprache einarbeiten und auch dort effektiv arbeiten und gut werden.hupfdule hat geschrieben: Wenn du Java kannst, kannst du auch c#
cu
Genau so sehe ich das. Denn die obigen Argumente der Ähnlichkeit von C++ und C#/Java beschränken sich auf die Syntax. Die Konzepte sind vollkommen unterschiedlich. C# und Java hingegen haben fast exakt das selbe Konzept.tylerD hat geschrieben:Ich bin der Meinung, dass man Programmiersprachen nicht "kann" sonder sie benutzt. Außerdem ist es wohl viel mehr Wert um eine Sprache benutzen zu können, sich gut in den Bibliotheken auszukennen, Frameworks und deren Konzepte zu kennen als die reine Syntax zu kennen.hupfdule hat geschrieben: Wenn du Java kannst, kannst du auch c#
Eben, ein guter Java-Programmierer wird sehr schnell gute C#-Programme schreiben können, weil die Konzepte so stark verwandt sind. Ein guter C# Programmierer wird nicht ohne Weiteres gute C++ Programme schreiben können. Ebenso wie ich bezweifle, dass ein guter C++ Programmierer schnell gute C# Programme schreiben kann. Dazu ist die Ausrichtung der Sprache viel zu unterschiedlich.Mag sein das Java und c# ähnliche Syntax besitzen, ähnlichen Bibliotheksumfang usw. besitzen, deswegen gilt meiner Meinung nach sicherlich nicht das ein guter Javaprogrammierer automatisch ein guter C#-Programmierer oder umgekehrt ist. Jedoch kann sich sicherlich ein guter Programmierer, der eine ganze Weile mit einer dieser beiden gearbeitet hat, sich normalerweise schneller in die andere Sprache einarbeiten und auch dort effektiv arbeiten und gut werden.
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Also hat c#, nach deiner eigenen Aussage, doch etwas mit C++ zu tun.Leonidas hat geschrieben: Naja, sind eben alle C-styled Sprachen, und == hat so fast jede Programmiersprache.
Es ist vielleicht auch interessant mal das "Mono - A Developer's Notebook" zu lesen, da wird an verschiedenen Stellen immer wieder darauf hingewiesen welche Elemente C++ ähnlich sind und welche java ähnlich.
Übrigens ist das == und auch && und || nicht so üblich ausserhalb von C/C++ (und eben java und c# welche sich zum Teil an C++ orientiert haben). Viele andere Sprachen verwenden eher :=, =, and, or.
Zitate:
hupfdule: Wenn du Java kannst, kannst du auch c#
tylerD: Ich bin der Meinung, dass man Programmiersprachen nicht "kann" sonder sie benutzt.
hupfdule: Genau so sehe ich das.
-> Widerspruch
(Sorry, ist mir beim lesen so ins Auge gefallen und ich konnte nicht widerstehen. Ist nicht böse gemeint)
Du must hier aber aufpassen, denn wie du selber anmerkst ist das was du beschreibst ein ganzes Framework also eher Mono oder .Net aber nichtmehr die Programmiersprache C#!tylerD hat geschrieben: Ich bin der Meinung, dass man Programmiersprachen nicht "kann" sonder sie benutzt. Außerdem ist es wohl viel mehr Wert um eine Sprache benutzen zu können, sich gut in den Bibliotheken auszukennen, Frameworks und deren Konzepte zu kennen als die reine Syntax zu kennen.
Eine Programmiersprache definiert sich (ausschließlich) durch den Syntax und die Semantik. Das man, für "sinnvolle" Programme, mehr als nur die Programmiersprache können muß ist auch klar. Aber man muß halt aufpassen ob wir hier über eine Programmiersprachen (C#) oder ein ganzes Framework sprechen (Mono, .Net,...).
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Deswegen hat er ja Haskell und Lisp genannt, nur scheme hat er noch vergessen!peschmae hat geschrieben:Er meinte relevante SprachenLeonidas hat geschrieben:Schonmal Haskell oder Lisp nach C oder C++ probiert? *g*
(Schon mal Whitespace versucht? )
Schon ESR sagte:
"LISP is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days."
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Ich glaube nicht an den Weihnachtsmann (siehe http://www.userfriendly.org ) und auch nicht an ESRBeS hat geschrieben: Schon ESR sagte:
"LISP is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days."
MfG Peschmä
P.S. Das ist so zu verstehen: Wenn du endlich rausgefunden hast das Lisp mist ist wirst du was anderes Benutzen und damit bessere Programme schreiben und ergo ein besserer Programmierer sein. (Jetzt lehne ich mich aber arg weit aus dem Fenster, habe ich doch nie Lisp benutzt. *g*)
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
- devilx
- Beiträge: 734
- Registriert: 26.08.2003 22:57:20
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Filderstadt
-
Kontaktdaten:
Mit whitespace habe ich keine Erfahrung, mit Brainfuck aber sehr wohl. Ich denke, dass ich ohne C Vorkenntnisse die Arbeitsweise von Brainfuck nur schwer verstanden haette.peschmae hat geschrieben:(Schon mal Whitespace versucht? )
When you smile, the world smiles with you
When you fart, you stand alone
... a place full of dorkness
When you fart, you stand alone
... a place full of dorkness
Das stimmt wohl. Java wird wohl landläufig sehr oft mit J2SE und J2EE gleichgesetzt und C# mit .Net-Framework. Bei C/C++ kann man diesen Fehler nicht so schnell machen da es dort einfach zu viele Bibliotheken gibt.BeS hat geschrieben:
Du must hier aber aufpassen, denn wie du selber anmerkst ist das was du beschreibst ein ganzes Framework also eher Mono oder .Net aber nichtmehr die Programmiersprache C#!
Eine Programmiersprache definiert sich (ausschließlich) durch den Syntax und die Semantik. Das man, für "sinnvolle" Programme, mehr als nur die Programmiersprache können muß ist auch klar. Aber man muß halt aufpassen ob wir hier über eine Programmiersprachen (C#) oder ein ganzes Framework sprechen (Mono, .Net,...).
Bei den (objektorientierten) Sprachen Java, C++ und C# find ich es aber oft noch viel wertvoller Programmierparadigmen und Konzepte zu können und verstanden zu haben. Die sind in der Regel allgemein anwendbar, die Syntax ist dann ja nur das Handwerk was notwendigerweise beherrscht werden muss.
cu
- Leonidas
- Beiträge: 2032
- Registriert: 28.04.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Scheme ist ja auch nur ein Lisp Dialekt (dafür werden mich sicher einige totschlgen wollen, weil sie sagen, dass es DER Dialakt ist, aber egal).BeS hat geschrieben:Deswegen hat er ja Haskell und Lisp genannt, nur scheme hat er noch vergessen!
Ich auch nicht, dafür habe ich aber stundenlang GCL und danach noch einige Zeit Maxima kompiliert - Und wenn dann würde ich eher mit Haskell anfangen, das scheint recht cool zu sein.Peschmä hat geschrieben:(Jetzt lehne ich mich aber arg weit aus dem Fenster, habe ich doch nie Lisp benutzt. *g*)
Hab ich nicht bestritten, die Syntax ist oft ähnlich, eben Curled Braces Sprachen.BeS hat geschrieben:Also hat c#, nach deiner eigenen Aussage, doch etwas mit C++ zu tun.
Also in Python ist das so, in Ruby auch, und auch die Bash hat && *G* , daneben hat Python | und & wie auch and und or.BeS hat geschrieben:Übrigens ist das == und auch && und || nicht so üblich ausserhalb von C/C++ (und eben java und c# welche sich zum Teil an C++ orientiert haben). Viele andere Sprachen verwenden eher :=, =, and, or.
Eine Sprache ohne Bibliotheken kann man eigentlich vergessen - und die Bibliotheken von C, C# und Java gehen weit auseinander, also müsste man weniger die Syntax lernen, als wie man was mit der Bibliothek macht.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.