Newsgroup: italia.genova.discussioni
Titolo: [HELP] Il dilemma di sempre : quale lingua di programmazione ?

Da anni ormai mi si ripropone lo stesso dilemma.
Ora però è giunta l'ora di prendere  una decisione.
Il fatto è che non mi sono mai abbastanza occupato di C++ in modo da 
'averlo nel sangue' e 'parlarlo' abitualmente come parlo il genovese.
Quando una lingua 'si ha nel sangue' (una lingua di programmazione', 
anche le piccole cacchiatelle veloci si fanno in quella lingua. Si usa 
prettament quella. E' la lingua 'universale'.
Una volta per me quella lingua era il FORTRAN.
Poi il PL/I. Poi il BASIC con le sue evoluzioni fino al MS BASIC 7.0
Ma parlo della preistoria. Era tutto mondo *DOS*.
Poi passai al Visual Basic e sono rimasto ancora lì.
Così chiedo aiuto a voi che siete giovani ed esperti.
Premesse :
- voglio un linguaggio che NON sia interpretato (Python etc.)
- Non voglio nemmeno JAVA per lo stesso motivo. Il fatto del 'P-code' mi 
rompe. Voglio la massima velocitá ottenibile su tutte le piattaforme.
- NON VOGLIO ASSOLUTAMENTE un linguaggio di 'web' (perl, php, awk, etc.).
Anche se il progetto include un formulario, questo si puo' compilare
'offline', perciò non è necessario usare un formulario (online) HTML o 
javascript. Quindi si puo' 'mandare in internet' via software, cioè 
chiamando da programma le routines di sistema per andare in rete.
- MI È ESTREMAMENTE ANTIPATICO il Pascal. Perciò escludo Delphi e Kylix.
- D'altro canto non sarebbe male una forma di 'portabilità',
tra mondo Windows e Linux.
- Il C++ non lo so. Lo conosco solo teoricamente perchè ho fatto dei 
corsi ma non l'ho mai applicato.
Conosco il C ma sono ventanni che non lo uso più.
Negli ultimi anni ho praticamente programmato in Visual Basic o in HTML.
- Voglio come prodotto un .EXE file chi giri su tutte le versioni di 
Windows senza problemi. Il Visual Basic NON lo fa. Bisogna 'compilare'
il sorgente sul 'target system', cioè dove si vuole far girare.
Domanda da 100000 Euro : che linguaggio uso adesso, per sviluppare
una 'user interace' da distribuire ai pazienti, in modo che 'riempino' 
un formulario sui loro sintomi, che possono riempire online e poi 
spedirlo in internet col semplice 'click' su un tasto ?
Ovviamente questa 'user interface' è solo la prima parte di un sistema 
più complesso di studi, indagini e  statistiche.
(Mi occupo di informatica applicata alla medicina).
Alternative :
1) uso il BCX ? che mi permette di programmare in quasi-visual-basic e 
produce poi un sorgente in C (ma non C++) ?
2) Comincio a menarmelo intensamente a studiare a fondo il C++ ? Ma ne 
vale la pena per un problema così 'lineare' e non complesso ??
Quale complatore offre il modo più semplice per creare una interfaccia 
GUI sotto Windows ? Ma nello stesso tempo che abbia una biblioteca di 
routines abbatanza completa ? Le Microsoft Foundation Classes del Visual 
MS C/C++ sono le uniche oppure ve ne sono altre altrettando buone ?
Quale compilatore consigliate ? il gnu c++ ??
E quale biblioteca grafica ??
Grazie per i consigli.
John.

 piattaforme.
Allora neanche C#.
Alessandro.

 Ora perņ č giunta l'ora di prendere  una decisione.
