Newsgroup: it.lavoro.informatica
Titolo: Linguaggi di programmazione, reverse engineering

leggendo il thread "[SONDAGGIO] Linguaggi di programmazione" ho sentito la
necessità di esprimere alcune riflessioni.
 
La tendenza di oggi, in particolare quella dei programmatori, è quella di
studiare, imparare per forza, utilizzare necessariamente linguaggi di
programmazione "all'ultimo grido". Sono questi i linguaggi più richiesti dalle
aziende di informatica quindi devo conoscerli anche io a tutti i costi.
 
Sono un modesto programmatore e sinceramente questa tendenza mi dà la nausea
anche se tra i linguaggi citati nel thread il PHP è uno di quelli in cui
sviluppo. (caro buon vecchio Perl)
 
Senza presunzione, avendo una buona conoscenza di alcuni linguaggi di
programmazione, avendo sbirciato tra quelli "new age", volendo dare un parere
più tecnico su questi nuovi "superlinguaggi" direi che la tendenza è quella di
fornire migliaia di funzioni, classi, librerie ("pappa pronta") delle quali si
conosce poco o niente e alle quali i programmatori si affidano come manna dal
cielo.
 
Quello che voglio dire è che la corsa al linguaggio di programmazione più
sbrigativo secondo me non è sempre la strada migliore di affrontare problemi.
Esisterà pure un'etica per il programmatore no?
 
Tornando al thread citato, si parlava di Java come linguaggio per mangiare.
Sono d'accordo, nel mio caso, circa 4 o 5 anni fa, ho dovuto scegliere tra
Java e C/C++. Indovinate un pò cosa ho scelto? Il libro di Java giace ancora
sul mio scaffale in attesa di essere spolverato di nuovo.
 
Mi trovo senza dubbio in controtendenza con la maggior parte dei programmatori
eppure tutt'oggi sono fiero della mia scelta.
Come prossimo linguaggio di programmazione pensavo all'Assembler, che ci posso
fare, l'ottimizzazione e il lavorare sempre più a basso livello è
una cosa che mi ha sempre affascinato.
 
Credo di aver rotto abbastanza le scatole per oggi quindi lascio a voi queste
riflessioni. Datele in pasto a /dev/null o rispondete facendo valere le vostre
idee.
 
Vi lascio con un aneddoto: Il buon programmatore non si misura con il numero
di linguaggi di programmazione che ha studiato. E agli improbabili colloqui di
lavoro in cui contano i numeri, basta rispondere come al mercato ;)
 
Ciao
 
-- 
Caronte
 
 
 
 
 
 
-- 
Inviato da 
Newsgate.Localinfo.IT
 Web Service
http://newsgate.localinfo.it

di linguaggi di programmazione che ha studiato.
+1
Basta ricordarsi il motto del programmatore : "Chi poco compila, nulla
linka" :-)
C'ya	
	Steve
-- 
Legge di Flon
Non c'e' linguaggio in cui sia difficile scrivere cattivi programmi.
FAQ del gruppo : 
http://www.sen.it/faq/it.lavoro.informatica.faq.html

 una cosa che mi ha sempre affascinato.
Può essere affascinante quanto vuoi tu, però non è molto richiesta dal 
mercato. Secondo me puntare sull'assembler è la scelta peggiore. Io ho 
studiato l'assembler sia del 80x86 che del Motorola 68020 (bei tempi quelli 
dell'Amiga) ma l'ho fatto solo per passione. Ora che ho 26 anni, non ho più 
molto tempo da dedicare alle passioni, e devo trovare il pane da mettere 
sotto i denti. E comunque ripeto, dal punto di vista didattico se ho tempo 
da spendere, preferisco investire in qualcosa che mi ritorna, l'assembler è 
preistoria. 

 livello è una cosa che mi ha sempre affascinato.
A parte che è Assembly, pero' se la tua tendenza è quella, la scelta è
sacrosanta. Io continuo a vedere il linguaggio come uno strumento. Vedi
cosa vuoi fare, e scegli di conseguenza lo strumento adeguato.
-- 
Ciao!
Luca

 lavoro in cui contano i numeri, basta rispondere come al mercato ;)
