DOMANDA Quale Editor utilizzate per programmare in C

Air_

Utente Èlite
4,078
1,679
CPU
I9 12900k
Dissipatore
Custom Loop
Scheda Madre
Asus Rog Strix z690-A
HDD
Mp600 Pro 1Tb-Sabrent Rocket 1TB-Samsun 860 1TB
RAM
4x8 Ballistix 3600 mhz
GPU
4090 Asus Tuf OC
Audio
Toppic Dac D10s+Jds Labs
Monitor
LG 34GN850
PSU
Asus Rog Loki 1000WAtt
Case
Lian Li O11 Mini
Periferiche
Custom
Salve Ragazzi,

Ormai ho ripreso e mi sono cimentato nella programmazione vecchia scuola C, che nonostante sia "obsoleto" rimane comunque una delle basi migliori per procedere. Detto ciò, mi sono spostato ormai su Linux e per partire come da vostro consiglio sto programmando da Mint20 e sto prendendo mano anche per il terminale per poi passare a qualcosa dove smanettare molto di più.

Fatta questa premessa mi sono soffermato su vi ed emacs che poi vi si è praticamente trasformato in Vim. Ho letto anche di altri IDE per programmare anche se sinceramente Linux fornisce anche il classico editor di testo che una volta selezionato il tipo di linguaggio scelto sottolinea le varie voci in modo tale da avere sempre ordine.

Fatta questa premessa voi cosa utilizzate come editor per programmare e che versione di Linux? Ovviamente se utilizzate Linux
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,883
11,541
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Chi dice che il C è obsoleto? tutt'altro!
su Windows le poche volte che ancora ci metto mano, uso CodeBlocks, ce n'è una versione anche per Linux:
http://www.codeblocks.org/downloads/26#linux
vedi se ti piace o aspetta altri suggerimenti
 
Ultima modifica:

Air_

Utente Èlite
4,078
1,679
CPU
I9 12900k
Dissipatore
Custom Loop
Scheda Madre
Asus Rog Strix z690-A
HDD
Mp600 Pro 1Tb-Sabrent Rocket 1TB-Samsun 860 1TB
RAM
4x8 Ballistix 3600 mhz
GPU
4090 Asus Tuf OC
Audio
Toppic Dac D10s+Jds Labs
Monitor
LG 34GN850
PSU
Asus Rog Loki 1000WAtt
Case
Lian Li O11 Mini
Periferiche
Custom
Chi dice che il C è obsoleto? tutt'altro!
su Windows le poche volte che ancora ci metto mano, uso CodeBlocks, ce n'è una versione anche per Linux:
http://www.codeblocks.org/downloads/26#linux
vedi se ti piace o aspetta latri suggerimenti

In alcuni corsi dicono che C sia "obsoleto" per determinati sviluppi anche se non condivido, o per meglio dire forse il senso riguarda la portabilità dei codici su altri dispositivi che magari è molto dispendioso in termini di tempo, dato che esistono linguaggi più "veloci" sotto questo punto di vista.
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,220
1,852
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
In realtà C sarebbe "portabile" se non utilizzi libreria di sistema che ti costringerebbero a modificare il sorgente ricompilandolo per quell'OS.

Detto ciò, in merito all'editor io rimango ormai fedele ai prodotti Jetbrains, quindi ti direi CLion, se vuoi un IDE (li utilizzo ormai sia in ambiente Linux che Windows, ma ho sempre a portata di mano anche Notepad++).
In merito a Vim... sono scelte, e gusti personali. Se ci ti trovi bene, perchè non usarlo.
Esiste anche VSCode, volendo. Se vuoi provare qualcosa di "nuovo", puoi dare uno sguardo a questo: https://theia-ide.org/
Citando dal sito:

Theia versus VS Code
We believe VS Code is an excellent product. That is why Theia embraces many of the design decisions and even directly supports VS Code extensions.
The most significant differences are:
  • Theia's architecture is more modular and allows for way more customizations,
  • Theia is designed from the ground to run on Desktop and Cloud, and
  • Theia is developed under a vendor-neutral Open-Source Foundation.
 
  • Mi piace
