Guida [VECCHIO] Corso programmazione linguaggio C - Lezione #3 : Creiamo il nostro ambiente per la programmazione (installazione e configurazione strumenti)

giovy2707

Utente Electrum
27 Giugno 2019
96
38
62
103
Ultima modifica:

LEZIONE X IMMAGINE.png


LEGGI QUESTO PRIMA DI CONTINUARE

Se non hai già letto le avvertenze/istruzioni presenti nella LEZIONE 1 ti invito a leggerle (puoi farlo da questo link: Lezione 1 ) , ho evitato di fare copia e incolla delle varie avvertenze/istruzioni poiché mi sembrava inutile aggiungere a ogni post tutto quel testo.

FILE ZIP DEL CORSO :

Vedi: https://drive.google.com/file/d/1sPuNna2S3b0sqmFHK448j4vKg1MVUlSM/view?usp=sharing




NOTA PER I LETTORI: Ho dovuto usare molti link esterni , avrei voluto fare una guida più dettagliata, tuttavia capirete che entrare nel dettaglio di ogni installazione per ogni programma e parlare della configurazione di ognuno di essi avrebbe richiesto un sacco di tempo e avrebbe ritardato l'uscita di questa lezione di un sacco.

Dopo aver parlato di tutta la parte "teorica" è arrivato il momento di passare a un pò di pratica: oggi vi spiego come "preparare una postazione/ambiente" che vi permetta di programmare.

1 - Il sistema operativo


Può sembrare scontato ma abbiamo bisogno di un sistema operativo per programmare, e soprattutto dobbiamo sapere bene che sistema operativo stiamo usando, in modo da capire quali strumenti possiamo usare, quali vantaggi questo ci dà nella programmazione ecc... .
Parto col dire che:
  • non esiste un sistema operativo fatto appositamente per programmare (non che io sappia almeno)
i sistemi operativi per personal computer (cioè i PC che vedete in giro e che usate di solito) sono tutti abbastanza "general purpose" un pò come il C, nel senso che non sono fatti per eseguire un solo tipo di attività, ma sono progettati per fare un pò di tutto (eccetto attività molto particolari che magari richiedono sistemi operativi con particolari caratteristiche, ma questi sono casi che non ci interessano).

Questo significa che per seguire questo corso potete usare un il sistema operativo che preferite, tuttavia vi spiego comunque in poche parole quali sono i vantaggi e svantaggi di usare determinati sistemi operativi.

1664481464793.png


1665248602639.png


1.1 - Linux


Parto da Linux così possiamo fin da subito sfatare un mito che magari vi sarà capitato di sentire:
  • "I programmatori usano Linux per programmare"
Non è esattamente corretto.

Vantaggi


  • Linux è un sistema molto stabile: nel senso che il rischio di "schermata blu" come siamo oramai abituati con Windows è di solito molto più basso, infatti è più probabile che il sistema abbia problemi per casini che ha fatto l'utente piuttosto che per casini dovuti ad un aggiornamento o per qualche bug del sistema stesso (ovviamente gli utilizzatori di distro come Arch sono più soggetti a questo problema).

  • è generalmente più sicuro: allora... qui ci sarebbe molto da dire ma per farvela breve:
    • Linux è generalmente usato da utenti abbastanza tecnici quindi è abbastanza improbabile che scarichino materiale infetto (o almeno è non cadono in tranelli banali).

    • Linux essendo usato da utenti di solito più tecnici non è utilizzatissimo dalla maggior parte delle persone, di conseguenza non è molto conveniente creare un malware per un sistema che usano solo in pochi (meglio fare un virus per Windows o Mac OS piuttosto, che hanno una maggiore fetta di utenza ).

    • Su Linux ogni programma deve fare i conti con il rigido sistema di permessi, dovete capire che Linux nasce in origine per macchine server o che in generale dovevano far lavorare più utenti contemporaneamente, quindi ogni utente ha determinati permessi sulla macchina, e di conseguenza un malware non può fare casini se l'utente in questione non ha i giusti permessi, o se la macchina è usata da un singolo utente, non può fare grandi danni se l'utente non gli dà i permessi (ma come ho detto, Linux generalmente è usato da un utenza abbastanza tecnica che si presuppone dia i permessi di amministratore con parsimonia).

  • La maggior parte degli aggiornamenti non richiede il riavvio del sistema.

  • È open source e questo significa massimo controllo sulla macchina.

  • È gratuito.

  • Molti dei tool più famosi per la programmazione sono stati scritti per Linux (in origine) e questo significa che si integrano perfettamente con il sistema operativo , anche se ora è possibile usarli anche su gli altri sistemi operativi.

  • La shell : la shell di Linux (cioè il terminale) è molto potente e permette di fare tantissime cose (cose che il cmd di Windows spesso se le sogna) cosa che fà sicuramente comodo per un programmatore (anche se non è per forza necessaria).

