Perché C ++ è preferito rispetto a C per le applicazioni commerciali? [chiuso]

1

I programmi in C per lo più. Tuttavia, è abbastanza ovvio che molte altre applicazioni commerciali sono fatte in C ++.

Per quanto posso dire, il C ++ è un linguaggio molto complesso, con sintassi apparentemente contorta e troppi costrutti. Il linguaggio C ++ incoraggia anche l'abuso di oggetti in cui strutture e funzioni funzioneranno. In effetti, l'unico vantaggio significativo che vedo in C ++ è l'uso di tipi generici basati su modelli (sebbene, secondo gli sviluppatori di Go, i generici siano dannosi per i programmi).

Fondamentalmente, la mia domanda è, mi sono perso qualcosa? O il C ++ è più popolare solo per merito di fortuna o marketing?

Modifica: mi dispiace che a quanto pare abbia fatto una domanda caricata; a posteriori posso vedere che il modo in cui ho formulato sembra essere completo di fiamma.

Ciò che intendevo era che, poiché C ++ ha così tanti costrutti e paradigmi disponibili, perché non è stato sostituito da linguaggi che fanno meno, ma sono migliori in quella specifica cosa? Ad esempio, sia Java che C # sono molto più adatti per OOP che C ++, mentre C è molto più semplice per la programmazione a livello di sistema, e qualcosa come il lisp è più adatto per la programmazione funzionale. Perché il C ++ è usato su una o più di queste altre lingue?

    
posta jepugs 19.05.2013 - 07:38
fonte

2 risposte

21

Basically, my question is, did I miss something?

Credo che l'abbia fatto, ma ha meno a che fare con i linguaggi di programmazione e più con la tendenza umana a denigrare ciò che non è familiare. Lo facciamo. È naturale. Alzarsi sopra richiede la volontà di sopportare la dissonanza cognitiva che deriva dai paragoni con il familiare quando apprende qualcosa di nuovo.

Stai facendo due cose che non dovresti:

In primo luogo, stai guardando una lingua attraverso l'obiettivo di un'altra. Una delle cose che inizierai a capire man mano che i tuoi orizzonti si allargheranno è che i linguaggi di programmazione sono solo toolbox con variazioni sullo stesso set di strumenti familiari. Le varianti esistono per risolvere problemi specifici. Alcune toolbox contengono strumenti di base che ti costringono a fare un sacco di cose da te; altri ti danno cose per rendere più semplici compiti complessi. Mia moglie, che produce gioielli, ha una dozzina di paia di pinze che hanno mascelle molto insolite progettate per risolvere problemi specifici. Per me sono semplicemente divertenti perché i suoi problemi non sono i miei.

In secondo luogo, stai esaminando tutti gli strumenti che non sono già nella tua casella degli strumenti come qualcosa di maturo per l'abuso perché non si adatta al tuo concetto di "come è". Ho delle notizie per te: chiunque abbia molta esperienza in una lingua può trovare un modo per abusare dei suoi costrutti. C - e non fraintendermi qui, perché ne ho scritto una tonnellata - è particolarmente ricco di opportunità di abuso. Scrivere C è come possedere una motosega: è un ottimo strumento per rimuovere gli arti indesiderati, ma la linea di demarcazione tra uso e abuso sta nel fatto che tali arti siano attaccati ai tuoi alberi o ai tuoi vicini. I costrutti che rafforzano il comportamento sono l'equivalente dell'aggiunta di protezioni della lama e dei freni a catena alle seghe a catena: sono stati messi lì da quelli più disciplinati per impedire loro di ripulire i risultati disordinati dei meno disciplinati che abusano dei loro strumenti e si fanno del male o altri. Una piccola lampadina si accende sopra la tua testa la prima volta che ti rendi conto di poter eseguire una completa reimplementazione di una classe senza doversi chiedere se nessun altro codice stia scappando direttamente scrivendo i campi della struttura invece di chiamare la funzione setter che hai pensato così attentamente .

Or is C++ more popular purely by merit of luck or marketing?

Nessuna delle precedenti. Il C ++ è ampiamente utilizzato per la stessa ragione di qualsiasi altro linguaggio popolare: le persone lo hanno trovato uno strumento utile per fare le cose.

    
risposta data 19.05.2013 - 15:57
fonte
-2

Le persone vogliono usare OOP. Anche i programmatori vogliono imparare il minor numero possibile di cose nuove. Quindi, quando C ++ è uscito per la prima volta. Ha guadagnato popolarità enorme grazie alla retrocompatibilità con C e perché ha implementato OOP, che stava guadagnando popolarità enorme al momento. Questa popolarità ha creato così tanto slancio, che ne mantiene molte fino al giorno d'oggi.

[opinione]

Ma al giorno d'oggi esistono molti linguaggi OOP migliori e c'è molta meno enfasi sulla compatibilità con C indietro. Vorrei raccomandare di guardare in Java, C #, Python o Ruby per il linguaggio OOP moderno.

[/ parere]

    
risposta data 19.05.2013 - 07:55
fonte

Leggi altre domande sui tag