Samael ha scritto:
premesso che se gli ide danno per scontato competenze che il programmatore deve avere e che non ha, è un problema del programmatore (incapace e/o incompetente) e non dell'ide (programmare è una scienza, non un'arte e comunque una attività niente affatto banale e semplice)... ma non è certo l'uso dell'editor di testo che ti impedisce di referenziare una variabile locale al di fuori del suo scope, anzi probabilmente un editor/compilatore evoluto in almeno talune occasioni potrebbe anche accorgersene. Ci sono una miriade di controlli e ottimizzazioni che un compilatore c++ può fare e che molti ancora oggi non fanno.
E poi ricordati che l'uso di un IDE non preclude ad altri la possibilità di fruire del progetto... tutti gli ide ormai sono in grado di generare ad esempio dei file make che un qualsiasi compilatore può sfruttare. L'IDE è semplicemente un ambiente che integra editor di testo (spesso con sintax hilight), un debugger, un profiler, un progect manager, il compilatore, un sistema per la gestione delle versioni (indispensabile per lavori grossi e di squadra) e nei casi più evoluti anche un tool di progettazione basato su UML. Inoltre sono utilissimi nella progettazione visuale di interfacce grafiche e ormai in questi casi spesso producono buon codice. Certo dipende dalla qualità dell'ide, ma io ad esempio mi sono trovato piuttosto bene con quello del visual studio e molto tempo prima con quello della borland (ma allora eravamo ancora agli albori degli ide).
Oggi senza, non fai molto... di sicuro non affronti progetti di medie dimensioni dove magari a lavorarci sono più persone, magari a distanza... con parti di codice che possono cambiare a tua insaputa, dipendenze che vengono aggiunte e/o rimosse. Insomma un conto è l'applicazione di poche centinaia di riche di codice, al limite pochissime migliaia... ma un progetto un pelo complesso senza un ide decente è pesante da tenere sotto controllo nella sua globalità e nella sua dinamicità.
Premesso che sono perfettamente d'accordo su tutto, eccetto che sull'utilizzo dell'IDE.
Nel corso degli anni mi sono ritrovato obbligato ad usarne e non mi ci sono mai trovato bene, per il semplice motivo che Linux è già un IDE di suo; io utilizzo GNU Emacs, ho syntax highlighting, code completition, gestione del VCS sottostante (GIT tutta la vita), generazione quasi automatica degli autotools (configure, makefile, eccetera) e bene o male tutto ciò che hai detto.
Tuttavia, prima di GNU Emacs utilizzavo semplicemente un terminale e ti assicuro che la differenza era minima. Ripeto: il motivo è semplicemente che Linux è un sistema operativo già pensato per i programmatori, non hai bisogno di un IDE.
Per quanto riguarda l'UML, lo genero tramite gnuplot il più delle volte, ma devo ammettere che ancora non mi sono immediati: spesso fingo di guardarli e in realtà sto guardando il codice, mi è più chiaro :P
Attualmente comunque sto lavorando su tre progetti, uno è già bello avanzato ed evoluto, e ha un totale di
$ find . -type f -iname "*.java" -print0 | xargs -0 wc -l
[ snip perché son troppi file :P ]
12971 total
12971 righe di codice, scritte senza mai aprire un IDE. Da notare che il mio collega utilizza Eclipse e spesso (grazie al code completition e grazie al fatto che
NON si documenta ma semplicemente preme CTRL + Spazio e aspetta di avere il completamento pronto) mi tocca correggere le sue vaccate.
L'altro è un progetto mio personale, ci sto lavorando assieme ad un'altra persona ma ho scritto tutto io (
http://github.com/massix/vdepn)
$ find . -type f -iname "*.vala" -print0 | xargs -0 wc -l
98 ./src/tray_icon.vala
65 ./src/helper.vala
307 ./src/conf_parser.vala
142 ./src/main.vala
302 ./src/configuration_page.vala
202 ./src/preferences.vala
447 ./src/vde_connector.vala
137 ./src/configuration_property.vala
314 ./src/configuration_list.vala
2014 total
2014 righe di codice, mancano ancora parecchie funzioni ma per ora è già ampiamente fruibile;
L'altro l'ho iniziato ieri ed è ancora in fase embrionale (
http://github.com/massix/kunor)
$ find . -type f -iname "*.cs*" -print0 | xargs -0 wc -l
46 ./src/Utils.cs
32 ./src/KunorNNTP/Exceptions.cs
256 ./src/KunorNNTP/Connector.cs
26 ./src/KunorNNTP/Constants.cs
51 ./src/Kunor.cs
46 ./src/Utils.cs.in
81 ./src/KunorClient/MainWindow.cs
96 ./src/KunorClient/GroupListBox.cs
634 total
634 righe di codice, anche queste scritte senza mai aprire un IDE.
E questi sono solo piccoli esempi, ne ho scritto parecchio di codice (certo, niente in confronto a quanto ne hai scritto te, ma comunque ho meno anni di lavoro alle spalle :P), semplicemente utilizzando i tool che il mio sistema operativo mi mette a disposizione.
diff, make, sed, awk, .. chi più ne ha più ne metta, formano un IDE ben più completo di un software di terze parti.
EDIT: uppo Sirion, Coding is Art.