Svantaggi


  • Non ci sono molti programmi che sono invece disponibili per Windows (quindi o vi accontentate di quelli che ci sono per Linux o dovete andare di "dual boot")

  • Mancanza di driver per determinate periferiche (alcune volte può capitare che determinati hardware non siano completamente supportati)

  • Bisogna imparare ad usare un nuovo sistema operativo (anche se distro come Linux Mint e Ubuntu sono semplici da usare, o comunque richiedono uno sforzo non eccessivo anche per coloro che vengono da Windows o da Mac OS)

1664481926116.png


LINK:


1.2 - Windows

Parliamo ora di Windows, allora... conoscete probabilmente un pò tutti Windows quindi non ne parlerò troppo.

Vantaggi

  • 99% dei casi l'hardware è supportato.

  • La maggior parte dei software più famosi sono stati progettati per Windows o comunque sono disponibili anche per esso.

  • Facile da usare.

  • Probabilmente già lo sai usare, quindi non devi imparare da 0 un nuovo sistema operativo

Svantaggi

  • Alcune volte può risultare instabile.

  • Probabilità di essere infettati da un malware più alta di Mac OS o Linux.

  • Terminale con molte meno funzionalità di quello di Linux o Mac OS.

  • Per sbloccare tutte le funzionalità del sistema operativo bisogna acquistare una licenza.


1.3 - Mac OS


Non ho mai usato questo sistema operativo quindi vi parlo solo di cose che ho appreso online
😅
.

Vantaggi


  • Come Linux anche esso deriva da UNIX e quindi condivide alcune caratteristiche molto comode, come ad esempio un ottima Shell.

  • Grande stabilità e sicurezza.

  • Software famosi di solito sono disponibili anche per Mac.

  • Molto ottimizzato.

  • Hardware praticamente sempre compatibile.

  • Molti dei tool per la programmazione che troviamo su Linux li possiamo usare facilmente anche su questo OS.

Svantaggi


  • Sistema chiuso

  • Sistema operativo non installabile ovunque (non senza particolari smanettamenti)

1664482608611.png


LINK:



1.4 - WSL (windows subsystem for Linux)

Se usate windows
potete usare questa funzionalità molto comoda (che si chiama WSL), per farvela breve in questo modo potete usare un ambiente e un terminale Linux su windows, il che significa che pote installare i programmi disponibili per Linux rimanendo su windows.

1664733344585.png


LINK:

1665248567973.png



1.5 - Macchine virtuali

Un'altra scorciatoia per usare un particolare sistema operativo senza dover per forza installarlo (come per la WSL con Linux su Windows) è quella di usare una macchina virtuale. Anche qui l'argomento può essere un pò ostico, quindi vi rimando a fonti esterne che possono darvi un ottima idea a riguardo:

1665248726012.png


LINK:

1665248746493.png


2 - Editor di testo Vs IDE

Una volta scelto il sistema operativo bisogna fare un'altra scelta:
  • IDE o Text Editor?
Se non sapete di che sto parlando allora lasciate che vi introduca questi due tipi di software.

Ma prima di iniziare capiamo perché ci servono: come abbiamo detto per creare dei programmi in C dobbiamo scrivere in uno o più file il codice sorgente che deve essere poi compilato, ebbene scrivere questi file con il blocco note può essere parecchio inefficiente soprattutto per quanto riguarda il tempo che perdereste per scrivere il codice.
Motivo per cui esistono strumenti fatti appositamente per aiutare il programmatore a scrivere codice.

2.1 - Text Editor


Un text editor (editor di testo) è un programma che in generale permette di modificare/creare file testuali, ottimi esempi di text editor sono:
  • Blocco note
  • Notepad++
  • Gedit