visual C++ , C sharp, tutto contenuto in Visual Studio.
Per me fa il culo pure a Delphi, e' portabile ovunque e ci fai davvero quel
che vuoi, basta studiare e applicarsi nu poco ;)

 
Grazie. Ancora due domandine :
1)  il Visual C++ è migliorato da un paio di anni, oppure per cambiare 
il colore del background di un form bisogna fare peripezie come una 
volta ?? Si puo' cambiare con un click sulle 'properties' come in Visual 
basic oppure scrivere almeno dieci linee di code ???
2) Il C# sharp è *veramente* portabile oppure buono solo per il 'mondo 
Microsoft' ??? Cioè se io sviluppo in C sharp e poi mi viene voglia di 
portare su Linux, che faccio ??
Se rispondi 'positivamente' (cioè come vorrei io) sposo il tuo 
suggerimento per sempre e non torno più sulla questione !!!  :-))))
Ciao.
John

 Poi il PL/I. Poi il BASIC con le sue evoluzioni fino al MS BASIC 7.0
CIao John
hai buttato lì un pò di mattoncino....
risposta l'assembler? :-) No ... fermo... non sparare... scherzavo..:-)
Mi feci le tue stesse domande e le prime due risposte che mi diedi furono:
a) lo userò per applicativi non estremamente complessi. Perlopiù 
gestione dati. Indiposciapercui linguaggi "Gestionali" come una volta 
era considerato il cobol nei confronti del fortran. Ed immagino che 
questo ti sia chiaro.
b) Non devo perdere lo skill precedente e neanche troppo tempo 
nell'apprendimento.
Da qui sono nate altre domande perchè la risposta banale era:
"conosco il basic vado avanti così  ..."
pero però "tutti quei problemi di portabilità?", "quel maledetto 
registro che si incasina?", "quelle maledette dll che vengono 
sovrascritte con le nuove versioni?", "e le applicazioni dcom che per 
sostuire la release occorre addirittura fermare il web server?", "tre 
modelli di programmazione per l'accesso al database dao, rdo, ado? Ma 
siamo matti??", "ma come VB non è un vero oop?", "si vabbè ma che me ne 
frega dell'ereditarietà tanto non mi serve!", "non ho interoperabilità 
tra i linguaggi? e chi senne frega... programmo solo in VB", "per non 
parlare poi di vb mischiato con ASP"... ecc... ecc....
Spero di averti reso l'idea del caos nella mia testa e del fiume di 
scritti, parole che si scrivono quotidianamente su internet e sulle 
riviste specializzate.
Non starò qui, per non dilungarmi, a raccontarti il processo mentale che 
mi portò alla mia decisione ne ti elencherò le tutte le cose che ritengo 
  valide di .NET (livellamento piattaforma, assembly, classi, VERSIONI 
DIVERSE ed utilizzabili di  Dll sullo stesso sistema,  interoperabilità 
dei linguaggi, web form, soap, xml e non ultimo se sei un maniaco della 
riga comando compili all'antica... (devi anche essere un profondo 
masochista)) ma scelsi proprio .NET con il suo Framework attraverso 
Visual Studio.
Non ne sono ancora un'esperto ma devo ammettere che ora sono tranquillo 
e convinto della scelta fatta. E ti dirò incomincio a muovere i primi 
passi in C# e poi si vedrà.... Per quello che ne devo fare io il tutto è 
in sovrabbondanza....
Ho anche definitivamente accettato un assioma "non esiste il linguaggio 
migliore, esiste il miglior linguaggio per il problema che devo 
affrontare" ... e .net ne contiene parecchi, qualcuno mi ha detto che è 
pronto perfino cobol .net... Daccordo bisogna saperli usare ... ma 
perlomeno fai tutto dalla stessa interfaccia. Visual studio come 
interfaccia di sviluppo sarà anche un pò pesantina ma appena ti ci 
addentri tutto funziona ok.
.net ha delle classi così estese e già pronte che la maggior parte del 
tempo la passi a trovare ciò che ti serve.
Và daccordissimo con Oracle e SqlServer .... ecc. ecc....
Ok non ti tedio oltre tanto si è capito quale può essere il mio consiglio.
Se vuoi saperne, prima di decidere definitivamente, qualcosa di più 
nella serie dei libri microsoft press trovi un libercolo (appena 300 
pagine) di s. platt "introduzione a Microsoft .net". Il libro è dedicato
a "Sviluppatori e manager interessati a Microsoft .NET Framework e 
Visual Studio .NET" quindi ha un taglio molto discorsivo e 
un'impostazione per quasi_neofiti.
Good Luck!
Mo, sono veramente stanco e le mie ossa risentono dei tre giorni di 
febbre continua per cui vado, come dico sempre, a nannna 
...zzZZZZZzzzzZzZZz ... si è mica capito che mi piace un sacco dormire?
CIao John
      uhmmmm tu John io Marco
