esses ha scritto:Mi dispiace che l'inizio della risposta ad un messaggio pacato, in cui ho espresso le mie opinioni di utente linux e windows di qualche annetto sottolineando che derivano dalla mia esperienza personale(e quindi ho espresso un dato soggettivo che non ho indicato come la verita' assoluta ma come una mia convinzione che non è stata modificata negli anni dalla mia esperienza) sia stato, da parte di Riko:
Ho seri dubbi sul fatto che tu sappia riconoscere un software scritto in python da uno scritto in C: dovresti "aprirlo" per rendertene conto
Ma è così. E questo vale per te come vale per me. In Python/Ruby chiami le stesse librerie grafiche che chiami in C o in C++. Un programma in RubyGTK ha la stessa GUI di uno in C.
Da li non riesci ad accorgerti quale sia il linguaggio sottostante (mentre per esempio una GUI in Java è abbastanza riconoscibile -- anche se ad onor del vero potrebbe essere scritto anche li in Python o in Ruby con un interprete scritto in Java - risp Jython e JRuby - anche se la cosa è talmente improbabile...)
Quindi l'unico modo per renderti conto di come è scritto un software "da utente" è aprirlo. Certo, puoi andare anche su sourceforge. Io non ci avevo pensato.
Sono anni che apt-getto il software per Linux (per MacOS pure nella pagina di download quasi mai c'è scritto in cosa è scritto, anche quando sono su sf, e devi andare nella "pagina apposta").
Comunque resta il fatto: semplicemente usando un programma il linguaggio interno rimane relativamente ignoto (a meno di non andarlo a cercare, di aprirlo, appunto).
2)Non ho nessun problema con Python, ne ho sentito molto parlare, mi incuriosisce. Ma anche se avessi davanti due software aperti(o, meglio, il loro codice sorgente), uno in Python ed uno in C/C++ non saprei riconoscere quello scritto in Python(non ho alcuna idea di questo linguaggio, nemmeno sintatticamente) se non per esclusione, riconoscendo quello scritto in C.
Python è molto ben riconoscibile dai sorgenti. Lasciando stare l'esclusione, leggendo la descrizione delle sue peculiarità (l'indentazione obbligatoria per strutturare i blocchi, nessuna graffa, nessuna parola chiave per finire i blocchi) se lo vedessi lo riconosceresti.
Comunque il discorso è che generalmente quando uso sw, non lo apro
3)Dire si a "Java GUI è lento" e no a "Java è lento" non ha molto senso in ambiente Desktop a interfaccia grafica(a meno che non si parli di programmi server non grafici o di pagine internet che poi si poggiano su un server remoto dove si esegue codice java).
Beh, invece ha un senso. Quello che io ho (impropriamente) chiamato Java GUI in realtà è Swing, Awt e il toolkit di Eclipse (anche se questo è più snello, IIRC). Su una macchina windows ragionevolmente recente -- tipo il mio PC di 4 o 5 anni fa -- non sono in genere oltremodo pesanti. Su Linux lo ignoro, di solito mi rompo le palline e tengo la JVM di GNU, e per sviluppare Emacs, quindi non so dirti come siano le performance.
Certo, sono sensibilmente più pesanti che una cossa scritta con MFC, per dire. O con Delphi. Certo. Ma per esempio se faccio una GUI Java con Cocoa (su MacOS X) non sarà lenta. Non è il linguaggio, è la libreria grafica.
Sarebbe interessante provare i binding GTK per Java. Purtroppo io GTK non lo guardo dalla 1.4 e non ho tanto tempo di aggiornarmi.
Il mio terrore ogni volta che ho fatto il doppio click sul tool di sviluppo da te nominato(Eclipse) ne è la prova. Su Linux e Windows entrambi duron 950Mhz e 512MB PC133. D'altronde dovevo pensarlo prima che queste caratteristiche sono troppo, come dire, misere per provare un linguaggio di programmazione
Non è questione di linguaggio di programmazione, lo hai detto tu stesso. È questione di Eclipse. Io su Windows quando lavoro in Java generalmente uso UltraEdit Studio (caro, ma li vale).
Poi nessuno ti vieta di usare gvim/Emacs. Io sono sempre stato moderatamente scettico verso gli IDE... dicevo comunque, il problema non è in cosa programmi, ma cosa usi per programmare.
Se usi Eclipse + il plugin per il C e programmi appunto in C, sei pesante uguale.
4)Java, secondo me, è piu' sicuro,
Si.
è meno ostico al primo impatto,
Passo, per me è il contrario... ma io il primo impatto con il C lo ho avuto a 14 anni.
permette totale portabilita'
Nei sogni di Gosling