Questi volendo possono essere usati per programmare (soprattutto Notepad++ che viene usato soprattutto per quello) ma esistono anche text editor molto più avanzati che sono fatti appositamente per la programmazione e quindi hanno anche delle funzionalità interessanti come:

  • Evidenziazione del codice
  • Auto-completamento del codice
  • Temi Dark per l'interfaccia
  • Segnalazione di errori di sintassi
  • ecc...
Generalmente sono molto leggeri e possono essere usati per qualunque linguaggio (alla fine servono solo a modificare testo).

Di solito i text editor permettono di estendere le funzionalità del software attraverso delle estensioni (di solito scritte dagli utenti della community) che molte volte offrono un supporto apposito per determinati linguaggi di programmazione, vi faccio un esempio:
  • Visual Studio Code è un editor che già di base offre molte funzionalità, però se si installa l'estensione per C/C++ allora esso fornirà funzionalità aggiuntive esclusive per i programmi in C o C++.
Bene penso abbiate oramai un idea di cos'è un text editor, per ulteriori info vi lascio qualche link più avanti.

Quale text editor posso installare?


  • Visual Studio Code
  • Brackets
  • Vim
  • Sublime Text
  • vis
  • emacs
  • nedit (nirvana editor)
  • e numerosi altri editor... (basta cercare un pò sul web)
1664483146067.png


LINK:


2.2 - IDE


IDE è l'acronimo di "integrated development environment" cioè "ambiente di sviluppo integrato", e per farvela semplice potete considerarlo come un "Text Editor con i muscoli".

Gli IDE sono generalmente progettati per determinati linguaggi, questo significa che un IDE di solito non permette la stessa flessibilità di un text editor (cioè non potete usarlo per qualunque linguaggio, e/o qualunque tipo di file), ma al tempo stesso offre molte più funzionalità e strumenti per la programmazione.
  • Ad esempio se volete lavorare in C dovete usare un IDE fatto appositamente per programmare in C, o che supporti tra i vari linguaggi anche il C.
Oltre questo un IDE generalmente offre molti strumenti appositi per lavorare con i linguaggi che supporta, ad esempio:

  • Un IDE per C avrà sicuramente:
    • un compilatore C integrato

    • un debugger

    • un programma di building automatico

Nei text editor queste cose dovete installarle tramite estensioni o manualmente, e in alcuni casi potrebbero anche essere non installabili al di fuori dell'IDE (determinate funzionalità sono parte dell'IDE, di conseguenza non potete installarle come se fossero dei programmi separatamente).

1665248833632.png


2.2.1 - Quale IDE posso installare? (per il C)

  • Code::Blocks
  • CodeLite
  • Visual Studio ("visual studio" e "visual studio code" sono due programmi diversi)
  • e numerosi altri IDE... (basta cercare un pò sul web)

1664483569240.png


LINK:


2.2.2 - NON USARE Dev-C++ !


Spesso nelle scuole viene insegnato il C o il C++ usando questo programma come IDE, o in generale i vecchi tutorial fanno vedere che usano questo programma, ma non è una buona idea installarlo.

DEV-C++ è un progetto oramai abbandonato da tempo, questo significa che oramai è OBSOLETO! Di conseguenza mancano funzionalità moderne e un compilatore aggiornato, e se avete letto la lezione precedente sapete cosa ciò comporta.


3 - Installiamo il compilatore


Come sapete per compilare il codice C abbiamo bisogno di un compilatore, ci sono vari compilatori per il C ognuno con determinate caratteristiche e compatibilità con determinati sistemi operativi.

Vediamo come installarli (ovviamente devi sceglierne uno solo, anche se volendo nessuno ti vieta di provarne più di uno):

3.1 - Clang


Partiamo da Clang:

1664483778802.png


LINK:

Installazione (Windows,Linux,Mac OS):



3.2 - GNU GCC


1664483882726.png


LINK:

Per installarlo:


3.2.1 - WINDOWS

Per installare GCC su windows ci sono diversi modi:




MinGW


1664484004001.png


LINK:
INSTALLAZIONE:





Cygwin


1664484161864.png


LINK:
INSTALLAZIONE:





MSYS2 (consigliato anche da Microsoft)


1664484359152.png


LINK:
INSTALLAZIONE:






WSL

