Gli sviluppatori Python troveranno più facile imparare C (e viceversa)? [duplicare]

4

Dato che Python è stato scritto nel linguaggio di programmazione C, vuol dire che se conosco C imparerò e padroneggerò Python più velocemente di quanto mi porterebbe ad apprendere senza conoscere a priori C?

Oppure i programmatori Python troveranno più facile imparare C rispetto ai programmatori di altre lingue non correlate a C?

    
posta curious 02.11.2011 - 04:04
fonte

4 risposte

17

L'implementazione di riferimento di Python, CPython è stata infatti scritta in C, ma dicendo che Python è scritto in C è un semplificazione eccessiva:

  • Esistono implementazioni scritte in altre lingue, come Jython (scritto in Java), IronPython (scritto in C #), PyPy ( writen in Python), CLPython (scritto in Common Lisp), Psyco (anche scritto in C), Stackless Python (scritto in C e Python) e Unladen Swallow (scritto in C ++)
  • Sebbene l'interprete CPython sia scritto in C, è possibile scrivere moduli per esso in C ++ o Cython (non da confondere con CPython), così come C
  • In quale lingua è scritto l'interprete di una lingua è importante solo se vuoi scrivere moduli / estensioni all'interprete stesso, non ha nulla a che fare con la lingua

Diverse lingue (come Java, PHP, C # e altre) sono indicate come appartenenti alla famiglia C, che non ha nulla a che fare con quali strumenti linguistici (compilatori, interpreti) per le suddette lingue sono scritte, ma significa che hanno una sintassi molto simile a C. La sintassi di Python è molto diversa da C, non solo non appartiene alla famiglia C, ma è piuttosto lontana da essa.

Oltre all'interprete CPython, l'unica altra relazione che Python ha per C è che sono entrambi linguaggi di programmazione multi-scopo e multi-paradigma.

Qualunque cosa tu scelga di imparare per primo ti aiuterà enormemente a imparare l'altro, e questo è vero per ogni linguaggio di programmazione, poiché quello che impari prima ti introdurrà a concetti di programmazione e modi di pensare comuni in ogni lingua.

Python è generalmente considerato come un linguaggio di livello superiore, mentre C come linguaggio di livello inferiore, il che significa che Python è più vicino a ciò che noi umani consideriamo amichevoli e C più vicino a ciò che la macchina considera amichevole, quindi Python è un po 'più facile per principianti per iniziare.

    
risposta data 02.11.2011 - 04:59
fonte
12

La sintassi di Python non è simile a quella di C. Quindi avere una conoscenza preliminare di C non ha davvero nulla a che fare con quanto imparerai bene Python. Solo perché sotto il cappuccio c'è il codice C non significa che imparerai Python più velocemente perché sai C. Come programmatore Python hai a che fare con la sintassi di Python non C.

    
risposta data 02.11.2011 - 04:17
fonte
2

Le lingue costruite su altri possono operare in modi fondamentalmente diversi, introdurre nuovi concetti. Solo perché ogni operazione in Python deve essere traducibile in un'operazione in C non significa che quell'operazione sia fattibile o buona pratica in normale C. Il tempo impiegato per l'apprendimento di C non ti aiuterà veramente con Python, relativamente parlando.

    
risposta data 02.11.2011 - 04:16
fonte
2

Python e C condividono probabilmente molti concetti, quindi l'apprendimento di una di queste lingue ti aiuterà sicuramente con l'altra (appartengono alla stessa categoria di lingue imperative, anche se differiscono significativamente su alcuni punti). Ecco alcuni concetti comuni:

  • "Strutture di controllo": cicli, test
  • Funzione chiama e restituisce valori
  • Le variabili hanno un tipo (entrambe le lingue sono strongmente tipizzate) e le operazioni devono rispettare questi tipi
  • Tipi di variabili di base: interi, float, stringhe, ecc.

Detto questo, Python è sia più semplice che molto più espressivo di C: i programmi scritti in Python sono generalmente 2-10 volte più corti di un equivalente codice C, e Python offre strutture dati più utili di C (vale a dire liste, dizionari, insiemi , oggetti, ...).

Quindi ti consiglio vivamente di imparare prima Python. C sarà molto più facile da imparare in seguito, perché Python ti permetterà di cogliere i concetti di programmazione giusti molto più velocemente.

    
risposta data 02.11.2011 - 11:28
fonte

Leggi altre domande sui tag