Programmiersprache?
-
Die Verbreitung einer Programmiersprache sagt mal so überhaupt nichts über das durchschnittliche Gehalt der jeweiligen Programmierer aus.
-
SeppJ schrieb:
erstaunt schrieb:
Gibt es denn nicht eine Seite die mehr der Praxis entspricht?
Ja. Stellenanzeigen.
erstaunt schrieb:
Bei den großen System ist es ja klar das dort kaum C zum Einsatz kommt wozu auch?
Das glaubst auch nur du. C ist erstaunlich verbreitet, auch bei großen Projekten.
Ach ja? Wieso ist doch total Sinnlos wenn andere Programmiersprachen wie C++, Java, C# etc zur Verfügung stehen. Wer nimmt denn bitte da dann C. Speicherverwaltung und OOP sind in C ein warer Krampf, es ist möglich aber ich habe jetzt 3 Blogs und Artikel darüber gelesen wie man z.B. OOP realisieren kann aber alle Autoren raten natürlich davon ab das wirklich in der Praxis zu nutzen wenn z.B C++ zur Verfügung steht. Leichtes OOP und Polymorphie macht die Softwareentwicklung schon wirklich sehr viel angenehmer und warum nicht nutzen wenn es kaum zu Lasten der Performance geht?
C hat klar seinen Einsatzbereich aber auch klar seine Grenzen wo es heute keinen Sinn mehr macht es einzusetzen.
-
erstaunt schrieb:
...
Und? Trotzdem wird es recht viel eingesetzt. Ist nun einmal ein Fakt und das war hier gefragt. Menschen treffen nicht immer optimale Entscheidungen. Und viele von deinen Argumenten hinken ohnehin. Und du lässt viele Gründe aus die in manchen Fällen für C sprechen. Und es gibt etliche Software aus Zeiten vor C++, Java und C#, die ist dann auch oft in C. Und wie du schon selbst sagst gibt es Bereiche in denen C auch heute erste Wahl sein sollte und die sind nicht so unbedeutend.
-
HeroOf88 schrieb:
Welche Programmiersprache muss man lernen, um dann die besten Chancen auf dem Arbeitsmarkt zu haben und richtig viel Kohle zu machen?
Wenn du richtig viel Kohle machen willst, dann lerne irgend eine uralte angestaubte Nieschenprogrammiersprache. Irgend was das von großen Firmen seit 30 Jahren benutzt wird und womit sich kaum einer mehr auskennt. Dann sind die auch bereit entsprechend viel Geld zu zahlen. Aber die Chancen auf dem Arbeitsmarkt sind halt nicht sonderlich gut.
Aber wenn du richtig viel Geld machen willst, dann geht es eigentlich nicht um die Programmiersprache sondern um Technologien und Erfahrung.
@_matze
Tiobe ist Blödsinn. Da kann man auch gleich Googlefight nehmen.http://www.c-plusplus.net/forum/viewtopic-var-p-is-1879081.html#1879081
@Gregor
GULP ist ja nur ein Freelancer-Index. Wenn man eine Festanstellung sucht, dann sieht die Verteilung der Sprachen sicher ein bisschen anders aus. Gerade für zB ABAP holen sich sicher Firmen lieber einen Freelancer, weil man das ja nicht so oft braucht.
-
rüdiger schrieb:
@_matze
Tiobe ist Blödsinn. Da kann man auch gleich Googlefight nehmen.Klar ist das Blödsinn. Hab ich doch auch schon gesagt, wieso ich den Link gepostet hab, nämlich weil ich den Threadersteller nicht ernstnehme (bei der Formulierung...). Ihr etwa?? Ich fand das relativ eindeutig.
-
SeppJ schrieb:
C ist erstaunlich verbreitet, auch bei großen Projekten.
Du willst nicht ernsthaft behaupten das irgendjemand, der noch klar bei Verstand ist, C für ein neues größeres Projekt einsetzen wird wenn ihm für die Plattform C++, C#, Java, Python, Delphi usw. zur Verfügung steht. *kopfklatsch
C ist nicht mehr als ein portabler Assembler, damit kann man alles machen muss man aber zum Glück heutzutage nicht mehr.
-
Ich muss dir zustimmen, du bist wirklich realitätsfern...
-
realitätsfern schrieb:
SeppJ schrieb:
C ist erstaunlich verbreitet, auch bei großen Projekten.
Du willst nicht ernsthaft behaupten das irgendjemand, der noch klar bei Verstand ist, C für ein neues größeres Projekt einsetzen wird wenn ihm für die Plattform C++, C#, Java, Python, Delphi usw. zur Verfügung steht. *kopfklatsch
C ist nicht mehr als ein portabler Assembler, damit kann man alles machen muss man aber zum Glück heutzutage nicht mehr.
So sehr unterscheidet sich C++ von C dann auch nicht. Dieses lieblos draufgeklatschte OOP is ein witz
-
fdghjkghjkhjkhjkhjk schrieb:
So sehr unterscheidet sich C++ von C dann auch nicht. Dieses lieblos draufgeklatschte OOP is ein witz
Oh doch, da gibt es sogar sehr viele Unterschiede, gerade wenn man sich wirklich ernsthaft mit C++ auseinander setzt. Der Programmierstil unterscheidet sich je nach Projekt schon gewaltig.
realitätsfern schrieb:
Du willst nicht ernsthaft behaupten das irgendjemand, der noch klar bei Verstand ist, C für ein neues größeres Projekt einsetzen wird wenn ihm für die Plattform C++, C#, Java, Python, Delphi usw. zur Verfügung steht...
Das wird er nicht nur behaupten, sondern das wird durchaus in einigen Firmen praktiziert. Ob du oder ich das genauso machen würden, ist etwas anderes.
-
erstaunt schrieb:
Gibt es denn nicht eine Seite die mehr der Praxis entspricht? Sicher ist für Embedded unschlagbar aber gibt es so viele MC-Software als das sie mit der Anzahl der Software für die großen Rechner mithalten können?
Bei den großen System ist es ja klar das dort kaum C zum Einsatz kommt wozu auch?
Du musst berücksichtigen, dass du bei Computern eine mehr oder weniger standardisierte Umgebung hast, bei vielen Mikrocontrolleranwendungen nicht. Du kannst nicht eine "Toastersoftware" einfach für einen anderen Toaster neu kompilieren oder einen Kühlschrank damit upgraden. Fast jedes popelige Kleingerät braucht seine eigene Software von Kopf bis Fuß. Deswegen heißt es ja "Eingebettet": Software und Hardware gehören zu einer festen Einheit. Das ist natürlich bei vielen größeren Geräten heute auch schon anders. Ein modernes Handy ist kein eingebettetes Gerät mehr und die Anwendungssoftware dafür erst recht nicht.
Übrigens verstehe ich nicht, was so schlimm an C++ für embedded Kram oder Kernel sein soll. Alleine Namespaces und stärkere Typisierung finde ich ein gutes Argument für C++.
guckt mal hier:
www.cs.inf.ethz.ch/ssw/files/SSW00Aos1.pdf
Ist zwar nicht C++, aber man kann wohl deutlich sehen, dass man nicht immer nur "primitive" Sprachen wie C benutzen muss. Haiku ist meines Wissens nach auch komplett samt Kernel in C++ geschrieben und ich glaube nicht, dass die ihre Entscheidung bereuen.
-
asc schrieb:
fdghjkghjkhjkhjkhjk schrieb:
So sehr unterscheidet sich C++ von C dann auch nicht. Dieses lieblos draufgeklatschte OOP is ein witz
Oh doch, da gibt es sogar sehr viele Unterschiede, gerade wenn man sich wirklich ernsthaft mit C++ auseinander setzt. Der Programmierstil unterscheidet sich je nach Projekt schon gewaltig.
realitätsfern schrieb:
Du willst nicht ernsthaft behaupten das irgendjemand, der noch klar bei Verstand ist, C für ein neues größeres Projekt einsetzen wird wenn ihm für die Plattform C++, C#, Java, Python, Delphi usw. zur Verfügung steht...
Das wird er nicht nur behaupten, sondern das wird durchaus in einigen Firmen praktiziert. Ob du oder ich das genauso machen würden, ist etwas anderes.
Echt, warum tut man sich denn so etwas an?
Naja, vielleicht wenn man ein wirklicher Experte ist möglich. Ich habe mal eine Routine zu einer relativ sicheren dynamischen Speicheranforderung gesehen und die wurde auch erklärt. Der Quelltext war ellenlang und sah extrem kompliziert aus, also nicht das übliche "normale" Zeigergewurschtel. OOP war auch von C++ nachgeahmt selbst das mit den vtables für Polymorphie, aber auch hier wurde davon abgeraten und in diesem Falle auf C++ verwiesen, da es hier gleich eingebaut ist und noch viel mehr bietet was nur sehr kompliziert in C nachzuahmen ist mit vielen Makros etc. Die Fehleranfälligkeit steigt dabei natürlich ziemlich an und es muss höhst konzentriert gearbeitet werden. Also alles sehr anstrengend im Vergleich, aber machbar. Aber das wäre es in Assembler auch.
-
realitätsfern schrieb:
SeppJ schrieb:
C ist erstaunlich verbreitet, auch bei großen Projekten.
Du willst nicht ernsthaft behaupten das irgendjemand, der noch klar bei Verstand ist, C für ein neues größeres Projekt einsetzen wird wenn ihm für die Plattform C++, C#, Java, Python, Delphi usw. zur Verfügung steht. *kopfklatsch
C ist nicht mehr als ein portabler Assembler, damit kann man alles machen muss man aber zum Glück heutzutage nicht mehr.
Du musst einfach beachten, dass es alle möglichen Projekte und Verwendungszwecke gibt. Ich kenne deine Perspektive nicht. Aber wenn du von C#, Java und sogar Delphi schreibst, dann geht es dir sicher um Desktopanwendungen. Da ist C sicher keine gute Wahl. Aber Desktopanwendungen sind ja nur ein sehr kleiner Bereich der Softwareentwicklung (mittlerweile ein sogar immer mehr unbedeutender!).
Aber es gibt zahlreiche andere Bereiche in der Softwareentwicklung. C spielt gerade bei allen möglichen Microcontrolersachen eine wichtige Rolle. Somit auch eine wichtige bei der Automatisierung. Oft wird das C da sogar nur noch teilweise von der Hand geschrieben und eher aus Matlab oder anderen Tools exportiert. Und solche Projekte sind nicht gerade klein. Also nicht mit ner simplen LED-Steuerung auf einem Atmel zu vergleichen :).
-
zuckerhut schrieb:
Echt, warum tut man sich denn so etwas an?
Naja, vielleicht wenn man ein wirklicher Experte ist möglich. Ich habe mal eine Routine zu einer relativ sicheren dynamischen Speicheranforderung gesehen und die wurde auch erklärt. Der Quelltext war ellenlang und sah extrem kompliziert aus, also nicht das übliche "normale" Zeigergewurschtel. OOP war auch von C++ nachgeahmt selbst das mit den vtables für Polymorphie, aber auch hier wurde davon abgeraten und in diesem Falle auf C++ verwiesen, da es hier gleich eingebaut ist und noch viel mehr bietet was nur sehr kompliziert in C nachzuahmen ist mit vielen Makros etc. Die Fehleranfälligkeit steigt dabei natürlich ziemlich an und es muss höhst konzentriert gearbeitet werden. Also alles sehr anstrengend im Vergleich, aber machbar. Aber das wäre es in Assembler auch.Ich glaube du kennst einfach nur ein sehr begrenztes Spektrum der Programmieraufgaben. Ich benötige in meinem Projekt z.B. keinerlei dynamische Speicheranforderung. Auch wüsste ich Dinge wie Polymorhie, Vererbung, Überladung whatever in diesem Projekt nur begrenzt anzuwenden. Die wirklichen Probleme (also der Großteil der Arbeit) bestehen nicht darin, dass ich C verwende, es sind ganz andere. Grob geschätzt gehen für die Implementierung bei mir gerade mal 2 Monate pro Jahr drauf. Kurz: C++, Java, C#, wasauchimmer würden mir die Arbeit praktisch nicht erleichtern. Warum also die Sprache wechseln? Wenn Sprache X sich in einem Bereich bewährt hat, wechselt man nicht einfach so zu Sprache Y. Alleine schon weil du wahrscheinlich gar nicht die Leute hast die Sprache Y ausreichend gut beherrschen. Die könntest du zwar einstellen, aber ihnen würde jahrelange Erfahrung mit den Projekten, den Denkweisen fehlen. Das nachzuholen ist teuer. Bei 0815-MVC-Anwendungen kannst du Sprache und Leute wahrscheinlich relativ einfach austauschen, aber je komplexer die Anwendung wird, desto schwieriger wird das. Und wenn man den Entwicklungsprozess evtl neu zertifizieren lassen muss, inklusive Tools/Compiler etc.... tja, das kostet auch.
-
So nochmal zum mitschreiben, es geht um Desktopanwendungen, Serverprogramme wie Webserver, Fileserver, Verschlüsselung, Gameserver, Backends etc. Bei MCs, GPUs, Systemprogrammierung sagt ja niemand was, wo ganz wenig Resourcen zur Verfügung stehen ist man mit einem portablen Assembler wie C ganz klar besser bedient.
-
Nein, es geht darum wo man die besten Chancen hat ordentlich zu verdienen. Und da sind Desktopanwendungen wohl eher unten angesiedelt.
-
HeroOf88 schrieb:
Welche Programmiersprache muss man lernen, um dann die besten Chancen auf dem Arbeitsmarkt zu haben und richtig viel Kohle zu machen?
zummitschreiben schrieb:
So nochmal zum mitschreiben, es geht um Desktopanwendungen, Serverprogramme wie Webserver, Fileserver, Verschlüsselung, Gameserver, Backends etc. Bei MCs, GPUs, Systemprogrammierung sagt ja niemand was, wo ganz wenig Resourcen zur Verfügung stehen ist man mit einem portablen Assembler wie C ganz klar besser bedient.
Echt? Gab es nichtmal Arbeitsmarktstatistiken nach denen Embedded Entwickler durchschnittlich etwas mehr verdienen als Anwendungsentwickler? wieso sollte man also die gerade ausschließen, wenn man den Eingangspost betrachtet?
-
Ja auf den Startpost bezogen hast du recht. Nur wollen viele C-Fanboys für wirklich alles C nehmen und halten das oft auch für die beste Lösung und wollen partout nicht einsehen dass hier und da eine andere Sprache die weit bessere Wahl wäre. Was ich hier so gelesen habe reagieren ca.80% so und die muss man dann schon einmal in die Schranken weisen. Viele scheinen sich aber nicht wirklich mit anderen Sprachen oder auch mit der Eigenen auseinandergesetzt zu haben.
-
zummitschreiben schrieb:
So nochmal zum mitschreiben, es geht um Desktopanwendungen
Ich glaube, du bist im falschen Thread.
Da behält ja auch keiner mehr den Überblick bei den ständigen CvsC++ Threads (und denen, die dazu gemacht werden)...
-
recht haste, ich habe auch keinen bock mehr drauf halbwahrheiten aus der welt zu schaffen.
-
gogogogo schrieb:
Ja auf den Startpost bezogen hast du recht. Nur wollen viele C-Fanboys für wirklich alles C nehmen und halten das oft auch für die beste Lösung und wollen partout nicht einsehen dass hier und da eine andere Sprache die weit bessere Wahl wäre. Was ich hier so gelesen habe reagieren ca.80% so und die muss man dann schon einmal in die Schranken weisen. Viele scheinen sich aber nicht wirklich mit anderen Sprachen oder auch mit der Eigenen auseinandergesetzt zu haben.
Trotzdem hat Tim doch Recht. Wenn ich einen Softwarebestand habe, der in C verfasst ist, die Leute mit der Erfahrung um mit C effektiv und sicher zu arbeiten und einen Haufen bewährter und bekannter Werkzeuge, dann muss ein Wechsel schon gut begründet sein. Deswegen hält sich C trotz eventuell "besserer" Alternativen auch zu Recht so gut.
Das "Fanboyverhalten" ist auch Gewöhnungssache. Jemand der Jahrelang in C gearbeitet findet eine Alternative nicht deswegen umständlich, weil er ein "C-Fanboy" ist, sondern weil die Alternativen für ihn ungewohnt sind. Und das gilt nicht nur für C. Das gilt auch für dynamische vs starke Typisierung beispielsweise. ein langjähriger Python-Entwickler wird es schwer haben in dem Typensystem von Ada ein "Werkzeug" zu sehen. Für ihn ist das ein Ärgerniss. Umgekehrt wird der Ada-Programmierer, der plötzlich mit einer dynamischen, unkontrollierten Umgebung konfrontiert wird, sich vor lauter Paranoia auf der Firmentoilette einschließen und laut, "Es ist eine Distanz, kein Volumen!", schreien.
_matze schrieb:
zummitschreiben schrieb:
So nochmal zum mitschreiben, es geht um Desktopanwendungen
Ich glaube, du bist im falschen Thread.
Da behält ja auch keiner mehr den Überblick bei den ständigen CvsC++ Threads (und denen, die dazu gemacht werden)...
Ja, ich glaube ich habe mich in meinem ersten Post hier auch in der Diskussion "C vs C++ für OSDev" hineingedacht...