Vai alla sezione "3.2.2 - Linux" e segui le istruzioni per la distribuzione Linux che hai installato nella tua WSL.


3.2.2 - LINUX




Debian,Ubuntu e relative derivate:


Nel terminale date il comando:
  • Per installare GCC + DIVERSI TOOL per la programmazione C (come ad esempio il debugger ecc...,che non so se useremo, se mai ci farò una lezione vi spiegherò come installarli):
Bash:
sudo apt install build-essential

  • Per installare SOLO GCC:
Bash:
sudo apt install gcc




Red Hat e derivate


  • Per installare GCC + DIVERSI TOOL per la programmazione C (come ad esempio il debugger ecc...,che non so se useremo, se mai ci farò una lezione vi spiegherò come installarli):
Bash:
sudo dnf groupinstall "Development Tools" "Development Libraries"

  • Per installare SOLO GCC:
Bash:
sudo dnf install gcc



Arch e derivate


  • Per installare GCC + DIVERSI TOOL per la programmazione C (come ad esempio il debugger ecc...,che non so se useremo, se mai ci farò una lezione vi spiegherò come installarli):
Bash:
sudo pacman -S base-devel

  • Per installare SOLO GCC:
Bash:
sudo pacman -S gcc


3.2.3 - Mac OS



Segui le istruzioni di questo link:


3.3 - Compilatore preinstallato con l'IDE (consigliato per WINDOWS)

Un altro modo per avere un compilatore C funzionante è quello di usare un IDE che ne offra uno integrato (cosa che consiglio soprattutto per chi usa windows e magari ha avuto problemi a installarlo manualmente).

Gli IDE che dovrebbero avere dei compilatori integrati che ti consiglio sono:
  • Visual Studio
  • Code::Blocks

1664485030454.png


1664485048210.png


LINK:


 

Allegati

  • 1664733439359.png
    1664733439359.png
    7.1 KB · Visualizzazioni: 7
  • Creiamo il nostro ambiente per la programmazione (installazione e configurazione strumenti).pdf
    343 KB · Visualizzazioni: 5
Ultima modifica:
Premetto che non ho letto tutto, ma una cosa molto comoda per programmare su Windows è WSL2, bash su Windows, almeno non devi fare Mille giri per installare i compilatori.
 
Premetto che non ho letto tutto, ma una cosa molto comoda per programmare su Windows è WSL2, bash su Windows, almeno non devi fare Milli giri per installare i compilatori
Grazie per il consiglio, sinceramente volevo mettere anche la wsl ma ne sono dimenticato 😂, domani aggiungo la parte relativa alla wsl e aggiorno anche la lezione 1 che pure devo aggiungere un pezzo
 
  • Mi piace