p.s. qui molto ventoso e 12.0 gradi alle 22.45
Buonanotte.
-- 
Sorridi
Anche se sei triste,
perche'
piu'  triste
di un sorriso triste
e' la tristezza
di non saper
sorridere
JIM MORRISON

 Allora neanche C#.
Infatti. Java almeno e' piu' "maturo", secondo me. Anche se non so che 
fututo avra'.
Domanda: ma la velocita' per cosa serve? elaborazione, rendering 
grafico, networking?

 E quale biblioteca grafica ??
Usa la regola d'oro: usa quello che ti 'veste' meglio, e pensalo modulare...
Ho detto la mia....

 
Qui mooooolto freddino che si gela e c'è aria di neve.
Probabilmente domani mattina trovo tuto bianco.
Ma ritornando a pallino, grazie per tutte le informazioni.
Quindi, come consigliatomi amche da danny, sono propensissimo ad 
'addentrarmi' su Visual Studio, con C++, C# e .NET
A Parte la noticella di test (Alessandro) che C# non è portabile. Vabbé 
mi indormerò un po' di più su questo.
Dunque, tutto entusiasta allora sono andato a guardarmi i prtezzi : 
Visual Studio 575 Euro. E li devo pagare io.
Vabbé, se poi almeno non mi complico più la vita, me lo compro.
Ma mi immagino già gli update, i batch, tutte le cazzatelle varie.
Non vorrei trovarmi con un paio di centiniaia di Euro all'anno da 
spendere per tutti gli updates.
E speriamo che Microsoft abbia perso il vizio del Visual Basic,
che non non girava mai su tutte le piattaforme Windows, e che se opütavi 
per il 'Produce Installation Package' ti produceva dieci diskette anche 
per un programmino minimo. Sicchè io mi costruivo gli exe a mano e poi 
copiavo sempre a mano solo i dll che 'chiamava' sotto un certo Windows.
Esempio : giravo l'exe file su Windows 98 e quello mi diceva subito 
*quali dll* gli mancavano.
Così io li prendevo dall'altro computer e glieli aggiungevo a mano. E la
versione 'distribuzione' aveva così una sola disketta invece di dieci.
E poi come dicevi tu : diversi Databases Systems per *diverse Versioni* 
di Visual Basic.  Sul Visual Basic 6 ce ne erano addirittura tre a 
scelta. E allora io decisi di farmi i databases 'da solo', usando il 
RANDOM ACCESS method e creando files indirizzabili con la chiave, e con 
dei DCL declares mi facevo la struttura del record.
Questo si era 'obbligati' a fare per lavorare 'seriamente' con Visual Basic.
Speriamo che Microsoft sia cambiata in questo.
Perche questo non potrei accettarlo.
Ciao.
John.

 
Coi processori di oggi la velocità è magari non importante, ma lo 
diventa per 'digital image processing', cioè non strettamente il 
'rendering' degli architetti, ma il 'giocare' coi cojntrasti o 
pseudocolori per immagini da MRI o CT, di 'medical imaging'.
Se devo scegliere un linguaggio di programmazione vorrei
sceglierne possibilmente UNO e non 'uno per ogni problema'.
Insomma un buon 'compromesso'.
E dopo tutto quello che si è detto qui (grazie infinite per i vostri 
feedback)  questo mi porta sempre più vicino al C/C++.
Adesso resta a vedere 'quale' compiler/development environment.
Grazie.
Ciao.
John.

 Domanda da 100000 Euro : che linguaggio uso adesso, per sviluppare>
