Perché C è così alto nell'indice di popolarità TIOBE, mentre anche C ++ è qui sotto, ma non così popolare? [chiuso]


18

Non riesco a capirlo. Se C è così tanto usato, ma C non è C ++, qualcuno può spiegarmi i motivi più importanti che rendono C più usato di C ++? Dove è scritto tutto questo codice C?

Riguarda il settore industriale che fa molto affidamento sulla programmazione imperativa ma non può sostenere i costi di implementazione o messa a punto dei compilatori C ++? Ci sono molti hacker del kernel?

Tiobe è rilevante? Non mi sono mai imbattuto in nessun articolo o post commentando o spiegando quanto sia singolare la classifica di tiobe, e cosa dice effettivamente su ciò che piace al settore e cosa può dire su ciò che l'industria utilizza effettivamente, per individuare le reali esigenze del settore. È difficile da spiegare.

Trovo strano che molte aziende vogliano lavori C #, php, java e non C o C ++ (solo mettendo in relazione la mia disoccupazione e le mie interviste qui) anche se quei lavori C / C ++ sono una schifezza. Vorrei prendere quelli invece. O questo significa che l'hype linguistico gioca un ruolo importante qui?


18
Is tiobe relevant ?Molte persone pensano che non lo sia.
Simon Bergot,

1
Lo userei solo per valutare le prime dieci lingue che sono probabilmente in uso attivo. Il grado sull'indice tiobe non è correlato alla loro vera popolarità.
Martin York,

4
Molta programmazione integrata viene eseguita in C. Non si tratta solo del costo di implementazione / tuning dei compilatori C ++; è il costo di esecuzione del C ++ sul dispositivo incorporato.
Velociraptors il

5
C è molto meno complesso di C ++.
Fanl,

8
L'indice TIOBE è una misura divertente; divertendoci in quanto siamo tutti ingegneri e troviamo divertenti le misurazioni perché possiamo tracciarle e immaginare previsioni e conclusioni basate su di esse. Ma conosciamo anche cose tanto ampie e complesse quanto l'uso reale e la popolarità di una lingua non sono ancora cose che siamo in grado di misurare con precisione. Quindi TIOBE è divertente, ma dove non sembra allineare con la realtà, probabilmente non lo fa.
Jimmy Hoffa,

Risposte:


16

L'indice TIOBE si basa sui risultati dei motori di ricerca - vedi http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm

Ciò significa che (per esempio, in teoria) puoi avere un linguaggio di cui tutti parlano che ha molti successi e ottiene un punteggio elevato anche se nessuno lo usa, e puoi avere un linguaggio che molte persone usano ma non ci sono molte pagine web / hit quindi ottiene una valutazione bassa. Non tiene nemmeno conto del contenuto delle pagine Web (ad esempio, immagina che un milione di pagine Web affermino che una determinata lingua è orribile, che tutti aumentano l'indice TIOBE della lingua).

In teoria, i fattori di ponderazione dovrebbero essere applicati per ottenere l'utilizzo da hit web / indice TIOBE. Ad esempio, per un linguaggio complesso come il C ++ (dove è probabile che chiunque lo utilizzi abbia uno o più libri di consultazione) è probabile che l'utilizzo sia superiore a quello che indica l'indice TIOBE; e per le lingue utilizzate principalmente per lo sviluppo Web (in cui la maggior parte della documentazione è in genere online e i suoi utenti hanno maggiori probabilità di creare pagine Web) è probabile che l'utilizzo sia inferiore a quello indicato dall'indice TIOBE.

Ovviamente è praticamente impossibile determinare accuratamente i coefficienti correttori appropriati per ciascuna lingua; e quindi l'indice TIOBE può essere considerato nella migliore delle ipotesi solo una approssimazione approssimativa dell'uso.


32
"per esempio, immagina un milione di pagine web che affermano che una certa lingua è orribile, che tutti aumentano l'indice TIOBE della lingua" : finalmente capisco perché PHP è tra le prime dieci.
Arseni Mourzenko,

4
+1, e sospetto anche che alcune lingue tendano ad essere utilizzate maggiormente per la sperimentazione / il fine settimana, e queste lingue avranno un numero sproporzionato di ricerche per il loro livello di utilizzo (cioè se non lo usi tutti i giorni, tendi per cercare di più). Detto questo, non credo che l'argomento sia particolarmente applicabile a C. Più rilevante potrebbe essere che molte ricerche di C ++ finiscano per essere classificate come C a causa di incomprensioni / pigrizia degli sviluppatori.
Daniel B,

16

"Se C non è così usato" - Sarei interessato a vedere se qualcuno potesse fare un backup.

Tutti i seguenti sono scritti in puro C: -

  • il kernel Linux.
  • il repository git.
  • Database open source MySql, PostgreSQL, SQLite.
  • Database proprietari Oracle, DB2, Informix, SYBASE.
  • Grandi blocchi del sistema operativo Windows.
  • Apache Web Server, il web server ngnix.
  • Le implementazioni di riferimento del linguaggio Perl, Python, PHP, Lua.

    Tutto sommato direi che ci sono più programmi C che vengono eseguiti più spesso di qualsiasi altra lingua.


3
Parecchi titoli di gioco AAA.
Alan B,

3
Questi sono servizi di base, codificati da manciate di programmatori esperti. Che dire del "codice front-end"? Le applicazioni per gli utenti? Una volta che i servizi principali di cui stai parlando sono codificati e sottoposti a debug, vengono eseguiti, ma non fai nulla semplicemente usandoli.
jokoon il

2
Aggiungi a questo, la maggior parte del controllo industriale, la maggior parte dei sistemi integrati, l'industria automobilistica. Il nucleo di tutto ciò che è stato scritto prima del 1995 (che non è Cobol o Ada) .....
mattnz,

1
Nitpick: Delle 4 implementazioni Python a livello di produzione, 3 non sono scritte in C. Delle tre implementazioni PHP a livello di produzione, 2 non sono scritte in C. La maggior parte delle implementazioni Git non sono scritte in C.
Jörg W Mittag

@jokoon - Ovviamente 'front end code' non è un requisito per essere in questa lista. Se il tuo obiettivo è scoprire quali lingue imparare per lavoro, forse un posto di lavoro sarebbe meglio?
JeffO,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.