Reazioni: hackynonpointer
Grazie per il consiglio, sinceramente volevo mettere anche la wsl ma ne sono dimenticato 😂, domani aggiungo la parte relativa alla wsl e aggiorno anche la lezione 1 che pure devo aggiungere un pezzo
Ottimo, btw bel lavoro, tutte le lezioni sono spiegate bene. Almeno con wsl si possono usare anche editor come vim o nano(anche se nano per Windows c'è, ma l'ultima volta che l'ho usato crashava ogni due per tre)
 
  • Mi piace
Reazioni: giovy2707

Visualizza allegato 65539

LEGGI QUESTO PRIMA DI CONTINUARE

Se non hai già letto le avvertenze/istruzioni presenti nella LEZIONE 1 ti invito a leggerle (puoi farlo da questo link: Lezione 1 ) , ho evitato di fare copia e incolla delle varie avvertenze/istruzioni poiché mi sembrava inutile aggiungere a ogni post tutto quel testo.

FILE ZIP DEL CORSO :

Vedi: https://drive.google.com/file/d/1sPuNna2S3b0sqmFHK448j4vKg1MVUlSM/view?usp=sharing




NOTA PER I LETTORI: Ho dovuto usare molti link esterni , avrei voluto fare una guida più dettagliata, tuttavia capirete che entrare nel dettaglio di ogni installazione per ogni programma e parlare della configurazione di ognuno di essi avrebbe richiesto un sacco di tempo e avrebbe ritardato l'uscita di questa lezione di un sacco.

Dopo aver parlato di tutta la parte "teorica" è arrivato il momento di passare a un pò di pratica: oggi vi spiego come "preparare una postazione/ambiente" che vi permetta di programmare.

1 - Il sistema operativo


Può sembrare scontato ma abbiamo bisogno di un sistema operativo per programmare, e soprattutto dobbiamo sapere bene che sistema operativo stiamo usando, in modo da capire quali strumenti possiamo usare, quali vantaggi questo ci dà nella programmazione ecc... .
Parto col dire che:
  • non esiste un sistema operativo fatto appositamente per programmare (non che io sappia almeno)
i sistemi operativi per personal computer (cioè i PC che vedete in giro e che usate di solito) sono tutti abbastanza "general purpose" un pò come il C, nel senso che non sono fatti per eseguire un solo tipo di attività, ma sono progettati per fare un pò di tutto (eccetto attività molto particolari che magari richiedono sistemi operativi con particolari caratteristiche, ma questi sono casi che non ci interessano).

Questo significa che per seguire questo corso potete usare un il sistema operativo che preferite, tuttavia vi spiego comunque in poche parole quali sono i vantaggi e svantaggi di usare determinati sistemi operativi.

Visualizza allegato 65541


1.1 - Linux


Parto da Linux così possiamo fin da subito sfatare un mito che magari vi sarà capitato di sentire:
  • "I programmatori usano Linux per programmare"
Non è esattamente corretto.

Vantaggi


  • Linux è un sistema molto stabile: nel senso che il rischio di "schermata blu" come siamo oramai abituati con Windows è di solito molto più basso, infatti è più probabile che il sistema abbia problemi per casini che ha fatto l'utente piuttosto che per casini dovuti ad un aggiornamento o per qualche bug del sistema stesso (ovviamente gli utilizzatori di distro come Arch sono più soggetti a questo problema).

  • è generalmente più sicuro: allora... qui ci sarebbe molto da dire ma per farvela breve:
    • Linux è generalmente usato da utenti abbastanza tecnici quindi è abbastanza improbabile che scarichino materiale infetto (o almeno è non cadono in tranelli banali).

    • Linux essendo usato da utenti di solito più tecnici non è utilizzatissimo dalla maggior parte delle persone, di conseguenza non è molto conveniente creare un malware per un sistema che usano solo in pochi (meglio fare un virus per Windows o Mac OS piuttosto, che hanno una maggiore fetta di utenza ).

    • Su Linux ogni programma deve fare i conti con il rigido sistema di permessi, dovete capire che Linux nasce in origine per macchine server o che in generale dovevano far lavorare più utenti contemporaneamente, quindi ogni utente ha determinati permessi sulla macchina, e di conseguenza un malware non può fare casini se l'utente in questione non ha i giusti permessi, o se la macchina è usata da un singolo utente, non può fare grandi danni se l'utente non gli dà i permessi (ma come ho detto, Linux generalmente è usato da un utenza abbastanza tecnica che si presuppone dia i permessi di amministratore con parsimonia).

  • La maggior parte degli aggiornamenti non richiede il riavvio del sistema.

  • È open source e questo significa massimo controllo sulla macchina.

  • È gratuito.

  • Molti dei tool più famosi per la programmazione sono stati scritti per Linux (in origine) e questo significa che si integrano perfettamente con il sistema operativo , anche se ora è possibile usarli anche su gli altri sistemi operativi.

  • La shell : la shell di Linux (cioè il terminale) è molto potente e permette di fare tantissime cose (cose che il cmd di Windows spesso se le sogna) cosa che fà sicuramente comodo per un programmatore (anche se non è per forza necessaria).

Svantaggi


  • Non ci sono molti programmi che sono invece disponibili per Windows (quindi o vi accontentate di quelli che ci sono per Linux o dovete andare di "dual boot")

  • Mancanza di driver per determinate periferiche (alcune volte può capitare che determinati hardware non siano completamente supportati)

  • Bisogna imparare ad usare un nuovo sistema operativo (anche se distro come Linux Mint e Ubuntu sono semplici da usare, o comunque richiedono uno sforzo non eccessivo anche per coloro che vengono da Windows o da Mac OS)

Visualizza allegato 65542

LINK:


1.2 - Windows

Parliamo ora di Windows, allora... conoscete probabilmente un pò tutti Windows quindi non ne parlerò troppo.

Vantaggi

  • 99% dei casi l'hardware è supportato.

  • La maggior parte dei software più famosi sono stati progettati per Windows o comunque sono disponibili anche per esso.

  • Facile da usare.

  • Probabilmente già lo sai usare, quindi non devi imparare da 0 un nuovo sistema operativo

Svantaggi

  • Alcune volte può risultare instabile.

  • Probabilità di essere infettati da un malware più alta di Mac OS o Linux.

  • Terminale con molte meno funzionalità di quello di Linux o Mac OS.

  • Per sbloccare tutte le funzionalità del sistema operativo bisogna acquistare una licenza.


1.3 - Mac OS


Non ho mai usato questo sistema operativo quindi vi parlo solo di cose che ho appreso online
😅
.

Vantaggi


  • Come Linux anche esso deriva da UNIX e quindi condivide alcune caratteristiche molto comode, come ad esempio un ottima Shell.

  • Grande stabilità e sicurezza.

  • Software famosi di solito sono disponibili anche per Mac.

  • Molto ottimizzato.

  • Hardware praticamente sempre compatibile.

  • Molti dei tool per la programmazione che troviamo su Linux li possiamo usare facilmente anche su questo OS.

Svantaggi


  • Sistema chiuso

  • Sistema operativo non installabile ovunque (non senza particolari smanettamenti)

Visualizza allegato 65543

LINK:



1.4 - WSL (windows subsystem for Linux)

Se usate windows potete usare questa funzionalità molto comoda, per farvela breve in questo modo potete usare un ambiente e un terminale Linux su windows, il che significa che pote installare i programmi disponibili per Linux rimanendo su windows.

Visualizza allegato 65615

LINK:


1.5 - Macchine virtuali

Un'altra scorciatoia per usare un particolare sistema operativo senza dover per forza installarlo (come per la WSL con Linux su Windows) è quella di usare una macchina virtuale. Anche qui l'argomento può essere un pò ostico, quindi vi rimando a fonti esterne che possono darvi un ottima idea a riguardo:

Visualizza allegato 65616

LINK:



2 - Editor di testo Vs IDE

Una volta scelto il sistema operativo bisogna fare un'altra scelta:
  • IDE o Text Editor?
Se non sapete di che sto parlando allora lasciate che vi introduca questi due tipi di software.

Ma prima di iniziare capiamo perché ci servono: come abbiamo detto per creare dei programmi in C dobbiamo scrivere in uno o più file il codice sorgente che deve essere poi compilato, ebbene scrivere questi file con il blocco note può essere parecchio inefficiente soprattutto per quanto riguarda il tempo che perdereste per scrivere il codice.
Motivo per cui esistono strumenti fatti appositamente per aiutare il programmatore a scrivere codice.

2.1 - Text Editor


Un text editor (editor di testo) è un programma che in generale permette di modificare/creare file testuali, ottimi esempi di text editor sono:
  • Blocco note
  • Notepad++
  • Gedit
Questi volendo possono essere usati per programmare (soprattutto Notepad++ che viene usato soprattutto per quello) ma esistono anche text editor molto più avanzati che sono fatti appositamente per la programmazione e quindi hanno anche delle funzionalità interessanti come:

  • Evidenziazione del codice
  • Auto-completamento del codice
  • Temi Dark per l'interfaccia
  • Segnalazione di errori di sintassi
  • ecc...
Generalmente sono molto leggeri e possono essere usati per qualunque linguaggio (alla fine servono solo a modificare testo).

Di solito i text editor permettono di estendere le funzionalità del software attraverso delle estensioni (di solito scritte dagli utenti della community) che molte volte offrono un supporto apposito per determinati linguaggi di programmazione, vi faccio un esempio:
  • Visual Studio Code è un editor che già di base offre molte funzionalità, però se si installa l'estensione per C/C++ allora esso fornirà funzionalità aggiuntive esclusive per i programmi in C o C++.
Bene penso abbiate oramai un idea di cos'è un text editor, per ulteriori info vi lascio qualche link più avanti.

Quale text editor posso installare?


  • Visual Studio Code
  • Brackets
  • Vim
  • Sublime Text

Visualizza allegato 65544

LINK:


2.2 - IDE


IDE è l'acronimo di "integrated development environment" cioè "ambiente di sviluppo integrato", e per farvela semplice potete considerarlo come un "Text Editor con i muscoli".

Gli IDE sono generalmente progettati per determinati linguaggi, questo significa che un IDE di solito non permette la stessa flessibilità di un text editor (cioè non potete usarlo per qualunque linguaggio, e/o qualunque tipo di file), ma al tempo stesso offre molte più funzionalità e strumenti per la programmazione.
  • Ad esempio se volete lavorare in C dovete usare un IDE fatto appositamente per programmare in C, o che supporti tra i vari linguaggi anche il C.
Oltre questo un IDE generalmente offre molti strumenti appositi per lavorare con i linguaggi che supporta, ad esempio:

  • Un IDE per C avrà sicuramente:
    • un compilatore C integrato

    • un debugger

    • un programma di building automatico

Nei text editor queste cose dovete installarle tramite estensioni o manualmente, e in alcuni casi potrebbero anche essere non installabili al di fuori dell'IDE (determinate funzionalità sono parte dell'IDE, di conseguenza non potete installarle come se fossero dei programmi separatamente).