una 'user interace' da distribuire ai pazienti, in modo che 'riempino' > un
formulario sui loro sintomi, che possono riempire online e poi > spedirlo in
internet col semplice 'click' su un tasto ?
Visual Basic o Visual Studio o .NET, Acess, Oracle, sql server,
pagine Asp, dhtml e tanti Auguri! ;-)
Cmq scherzi a parte con queste soluzioni fai quello che chiedi e anche
di più, solo che devi spendere un po' di palanche e tenerti aggiornato
e sinceramente, per un semplice database on-line, mi sembra un gran
sbulacco!
Perdona l'ignoranza ma per i moduli di cui parli non puoi semplicemente
usare delle pagine in ASP o PHP lato server?? (in pratica fai accedere
i tuoi clienti ad un sito dedicato dove trovano il formulario ecc...).
-- 
Ciao
Bob
Home page:
http://www.webalice.it/argonex/
Starcraft - La rivolta di Korhal -
http://digilander.libero.it/korhal/


Ecco che si ritorna IT ;-P
Credo ci siano anche tool free, probabilmente un po' meno sofisticati.
Alessandro.


Se il progetto e' di una certa complessita' e' difficile metterci le mani 
dentro anche se hai il bytecode, a meno che non si tratti di piccoli "hack" 
che pero' sono possibili anche sui compilati.
Alessandro.

 Adesso resta a vedere 'quale' compiler/development environment.
Dai un occhio ad Eclypse, lo trovi sia per win che per linux.
Altrimenti resta su linux, che ha dozzine di ambienti di sviluppo (e 
gratis!). Non so cosa succeda se vuoi usare librerie native per win o 
linux, se fai cose 'spinte'.
Onestamente cercherei di stare lontano da MS, altrimenti come ti fa 
notare Bob Rock DEVI mantenere aggiornato l'ambiente (e zu palanche!).

 
No, perchè questo vorrebbe dire essere sempre online mentre si riempie 
il formulario.
Invece io distribuisco un programmino contenente il formulario in modo 
che uno lo possa compilare offline e poi ha l'opzione se stamparlo 
localmente o 'spedirlo' in rete alla centrale.
Questa sarebbe una soluzione più 'ermetica' e mi piacerebbe di più.
Anche il collegamento in rete sarebbe più 'trasparente' senza che il 
paziente debba rompersi le palle con il browser.
John.


Uhhh che bello, ne conosci qualcuno ???
Cioè io ne ho visto qualcuno : lcc, mingw.
Il BCX è appunto basato su lcc.
Ciao.
John.


Vabbé, se è per quello, mettere le mani su un source complesso è una 
rottura di palle anche per l'autore stesso...<hahahahahah>.
Ai miei tempi c'era un articolo su una rivista che diceva che il 70% del 
codice scritto non viene mai usato. E i progetti complessi, prima 
dell'object oriented programming, non venivano mai modificati ma 
riscritti interamente. Quelli erano i tempi in cui vivevo io.
Eh sì, le generazioni successive hanno avuto più fortuna hehehehehehe.
Ciao.
John.

 notare Bob Rock DEVI mantenere aggiornato l'ambiente (e zu palanche!).
Sigh ! Era proprio quello che mi assillava. E  ritorniamo al punto di prima.
Comunque i commenti qui mi hanno dato tanti feedback utili.
Vedi, ai tempi in cui lavoravo per una grande ditta, la grande 'mamma' 
cioè l'ufficio acquisti, mi comprava tutto quello che volevo e mi 
viziava come un nonno miliardario vizia una nipotina di quattro anni.
'Mi occorre l'ultima suite di Visual Studio', 'mi occorre un upgrade del 
PC', 'Mi occorre tutta la letteratura du questo o quello'  e giù 
palanche (della ditta).
Per esempio se adesso avessi il nonno gli farei comprare l'ultima suite 
di .NET completa di tutto e poi mi 'sbizzarrirrei' (si dice così ?) a 
provarlo.
Invece adesso non ho più il nonno miliardario che mi vizia ed ho rimesso 
i panni del 'genovese'.
E gìa che te regìa anemmu a fini sempre lì. A parlaa de palanche.
E questo ci riporta IT :-)))

 E questo ci riporta IT :-)))
:oD

 Io mi leggevo solo quello che mi serviva. :-)))
Valeva anche per il codice a 16 e 32 bit, quando e' uscito il Win95...