Sono d'accordo sul fatto che conoscere la sintassi (o poco piu') di svariati
linguaggi perfettamente identici (a meno di lievi differenze sintattiche) non
aggiunga molto valore al programmatore, ma se un programmatore nella sua cariera
ha studiato e ha lavorato con linguaggi diversi, applicato paradigmi diversi, in
domini applicativi diversi, ci puoi scommettere che la cosa ha il suo peso
Mi ricordo un aneddoto scritto da "Chad Fowler" nel suo libro "My Job Went To
India" (un libro sulla competitivita' internazionale dei programmatori): Fowler
era in India e cercava dei programmatori Java per un progetto, stanco di dover
selezionare *centinaia* di persone e curriculum, ha deciso di inserire nei
requisiti del candidato la conoscenza di smalltalk, e l'iniziativa ha avuto
estremo successo
-- 
SunGray aka Gabriele Lana
www.agilemovement.it

 lavoro in cui contano i numeri, basta rispondere come al mercato ;)
Non ho capito la morale.

 di linguaggi di programmazione che ha studiato. 
Qui dipende da quali linguaggi di programmazione hai studiato. Se hai
studiato solo linguaggi simili certo. Ma fatti entrare nella testa
Smalltalk, Python, Erlang, Haskell e poi ne riparliamo se non esci
"migliorato" :-)
-- 
Lawrence - 
http://www.oluyede.org/blog
"Nothing is more dangerous than an idea
if it's the only one you have" - E. A. Chartier

 applicazioni 'serie', ma non si sa mai...
Boh conosco una infinità di success stories in Python. Che tipo di
applicazioni "serie" cerchi?


 applicazioni "serie" cerchi?
Lawrence, Lawrence, non hai letto bene la nota...
-- 
Ciao!
Luca

 cielo.
non credi forse che questo trend sia relativo all'aumentare delle
prestazioni hardware?
forse e' ora piu' conveniente creare linguaggi user friendly, magari
meno ottimizzati, ma che ti permettono di gestirli al meglio con una
visione macro piu' semplice, etc.. ?

 preistoria.
 
Non sono cosě convinto che l'assembly sia preistoria, a me risulta che sia il
linguaggio di programmazione piů efficiente e a basso livello che esista.
Credo che tutt'oggi sia quello preferito dai programmatori di microcontrollori
e hardware embedded.
Magari mi sbaglio.


 Ciao
Ciao
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 A parte che è Assembly, pero' se la tua tendenza è quella, la scelta è
 
Si Assembly, insomma quello -:)


 linka" :-)
Questo gia' mi piace di piu' di :-)
Nicola


 Non ho capito, questi linguaggi all'ultimo grido sarabbero Java e C# ?
 
Parlo dei derivati di Java e dei vari .NET come il C# per il quale la
Microsoft si č impegnata con tutte le sue forze ad appesantire i brillanti
concetti del C++ al fine di non modificare il proprio workflow aziendale.


 Non ho capito la morale.
 
La morale è che la validità di un programmatore si misura con la capacità di
affrontare problemi e risolverli nel modo migliore. Un buon programmatore è in
grado di adattarsi velocemente anche a linguaggi che conosce poco.


 Magari mi sbaglio.
Non saprei. E` molto piu` facile tradurre in asm da microcontrollore
linguaggi di alto livello che non linguaggi di basso livello sempre
perche` e` tutto molto piu` semplice. non mi stupirei di scoprire che
common lisp e` molto usato in questi termini (e infatti so che e` usato
da un po`).
Cercando su google python microcontroller ottengo la bellezza di 489.000
risultati.
http://python.fyxm.net/pycon/papers/pymite/
http://pyastra.sourceforge.net/
E scommetto che ce ne sono molti altri (o altri in produzione, ad
esempio pytte 
http://effbot.org/zone/pytte.htm
 oppure usando pypy con
poco sforzo aggiuntivo ottieni lo stesso risultato grazie al translator
e a un backend aggiuntivo su rpython).
-- 
Valentino Volonghi aka Dialtone
Now Running MacOSX 10.4
Blog: 
http://vvolonghi.blogspot.com
New Pet: 
http://www.stiq.it

 visione macro piu' semplice, etc.. ?
 
Qui ci sguazzano i programmatori improvvisati, per fortuna fa comodo anche a
quelli professionisti quando per motivi aziendali sono costretti ad utilizzare
determinati linguaggi che non hanno mai studiato.


 grado di adattarsi *velocemente* anche a linguaggi che conosce poco.
Mi discpiace ma questo e' falso.
Puo' essere vero se parli della sintassi stretta del linguaggio, che puo'
richiedere anche poche ore per eessere appresa.
Ma il buon programmatore e' uno che conosce oltre al linguaggio tutta una
serie di tecnologie "correlate" una serie di strumenti, I Sistemi Operativi,
i database, una serie di metodologie e ultimo ma non ultimo ha espereinza
anche funzionale in campi non informatici.
Tutto cio' richiede anni e anni, per fortuna nostra :-)


 Ma che etica ?
 
Sta tutto qui il senso del 3d.


e hardware embedded.
No, lo si evita quando possibile.
Non perche' non sia efficiente (dal punto di vista del codice) ma
perche' fa perdere troppo tempo.
Il linguaggio principe in ambito embedded e' il C, seguito da C++ e
Java.
L'assembly lo si usa per funzioni dove la tempistica e' critica.
Oggi comunque, dipendentemente da alcune piattaforme, ci sono
compilatori C che producono un codice cosi' efficente che non c'e'
bisogno di scrivere funzioni in assembly.
C'ya
	STeve



--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Caronte
Nicola


 un hardware sovradimensionato.
hardware sovradimensionato? ehh??  prova a comprarti un server con un
processore a 200 mh perche' devi far girare solo una piccola
applicazione..   dove lo trovi ora?

 determinati linguaggi che non hanno mai studiato.
Guarda... non vorrei offenderti ma per me (e non solo per me) i
programmatori improvvisati sono quelli che quando hanno la possibilita`
di scegliere un linguaggio di alto livello vanno a prendere quelli di
basso livello senza pensarci due volte perche` quelli piu` espressivi
'sono lenti' o 'non efficienti' o robaccia simile, uno che per un
compito qualsiasi usa C/C++ invece di Python/Ruby e` difficilmente un
buon programmatore.


 buon programmatore.
 
Se ti riferisci direttamente a me ti posso dire che ultimamente ho programmato
in Visual C++ e non mi sembra affatto un framework che ha nulla da invidiare a
tutti gli altri in merito a prestazioni, disponibilità di librerie e
quant'altro. Lo considero un gradino superiore agli altri del .NET perchè il
linguaggio è comunque C++.
 
Se per questa scelta del C++ anzichè Java o C# o VB o Python non posso essere
ritenuto un buon programmatore pazienza, correrò ai rimedi.


 Lawrence, Lawrence, non hai letto bene la nota...
Ho letto, rilancio la domanda. Che esempi vuoi che ti snoccioli :) ?


 determinati linguaggi che non hanno mai studiato.
Veramente un professionista dovrebbe accorgersi quando usare uno
strumento piuttosto che un altro è meglio. Compreso usare un HLL invece
che un LLL


 ritenuto un buon programmatore pazienza, correrò ai rimedi.
Mai pensato che si possono scegliere N linguaggi vero?


 Perchè è superiore? Perchè è più difficile?
Prova a chiedere a un gay cosa pensa degli etero.
Ti dira' che gli etero sono inferiori
:-)


 Perchè è superiore? Perchè è più difficile?
 
Io parlavo proprio del Visual C++ .NET
Che il C++ è superiore non l'ho detto io.
Ho solo detto che personalmente lo considero un gradino superiore agli altri
linguaggi del .NET. C'è una bella differenza.
Si tratta di una mia opinione.
Una delle ragioni per cui lo prediligo è che Linux è fatto quasi
esclusivamente in C/C++ e questo la dice lunga.


 esclusivamente in C/C++ e questo la dice lunga.
Non è che quella di scrivere il sistema operativo in C sia stata l'idea 
più originale che ha avuto Torvalds nella sua vita.

 Caronte


 contesto .Net rispetto agli altri linguaggi?
 
