Studie zeigt C als beliebteste Sprache in offenen Projekten
-
Erhard Henkes schrieb:
linus t. ist ja auch ein os-developer. Da preferiert man C gegenüber C++, weil letzteres dort keinen vorteil bringt.
Selten ein schlechteres Argument gehört. Codezeilenmäßig kann der Linux-Kernel es mit OOo aufnehmen, trotzdem ist er in C geschrieben und OOo größtenteils in objektorientierten Sprachen. Erklärst du mir jetzt warum bei diesen rießígen Projekten bei ersterem plötzlich kein Vorteil durch objektorientierte Sprachen besteht und bei letzterem schon?
Ich mag C und ich mag C++ und ich hab nichts dagegen, wenn einer lieber ein Projekt in der einen oder der anderen Sprache entwickelt, aber bei solchem Gelaber wie von dir oder ;fricky hörts einfach auf!
-
Erhard Henkes schrieb:
Marcus Bäckmann hat in seinem Buch "OOP for dummies" praktisch gezeigt, wie man mit C bereits "objekt-orientiert" programmieren kann.
In der Tat. Auch z.B.an GTK sieht man, dass das recht gut geht.
Aber C++ ist mehr als nur OOP. Vor allem die Templates können einem das Leben sehr erleichtern. In C musst du z.B. eine queue für jeden Typ neu Implementieren (außer du nimmst void* oder #define, aber dass ist dann wieder nicht typensicher). In C++ geht dass mit templates ganz automatisch.
-
C++'lerin schrieb:
Erhard Henkes schrieb:
Marcus Bäckmann hat in seinem Buch "OOP for dummies" praktisch gezeigt, wie man mit C bereits "objekt-orientiert" programmieren kann.
In der Tat. Auch z.B.an GTK sieht man, dass das recht gut geht.
Aber C++ ist mehr als nur OOP. Vor allem die Templates können einem das Leben sehr erleichtern. In C musst du z.B. eine queue für jeden Typ neu Implementieren (außer du nimmst void* oder #define, aber dass ist dann wieder nicht typensicher). In C++ geht dass mit templates ganz automatisch.
OOP geht in C++ auch automatisch und im Linux-Kernel wurde das Datenstruktur-Problem auch ohne Templates gelöst: die Datenstruktur-Strukturen (sorry, blödes Wort) enthalten nicht die Daten, sondern die Daten-Strukturen enthalten die Datenstrutkur-Strukturen. Ein Beispiel:
struct ListNode { struct ListNode *next; struct ListNode *prev; }; struct Int { struct ListNode node; int myInt; };
und dann gibt es Makros um von einem Int-Strukt auf das ListNode struct zu kommen (und umgekehrt!).
-
DEvent schrieb:
Hier der Artikel auf http://www.pro-linux.de/news/2009/14572.html und der originalle Artikel direkt auf http://www.blackducksoftware.com/oss/projects
Hier die 3 am meisten benutzten Sprachen:
1 C 40.90%
2 C++ 14.03%
3 Java 10.95%Es ueberrascht mich schon ein wenig, dass C ganze 40% belegt, was mich wenig ueberrascht ist, dass C++ nur um 4 Prozentpunkte vor Java liegt
Was haltet ihr von der Studie?Seltsame Studie, sourceforge behautet da was ganz anderes:
http://sourceforge.net/search/?type_of_search=soft&words=java&search=Search
vs.
http://sourceforge.net/search/?type_of_search=soft&words=c&search=Search
(gab es früher nicht mal sogar ne einteilung aller projekte nach sprachen? find ich jedenfalls nicht mehr auf der neuen sf seite)
Noch seltsamer an der studie find ich:
"The Black Duck KnowledgeBase is the industry's most comprehensive database of open source software and associated license and other information. It covers over 200,000 projects collected from over 4,300 code forges and repositories."
Allein Sourceforge hat nach eigenen angaben schon über 200k projekte:
http://sourceforge.net/about
-
bei google code siehts ähnlich aus:
http://code.google.com/hosting/search?q=label:Java
vs.
http://code.google.com/hosting/search?q=label:CPlusPlus
-
Alter Schwede ist die Seite pro-linux hässlich. Von Fricklern für Frickler, oder wie?
Die Studie zeigt doch nur, dass die meisten Hobbyentwickler Frickler sind.
-
Was hat dieser Thread eigentlich in "Rund um den PC" zu suchen? Man sollte nur registrierte Nutzer zulassen. Im übrigen haben C, C++ und andere Sprachen ihre jeweiligen Vorzüge, die sie je nach Anwendungsfall mehr oder weniger ausspielen können. Expertise und Gewohnheit spielen ebenfalls eine große Rolle. CPU-nah wird auf jeden Fall häufig in C programmiert. Dafür wurde diese Sprache auch geschaffen.
-
Erhard Henkes schrieb:
Im übrigen haben C, C++ und andere Sprachen ihre jeweiligen Vorzüge, die sie je nach Anwendungsfall mehr oder weniger ausspielen können.
Naja, C hat Vorzüge. C++ hat nur einen Vorzug, nämlich kompatibel(halbwegs, gewesen) zu C zu sein. Und es bremst Programmierer mit der Ausdrucksschwachen Syntax aus, das ist zwar eigentlich ein Nachteil, aber wenn man in Unternehmen mit vielen schlechten- bis mittelmäßigen Leuten ist, wird das plötzlich auch zu einem Vorteil. Gute Programmierer mit einem vernünftigen Abstraktionsvermögen sind mit anderen Werkzeugen natürlich produktiver, aber auch teurer.
-
Dmitri Schostakowitsch schrieb:
C++ hat nur einen Vorzug, nämlich kompatibel(halbwegs, gewesen) zu C zu sein. Und es bremst Programmierer mit der Ausdrucksschwachen Syntax aus, das ist zwar eigentlich ein Nachteil, aber wenn man in Unternehmen mit vielen schlechten- bis mittelmäßigen Leuten ist, wird das plötzlich auch zu einem Vorteil.
nein im gegeteil, mittelmässige leute sind als c++ programmierer keine option. die vielen eigenheiten von c++ erfordern echte kenner, sonst kommt nur mist raus.
-
;fricky schrieb:
Dmitri Schostakowitsch schrieb:
C++ hat nur einen Vorzug, nämlich kompatibel(halbwegs, gewesen) zu C zu sein. Und es bremst Programmierer mit der Ausdrucksschwachen Syntax aus, das ist zwar eigentlich ein Nachteil, aber wenn man in Unternehmen mit vielen schlechten- bis mittelmäßigen Leuten ist, wird das plötzlich auch zu einem Vorteil.
nein im gegeteil, mittelmässige leute sind als c++ programmierer keine option. die vielen eigenheiten von c++ erfordern echte kenner, sonst kommt nur mist raus.
Naja, du kannst auch mittelmäßig, aber ein echter Kenner sein. Das ist sogar meistens so: Die, die nicht so viel drauf haben, verankern sich in ihrer Position und sammeln viel Erfahrung an, z.B. über die Sprachen und Bibliotheken die sie benutzen, oder Betriebsstrukturen. Gute Leute kompensieren Erfahrung durch Intelligenz.
Ich meine, selbst Paul Graham schreibt
Paul Graham schrieb:
Object-oriented programming generates a lot of what looks like work. Back in the days of fanfold, there was a type of programmer who would only put five or ten lines of code on a page, preceded by twenty lines of elaborately formatted comments. Object-oriented programming is like crack for these people: it lets you incorporate all this scaffolding right into your source code. Something that a Lisp hacker might handle by pushing a symbol onto a list becomes a whole file of classes and methods. So it is a good tool if you want to convince yourself, or someone else, that you are doing a lot of work.
-
C ist die beliebteste und C++ die beleibteste
-
Wenn jemand mehrere Kinder hat, kann er sie alle lieben. Daher können sowohl C als auch C++ beliebt sein. Es hängt demnach von der Definition und Messmethode ab, was "beliebter" oder "beliebtest" bedeuten soll. Beide Sprachen wurden über Jahrzehnte entwickelt und sind sehr effizient. Es gibt inzwischen hervorragende Toolchains.
-
DEvent schrieb:
Hier der Artikel auf http://www.pro-linux.de/news/2009/14572.html und der originalle Artikel direkt auf http://www.blackducksoftware.com/oss/projects
Hier die 3 am meisten benutzten Sprachen:
1 C 40.90%
2 C++ 14.03%
3 Java 10.95%Es ueberrascht mich schon ein wenig, dass C ganze 40% belegt, was mich wenig ueberrascht ist, dass C++ nur um 4 Prozentpunkte vor Java liegt
Was haltet ihr von der Studie?du siehst das falsch, C++ hat fast 30% mehr als java
-
Dmitri Schostakowitsch schrieb:
Naja, du kannst auch mittelmäßig, aber ein echter Kenner sein. Das ist sogar meistens so: Die, die nicht so viel drauf haben, verankern sich in ihrer Position und sammeln viel Erfahrung an, z.B. über die Sprachen und Bibliotheken die sie benutzen, oder Betriebsstrukturen. Gute Leute kompensieren Erfahrung durch Intelligenz.
-
Dmitri Schostakowitsch schrieb:
;fricky schrieb:
Dmitri Schostakowitsch schrieb:
C++ hat nur einen Vorzug, nämlich kompatibel(halbwegs, gewesen) zu C zu sein. Und es bremst Programmierer mit der Ausdrucksschwachen Syntax aus, das ist zwar eigentlich ein Nachteil, aber wenn man in Unternehmen mit vielen schlechten- bis mittelmäßigen Leuten ist, wird das plötzlich auch zu einem Vorteil.
nein im gegeteil, mittelmässige leute sind als c++ programmierer keine option. die vielen eigenheiten von c++ erfordern echte kenner, sonst kommt nur mist raus.
Naja, du kannst auch mittelmäßig, aber ein echter Kenner sein. Das ist sogar meistens so: Die, die nicht so viel drauf haben, verankern sich in ihrer Position und sammeln viel Erfahrung an, z.B. über die Sprachen und Bibliotheken die sie benutzen, oder Betriebsstrukturen. Gute Leute kompensieren Erfahrung durch Intelligenz.
stimmt schon teilweise, aber wenn einer mit wenig hirnkapazität einen grossen teil davon für die korrekte umsetzung von irgendwas in c++ programme verwenden muss, ist das auch doof.
-
;fricky schrieb:
stimmt schon teilweise, aber wenn einer mit wenig hirnkapazität einen grossen teil davon für die korrekte umsetzung von irgendwas in c++ programme verwenden muss, ist das auch doof.
genausodoof wie, wenn einer mit viel hirnkapazität einen großen teil davon brach liegen lassen muß, weil C keine gescheiten ausdrucksmöglichkeiten bietet.
sagen wir mal, daß man mikrocode für toaster nicht in C++ machen sollte und daß man ein textverarbeitungssystem nicht in C machen sollte.
-
volkard schrieb:
sagen wir mal, daß man mikrocode für toaster nicht in C++ machen sollte und daß man ein textverarbeitungssystem nicht in C machen sollte.
Es kommt auch stark darauf an, welche Konventionen man verinnerlicht hat. Ich meine, es ist ja möglich nur durch Templates aus C ein C++-Artiges Teil zu machen. Oder das ganze händisch umzusetzen. Was ich sagen will: Die Ausdrucksstärke eine Programmiersprache ist nur zum Teil durch die Syntax gegeben. Die geltenden Programmierparadigmen und -Normen sind da mindestens ebenso wichtig. Und genau so wie es möglich ist, in LISP irgendwas auf eine Liste zu packen, wo sich der Java-Programmierer nur denkt "lol OMG, was issen diese Liste hiernochmal wtf?" während der LISPer über die n-fach verschachtelte Templateklasse aufregt, die er in drei Zeilen Makro elegant geschrieben hätte. Für einen Kollegen aus derselben Sparte ist das aber normal, weil er das schon mindestens 1000 Mal gesehen wenn nicht selbst gemacht hat.
-
..
-
volkard schrieb:
genausodoof wie, wenn einer mit viel hirnkapazität einen großen teil davon brach liegen lassen muß, weil C keine gescheiten ausdrucksmöglichkeiten bietet.
naja, aber C für alles nehmen will ja hier auch keiner.
volkard schrieb:
sagen wir mal, daß man mikrocode für toaster nicht in C++ machen sollte
hast recht, obwohl es auch da was gibt: http://en.wikipedia.org/wiki/SystemC
aber benutzen sollte man sowas besser nicht (ausser zum spass vielleicht), weil schon genügend andere sprachen+libraries dafür vorhanden sind, die sich vielfach bewährt haben, auch objektorientierte und so.
-
Die Grundidee der OOP ist die Kapselung und das Abstrahieren von Objekten auf Klassen. An den Stellen, an denen das wirklich Sinn macht, also nicht künstlich aufgesetzt ist, ist eine Sprache, die vom Grundprinzip auf OOP abzielt, evtl. sinnvoll einsetzbar. Ein wichtiges Argument in der Grauzone ist die fehlerfreie Les- und Wartbarkeit. Die Schreibarbeit in C++ ist deutlich höher. Dafür erhält man gute Strukturen mit Methoden, sprich Klassen.