>
Ho guadato su google e ci sono centinaia di risposte su 'eclypse' ma non 
ho visto nessuna che parlava di un software tool.
Magari hai un link ??
Ciao.
John.


Condoglianze !!  Ti giuro che mi diverte di più fare l'affittacamere.
Ma voi siete giovani e potete continuare tranquillamente a rompervi
le palle !! <hehehehehehee> (sorriso sardonico).
Io il mio tempo l'ho già fatto. Adesso se qualcuno mi vuole faccio solo 
il 'project manager', organizzo 'project meetings', cioè mi siedo in 
poltrona, mi faccio riferire sullo 'state of the Art', ogni tanto 
facendo cenni di compiacimento, per far vedere che sto capendo tutto di 
quello che dicono, poi gli dico 'bravi, avete fatto un ottimo lavoro. Ci 
vediamo tra un mese'.
Se trovo un lavoro così a 10000 Euro netti al mese ritorno giù domani.
Oppure faccio quello che sto facendo già : lavoro gratis, per la gloria,
per la ricerca, sperando di ottenere il Nobel prima che muoio.
Ciao.
John.

 per la ricerca, sperando di ottenere il Nobel prima che muoio.
La nostra congrega dei 'no profit' non si esaurisce mai, eh? :o(

 La nostra congrega dei 'no profit' non si esaurisce mai, eh? :o(
Mai, mai !  vabbé va, i nostri posteri ci saranno riconoscenti :-))))
Ciao.
John.

> perlomeno facilmente accessibile nella sua forma 'source'
Scusa se mi attacco qui per non cercare il capothread. 
Quello che dice John non mi sembra vero, perche' di solito anche un
interprete produce un eseguibile - anche se "improprio", cioe' non
interamente in linguaggio macchina - che rende NON piu' visibile il
source. Che poi detto eseguibile abbia bisogno di un "monitor"
interprete (una VM = macchina virtuale) per funzionare e' un altro
discorso. Sia con un eseguibile "stile DOS" che con uno VM il source
lo vedi se chi lo ha fatto te lo da. Figuriamoci un po' se uno dovesse
scriversi le istruzioni di basso livello per costruirsi, internamente
all'eseguibile unico, tutte le funzioni di una database stile Oracle!
Insomma, questo di guardare la questione software dal punto di vista
del tipo di eseguibile mi pare una vecchia nostalgia da programmatori
di piccole procedure DOS. Il software parte dall'analisi dei dati,
dall'interfaccia utente, mica dalla soddisfazione del programmatore
singolo di ottenere un eseguibile in integrale linguaggio macchina.
Anche cosi' le chiamate al Sistema Operativo dall'interno
dell'eseguibile possono essere viste come le chiamate ad un proprio
interprete o macchina virtuale di base: allora cosa si dovrebbe fare,
infilarci dentro anche quella parte di sistema informativo che serve,
con la programmazione concorrente necessaria (*), pur di avere il
rispetto tassonomico di "eseguibile"?! 
Per il resto concordo con Alessandro.
Saluti.
LG
(*) Propongo a John:
 Francesco Tisato, Libero Nigro - Java Restaurant - Apogeo editore,
1997 sui 20 euro (credo).

 
Mi riferivo unicamente ai linguaggi 'web' (php, perl, etc.) e non al 
'Java', che ovviamete produce un P-code.
Quelli sono 'visibilissimi' come lo era il QBASIC sui vecchi DOS.
Nessun 'professionista' si sarebbe mai sognato di fare un prodotto 
commerciale usando il QBASIC. Per questo che subito dopo apparvero i 
compilatori BASIC.
E per quanto riguarda i P-code io li trovo assolutamente inutili, e 
fanno solamente perdere tempo al processore.
E' il compito del 'compiler' di essere 'trasportabile'. E' il compiler 
che deve produrre il linguaggio macchina.
A che serve un 'codice intermezzo' ??
Io vedo solo ragioni commerciali, cioè quello di 'spezzettare' le 
funzioni del compiler in due : un pezzo prodotto subito, ed un pezzo 
prodotto 'alla fine' cioè 'interpretato'.
E' una 'stazione intermezza' inutile. IMHO.
John.
un 'fan' della velocità di calcolo estrema.