2.2.1 - Quale IDE posso installare? (per il C)

  • Code::Blocks
  • CodeLite
  • Visual Studio ("visual studio" e "visual studio code" sono due programmi diversi)

Visualizza allegato 65545

LINK:


2.2.2 - NON USARE Dev-C++ !


Spesso nelle scuole viene insegnato il C o il C++ usando questo programma come IDE, o in generale i vecchi tutorial fanno vedere che usano questo programma, ma non è una buona idea installarlo.

DEV-C++ è un progetto oramai abbandonato da tempo, questo significa che oramai è OBSOLETO! Di conseguenza mancano funzionalità moderne e un compilatore aggiornato, e se avete letto la lezione precedente sapete cosa ciò comporta.


3 - Installiamo il compilatore


Come sapete per compilare il codice C abbiamo bisogno di un compilatore, ci sono vari compilatori per il C ognuno con determinate caratteristiche e compatibilità con determinati sistemi operativi.

Vediamo come installarli (ovviamente devi sceglierne uno solo, anche se volendo nessuno ti vieta di provarne più di uno):

3.1 - Clang


Partiamo da Clang:

Visualizza allegato 65546

LINK:

Installazione (Windows,Linux,Mac OS):



3.2 - GNU GCC


Visualizza allegato 65547

LINK:

Per installarlo:


3.2.1 - WINDOWS

Per installare GCC su windows ci sono diversi modi:




MinGW


Visualizza allegato 65548

LINK:
INSTALLAZIONE:





Cygwin


Visualizza allegato 65549

LINK:
INSTALLAZIONE:





MSYS2 (consigliato anche da Microsoft)


Visualizza allegato 65550

LINK:
INSTALLAZIONE:






WSL

Vai alla sezione "3.2.2 - Linux" e segui le istruzioni per la distribuzione Linux che hai installato nella tua WSL.


3.2.2 - LINUX




Debian,Ubuntu e relative derivate:


Nel terminale date il comando:
  • Per installare GCC + DIVERSI TOOL per la programmazione C (come ad esempio il debugger ecc...,che non so se useremo, se mai ci farò una lezione vi spiegherò come installarli):
Bash:
sudo apt install build-essential

  • Per installare SOLO GCC:
Bash:
sudo apt install gcc




Red Hat e derivate


  • Per installare GCC + DIVERSI TOOL per la programmazione C (come ad esempio il debugger ecc...,che non so se useremo, se mai ci farò una lezione vi spiegherò come installarli):
Bash:
sudo dnf groupinstall "Development Tools" "Development Libraries"

  • Per installare SOLO GCC:
Bash:
sudo dnf install gcc



Arch e derivate


  • Per installare GCC + DIVERSI TOOL per la programmazione C (come ad esempio il debugger ecc...,che non so se useremo, se mai ci farò una lezione vi spiegherò come installarli):
Bash:
sudo pacman -S base-devel

  • Per installare SOLO GCC:
Bash:
sudo pacman -S gcc


3.2.3 - Mac OS



Segui le istruzioni di questo link:


3.3 - Compilatore preinstallato con l'IDE (consigliato per WINDOWS)