... purtroppo sono madonne anche li. Diciamo che aiuta.
[quote]
mi sembra elegante la sua gestione delle eccezioni.
[/quote]
Beh, potere gestire le eccezioni fa spesso risparmiare un sacco di codice (o per lo meno separare chiaramente la logica standard da quella in caso di comportamento insolito).
In particolare Java ha la peculiarità che le eccezioni cosidette "checked" (la maggior parte) debbano essere dichiarate nei metodi (se possono uscirne). Personalmente la cosa mi ha mostrato nuove vie nell'arte di bestemmiare, ma a parte questo immagino possa essere anche comodo.
Diciamo che i Javisti sono divisi sul punto (io con tutte le critiche che muovo a Java ogni volta che sono stuzzicato a riguardo questa me la risparmio.
Se questo va un po' a scapito della velocita' pazienza. Se non è necessario un software particolarmente ottimizzato per una data macchina è giusto usare java.
In ambito bancario, secondo me, la sicurezza e una semplicita' maggiore nella manutenzione del codice vengono prima ed e' quindi giusta la scelta di java o ,comunque, di un linguaggio con caratteristiche simili.
In realtà per loro le prestazioni sono assolutamente critiche. Non potrebbero scegliere una piattaforma che non fosse oltremodo veloce. Semplicemente non interessano le GUI. Quello che deve essere veloce è il backend ( e li Java non si comporta peggio in media di altre piattaforme).
5)Non sono un integralista del C/C++. Ogni volta che qualcuno mi ha detto che si deve fare tutto in C solo perche' è piu' veloce , io ho sempre detto che non vale la pena, per software gestionale, di usare il C, ma VB O Delphi(+ veloci di java, secondo me). Semmai qualche dll se proprio è necessario. Motivazione: risparmio di tempo
Il ragionamento da utente pero' si ribalta: se si ha la fortuna di trovare il gestionale che serve fatto in C/C++(o il programmatore ti dice, vorrei farlo in C/C++) non vedo il motivo per non preferirlo ad altri(scritti in altri linguaggi) se soddisfa le proprie esigenze.
Ribadisco... per queste applicazioni usare C/C++ non ti porta vantaggi. Creare un bottone con una chiamata Python o con una C ha un costo trascurabile rispetto a creare il bottone stesso.
Buona parte dei linguaggi interpretati di genesi Unix in effetti chiamano *tantissimo* codice C, e non vedo perchè il minimo costo aggiuntivo di gestire uno stack di chiamata appena più complesso dovrebbe dare questi problemi (problemi che sulla mia esperienza in effetti non si manifestano).
Usavo applicazioni scritte in Python (con GUI) già su un G3 a 233 MHz, e fin da allora le differenze non erano percepibili (mentre invece KDE, in C++, era *molto* più pesante di Gnome... ma più che per ragioni di linguaggio, ancora una volta per ragioni di libreria).
Ma vorrei finire con una domanda: ho sentito che il famoso portatile economico ,con manovella, da 100 dollari se non erro, avra' una CPU non potentissima(non sono sicuro ma mi sembra 500Mhz)... mumble mumble... i software scritti in java non saranno un po' lenti per questo computer?
Ribadisco, non è Java. Semmai è Swing. Java gira anche sul mio cellulare, che va bene se ha un processore da 50 MHz.