Reazioni: BrutPitt

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,540
12,922
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Su windows codeblock, mentre su linux ccite/gedit/vim e poi compilazione e run da terminale
 
  • Mi piace
Reazioni: Air_

Air_

Utente Èlite
4,078
1,679
CPU
I9 12900k
Dissipatore
Custom Loop
Scheda Madre
Asus Rog Strix z690-A
HDD
Mp600 Pro 1Tb-Sabrent Rocket 1TB-Samsun 860 1TB
RAM
4x8 Ballistix 3600 mhz
GPU
4090 Asus Tuf OC
Audio
Toppic Dac D10s+Jds Labs
Monitor
LG 34GN850
PSU
Asus Rog Loki 1000WAtt
Case
Lian Li O11 Mini
Periferiche
Custom
In realtà C sarebbe "portabile" se non utilizzi libreria di sistema che ti costringerebbero a modificare il sorgente ricompilandolo per quell'OS.

Detto ciò, in merito all'editor io rimango ormai fedele ai prodotti Jetbrains, quindi ti direi CLion, se vuoi un IDE (li utilizzo ormai sia in ambiente Linux che Windows, ma ho sempre a portata di mano anche Notepad++).
In merito a Vim... sono scelte, e gusti personali. Se ci ti trovi bene, perchè non usarlo.
Esiste anche VSCode, volendo. Se vuoi provare qualcosa di "nuovo", puoi dare uno sguardo a questo: https://theia-ide.org/
Citando dal sito:

Su Vim hai un pò tentennato, non ti piace DispatchCode?

Su windows codeblock, mentre su linux ccite/gedit/vim e poi compilazione e run da terminale

Grazie Moffetta, in realtà almeno attualmente da Windows ho definitamente smesso di scrivere, mi sono spostato direttamente su Linux, ma a breve vorrei passare a qualche altra Distro per capirci molto di più e valutarne tutte le differenze. Oppure fare tipo una Virtual Machine e provare Elementary, qualche altra distro semplice, anche lo stesso Ubuntu.
 

BrutPitt

Utente Attivo
1,166
1,262
Su Vim hai un pò tentennato, non ti piace DispatchCode?
Developers... gente strana... e piena di fisime ?
Nel senso che ognuno ha (giustamente!) le proprie predilezioni... e nessuna e' giusta o sbagliata.

Ho usato (molto!) vi e vim, molto tempo fa... su terminali Unix.
Personalmente trovo snervante (e forse ormai superflua, sui nostri pc) la doppia modalita' (scrittura / operazioni-navigazione)... ma se tu ti trovi bene, perche' non continuare a usarlo?

Cosi' come VSCode (o VSCodium, nella modalita' senza MS tracking) e' un ottimo prodotto, ma non riesco a farmelo piacere per cio' che riguarda la scrittura di codice: solo perche' non supporta la modalita' "virtual space" (ossia la possibilita' del cursore di muoversi liberamente, anche al di la' del "fine riga", nello spazio virtuale, appunto)
Ed e' solo una (LA!) mia "fissazione": in realta' e' un ottimo editor, con una vastissima gamma di plugins... anche per chi sviluppa in C/C++.
(ed alla fine lo uso per la scrittura di MarkDown scripts: ha un ottimo e affidabile preview, via plugin)

Per cio' che riguarda gli IDE

Concordo con @DispatchCode su CLion, credo che sia il miglior prodotto oggi disponibile per lo sviluppo C/C++ ed e' multipiattaforma: puoi avere lo stesso ambiente in Windows, Linux e Mac OS (con gli stessi settaggi condivisi via cloud)
Adesso (dalla 2020.1) ha anche la modalita' "LightEdit", per editare il singolo file e caricarsi "rapidamente" alla stregua di un editor.
Se vogliamo trovargli una pecca: non ha una versione free / community accessibile a chiunque, sebbene offra licenze gratuite a studenti e a selezionati progetti OpenSource (anche se personalmente non dovrei lamentarmi a riguardo, dato che JetBrains sta supportando un mio progetto su GitHub).