Un altro modo per avere un compilatore C funzionante è quello di usare un IDE che ne offra uno integrato (cosa che consiglio soprattutto per chi usa windows e magari ha avuto problemi a installarlo manualmente).

Gli IDE che dovrebbero avere dei compilatori integrati che ti consiglio sono:
  • Visual Studio
  • Code::Blocks

Visualizza allegato 65551

Visualizza allegato 65552

LINK:



Tra i vari editor c'è anche vis, emacs, nedit (nirvana editor) e anche pspad, onestamente ci sono molte cose che ignori a quanto pare, di C esistono tra l'altro diversi standard e secondo al compilatore alcune istruzioni avanzate posso essere o meno disponibili, tipicamente nelle scuole spiegano il C99 oppure se trovi qualcuno di un po' più aggiornato il C11, effettivamente poi ci sarebbero anche altre piccole cose da sapere sul funzionamento delle librerie su Windows perché se programmi in C su windows ci sono alcune librerie per ovviare a dei palesi problemi che da sul sistema di casa microsoft ovviamente se non vuoi stare strettamente sulla WSL, mentre se stai su Linux o Mac non ci sono problemi essendo rispettivamente dei sistemi Unix-like e Unix.

Molte volte non serve un ide vero e proprio se hai un buon setup, ovviamente essi sono utili per collaborare quando si lavora in team per poter avere un ambiente simile ma tipicamente lo stesso os funge da ide insieme ad un buon editor soprattutto se parliamo di sistemi UNIX.
 
  • Mi piace
Reazioni: giovy2707
Tra i vari editor c'è anche vis, emacs, nedit (nirvana editor) e anche pspad, onestamente ci sono molte cose che ignori a quanto pare, di C esistono tra l'altro diversi standard e secondo al compilatore alcune istruzioni avanzate posso essere o meno disponibili, tipicamente nelle scuole spiegano il C99 oppure se trovi qualcuno di un po' più aggiornato il C11, effettivamente poi ci sarebbero anche altre piccole cose da sapere sul funzionamento delle librerie su Windows perché se programmi in C su windows ci sono alcune librerie per ovviare a dei palesi problemi che da sul sistema di casa microsoft ovviamente se non vuoi stare strettamente sulla WSL, mentre se stai su Linux o Mac non ci sono problemi essendo rispettivamente dei sistemi Unix-like e Unix.

Molte volte non serve un ide vero e proprio se hai un buon setup, ovviamente essi sono utili per collaborare quando si lavora in team per poter avere un ambiente simile ma tipicamente lo stesso os funge da ide insieme ad un buon editor soprattutto se parliamo di sistemi UNIX.

  • La parte relativa ai vari standard di C l'ho spiegata nella lezione 2.

  • Per quanto riguarda gli editor hai ragione non ne conosco molti, mi sono limitato a consigliare quelli che conosco di più o di cui ho sentito parlare.

  • Per le librerie invece: non ci avevo pensato, io parto dal presupposto che chi legge non sappia nulla di programmazione, di conseguenza non sa cosa sono nemmeno le librerie di conseguenza non avevo pensato di avvertire il lettore sul fatto che in base al sistema operativo si possono usare o meno determinate librerie, però penso che aggiungerò un qualche avvertimento per il lettore, grazie per l'idea.

  • Per il fatto degli IDE invece ora che rileggo di nuovo penso che avrei potuto descriverli un pò meglio , magari appena posso faccio qualche modifica veloce.
 
Ultima modifica:
Ho aggiornato questa lezione aggiungendo un pò di informazioni, ho aggiunto alcune precisazioni e ho cercato di aggiustare alcune imprecisioni.

Ho anche aggiustato un pò i file nel vault Obsidian e nel file zip che sta su drive, ora dovrebbe essere tutto un pò più ordinato.

(Ringrazio @nfvblog per avermi segnalato alcune imprecisioni nella lezione)

E vi informo che nei prossimi giorni (domani o dopodomani si spera...) pubblicherò la 4 lezione.
 
  • Incredibile
Reazioni: hackynonpointer
Buonaseraaa mi spiace che la lezione non sia ancora pronta nonostante vi avessi detto che sarebbe uscita presto, purtroppo sono stato parecchio impegnato, comunque domani probabilmente pubblicherò finalmente la 4 lezione.
 
  • Mi piace
Reazioni: hackynonpointer