Studie zeigt C als beliebteste Sprache in offenen Projekten



  • 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.



  • Erhard Henkes schrieb:

    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.

    IMHO ist die Grundidee von OOP, Code und Daten als ein ganzes "Objekt" zu betrachten, und diese Objekte koennen untereinander genau definierte Nachrichten austauschen. Daraus folgt Kapselung und Polymorphie. Klassen sind nur ein Hilfskonstrukt.

    Wieso ist C++ eine "gute" Struktur, wenn man alle Member einer Klasse, egal ob public, private oder protected, im Interface Teil angeben muss? Wieso ist es "gut" wenn man etwas am privaten Teil der Klasse veraendern, den gesammten Client-Code nochmal uebersetzen muss? Der Sinn von OOP ist doch ueberhaupt der, dass man, ohne das die Clients auch nur das geringste mitbekommen, den private-Teil des Codes beliebig veraendern kann. Nur wenn das oeffentliche Interface veraendert wurde, muss man die Clients anpassen.



  • Wo ist der Sinn von solchen Studien? (Zumal die Messmethoden und Datensätze ja oft sehr fragwürdig sind.)

    DEvent schrieb:

    und diese Objekte koennen untereinander genau definierte Nachrichten austauschen. Daraus folgt Kapselung und Polymorphie. Klassen sind nur ein Hilfskonstrukt.

    👍

    Schön, dass Du zu dieser Erkenntnis gekommen bist. Kann sein, dass ich mich täusche. Aber iirc gab es da mal einen ewig langen Flamewar, wo Du eine deutlich andere Meinung hattest.

    DEvent schrieb:

    Wieso ist C++ eine "gute" Struktur, wenn man alle Member einer Klasse, egal ob public, private oder protected, im Interface Teil angeben muss?

    Muss man nicht. Siehe PIMPL-Idiom.



  • DEvent schrieb:

    Wieso ist C++ eine "gute" Struktur, wenn man alle Member einer Klasse, egal ob public, private oder protected, im Interface Teil angeben muss?

    Das ordentliche Aufteilen und Zerlegen in Klassen, hat doch nichts mit information hiding zu tun. Der Laden wäre genauso hübsch objektorientiert, wenn alles public wäre. Verstecken ist völlig irrelevant.

    Wieso ist es "gut" wenn man etwas am privaten Teil der Klasse veraendern, den gesammten Client-Code nochmal uebersetzen muss?

    Das ist nicht gut, aber ist auch nur ein unwichtiges Detail.

    Der Sinn von OOP ist doch ueberhaupt der, dass man, ohne das die Clients auch nur das geringste mitbekommen, den private-Teil des Codes beliebig veraendern kann. Nur wenn das oeffentliche Interface veraendert wurde, muss man die Clients anpassen.

    Das ist ja auch der Fall. Für den Programmierer. Wie das Übersetzungsmodell innendrin ist, geht Dich doch gar nichts an.



  • volkard schrieb:

    Das ordentliche Aufteilen und Zerlegen in Klassen, hat doch nichts mit information hiding zu tun.

    "information hiding" in Form von Trennung zwischen (innerer) Repräsentation und (äußerem) Verhalten ist Grundbedingung für Polymorphismus. Alles Andere würde auch dem "message passing" Prinzip widersprechen.

    Dies spielt in C++ eine untergeordnete Rolle, schon weil sauberes "message passing" mit seinem Korollar "alles ist ein Objekt" für C++ in unerreichbarer Ferne liegt, aber daß C++ hinsichtlich Paradigmenreinheit/OOP nicht die Maßstäbe setzt, sollte ohnehin klar sein.



  • Für Polymorphismus ist diese Trennung zwar nötig, aber Hiding ist nicht nötig.
    Der Rest war unbegründetes Ablästern und bedarf keiner Widerlegung.


Anmelden zum Antworten