Non si tratta solo del contesto .NET ma la mia è una visione più generale.
- Potenza di elaborazione.
- Reperibilità maggiore di librerie, classi etc.
- Che si tratta di un linguaggio che sta in piedi da 1 secolo e non è stato
ancora sostituito.
- Documentazione.
...
 
e mi fermo qui altrimenti diventa una gara a chi è più bello come un certo
signore qui dentro vuole far intendere.
 
Sono solo opinioni di un modesto programmatore.


 esclusivamente in C/C++ e questo la dice lunga.
Ah, beh allora..... 

 esclusivamente in C/C++ e questo la dice lunga.
Su cosa?


 Sono solo opinioni di un modesto programmatore.
Non mi pare che siano opinioni motivate. Però giustamente sei libero di
averle. 


 Ho letto, rilancio la domanda. Che esempi vuoi che ti snoccioli :) ?
Tutti quelli che vuoi. Tanto, al mio livello attuale in materia,
probabilmente non li comprenderei (perdona, ma se hai letto la nota, mi
sa che l'hai male interpretata... :D )
-- 
Ciao!
Luca

 esclusivamente in C/C++ e questo la dice lunga.
Beh, pure TUTTI i sistemi operativo Microsoft a partire da NT sono
scritti in C++, cosi' come i vari Visual Basic e IDE. Cio' non toglie
che oggi sia un linguaggio non impiegabile per fare qualsiasi cosa.
-- 
Ciao!
Luca

 esclusivamente in C/C++ e questo la dice lunga.
Perdonami, non c'Ãe' una singola linea di C++ in Linux, ne trovi a bizzeffe in
Qt/KDE, che da qualche anno non sono nemmeno i piu' utilizzati ...
E' tutto C.
  ngw

 sa che l'hai male interpretata... :D )
http://twistedmatrix.com/trac/wiki/ProjectsUsingTwisted
http://www.python.org/about/success/
Ne hai per i prossimi mesi :-)


 signore qui dentro vuole far intendere.
Non e` questione di essere piu` belli o meno belli. Non sono io che ho
tirato in ballo la storia del buon programmatore e del cattivo
programmatore, non scaricare la patata bollente ora.


 
http://www.python.org/about/success/
Ma lo so, Lawrence, io quella roba l'ho letta prima che me lo dicessi
tu. Ribadisco. La capacità di fare progetti 'seri' non è mai negli
strumenti, ma in chi li utilizza. Alla stessa maniera, mi fanno ridere
quelli che affermano che non si potessero realizzare progetti seri in
Visual Basic.
-- 
Ciao!
Luca

 signore qui dentro vuole far intendere.
Motivare le proprie opinioni non è fare a gara a chi è più bello.

 Visual Basic.
A me non fanno ridere, perchè obiettivamente VB6 non è lo strumento a
cui penserei per fare progetti "seri". E non mi pare che ne siano poi
molti, certo, volendo si possono fare progetti seri anche con
Javascript, ma ci si può anche prendere a martellate le palle per
passare il tempo. :-)


 cui penserei per fare progetti "seri". 
Vorrei farti vedere il gestore di caricabatterie che ho scritto l'anno
scorso (un bel gestore di macchine a stati finiti) di cui sono
orgoglione e che, francamente, ho dovuto scrivere in VB6. Il cliente
cosi' voleva.
-- 
Ciao!
Luca

 cosi' voleva.
Beh complimenti ma non contraddice quel che ho detto no :-) ?


 finalmente, è qualcosa di nuovo.
Python e' in giro dal 1990 (quando ancora Java non esisteva neanche),
non lo definirei "qualcosa di nuovo".
Inizialmente veniva usato come un linguaggio di scripting (per
integrazione, tests, o come "collante" tra varie applicazioni) ma da
diversi anni ormai e' abbastanza diffuso nello sviluppo di applicazioni
complete (nella mia esperienza, principalmente lato server e
infrastruttura), anche grazie alle numerose librerie "standard" che gli
sono cresciute intorno nel corso degli anni.
Mi sembra di capire, pero',  che non sia usato altrettanto diffusamente
in Italia, peccato.
Saluti,
Fabio

 diffusamente in Italia, peccato.
Già, anche perché io ho avuto modo di toccare di sfuggita l'accoppiata
Zope/Plone, ed è davvero un gran bel prodotto.
-- 
Ciao!
Luca

 averle.
 
Sono pronto a motivare tutto quello che volete. L'unica cosa è che mi sembra
che la discussione stia prendendo una piega che richiederebbe troppo tempo per
chiarire tutto.


 programmatore, non scaricare la patata bollente ora.
 
E NO.
Siete voi che avete tirato in ballo la storia del buon programmatore, io ho
solo risposto educatamente mi sembra.


 solo risposto educatamente mi sembra.
Noi?
"""
Qui ci sguazzano i programmatori improvvisati, per fortuna fa comodo
anche a
quelli professionisti quando per motivi aziendali sono costretti ad
utilizzare
determinati linguaggi che non hanno mai studiato.
""""
-- 


 spopolato.
Per le solite logiche di business. C'è gente che fa il seguente
ragionamento anche per i propri interessi: "niente grande azienda
dietro? ahiahiai." Poi, diciamocelo, a loro fa comodo avere dietro MS


 chiarire tutto.
Come vuoi.


 buon programmatore.


 un altro.
Yup, infatti nessun progetto fallisce per "sovraingegnerizzazione" e/o
complicazioni inutili.
http://www.erlang.org/ml-archive/erlang-questions/200302/msg00013.html
Prova a leggerlo, magari ti fai un'idea


 Zope/Plone, ed è davvero un gran bel prodotto.
Credi a me, l'ho usato per *secoli* (anche in Italia, anche per applicazioni
ben complesse), Zope e' una *merda*.
Chiedi a Oluyede o a Volonghi, l'ho difeso finche' ho potuto, ma e' una merda,
e tra l'altro una delle piattaforme meno pythoniche che io abbia mai visto.
La versione 2 e' obsoleta, la 3 e' rilasciata stabile ma chi la usa non lo so,
e mio dio quanto e' sovraingegnerizzata. 
Vai su Django se ti piace il web, o su Twisted se sei un nerd :D
  ngw

 C++
Scommetto che per scrivere questa frase hai usato un template, e inserito le 
variabili...magari in Phyton.  ;) 

Sono persone, con un rene, un cuore, un pisello e un cervello.
Tutti iscritti all'AIDO? :)
Saluti
-- 
Rimetta  a posto  la  candela...

 variabili...magari in Phyton.  ;) 
Non sono cosi geek. Mai andato ad un Linux Day ad esempio :-)


 Tutti iscritti all'AIDO? :)
Lo spero per i potenziali riceventi :-)


 ben complesse), Zope e' una *merda*.
[...]
Ho avuto anche io il piacere. Non userei certi termini, ma
"sovraingegnerizzato" sì, si confà :-)
Cordiali saluti
-- 
Marco Ermini
Dubium sapientiae initium. (Descartes)
root@human # mount -t life -o ro /dev/dna /genetic/research
http://www.markoer.org/
 - 
https://www.linkedin.com/in/marcoermini

Lo spero per i potenziali riceventi :-)
Sai come pisci bene con un rene di Ritchie... :)
Saluti.


 suicidio.
Anche C e GUI non è che siano un'accoppiata molto salutare....
Me che ricorda il primo Windows 3.0 Sdk e quello di OS/2 Presentation 
manager.....
Saluti.

 Sai come pisci bene con un rene di Ritchie... :)
Pipì  strutturata :-)

 "sovraingegnerizzato" sì, si confà :-)
Certo che definire "sovraingegnerizzato" Zope e parlare bene di Java nel
contempo è un pò contraddittorio :D


 contempo è un pò contraddittorio :D
Zope è un application server e Java è un linguaggio. Spero che tu sappia
la differenza. E io non ho mai "parlato bene" di Java. Ho detto che non
bisogna essere talebani nei giudizi e che in alcuni contesti è la
soluzione migliore.


 soluzione migliore.
Ok volevo dire JBoss, sono stato impreciso. Mea culpa :-)
