Was ist mit C#?
lima-city → Forum → Programmiersprachen → C/C++ und D
assembler
aussagen
betreiben
betriebssystem
compiler
damal
erfahrung
fehler
fragen
markt
meinung
problemstellung
programmiersprache
programmierung
prozessor
sicht
sprache
umsteigen
window
zielvorgabe
-
Ich bin neu im Programmieren und bin schon ganz gut in C#!
Was haltet ihr von C#?
W?rdet ihr C++ oder C# eher empfehlen?
Welche der beiden Sprachen ist umfangreicher?
ps:
Der Forumtitel "C/C++" geh?rt erg?nzt in "C/C++/C#"
oder ein eigenes Forum f?r .net-Sprachen
mfg ste.1.2.3 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich halte C# f?r eine tolle Marketingidee von Microsoft. C# ist eigentlich nichts anderes als ein Konkurrent f?r Java und genau die gleichen Firmen, die aus einem mir nicht verst?ndlichen Grund nur in Java programmieren, scheinen nun auf C# zu fliegen. Vielleicht sehe ich das ja zu sehr durch die "Hardcore"-Programmiererbrille, aber ich denke, wirklich interessante Programme werden eh nur in C oder C++ geschrieben. Wer schreibt schon ein Programm, bei dem es auf Performance ankommt in einer Sprache, die dann in Bytecode ausgef?hrt wird? Performance wird ?berall da ben?tigt, wo etwas wichtig ist, z.B. Serveranwendungen, DB-Systeme, intensive Verschl?sselungsprogramme, Mikrocontroller, etc.
Die Folgerung aus diesen ?berlegungen heraus bedeutet f?r mich:
1. Auf jeden Fall C lernen
2. C++ lernen, da man C ja eh schon kann
3. Bisschen in C# rumschnuppern, damit man das bei Bewerbungen als F?higkeit angeben kann.
Punkt 2 und 3 k?nnen vertauscht werden, je nach den Umst?nden, um dies es geht. Ergo: Ob man C# oder C++ lernt, ist egal. Wichtig ist nur C. Der Rest sind nette Gimmicks f?r Hobbyprogrammierer oder f?r Firmen, bei denen die Controller und/oder Marketingmenschen mehr zu sagen haben als der Teil der Angestellten, die Innovationen betreiben. -
Hallo,
C# und Java miteinander zu verleichen ist mutig.
Die Ausf?hrung von einem Programm basiert auf der Theorie von Java. Java und C# sind zwei unterschiedliche paar Schuhe.
Hier ein paar Infos:
http://get.pyrokar.lima-city.de/libary/informatik/einfuerungprog.htm#Cplusplus
-
Ich kann mittlerweile schon sehr gut in C# programmieren!
Ich wollte auf C++ umsteigen, aber ich habe im Internet zu wenig Vorteile von C++ gefunden:
In C++ kann man ein Betriebssystem programmieren:
Was bringt das? Wenn ich Perfekt C++ beherrsche, kann ich noch LANGE kein Betriebssystem machen. Au?erdem, was bringt mein eigenes Betriebssystem, wenn es keine Programme dazu gibt. Und dann hat Microsoft sicher in Bezug auf Bugs und Sicherheitsl?cken wieder konkurrenz.
Zukunft von C#
Nach dem was ich im Internet ergooglet habe, hat Microsoft gro?e Pl?ne f?r C#. Das .net-Framework wird in allen neuen Windows-Versionen fest verankert. F?r Spiele-Programmierer: Neue DirektX-Versionen werden auch in C# verf?gbar sein - nicht ?ber Managed DirectX durch Wrapper.
F?r Linux-User wird C# sicher auch ersichtlich, wenn das MONO-Projekt erst mal richtig fertig ist (so viel ich weis ist es noch nicht Fertig) wird es bei Linux-Distributionen - denke ich mal - auch gleich dabei sein.
Geschwindigkeit
Nach dem was ich im Internet gefunden habe (hab ich selbst nicht getestet) soll C# so schnell sein wie C++ und dabei so einfach wie VisualBasic!
Das mit der Einfachheit, stimmt aber sicher nicht, in der komplexeren Materie von C# sind schon schwierigere Elemente als in VB drin.
Bez?glich der Geschwindigkeit sind mir keine Differenzen aufgefallen - ich hab das aber auch nicht getestet.
Zu meiner eigenen Frage : Was kann man mit C# machen:
Im Internet gibt es Paint.NET http://www.eecs.wsu.edu/paint.net/
Das ist in C# geschreiben worden. Da sieht man doch, dass in der Sprache schon was m?glich ist (finde ich zumindest).
Bez?glich Microcontroller und C
Ich habs zwar noch nicht versucht, aber da gibt es so umgebungen, in denen ich Programme einfach grafisch (zB PSoC) zusammenklicken kann - PSoC ist zudem noch sehr billig ca. 40 EUR mit dem graphischen Editor. Da kan man auch mit Assembler eingreifen.
Die Syntax von Assembler finde ich sehr einfach (einfacher als so mancher C-Compiler f?r Microcontroller). Aber bei gr??eren Projekten hab ich keine Chance gehabt, was gscheits raus zu bekommen. -
Ich gebe 0-checka zum teil Recht.
Zur Zeit ist C und C++ die Wichtigste Programiersprache.
Andere Sprachen wir z.B. Java sind Fehler resistenter und leichter zu Programmieren, darum werden sich solche Sprachen auf lange sicht durchsetzen.
JAVA hat zur Zeit noch ein Geschwindigkeitsproblem.
Dies hat damit zutun das JAVA einen rechner Simuliert. Und die Simulation dauert nat?rlich l?nger als wenn man die Befehle direckt auf den Recher ausf?hrt.
Allerdings wird der Geschwindigkeitsfaktor immer kleiner und deshalb denke ich dass sich Aufgrund der Vorteile andere Sprachen in vergleich zu C durchsetzen werden.
Das wird aber noch etwas dauern.
Also solange sollte man auch ein bisschen C k?nnen.
Zu C#:
C# ist so wie ich geh?rt habe nicht wesentlich langamer als C. Das hat auch die Gr?nde da MS extra f?r C# Methoden geschreiben haben, welche mit Windows zusammenarbeiten.
Also der Grund C# nicht zu benutzen ist nicht das es so langam ist.
Aber ttobsen hat ja schon gesagt, was an C# so bl?d ist.
Es l?uft nur auf Windows.
Darum k?nnte es sein, dass es sich nicht so sehr durchsetzt.
Jens -
[...]
Zu C#:
C# ist so wie ich geh?rt habe nicht wesentlich langamer als C.
[...]
Du meinst wohl wie C++.
C# wird nie so schnell sein wie C. Schon deswegen weil C eine Niedrige Programmiersprache ist.
Es l?uft nur auf Windows.
Stimmt nicht. C# geschriebene Programme funktionieren auf allen "Ger?ten" auf denen das Framework installiert ist.
Einge Gr?nde in C# zu programmieren hat ste123 gennant.
-
1. Auf jeden Fall C lernen
2. C++ lernen, da man C ja eh schon kann
3. Bisschen in C# rumschnuppern, damit man das bei Bewerbungen als F?higkeit angeben kann.
ich kann das lernen von c und dann c++ nicht empfehlen. wenn klar ist, dass man c++ will, sollte man nicht unbedingt c lernen. mich jedenfalls hat das ziemlich verwirrt... -
Noch nen L?ffel Senf dazu:
@0-checka:
Weil ich einige deiner anderen Beitr?ge gelesen habe, bin ich doch etwas erstaunt ?ber deine Antwort. Deine Argumentation f?r C/C++ find ich doch etwas zu konservativ. Erinnert mich an die Leute, die sich damals nicht vorstellen konnten, dass Assembler als 1.Wahl f?r performante Problemstellungen abgel?st wird. Ich bin eher der Meinung, dass, wenn die Zielvorgaben nicht dagegen sprechen, Sprachen, wie Java und C#, die sinnvollere Wahl zum Programmierenlernen sind. Schlie?lich sind in diesen Programmiersprachen deutlich aktuellere Ideen der Softwareentwicklung eingeflossen und man wird mehr zum sauberen Programmieren "erzogen" als bei C/C++.
@ttobsen:
Und die Aussage ist sowieso falsch. Man kann Teile Programmieren, aber niemals ein ganzes OS.
Wieso eigentlich nicht? Nur weil es keiner macht(?) heisst es ja noch nicht, dass es nicht geht, oder?
Wieso C# lernen? C++ hat sich schon seit vielen Jahren einen so festen Platz erobert.
Auch auf die Gefahr hin, dass ich mich wiederhole: Das h?tte vor ein paar Jahren auch von Assembler sagen k?nnen ;)
@get:
[...] weil C eine Niedrige Programmiersprache ist.
Ist das wirklich so? Habe ich in der Literatur bisher nie so gelesen, aber vielleicht sind die B?cher auch nur zu alt gewesen. Die Zeit ist unerbittlich... Vielleicht gilt das in nicht allzulanger Zeit auch mal f?r Java und C# :)
Gr??e
Talpa
-
Ich nehme lieber Tabasco
talpa schrieb:
Erinnert mich an die Leute, die sich damals nicht vorstellen konnten, dass Assembler als 1.Wahl f?r performante Problemstellungen abgel?st wird.
Soweit ich weiss, ist Assembler immer noch die 1. Wahl, zumindest bei den Leuten, die sich noch trauen Codeoptimierung zu betreiben. Zum Beispiel bei rechenintensiven Verschl?sselungen wird der Code an den relevanten Stellen meist erst in C (wie der Rest des Programmes/Bibliothek) geschrieben und dann mit Assemblercode optimiert.
talpa schrieb:
Ich bin eher der Meinung, dass, wenn die Zielvorgaben nicht dagegen sprechen, Sprachen, wie Java und C#, die sinnvollere Wahl zum Programmierenlernen sind
Wenn man mal den Arbeitsmarkt betrachtet, dann hat man drei M?glichkeiten:
1. Sich auf "neue" Sprachen wie Java und C# konzentrieren.
2. Sich auf "alte" Sprachen wie C und Delphi konzentrieren
3. "Alte" und "neue" Sprachen lernen
Bei dem 1. und 2. Punkt kommt es darauf an, ob man Gl?ck hat und ein m?glicher Arbeitgeber nur diese oder jene Sprache als Bedingung voraussetzt.
Mit dem 3. Punkt f?hrt man immer gut. Da der Umstieg von C zu C# oder Java leichter ist als umgekehrt, rate ich dazu, erstmal eine "klassische" Programmiersprache zu lernen. Gerade zu diesem Zeitpunkt, wo der Markt f?r Embedded-(Mikroprozessor-)Programmierung so rasant w?chst, ist das Erlernen der Sprache C aus meiner Sicht unerl?sslich. Es gibt zwar auch eine Handvoll Prozessoren, auf die man eine Java VM laden kann, das sind aber Sonderkonstruktionen, die nicht da verwendet werden, wo der Markt wirklich boomt.
talpa schrieb:
Schlie?lich sind in diesen Programmiersprachen deutlich aktuellere Ideen der Softwareentwicklung eingeflossen und man wird mehr zum sauberen Programmieren 'erzogen' als bei C/C++.
Ich finde, dass die aktuelleren Ideen so sinnvoll sind wie ABS, ESP und Airbags bei einem Formel 1-Auto. Und zu guter letzt bekommt man noch statt Slicks Reifen mit Stollen...
Es wird zwar immer wieder betont, wie toll es ist, eine "fehlervermeidende" Sprache wie Java oder jetzt auch C# einzusetzen, aber ich habe durch meine Erfahrungen ganz andere Schl?sse gezogen. Ein Grossteil der auftretenden Fehler geschieht durch ?bersehen von Randbedingungen, die keine Programmiersprache verhindern k?nnte. Wenn man mal die bugtraq-Meldungen untersucht und Fehler von Webanwendungen wegl?sst, lassen sich (meiner Sch?tzung nach) 90% aller Fehler auf logische Fehler zur?ckf?hren, die nicht durch das Verwenden einer anderen Programmiersprache verhindert worden w?ren. Wichtiger als sein Augenmerk auf eine Programmiersprache zu legen, die zu sauberem Programmieren erzieht, w?re es, Wert auf saubere Entw?rfe zu legen. -
Sorry, dass ich mich erst wieder nach einer so langen Zeit zu dem Thema melde, aber ich war relativ eingespannt in der letzten Zeit...
und ich nehme zus?tzlich eine Ladung frischer Peperoni :)
Ich nehme lieber Tabasco
talpa schrieb:
Erinnert mich an die Leute, die sich damals nicht vorstellen konnten, dass Assembler als 1.Wahl f?r performante Problemstellungen abgel?st wird.
0-checka schrieb:
Soweit ich weiss, ist Assembler immer noch die 1. Wahl, zumindest bei den Leuten, die sich noch trauen Codeoptimierung zu betreiben. Zum Beispiel bei rechenintensiven Verschl?sselungen wird der Code an den relevanten Stellen meist erst in C (wie der Rest des Programmes/Bibliothek) geschrieben und dann mit Assemblercode optimiert.
Nun, meine Erfahrung ist eher, dass gerade auch im Mikroprozessorbereich immer mehr in C programmiert wird und Assembler eher nur f?r Codeoptimierung verwendet wird, wie du es schon erw?hnt hast. Codeoptimierung macht eben nur einen kleinen Teil des Software-Entwicklungsprozesses aus.
talpa schrieb:
Ich bin eher der Meinung, dass, wenn die Zielvorgaben nicht dagegen sprechen, Sprachen, wie Java und C#, die sinnvollere Wahl zum Programmierenlernen sind
Wenn man mal den Arbeitsmarkt betrachtet, dann hat man drei M?glichkeiten:
1. Sich auf "neue" Sprachen wie Java und C# konzentrieren.
2. Sich auf "alte" Sprachen wie C und Delphi konzentrieren
3. "Alte" und "neue" Sprachen lernen
Bei dem 1. und 2. Punkt kommt es darauf an, ob man Gl?ck hat und ein m?glicher Arbeitgeber nur diese oder jene Sprache als Bedingung voraussetzt.
Mit dem 3. Punkt f?hrt man immer gut. Da der Umstieg von C zu C# oder Java leichter ist als umgekehrt, rate ich dazu, erstmal eine "klassische" Programmiersprache zu lernen. Gerade zu diesem Zeitpunkt, wo der Markt f?r Embedded-(Mikroprozessor-)Programmierung so rasant w?chst, ist das Erlernen der Sprache C aus meiner Sicht unerl?sslich. Es gibt zwar auch eine Handvoll Prozessoren, auf die man eine Java VM laden kann, das sind aber Sonderkonstruktionen, die nicht da verwendet werden, wo der Markt wirklich boomt.
Da bin ich anderer Meinung. Ich denke nicht, dass der Umstieg von C zu Java unbedingt so viel einfacher ist. Da diese Sprachen z.T. in einem sehr unterschiedlichen Kontext eingesetzt werden, werden sie auch mit einer anderen Zielsetzung eingesetzt. Daher spielt neben der eigentlich Beherrschung der Sprache auch noch das Einsatzgebiet eine entscheidene Rolle bei der Auswahl der Sprache. z.B. wird Java eher im Bereich der Web-bezogenen Clinet-Server-Entwicklung eingesetzt, w?hrend C/C++ in anderen Dom?nen vorherrscht.
Und da die Eingangsfrage nicht auf irgendwelche Bereiche bezogen war, bin ich davon ausgegangen welche Sprache unabh?ngig vom Einsatzbereich am sinnvollsten zum Einstieg in die Programmierung geeignet ist.
talpa schrieb:
Schlie?lich sind in diesen Programmiersprachen deutlich aktuellere Ideen der Softwareentwicklung eingeflossen und man wird mehr zum sauberen Programmieren 'erzogen' als bei C/C++.
Ich finde, dass die aktuelleren Ideen so sinnvoll sind wie ABS, ESP und Airbags bei einem Formel 1-Auto. Und zu guter letzt bekommt man noch statt Slicks Reifen mit Stollen...
Es wird zwar immer wieder betont, wie toll es ist, eine "fehlervermeidende" Sprache wie Java oder jetzt auch C# einzusetzen, aber ich habe durch meine Erfahrungen ganz andere Schl?sse gezogen. Ein Grossteil der auftretenden Fehler geschieht durch ?bersehen von Randbedingungen, die keine Programmiersprache verhindern k?nnte. Wenn man mal die bugtraq-Meldungen untersucht und Fehler von Webanwendungen wegl?sst, lassen sich (meiner Sch?tzung nach) 90% aller Fehler auf logische Fehler zur?ckf?hren, die nicht durch das Verwenden einer anderen Programmiersprache verhindert worden w?ren. Wichtiger als sein Augenmerk auf eine Programmiersprache zu legen, die zu sauberem Programmieren erzieht, w?re es, Wert auf saubere Entw?rfe zu legen.
Nat?rlich ist nicht nur die Reglementierung/Zwang, die eine Sprache zum sauberen Programmieren auferlegt, der Schl?ssel zur "fehlerfreien" Software, aber er ist ein weitere Baustein auf dem Weg zu guten Softwareentwicklung. Saubere Entw?rfe sind nat?rlich das A und O einer vern?nftigen Software, aber dieses sind leichter Umzusetzen, wenn die Programmiersprache die Entwurfsmethoden besser unterst?tzt. Und ich bezweifle, dass ein guter Entwurf in Assembler leichter umsetzen ist, wie in einer Hochsprache.
Es ist doch gerade der h?here Abstraktionlevel einer Programmiersprache, der zu einer Abkopplung von der Hardware beitr?gt und den Fokus mehr auf die L?sung des Problems verschiebt.
@ ttobsen:
"Es ist so..." Wirklich?
C-Compiler erzeugen doch auch Maschinensprache nur erzeut man meistens Programme, die betriebssytem-spezifische Bibliotheken nutzen. Zudem gibt es auch Cross-Compiler, die Code f?r andere Systeme erzeugen. So kann kann zB auf einem x86-Rechner Code f?r Mikroproz. oder PowerPcs erzeugen...Und man kann zB Code f?r einen uProz. komplett in C erzeugen inkl. Bootloade und allem, warum soll das nicht auch f?r einen x86-Proz funtkionieren?
Beitrag ge?ndert am 20.10.2005 23:04 von talpa -
Ich w?rde echt gern C++ k?nnen, denke aber nich das ich es brauch, und denke auch das ich nich damit umgehen kann, finds aber schade..
Hat mcih eigentlich schon immer interessiert, bin aber nie richtig reingekommen leider..
IceOnly87 -
Hm ich halte es nicht f?r sinnvoll C# zu lernen!
1. Lieber C++ oder C lernen
Die sind beide schneller und Plattformunabh?ngiger!
2. C# als Java Konkurrent: Naja die St?rke von Java liegt ja in der Portierbarkeit....
3. Seit wann gibts das MS Framework f?r Linux?
Ich hab sowieso noch nie ein MS Produkt unter Linux gesehen! (Emulation Wine und Cedega mal ausgeschlossen)
4. Man kann mit C++ auch Plattformunabh?ngige Programme schreiben (Mal angenommen das man das mit C# auch irgendwwann mal kann) indem man z.B. QT oder GTK+ verwendet. Wenn man keine Bibos verwendet die von System zu System unterschiedlich sind muss man das ganze sogar nur einmal kompielieren!
Fazit: ich halte C# f?r nichts tolles und w?rde eher C++ oder C empfehlen wobeid er Umstieg vom einen auf das ander leicht ist!
PS nehmt nicht unbedingt alles ernst was ich geschrieben hab auch wenn das meine Meinung ist wollte ich noch dazu sagen:
Ich bin ?berzeugter Linux Nutzer und halte von s?mtlichen MS Produkten ?berhaupt nichts!
mfg crazy
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage