Programmatori Java
Ciao a tutti,
Ho sempre programmato in C con discreti risultati. Da circa un mese tuttavia ho deciso di imparare la programmazione ad oggetti, in particolare il linguaggio Java.
Ho studiato la storia di Java, le leggende legate alla sua nascita, le date e le sigle più importanti; ho quindi studiato la teoria ed i vari paradigmi su cui si fonda; quindi le convenzioni da utilizzare e i principali costrutti. Poi, finalmente, sono passato alla parte "grafica", il mio reale obbiettivo ed ho passato diverse ore per cercare di capire la differenza tra frame, panel, le varie librerie ecc ecc... Per visualizzare a schermo un semplice pulsante privo di funzionalità ci ho messo probabilmente mezz'ora.
Poi ho scoperto una cosa: esistono programmi (builder) che scrivono tutto il codice al posto mio.
È ovvio che quelle righe di codice sono spesso da completare con righe scritte a mano (ad es. nella gestione degli eventi) ma è evidente come il lavoro del programmatore viene facilitato in maniera impressionante.
Ora, e arrivo al dunque, quel che vorrei capire è: un programmatore Java, che si possa definire tale, scrive tutto il suo codice a mano oppure utilizza queste scorciatoie?
Sarà perché ho scritto sempre ogni singola riga dei miei programmi (alcuni di lunghezza davvero importante) ma l'idea di utilizzare programmi che incollano del codice nell'ide mi sembra una blasfemia, ma vorrei capire se devo adattarmi a tutto ciò e confessare senza vergogna che parte del codice dei miei futuri applicativi non è stato digitato dalle mie dita.
Grazie in anticipo a chiunque abbia avuto la pazienza di leggere e in particolare a chi risponderà.
Ho sempre programmato in C con discreti risultati. Da circa un mese tuttavia ho deciso di imparare la programmazione ad oggetti, in particolare il linguaggio Java.
Ho studiato la storia di Java, le leggende legate alla sua nascita, le date e le sigle più importanti; ho quindi studiato la teoria ed i vari paradigmi su cui si fonda; quindi le convenzioni da utilizzare e i principali costrutti. Poi, finalmente, sono passato alla parte "grafica", il mio reale obbiettivo ed ho passato diverse ore per cercare di capire la differenza tra frame, panel, le varie librerie ecc ecc... Per visualizzare a schermo un semplice pulsante privo di funzionalità ci ho messo probabilmente mezz'ora.
Poi ho scoperto una cosa: esistono programmi (builder) che scrivono tutto il codice al posto mio.
È ovvio che quelle righe di codice sono spesso da completare con righe scritte a mano (ad es. nella gestione degli eventi) ma è evidente come il lavoro del programmatore viene facilitato in maniera impressionante.
Ora, e arrivo al dunque, quel che vorrei capire è: un programmatore Java, che si possa definire tale, scrive tutto il suo codice a mano oppure utilizza queste scorciatoie?
Sarà perché ho scritto sempre ogni singola riga dei miei programmi (alcuni di lunghezza davvero importante) ma l'idea di utilizzare programmi che incollano del codice nell'ide mi sembra una blasfemia, ma vorrei capire se devo adattarmi a tutto ciò e confessare senza vergogna che parte del codice dei miei futuri applicativi non è stato digitato dalle mie dita.
Grazie in anticipo a chiunque abbia avuto la pazienza di leggere e in particolare a chi risponderà.
Risposte
"Return89":
Ora, e arrivo al dunque, quel che vorrei capire è: un programmatore Java, che si possa definire tale, scrive tutto il suo codice a mano oppure utilizza queste scorciatoie?
Un programmatore in qualsiasi linguaggio, che si possa definire tale, usa gli strumenti migliori disponibili per il suo obiettivo. Per creare delle finestre scrivere manualmente il codice spesso non è il metodo migliore. Saltuariamente lo è, ma nella maggior parte dei casi è più semplice, rapido e sicuro disegnarlo e poi far generare il codice automaticamente.
"Return89":
Sarà perché ho scritto sempre ogni singola riga dei miei programmi
Davvero? Hai mai scritto un parser? In C è abbastanza popolare l'accoppiata Flex+Bison, che genera codice a partire dai file della grammatica (e molti altri strumenti simili, che funzionano nello stesso modo). Hai mai sviluppato interfacce grafiche? Qt e Gtk hanno dei programmi per disegnare le finestre e generare codice. Esistono programmi per generare codice a partire da schemi UML.
"Return89":
(alcuni di lunghezza davvero importante) ma l'idea di utilizzare programmi che incollano del codice nell'ide mi sembra una blasfemia, ma vorrei capire se devo adattarmi a tutto ciò e confessare senza vergogna che parte del codice dei miei futuri applicativi non è stato digitato dalle mie dita.
Qual è la differenza con delle librerie? Il codice per per gestire il filesystem è stato digitato dalle tue dita? Quello dello stack di rete? E la gestione dei processi nel sistema, l'accesso alle periferiche, la memoria virtuale? Immagino di no, quindi perché farsi problemi per il codice che costruisce delle finestre?
Hai mai programmato in linguaggi più espressivi (= di più alto livello)? Mi sembra che soffri un po' di quella mentalità per cui un programmatore "che si possa definire tale" deve sempre lavorare al livello più basso possibile, con meno astrazioni possibili, e implementare quanto più possibile manualmente (purtroppo mentalità diffusa tra chi conosce solo il C, e che lo considera l'unico linguaggio "che si possa definire tale"). C'è tutto un mondo oltre a ciò, un mondo interessante, impegnativo, appagante.
Rileggendo, sembra di intravedere una vena un po' polemica. Non era voluta


"claudio86":
[quote="Return89"]Sarà perché ho scritto sempre ogni singola riga dei miei programmi
Davvero? Hai mai scritto un parser? In C è abbastanza popolare l'accoppiata Flex+Bison, che genera codice a partire dai file della grammatica (e molti altri strumenti simili, che funzionano nello stesso modo). Hai mai sviluppato interfacce grafiche? Qt e Gtk hanno dei programmi per disegnare le finestre e generare codice. Esistono programmi per generare codice a partire da schemi UML.[/quote]
Si, ho scritto anche più di un parser e che tu ci creda o no l'ho fatto totalmente da zero (Flex e Bison li sento per la prima volta..) ed evito di dire la fatica che mi è costata e le righe di codice totali ma penso che tu possa immaginare.
"claudio86":
[quote="Return89"](alcuni di lunghezza davvero importante) ma l'idea di utilizzare programmi che incollano del codice nell'ide mi sembra una blasfemia, ma vorrei capire se devo adattarmi a tutto ciò e confessare senza vergogna che parte del codice dei miei futuri applicativi non è stato digitato dalle mie dita.
Qual è la differenza con delle librerie? Il codice per per gestire il filesystem è stato digitato dalle tue dita? Quello dello stack di rete? E la gestione dei processi nel sistema, l'accesso alle periferiche, la memoria virtuale? Immagino di no, quindi perché farsi problemi per il codice che costruisce delle finestre?
Hai mai programmato in linguaggi più espressivi (= di più alto livello)? Mi sembra che soffri un po' di quella mentalità per cui un programmatore "che si possa definire tale" deve sempre lavorare al livello più basso possibile, con meno astrazioni possibili, e implementare quanto più possibile manualmente (purtroppo mentalità diffusa tra chi conosce solo il C, e che lo considera l'unico linguaggio "che si possa definire tale"). C'è tutto un mondo oltre a ciò, un mondo interessante, impegnativo, appagante.
[/quote]
Si forse hai ragione: inevitabilmente la mia esperienza col C mi ha trasferito quella mentalità di cui parli: "il C è il re dei linguaggi! E come potrei non pensarlo?!" eheh a parte gli scherzi il mio passaggio a Java è proprio dovuto ad ampliare la mia visione del mondo (della programmazione). E già devo dire che sono impressionato dalla potenza/semplicità del Java.
"claudio86":
Rileggendo, sembra di intravedere una vena un po' polemica. Non era voluta(e sono in ritardo quindi non ho tempo di riscrivere
)
Tranquillo, era proprio il tipo di risposta che cercavo. Ti ringrazio davvero!
Io penso che in qualsiasi linguaggio c'è chi programma in un modo e chi in un altro.
Non credo ci sia il modo migliore, ognuno fa come meglio credo.
Ovviamente un conto è programmare per passione, un conto è programmare per lavoro.
Se a lavoro hai delle scadenze con tempi stretti devi trovare il metodo più veloce, che non è sempre detto sia quello dei programmi già fatti.
Un consiglio: guarda anche il Python
Non credo ci sia il modo migliore, ognuno fa come meglio credo.
Ovviamente un conto è programmare per passione, un conto è programmare per lavoro.
Se a lavoro hai delle scadenze con tempi stretti devi trovare il metodo più veloce, che non è sempre detto sia quello dei programmi già fatti.

Un consiglio: guarda anche il Python

Sinceramente penso che pensare di scrivere ogni linea del proprio codice sia impensabile anche per il C o fortran e non solo per linguaggi di alto livello. Insomma l'uso di librerie esterne è una cosa naturale ed è spesso la cosa migliore da fare a meno di avere a che fare con codici brevi o necessità specifiche. Per esempio è assurdo linkare una libreria BLAS perché hai bisogno di sommare due vettori, ma è altrettanto poco saggio non farlo se hai bisogno di un buon numero di operazioni matriciali e/o se il tuo codice li richiede spesso.
Venendo ai codici generati automaticamente, non è così raro incontrare programmatori che generano con script diverse parti dei propri codici. Anche se spesso lo fanno per fare cose che non sono necessarie con linguaggi di alto livello.
Venendo ai codici generati automaticamente, non è così raro incontrare programmatori che generano con script diverse parti dei propri codici. Anche se spesso lo fanno per fare cose che non sono necessarie con linguaggi di alto livello.
Leggendo il thread per un attimo mi è tornato in mente questo
https://it.m.wikipedia.org/wiki/Vero_programmatore
Comunque, tornando al Java, consiglierei anche: https://processing.org
È una variante di Java, pensata appositamente per creare interfacce grafiche, offre alcune librerie e funzioni di alto livello molto utili

https://it.m.wikipedia.org/wiki/Vero_programmatore
Comunque, tornando al Java, consiglierei anche: https://processing.org
È una variante di Java, pensata appositamente per creare interfacce grafiche, offre alcune librerie e funzioni di alto livello molto utili
"v3ct0r":
Leggendo il thread per un attimo mi è tornato in mente questo![]()
https://it.m.wikipedia.org/wiki/Vero_programmatore





Non sapevo che esistesse anche un modo per definire quelli che la pensano come me.
Comunque grazie a tutti per le risposte, credo che mi adatterò ed inizierò a premere più volte ctrl+v
