Ho bisogno di un'alternativa decente a c ++ [chiuso]

-2

Ho imparato php e c ++, elencherò le cose che mi sono piaciute e che non mi sono piaciute su ciascuna di esse, come ho deciso di impararle in primo luogo e perché sento il bisogno di imparare un'alternativa decente a c ++, non sono un programmatore professionista e realizzo solo progetti per me stesso.

PHP - Ho deciso di imparare perché volevo creare un sito web dinamico, che ho fatto e si è rivelato molto buono, ho persino codificato un motore di ricerca 'non così fondamentale' per questo che avrebbe mostrato il risultati 'google style' e molto veloce, roba davvero interessante.

PROS - Sintassi abbastanza coerente per tutte le cose (piccoli avvertimenti), grande funzionalità, una gioia per me di codificarci (sembra "sapere" cosa voglio che faccia e basta esso)

CONS - Slowly doloroso per il numero crunch (che mi porta a c ++ che ho solo imparato perché volevo fare un po 'di numeri crunch e doveva essere molto veloce)

C ++ - Appresi perché il numero crunch era così lento in php e la manipolazione di grandi quantità di dati era molto difficile, ho pensato, è il linguaggio di programmazione popolare e tutti i test dimostrano che è veloce, la base le cose assomigliano a php quindi non dovrebbe essere difficile da raccogliere

PROS - Può essere utilizzato praticamente per qualsiasi cosa, molto molto velocemente

CONS - Anche se divertente da codificare all'inizio, se ho bisogno di fare qualcosa fuori dall'ordinario, le routine di allocazione della memoria, il puntatore, le dimensioni dello stack ecc ... mi faranno stancare molto velocemente , la sintassi è un po 'incoerente alcune volte (più caveat)

Immagino che da quello che ho scritto voi capirete cosa sto cercando, ci sono migliaia di lingue là fuori, è probabile che uno di loro soddisferà i miei bisogni, ho visto cose oggi e un amico il mio che è un programmatore professionista ha provato OCaml e Fortran e ha detto che entrambi sono veloci per le cose numeriche, sono stato propenso a testare Fortran, ma ho bisogno di qualche input in più perché voglio avere altri buoni "candidati" tra cui scegliere , ad esempio la sintassi python mi è sembrata ottima, ma poi ho scoperto da alcuni test che era molto più lento del c ++ e semplicemente non volevo mollare i pollici tutto il giorno.

    
posta wxiiir 22.09.2012 - 21:14
fonte

2 risposte

2

Sembra che PHP fosse troppo alto per te e il C ++ era troppo basso. Sono un programmatore C ++ e sono d'accordo sul fatto che a volte il rapporto segnale-rumore, specialmente per una nuova persona, può essere piuttosto basso. Ha ancora il suo posto in molte aree, ma non lo userei per la programmazione generale.

Le lingue che raccomanderei sarebbero C #, Python o Java. Di quelli Java è alla fine della lista perché sembra che non sia più l'elemento caldo del settore e se hai intenzione di imparare qualcosa, potrebbe anche raccogliere una competenza che altre persone stanno cercando.

Sia C # che Java sono simili alla sintassi di C ++, ma sono meno flessibili, cosa buona e cattiva. Per te, è soprattutto una buona cosa poiché la flessibilità è ciò che introduce complessità. Entrambe le lingue non ti permetteranno di spianare la memoria e si preoccuperanno delle allocazioni per te in modo che tu possa concentrarti sulla logica effettiva.

Python è molto diverso e non sono del tutto sicuro di come sia comparabile in termini di velocità poiché credo che sia ancora interpretato mentre C # compila il codice in tempo reale. Ma è ancora una lingua divertente.

    
risposta data 22.09.2012 - 21:28
fonte
3

Se PHP è troppo lento per te, puoi sempre scrivere le parti sensibili al rendimento in C ++ e poi chiamare quelle funzioni C ++ da PHP (vedi questa domanda stackoverflow ).

Per server relativamente veloci, Java e C # sono anche buone opzioni. Potrebbero non essere sempre veloci quanto C ++, ma per la maggior parte degli scopi sono "abbastanza veloci".

Per alcuni carichi di lavoro, potresti anche sentire che node.js è il più veloce, ma non nel tuo caso. Node.js è specializzato in operazioni con I / O-bound e sembra che tu sia bloccato in operazioni legate alla CPU, quindi node.js sarebbe "abbastanza veloce, ma non così strabiliante".

Per C ++, ci sono una serie di cose che potresti fare per migliorare la situazione. Sospetto che potresti fare qualcosa di sbagliato se le dimensioni dello stack sono un problema enorme per te.

  1. I puntatori potrebbero essere più facili da gestire se si provano i puntatori intelligenti.
  2. Evita di allocare manualmente le cose se puoi. Se vuoi allocare memoria per un sacco di cose, usa un vettore e lascia che l'STL di C ++ faccia le cose complesse per te.

Infine, potresti provare un compilatore PHP per accelerare PHP senza dover cambiare lingua. Vedi Phalanger , phc e HipHop .

Prova diverse tecnologie e scopri cosa funziona per te.

Se le prestazioni sono veramente un grosso problema e i tuoi calcoli possono essere suddivisi in molti piccoli passaggi indipendenti, potrebbero essere utili lingue come OpenCL.

    
risposta data 22.09.2012 - 21:28
fonte

Leggi altre domande sui tag