In precedenza ho usato CodeBlock e CodeLite (entrambi multipiattaforma) ... mentre non sono mai entrato in sintonia con Eclipse.

Per cio' che riguarda Linux, aggiungo (visto che lo chiedevi):
uso Fedora praticamente sin dall'inizio (era la ver. 3 o la 4) ... prima di allora Slackware e SuSe.
Continuo ad avere anche Windows, Mac OS, ed anche Ubuntu, per testare la portabilita' del codice su multipiattaforma.

In alcuni corsi dicono che C sia "obsoleto" per determinati sviluppi anche se non condivido, o per meglio dire forse il senso riguarda la portabilità dei codici su altri dispositivi che magari è molto dispendioso in termini di tempo, dato che esistono linguaggi più "veloci" sotto questo punto di vista.
Bisognerebbe dilungarsi, o forse aprire un capitolo a parte.
Come ha gia' accennato @DispatchCode la portabilita' e' garantita dallo "standard" del linguaggio.
Se pero', per esempio, volessi "aprire" una finestra grafica, a quel punto ti devi appoggiare alle funzioni del determinato Windows Manager/Server.
Per fortuna esistono librerie che permettono la portabilita' anche in queste circostanze... e che si frappongono tra il tuo programma e le chiamate di sistema (in questo caso librerie come gtk, wxWidgets, Qt, etc).
Tu fai riferimeto alle funzioni delle librerie in questione, ed esse si preoccupano di fare le chiamate di sistema.
Ovviamente il programma poi deve essere ricompilato per ogni piattaforma, mentre per altri linguaggi, interpretati, il bytecode e' unico e puo' essere eseguito dall'interpreter senza apportare modifiche.
(forse si faceva riferimento a quest'ultimo tipo di portalbilita', che rende meno complicata la distribuzione del programma finale)

Tutto cio' detto in modo davvero molto rapido e semplicistico
 
Ultima modifica:

pabloski

Utente Èlite
2,868
916
Su Vim hai un pò tentennato, non ti piace DispatchCode?

Vim è snervante all'inizio e bisogna farci il callo. Il punto è che, quando l'hai fatto, poi ti rifiuti di usare qualsiasi editor che non sia modale. Io uso Vim al 99% e VSCode il restante 1%. Sai cosa? Appena installo VSCode su una macchina, corro ad installarci il plugin Vim.

Poi c'è anche chi non riesce proprio a digerire l'editing modale. Però Vim era e resta nella top5. L'ecosistema che c'è attorno è incredibile. La flessibilità è su un altro pianeta.

Detto questo, mi sento anch'io di consigliare ( in alternativa ) Codeblocks o Codelite. Sublime Text è un altro ottimo editor per la programmazione. VSCode eventualmente. E CLion se si vuole un IDE full fledged. Ma qui entriamo nell'ambito dei mostri pesanti scritti in Java e allora si potrebbero citare pure Eclipse e Netbeans. Tutta roba che richiede una laurea triennale solo per capire come usarla :D

Ma onestamente, se ti sai muovere in Vim, che altro ti serve?
 
  • Mi piace
Reazioni: Air_ e BAT
U

Utente cancellato 371741

Ospite
kdevelop, nano, talvolta doom emacs, talvolta qtcreator. Mai Nulla di microsoft.

L'editor e' solo uno strumento, abilita' e produttivita' del programmatore ben al di fuori dell'editor. Provane un po', e scegli quello che ti e' piu familiare.

C obsoleto e' la moda del momento, all'universita' delle grandi scienze informatiche, i professori si dilettano a insegnare che C e' superato. Eppure, il kernel linux, su cui mezzo mondo ha costruito la sua fortuna, e0 al 98% (diciamo pure 100%) scritto in C.

Poi per qualcuno e' obsoleto perche' e difficile da capire e utilizzare.
 
  • Mi piace
Reazioni: Air_

Air_

Utente Èlite
4,078
1,679
CPU
I9 12900k
Dissipatore
Custom Loop
Scheda Madre
Asus Rog Strix z690-A
HDD
Mp600 Pro 1Tb-Sabrent Rocket 1TB-Samsun 860 1TB
RAM
4x8 Ballistix 3600 mhz
GPU
4090 Asus Tuf OC
Audio
Toppic Dac D10s+Jds Labs
Monitor
LG 34GN850
PSU
Asus Rog Loki 1000WAtt
Case
Lian Li O11 Mini
Periferiche
Custom
Grazie mille Ragazzi per il vostro supporto, in ogni caso era per chiarirmi un po le idee a riguardo degli IDE. Per quanto riguarda la questione portabilità, alla fine forse è leggermente meno veloce rispetto ad altri però C rimane comunque una delle basi migliori con cui partire non cè nulla da fare. Per adesso comunque sono su Emacs, Vim ho dato solo uno sguardo e volevo capire voi cosa ne pensaste a tal riguardo.

Grazie comunque a tutti. Risposte molto esaustive, come sempre del resto.
 
U

Utente cancellato 371741

Ospite
Il C e' quasi obbligatorio su sistemi embedded con poca memoria flash. Per alcuni microcontrollori forse e' l'unbico linguaggio che puoi usare, anche se ormai ci sono magie come micropython etc. E' tutto un po' legato al settore in cui vuoi far esperienza.
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,883
11,541
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
all'universita' delle grandi scienze informatiche, i professori si dilettano a insegnare che C e' superato.
Quale università? quale facoltà?
A Roma auttalmente (sia a ingegneria informatica che all'ex scienze dell'informazione) generalmente viene insegnato Python come primo linguaggio per via della sua semplicità e per abituare i neofiti (parlo del primissimo corso di programmazione). Il C non è optional, è obbligatorio in almeno uno dei corsi superiori, e poi nei corsi di programmazione a oggetti si passa a Java.
Nella Facoltà di Matematica invece si fa C al corso di laboratorio di programmazione che è propedeutico a quello di Informatica Generale (dove tutti gli algoritmi si fanno in C).
Nessun professore universitario con un po' di sare in zucca potrebbe fare questa affermazione, i sistemi operativi di fatto sono tutti scritti in C.

In ambito lavorativo in Italia C è effettivamente poco richiesto, a parte qualche azienda che si occupa anche di sviluppo firmware. Perlomeno a me risulta questo.
 
U

Utente cancellato 371741

Ospite
Immagino che si insegni ancora molto C viste le solite continue richieste di molti futuri ingegneri di "fargli i compiti" di cui i forum sono pieni. Pietosa pratica. I compiti si fanno da soli, e non si dovrebbe mai svolgere i compiti agli altri.

Chiaro che il C non puo essere obsoleto. Come programmi un 8051 o qualche specifico microcontrollore 8 bit se unico compilatore che hai e' quello C ? Certo, in assembly, . non e' tuttavia molto produttivo.

Il C lo usa mezzo mondo nel settore embedded. Praticamente in tutti i dispositivi di piccole dimensioni con cui la gente pippola c'e' tanto C. Ovviamente chi lavora al PC ha linguaggi molto piu comodi, diciamo c++ sicuramente miglior sostituro, anche solo se usi le stl.

Certo che ora ci sono linguaggi meglio pensati, per una compilazione e esecuzione piu performante, e ben pensati per evitare errori runtime e proteggersi da vari errori del programmatore. Ma obsoleto significa che si spuo sostituire con altro.

Vi saluto, vado in letargo, collezionare stelline e medagliette dei forum che non servono a nulla, e di cui non c'e' mai alcuna riconoscenza, ma semmai polemica, per me e' tempo sprecato.
 
Ultima modifica da un moderatore:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!