View Full Version : JAVA o Python?
anonimizzato
08-11-2008, 12:39
Ciao a tutti,
come da titolo, cosa consigliereste come primo linguaggio di programmazione compilato o "pseudo" compilato tra JAVA e Python?
Preciso:
Ho ben poca cultura della programmazione ad oggetti ed il mio background è:
HTML, CSS, PHP, Javascript, SQL, Actionscript ecc.
Ho comprato, tempo addietro, un manuale introduttivo di Java ma, dovendo ora dedicarmi ad altro (JQuery) l'ho lasciato un pò indietro.
Sento spesso però parlare bene di Python e volevo capire se per un "novizio" di entrambe i linguaggi poteva magari essere preferibile quest'ultimo, non so magari è più semplice da imparare, ti permette di essere subito più produttivo con piccoli esempi funzionanti ecc.
Attendo i vostri preziosi consigli.
N.B.
Preciso che non ho esigenza alcuna verso l'uno o altro linguaggio sarebbe "solo" per cultura personale e comunque per incrementare il mio SKILL nella programmazione in generale.
Tnx.;)
88MIKI88
08-11-2008, 13:30
Java tutta la vita
Java tutta la vita
:mano:
Se fossi partito da zero avrei potuto anche consigliarti Python, ma in questo caso ti consiglio vivamente Java ;)
Vincenzo1968
08-11-2008, 15:35
Fra i due, follia pura scegliere Python. Java senz'altro.
:)
Sento spesso però parlare bene di Python e volevo capire se per un "novizio" di entrambe i linguaggi poteva magari essere preferibile quest'ultimo, non so magari è più semplice da imparare, ti permette di essere subito più produttivo con piccoli esempi funzionanti ecc.
Python è più semplice da imparare e anche più produttivo, se devi scegliere tra questi 2 linguaggi io ti consigliere proprio Python, altrimenti dai anche un'occhiata a Ruby.
In ogni caso per sfruttare al meglio uno qualsiasi di questi linguaggi è indispensabile approfondire la programmazione object oriented.
Ciao
Python è più semplice da imparare e anche più produttivo
Sulla prima posso anche essere d'accordo...ma sulla seconda...ho davvero dei seri dubbi. Soprattutto contando che per fare con Python quello che permette di fare il framework di Java devi mettere insieme n-mila librerie con n-mila documentazioni diverse.
Vincenzo1968
08-11-2008, 16:25
Sulla prima posso anche essere d'accordo...ma sulla seconda...ho davvero dei seri dubbi. Soprattutto contando che per fare con Python quello che permette di fare il framework di Java devi mettere insieme n-mila librerie con n-mila documentazioni diverse.
Quoto e ribadisco: follia pura.
http://www.hwupgrade.it/forum/customavatars/avatar246559_1.gif
Python è più semplice da imparare e anche più produttivo
Aggiungo: vogliamo parlare degli IDE ? Gli IDE influiscono NETTAMENTE nella produttività di un linguaggio. Vogliamo confrontare SPE con Netbeans o Eclipse ? Con le funzioni di refactoring di Eclipse o con Matisse, il gui designer di Netbeans ?
Vincenzo1968
08-11-2008, 16:47
Aggiungo: vogliamo parlare degli IDE ? Gli IDE influiscono NETTAMENTE nella produttività di un linguaggio. Vogliamo confrontare SPE con Netbeans o Eclipse ? Con le funzioni di refactoring di Eclipse o con Matisse, il gui designer di Netbeans ?
Ariquoto e ariribadisco: follia pura.
http://www.hwupgrade.it/forum/customavatars/avatar246559_1.gif
Devo di re che a me non piace tanto Python, circa un anno fa mi son trovato a dover fare una scelta su un linguaggio/piattaforma da utilizzare per avviare una piccola attività. La scelta comprendeva da una parte C# e Java e dall'altra Python e Ruby.
C# l'avevo già utilizzato per applicazioni desktop e devo dire che mi sono trovato abbasanza bene, ma il vantaggio maggiore è dato proprio dall'ide e soprattutto dal GUI designer.
Java l'avevo utilizzato per sviluppare un piccolo portale, utilizzando Eclipse come ide, per cui niente gui designer, un pò (troppo secondo me) di configurazione. Niente di eccezionale insomma non l'ho trovato produttivo.
Poi ho guardato un pò le alternative, e ho deciso di valutare Ruby e Python e e i relativi frameworks per il web (RoR e Django)
Python era la mia prima scelta perchè più maturo soprattutto come piattaforma, però devo dire che la sintassi del linguaggio non mi è piaciuta molto.
Al contrario Ruby mi è piaciuto subito tantissimo e devo dire che più lo conosco e più mi piace, poi anche RoR secondo me è un ottimo framework. Alla fine ho scelto questo e non me ne pento, sono molto più produttivo rispetto al passato.
Quindi stai parlando di un campo di sviluppo specifico, quello web ? In tal caso RoR è sicuramente molto produttivo, senza dubbio.
anonimizzato
08-11-2008, 17:55
Prima di tutto grazie per i consigli. ;)
Questa netta prevalenza di Java mi sbalordisce un pò (neanche più di tanto a dire il vero) dato che su questo forum sento spesso tessere le lodi (soprattutto da CD-Mauro :D ) di Python come linguaggio semplice, pratico, tuttofare, il linguaggio del futuro ecc.
Ora i grandi meriti (e demeriti) di Java li consosciamo ma ... come mai tra i due mi consigliate così nettamente il primo?
E solo per la questione delle librerie a cui accennava cionci o c'è dell'altro?
Tnx. ;)
anonimizzato
08-11-2008, 17:58
Quindi stai parlando di un campo di sviluppo specifico, quello web ? In tal caso RoR è sicuramente molto produttivo, senza dubbio.
Si in primi l'ambito di sviluppo è quello web, ma più che altro volevo imparare un linguaggio decisamente Object Oriented per farmi le ossa.
Adesso sto approfondendo JQuery, ma i prossimi step sono sicuramente Ruby on Rails e PHP5 a oggetti.
Il mio interesse, nello specifico, era per un linguaggio maestro che mi facesse da guida nel lungo periodo.
Quindi stai parlando di un campo di sviluppo specifico, quello web ? In tal caso RoR è sicuramente molto produttivo, senza dubbio.
Si ma non solo "siti web" anche applicazioni in generale.
Si ma non solo "siti web" anche applicazioni in generale.
Ripeto, su questo ho molti dubbi ;)
E solo per la questione delle librerie a cui accennava cionci o c'è dell'altro?
Quella, insieme all'IDE, secondo me è la più importante delle differenze dal punto di vista delle produttività. Significa avere sotto mano quello che ti serve per più o meno qualsiasi uso che vuoi fare del linguaggio con documentazione ben fatta e soprattutto omogenea. Non mi sembra poco.
Poi se si vuole parlare di gusti, sinceramente non sopporto la sintassi del Python. Certo come linguaggio didattico può andare bene, ma tu non sei agli inizi, hai già molte conoscenze da poter riutilizzare nello studio di Java. Sicuramente questo è un grande vantaggio.
Senza contare che Java è sicuramente uno dei linguaggi più usati anche in ambito lavorativo.
Vincenzo1968
08-11-2008, 20:24
E gli strumenti messi a disposizione da Java, sono cosi facili da usare che potrebbe riuscirci anche un bambino.
Eqque qua(a mo' di metaforico esempio):
http://www.metacafe.com/watch/1173/tony_royster_jr_drum_solo/
;)
cdimauro
08-11-2008, 20:43
Ciao a tutti,
come da titolo, cosa consigliereste come primo linguaggio di programmazione compilato o "pseudo" compilato tra JAVA e Python?
Preciso:
Ho ben poca cultura della programmazione ad oggetti ed il mio background è:
HTML, CSS, PHP, Javascript, SQL, Actionscript ecc.
Ho comprato, tempo addietro, un manuale introduttivo di Java ma, dovendo ora dedicarmi ad altro (JQuery) l'ho lasciato un pò indietro.
Sento spesso però parlare bene di Python e volevo capire se per un "novizio" di entrambe i linguaggi poteva magari essere preferibile quest'ultimo, non so magari è più semplice da imparare, ti permette di essere subito più produttivo con piccoli esempi funzionanti ecc.
Attendo i vostri preziosi consigli.
N.B.
Preciso che non ho esigenza alcuna verso l'uno o altro linguaggio sarebbe "solo" per cultura personale e comunque per incrementare il mio SKILL nella programmazione in generale.
Tnx.;)
Visti i requisiti che poni, senza dubbio Python è il linguaggio che fa per te: in poco tempo potrai farti le ossa e sperimentare, anche con la programmazione a oggetti (e molto più semplicemente).
Fra i due, follia pura scegliere Python. Java senz'altro.
:)
Quoto e ribadisco: follia pura.
http://www.hwupgrade.it/forum/customavatars/avatar246559_1.gif
http://it.wikipedia.org/wiki/Bastian_contrario
Per il resto se per te usare Python è follia, visto che colossi come Google, YouTube, Yahoo, Microsoft, IBM, ecc. lo usano (anche abbondantemente), potremmo dire: tutti pazzi per Python.
Sulla prima posso anche essere d'accordo...ma sulla seconda...ho davvero dei seri dubbi. Soprattutto contando che per fare con Python quello che permette di fare il framework di Java devi mettere insieme n-mila librerie con n-mila documentazioni diverse.
Dipende sempre quello che si vuol fare. Python parte con una buona libreria standard di base, e nel sito ufficiale c'è un repository per altre librerie che comprono argomenti molto vasti.
Non c'è abbondanza come Java, ma si riesce lo stesso a trovare gli strumenti che servono.
Aggiungo: vogliamo parlare degli IDE ? Gli IDE influiscono NETTAMENTE nella produttività di un linguaggio. Vogliamo confrontare SPE con Netbeans o Eclipse ? Con le funzioni di refactoring di Eclipse o con Matisse, il gui designer di Netbeans ?
Eclipse lo si può usare pure con Python (http://peptic.ifs.hsr.ch/trac/) e anche per la rifattorizzazione.
Io preferisco però altri IDE (da un po' di mesi lavoro con Komodo).
Nonostante non siamo ai livelli di Eclipse per Java, riesco ugualmente a essere molto produttivo.
Quindi stai parlando di un campo di sviluppo specifico, quello web ? In tal caso RoR è sicuramente molto produttivo, senza dubbio.
Anche Django è molto produttivo, e non ha nulla da invidiare a RoR. Tanto che Google l'ha messo alla base del suo Google App Engine.
C'è anche questo (http://mdp.cti.depaul.edu/) che sembra molto promettente. Interessante è il confronto (http://mdp.cti.depaul.edu/examples/static/web2py_vs_others.pdf) che fa fra i framework web più diffusi, Django e RoR inclusi.
Prima di tutto grazie per i consigli. ;)
Questa netta prevalenza di Java mi sbalordisce un pò (neanche più di tanto a dire il vero) dato che su questo forum sento spesso tessere le lodi (soprattutto da CD-Mauro :D ) di Python come linguaggio semplice, pratico, tuttofare, il linguaggio del futuro ecc.
Ora i grandi meriti (e demeriti) di Java li consosciamo ma ... come mai tra i due mi consigliate così nettamente il primo?
E solo per la questione delle librerie a cui accennava cionci o c'è dell'altro?
Tnx. ;)
Leggiti questa (http://www.mindviewinc.com/downloads/pub/eckel/LovePython.zip) è una presentazione di Bruce Eckel, che ha partecipato al comitato di standardizzazione del C++ e autore di libri molto famosi come "Thinking in C++" e "Thinking in Java".
Troverai una sintesi delle motivazioni che hanno spinto un personaggio del suo spessore a utilizzare Python.
Qui (http://www.artima.com/intv/aboutme.html) un'intervista che ha rilasciato sull'argomento Python & i programmatori.
Mentre qui (http://www.artima.com/weblogs/viewpost.jsp?thread=221903) trovi un post sul suo blog riguardo all'evoluzione di Java come linguaggio.
Sono tre documenti che meritano di esser letti e che penso ti faranno capire tante cose. :cool:
Si in primi l'ambito di sviluppo è quello web, ma più che altro volevo imparare un linguaggio decisamente Object Oriented per farmi le ossa.
Adesso sto approfondendo JQuery, ma i prossimi step sono sicuramente Ruby on Rails e PHP5 a oggetti.
Il mio interesse, nello specifico, era per un linguaggio maestro che mi facesse da guida nel lungo periodo.
Prova Python: programmare a oggetti è molto semplice e anche per sviluppare applicazioni web è ben messo (vedi i link di cui sopra). ;)
Quella, insieme all'IDE, secondo me è la più importante delle differenze dal punto di vista delle produttività. Significa avere sotto mano quello che ti serve per più o meno qualsiasi uso che vuoi fare del linguaggio con documentazione ben fatta e soprattutto omogenea. Non mi sembra poco.
Poi se si vuole parlare di gusti, sinceramente non sopporto la sintassi del Python. Certo come linguaggio didattico può andare bene, ma tu non sei agli inizi, hai già molte conoscenze da poter riutilizzare nello studio di Java. Sicuramente questo è un grande vantaggio.
Senza contare che Java è sicuramente uno dei linguaggi più usati anche in ambito lavorativo.
Indubbiamente, e nonostante tutto però alcune multinazionali non di poco conto hanno deciso di investire (anche pesantemente) su Python. Chissà perché. :O
P.S. Sui gusti non si discute, ovviamente. :D
Aggiungo: vogliamo parlare degli IDE ? Gli IDE influiscono NETTAMENTE nella produttività di un linguaggio.
Vero, soprattutto quando il linguaggio ha dei difetti. Ci sono comunque in Java mancanze a cui un IDE riesce a rimediare solo in parte.
La libreria standard di Java e' molto buona, ma una volta che si ha bisogno di altro la situazione non e' tanto diversa da altri linguaggi, python incluso.
Vogliamo confrontare SPE con Netbeans o Eclipse ? Con le funzioni di refactoring di Eclipse o con Matisse, il gui designer di Netbeans ?
Non programmo interfacce per cui sui gui designer non mi posso esprimere. Per quel che riguarda invece le funzionalita' di refactoring ci sono diversi editor python che le supportano (non so nello specifico SPE), pure eclipse stesso con PyDev. Non so quanto piu' evolute siano quelle per Java, dovresti fare un esempio concreto.
cdimauro
08-11-2008, 21:20
SPE al momento non permette di rifattorizzatore il codice, ma nelle prossime versioni arriveranno questi strumenti.
PyDev offre alcuni strumenti di rifattorizzazione, ma per Java ce ne sono parecchi di più.
C'è anche da dire che con Python non servono quelli per cambiare il tipo alle variabili; inoltre tramite l'uso degli argomenti di default è possibile estendere agevolmente l'interfaccia di una funzione o metodo mantenendo piena retrocompatibilità col codice già scritto. ;)
EDIT. Ecco qui: http://rope.sourceforge.net/ropeide.html
Features
Supports refactorings that are supported by rope library
Rename
Extract method/local variable
Move class/function/module/package/method
Inline method/local variable
Change method signature
Restructuring
Replace method with method object
...
Other refactoring-related features
Previewing refactorings
Stopping refactorings
Undo/redo refactorings
Code-assists
Auto-completion
Goto definition
Quick outline
Show PyDoc
Proposing templates in completions
Find occurrences
Organize imports (remove unused and duplicate imports and sort them)
Generating python elements
Sorting scopes
Other IDE features
Python and reST highlighting
Multiple buffers
Project file history
An emacs like keybinding
Configurable keybinding
Basic UI plug-in support
Spell-checking using Aspell/Ispell
Correcting indentation
Project tree view
Unit-test running view
Basic codetags/errors/warnings listing
Defining templates
Memorizing strings/locations
Quest'IDE è molto bene messo, specialmente per la rifattorizzazione. Mi sa che a lavoro lo provo. :D
Python lo vedo bene in certi ambiti aziendali, ad esempio per il sistemista che deve automatizzare alcune operazioni. Un po' quello che si fa con Perl bash: per quanto mi possa non piacere Python lo trovo sicuramente più bello di Perl :D
Al contrario non lo vedo come linguaggio principale di un progetto stand-alone, magari da sviluppare in gruppo.
Vincenzo1968
09-11-2008, 01:54
...
http://it.wikipedia.org/wiki/Bastian_contrario
Per il resto se per te usare Python è follia, visto che colossi come Google, YouTube, Yahoo, Microsoft, IBM, ecc. lo usano (anche abbondantemente), potremmo dire: tutti pazzi per Python.
Dal link su wikipedia che hai riportato:
Bastian contrario è un'espressione idiomatica della lingua italiana.
Nell'italiano colloquiale viene chiamato bastian contrario chi assume per partito preso le opinioni e gli atteggiamenti contrari a quelli della maggioranza. L'espressione è ancora molto usata, malgrado ben pochi sappiano a cosa si riferisce esattamente.
Due domande:
1) È possibile esprimere la propria opinione senza venire etichettato come cattivo informatico o bastian contrario?
2) Sei cosi presuntuoso da ritenere che la maggioranza dei programmatori preferisca python?
A proposito di presunzione, ti ritieni sempre in cima ai miei pensieri?
Sgurbat ha chiesto un parere su Java e python e io gli ho dato il mio. Ancora non c'era nessun intervento a favore di python. E quindi, bastian contrario, a che proposito?
Permettimi di citarti un passo dei Promessi Sposi:
Il passo a cui mi riferisco è quello del sagrestano che, alle invocazioni di Don Abbondio, attacca a suonare ad allarme la compana e a ciascuno dei bravi che stanno agguatati in casa di Lucia:
parve di sentire in que' tocchi il suo nome, cognome e soprannome
Così, mi sembra, succede ogni volta che si dà di tocco a qualche critica su python: ti senti chiamato per nome, cognome e soprannome.
Devi farmi la cortesia: voglio essere libero di scrivere che Java è meglio di python senza che mi venga affibiata nessuna etichetta. E voglio essere libero di poterlo fare come più mi piace.
Se scrivo che python mi fa cagare, limitati a spiegare perché, secondo te, non è così(e, se preferisci, rispondi pure che a te fa cagare il C), senza chiamarmi bastian contrario.
Meno wikipedia e più Manzoni; meno wikipedia e più Sciascia, più Voltaire. Soprattutto Voltaire:
Tratto dal Dizionario Filosofico di Voltaire:
[/b]Fanatismo[/b]
...
Ci sono fanatici di sangue freddo: sono i giudici che condannano
a morte colore che non hanno commesso altro delitto se non quello
di non pensare come loro; ...
P.S Il Dizionario Filosifico ti consiglio di leggerlo tutto; ma medita, in particolare, sulle seguenti voci:
- Certo, Certezza
- Cervello storto
- Follia
- Inquisizione
- Libertà di pensiero
P.S. Sui gusti non si discute, ovviamente. :D
Minchia! Meno male! :rolleyes:
Cionci cosa intendi per progetto stand alone?
Esistono software abbastanza complessi fatti in Python per es. Zope, oppure per quanto riguarda Ruby anche RoR non è che sia un software proprio banale.
Per quanto riguarda gli IDE stanno migliorando molto anche quelli che supportano linguaggi dinamici, che sicuramente sono più complessi da gestire rispetto a Java.
Poi è anche vero che molte funzionalità avanzate degli IDE di Java non servono per linguaggi dinamici, per esempio la funzione "implementa interfaccia" non serve a niente in Python o Ruby, oppure i tanti plugin di configurazione dei vari file xml dei framework.
anonimizzato
09-11-2008, 08:14
Quella, insieme all'IDE, secondo me è la più importante delle differenze dal punto di vista delle produttività. Significa avere sotto mano quello che ti serve per più o meno qualsiasi uso che vuoi fare del linguaggio con documentazione ben fatta e soprattutto omogenea. Non mi sembra poco.
Poi se si vuole parlare di gusti, sinceramente non sopporto la sintassi del Python. Certo come linguaggio didattico può andare bene, ma tu non sei agli inizi, hai già molte conoscenze da poter riutilizzare nello studio di Java. Sicuramente questo è un grande vantaggio.
Senza contare che Java è sicuramente uno dei linguaggi più usati anche in ambito lavorativo.
Sulla sintassi siamo d'accordo, anch'io dando un primo sguardo al "Pitone" l'ho trovata "fastidiosa"
cdimauro
09-11-2008, 08:25
Python lo vedo bene in certi ambiti aziendali, ad esempio per il sistemista che deve automatizzare alcune operazioni. Un po' quello che si fa con Perl bash: per quanto mi possa non piacere Python lo trovo sicuramente più bello di Perl :D
E di PHP. :D
Al contrario non lo vedo come linguaggio principale di un progetto stand-alone, magari da sviluppare in gruppo.
Però è innegabile che stia avendo un grosso successo e sia molto usato anche in progetti "non banali". L'elenco di quelle multinazionali non l'ho tirato fuori a caso.
Io stesso, per quanto possa contare la parola di un singolo, non lo uso soltanto per i famigerati scriptini per risolvere un problemino urgente dell'ultimo minuto: la stragrande maggioranza del mio tempo lo spendo in progetti che riguardano l'infrastruttura della mia azienda (per la serie che se cade il mio server del CMS, finiamo tutti col culo per terra).
Dal link su wikipedia che hai riportato:
Due domande:
1) È possibile esprimere la propria opinione senza venire etichettato come cattivo informatico o bastian contrario?
Dipende sempre dal contesto: se si parla di mele e tu parli di arance, non vedo perché non te lo si dovrebbe far notare.
2) Sei cosi presuntuoso da ritenere che la maggioranza dei programmatori preferisca python?
No, ma evidentemente non hai notato il perché di quel "bastian contrario" e il fatto che abbia citato delle multinazionali che, ti piaccia o meno, hanno investito ingenti capitali su un linguaggio come Python anziché affidarsi al "solito" Java (che, non ho difficoltà a riconoscerlo, attualmente è il linguaggio di programmazione più usato) o, peggio ancora, a C/C++.
Se vuoi te lo spiego, quell'accostamento. Non c'è problema.
A proposito di presunzione, ti ritieni sempre in cima ai miei pensieri?
Sgurbat ha chiesto un parere su Java e python e io gli ho dato il mio. Ancora non c'era nessun intervento a favore di python. E quindi, bastian contrario, a che proposito?
Permettimi di citarti un passo dei Promessi Sposi:
Il passo a cui mi riferisco è quello del sagrestano che, alle invocazioni di Don Abbondio, attacca a suonare ad allarme la compana e a ciascuno dei bravi che stanno agguatati in casa di Lucia:
Così, mi sembra, succede ogni volta che si dà di tocco a qualche critica su python: ti senti chiamato per nome, cognome e soprannome.
Veramente noto che è da un po' di tempo (più precisamente a seguito di discussioni accese che ci hanno avute come protagonisti) che non perdi occasione per infilarti in discorsi in cui di mezzo c'è Python tentando di infangare questo linguaggio. Immagino che in questo modo vorresti, di conseguenza, infangare anche chi lo usa, e mi sembra un comportamento alquanto puerile.
Devi farmi la cortesia: voglio essere libero di scrivere che Java è meglio di python senza che mi venga affibiata nessuna etichetta. E voglio essere libero di poterlo fare come più mi piace.
Nessuno ti vieta di scrivere liberamente in questo forum. E io sono altrettanto libero di contestare ciò che affermi e anche di etichettarti, definizioni alla mano. Per inciso: non vedo perché non dovrei chiamare ladro uno che è stato colto a rubare.
Se scrivo che python mi fa cagare, limitati a spiegare perché, secondo te, non è così(e, se preferisci, rispondi pure che a te fa cagare il C), senza chiamarmi bastian contrario.
Io le mie spiegazioni nonché argomentazioni le ho date.
Qui c'è qualcun altro, invece, che non ha fatto nulla di tutto ciò, arrivando IMMEDIATAMENTE E SENZA ALCUNA ARGOMENTAZIONE a etichettare come follia anche la sola ipotesi di voler usare Python come linguaggio.
E per fortuna che non si vuol essere etichettati...
Poi, permettimi: a me hanno insegnato a parlare di cose che conosco e astenermi dal disquisire su ciò che non mi noto e/o chiaro: http://www.hwupgrade.it/forum/showpost.php?p=24915217&postcount=305
E lo dici a me? Io di python non ne so proprio niente: proprio il niente che è niente.
E dovrei fidarmi di uno che fa alacremente un'affermazione di questo tipo e mi dice che usare Python è pura follia? Sarei un folle, piuttosto, a seguirne il consiglio. :asd:
Meno wikipedia e più Manzoni; meno wikipedia e più Sciascia, più Voltaire. Soprattutto Voltaire:
Tratto dal Dizionario Filosofico di Voltaire:
P.S Il Dizionario Filosifico ti consiglio di leggerlo tutto; ma medita, in particolare, sulle seguenti voci:
- Certo, Certezza
- Cervello storto
- Follia
- Inquisizione
- Libertà di pensiero
Aggiungici anche queste:
- Requisiti
- Contesto
- Dominio del problema
- Argomentazioni
Minchia! Meno male! :rolleyes:
Appunto: i GUSTI non erano in discussione mi pare. Rileggiti la discussione. L'utente ha chiesto delle cose ben precise e alle quali risponde con un "è follia pura" lascia semplicemente il tempo che trova (ossia: la polemica e il flame intenzionali, visti i "trascorsi").
P.S. Poi non t'incazzare se nei thread che t'interessano si arrivi a parlare di stile di programmazione, qualità del codice, leggibilità, ecc. Visto che, a quanto pare, ognuno deve aver la libertà di dire ciò che gli aggrada, vuol dire che questo "principio" lo si userà per randell, ehm, per intervenire qualunque sia il topic.
cdimauro
09-11-2008, 08:35
Sulla sintassi siamo d'accordo, anch'io dando un primo sguardo al "Pitone" l'ho trovata "fastidiosa"
La pensavo allo stesso modo. Adesso sono 4 anni che ci lavoro... :asd:
Cionci cosa intendi per progetto stand alone?
Esistono software abbastanza complessi fatti in Python per es. Zope, oppure per quanto riguarda Ruby anche RoR non è che sia un software proprio banale.
Mi hai fatto nuovamente un esempio di un software che necessita altri software per funzionare (necessita di un web server), appunto un'applicazione stand alone è un'applicazione di cui viene sviluppata completamente l'interfaccia, il backend ed il motore che processa le richieste dell'utente. Esempi di applicazioni stand alone: Winzip, Visual Studio, 3DSMax...e tante tante altre.
Esempi di applcazioni non stand alone: qualsiasi applicazione che usa il browser come interfaccia grafica.
Si hai ragione per quel tipo di applicazioni forse non sono molto adatti, ma d'altronde non esiste uno strumento che sia il migliore per tutto.
mi sembra la discussione di due nerd che difendono i rispettivi portatili consapevoli del fatto che sono già merce antiquata. Lo fanno per convincersi e convincere che la loro scelta è stata la migliore.
La verità è che Java oramai è un progetto navigato, con una robustezza ed una ricchezza che pochi o nessun altro linguaggio al momento può offrire. E' il presente.
Python è un linguaggio relativamente recente, quindi sicuramente più evoluto, con delle ottime prospettive, ed in quanto tale è chiaro che molte aziende che pensano a lungo termine ci stanno investendo parecchio. E' il futuro, forse.
no guarda non c'entra niente la nerdaggine, stiamo solo facendo delle valutazioni.
io uso gli strumenti che ritengo più adatti in base al lavoro che devo fare.
Non discuto sulla robustezza della piattaforma Java ma discuto più che altro sul linguaggio, che secondo me non è il più produttivo.
Non discuto sulla robustezza della piattaforma Java ma discuto più che altro sul linguaggio, che secondo me non è il più produttivo.
Per applicazioni web può anche non esserlo, ma JSP l'hai provato ? Oppure JSF ? Perché se mi implementi un'applicazione web con una sola servlet è chiaro che sia poco produttivo.
Python lo vedo bene in certi ambiti aziendali, ad esempio per il sistemista che deve automatizzare alcune operazioni. Un po' quello che si fa con Perl bash: per quanto mi possa non piacere Python lo trovo sicuramente più bello di Perl :D
Al contrario non lo vedo come linguaggio principale di un progetto stand-alone, magari da sviluppare in gruppo.
Non sono d'accordo. Ho usato django per scrivere un blog engine ispirato a wordpress per una cosa all'università e per il core ci ho messo solo 2 giorni.
Ovviamente bisogna leggersi bene la documentazione, però django per me è stata una manna dal cielo.
Ciò non toglie che io me ne voglio andare all'estero e l'80% delle offerte di lavoro chiede Java EE 5 -_-
Non sono d'accordo. Ho usato django per scrivere un blog engine ispirato a wordpress per una cosa all'università e per il core ci ho messo solo 2 giorni.
Continuate a fare l'esempio di applicazioni particolari, cioè applicazioni web based. Addirittura con un framework come django che è scritto appositamente per sviluppare blog o siti di notizie !!!
E' chiaro che la produttività è alta, sfrutti una libreria apposita...è come dire che ci si mette poco a creare un database in Java appoggiandomi a MySQL :D
Non sono d'accordo. Ho usato django per scrivere un blog engine ispirato a wordpress per una cosa all'università e per il core ci ho messo solo 2 giorni.
Ovviamente bisogna leggersi bene la documentazione, però django per me è stata una manna dal cielo.
Ciò non toglie che io me ne voglio andare all'estero e l'80% delle offerte di lavoro chiede Java EE 5 -_-
Si se Sgurbat avesse chiesto "devo trovare lavoro che linguaggio mi consigliate?" anche io avrei risposto diversamente.
Continuate a fare l'esempio di applicazioni particolari, cioè applicazioni web based. Addirittura con un framework come django che è scritto appositamente per sviluppare blog o siti di notizie !!!
E' chiaro che la produttività è alta, sfrutti una libreria apposita...è come dire che ci si mette poco a creare un database in Java appoggiandomi a MySQL :D
Trovare librerie e framework di questo tipo è un punto a favore del linguaggio mi pare.
Poi il punto, secondo me, è che (indipendentemente dal tipo di interfaccia che fai) una appplicazione deve svolgere dei compiti tipo:
-manipolare dati in un database
-leggere e scrivere dati su file
-aprire connessioni di rete
-creare report in vari formati
-creare o modificare immagini
....
io sono più prodittivo in ruby.
poi ribadisco che per me è stato così non posso dire che sia la soluzione per tutto e tutti
Trovare librerie e framework di questo tipo è un punto a favore del linguaggio mi pare.
Certo che è un punto a favore, ma credi che non ce ne siano per JSP ?
Allora prendo wordpress per PHP e ci scommetti che creo un blog in 10 minuti ? Sono più produttivo rispetto a django ? Sì. Ma non puoi prendere a riferimento una libreria che ti prepara già tutto per un dato compito per definire la produttività di un linguaggio ;)
Django non è una libreria ma un framework non ha niente di pronto, l'applicazione la devi creare tu, non confonderlo con un CMS o un motore di blog come wordpress
Certo che è un punto a favore, ma credi che non ce ne siano per JSP ?
Allora prendo wordpress per PHP e ci scommetti che creo un blog in 10 minuti ? Sono più produttivo rispetto a django ? Sì. Ma non puoi prendere a riferimento una libreria che ti prepara già tutto per un dato compito per definire la produttività di un linguaggio ;)
Quindi tu la produttività come la definiresti? Che poi non stai dicendo una cosa sbagliata perché effettivamente un conto è parlare di produttività di django, un conto di python.
Django non è una libreria ma un framework non ha niente di pronto, l'applicazione la devi creare tu, non confonderlo con un CMS o un motore di blog come wordpress
Certo, lo so, ma non lo puoi prendere come riferimenti per la produttività di un linguaggio, al massimo puoi dire che il dato linguaggio è più produttivo con quel framework rispetto a framework simili per altri linguaggi e solo per creare un tipo specifico di applicazioni web. Non puoi assumere la produttività generale di un linguaggio a partire da un caso particolare.
Prima ti ho scritto alcuni esempi.
Un semplice esempio di maggiore produttività di un linguaggio dinamico rispetto a Java :
Java
public boolean isEmpty(String s)
{
return s.length() == 0;
}
Ruby
def empty?(s)
s.length == 0
end
Il primo funziona solo con le stringhe, il secondo con stringhe array e qualsiasi oggetto che rispona al messaggio length
E quando l'oggetto non espone il metodo length ?
Considera che se io mi metto a scrivere un metodo di quel tipo in Java lo metto in una classe, quindi empty mi fa riferimento alla classe in cui l'ho messo. Non c'è bisogno di alcun parametro e la condizione empty sarà relativa esclusivamente a quella classe, quindi non c'è bisogno che funzioni su stringhe, array e quant'altro.
E quando l'oggetto non espone il metodo length ?
L'esempio è tratto dal libro Design patterns in Ruby, il paragrafo successivo è
"Uniti tests are not optionals"
se hai una buona copertura di test il problema si supera.
Considera che se io mi metto a scrivere un metodo di quel tipo in Java lo metto in una classe, quindi empty mi fa riferimento alla classe in cui l'ho messo. Non c'è bisogno di alcun parametro e la condizione empty sarà relativa esclusivamente a quella classe, quindi non c'è bisogno che funzioni su stringhe, array e quant'altro.
è ovvio che era solo un esempio, il senso è che ogni volta che hai bisogno di un riferimento polimorfico non hai bisogno di implementare interfacce o ereditare una classe
Vabbè io chiudo qui altrimenti possiamo continuare ad oltranza ho capito che sia su posizioni divergenti...
Solo un'ultima domanda hai mai provato Ruby o Python?
Solo un'ultima domanda hai mai provato Ruby o Python?
Ho cominciato a guardare Python qualche mese fa, ma proprio non ce l'ho fatta a finire :D Sicuramente lo studierò in futuro.
In ogni caso il fatto che lo unit testing non è un optional non toglie che quel codice è error prone. Nel senso che se domani pinco prende in mano il mio codice e lì ci infila un contenitore hand made che non espone length allora siamo punto e da capo ;) Ecco perché sono da sempre a favore della tipizzazione forte.
Allora prova Ruby ;) vedrai che lo troverai utile, non per tutto ma qualcosa da fargli fare la trovi.
Allora prova Ruby ;) vedrai che lo troverai utile, non per tutto ma qualcosa da fargli fare la trovi.
Scusa, guarda sopra ho aggiornato il post ;)
Sia chiaro che non ho mai detto che questi linguaggi sono inutili, in certi campi possono essere anche una valida alternativa, ho dato un sguardo a RoR e lo trovo davvero spettacolare.
Ma almeno ORA, affermare che sono più produttivi di Java in senso assoluto mi sembra senz'altro affrettato.
Vincenzo1968
09-11-2008, 16:17
...
Qui c'è qualcun altro, invece, che non ha fatto nulla di tutto ciò, arrivando IMMEDIATAMENTE E SENZA ALCUNA ARGOMENTAZIONE a etichettare come follia anche la sola ipotesi di voler usare Python come linguaggio.
E per fortuna che non si vuol essere etichettati...
Poi, permettimi: a me hanno insegnato a parlare di cose che conosco e astenermi dal disquisire su ciò che non mi noto e/o chiaro: http://www.hwupgrade.it/forum/showpost.php?p=24915217&postcount=305
E lo dici a me? Io di python non ne so proprio niente: proprio il niente che è niente.
E dovrei fidarmi di uno che fa alacremente un'affermazione di questo tipo e mi dice che usare Python è pura follia? Sarei un folle, piuttosto, a seguirne il consiglio. :asd:
Aggiungici anche queste:
- Requisiti
- Contesto
- Dominio del problema
- Argomentazioni
Appunto: i GUSTI non erano in discussione mi pare. Rileggiti la discussione. L'utente ha chiesto delle cose ben precise e alle quali risponde con un "è follia pura" lascia semplicemente il tempo che trova (ossia: la polemica e il flame intenzionali, visti i "trascorsi").
P.S. Poi non t'incazzare se nei thread che t'interessano si arrivi a parlare di stile di programmazione, qualità del codice, leggibilità, ecc. Visto che, a quanto pare, ognuno deve aver la libertà di dire ciò che gli aggrada, vuol dire che questo "principio" lo si userà per randell, ehm, per intervenire qualunque sia il topic.
Si si, è vero, di python ne so poco e niente. Ma ho avuto modo, qui (http://www.hwupgrade.it/forum/showthread.php?t=1841739), di leggere i primi capitoli del libro che hai in firma e confermo il mio giudizio su python. Alcune cose che non mi piacciono(meglio, per le quali python mi fa cagare):
1) Le prestazioni
2) Le stringhe immutabili
3) I blocchi di codice per i quali bisogna procedere a colpi di tabulazioni o spazi.
Dimenticavo che, tra le etichette che mi affibi ogni volta, c'è anche quella di 'polemista intenzionale'.
Insisti nel volermi affibiare delle etichette? Bene, allora permettimi di fare altrettanto con te.
Sei uno spammista:
Prima di tutto grazie per i consigli. ;)
Questa netta prevalenza di Java mi sbalordisce un pò (neanche più di tanto a dire il vero) dato che su questo forum sento spesso tessere le lodi (soprattutto da CD-Mauro) di Python come linguaggio semplice, pratico, tuttofare, il linguaggio del futuro ecc.
Ora i grandi meriti (e demeriti) di Java li consosciamo ma ... come mai tra i due mi consigliate così nettamente il primo?
E solo per la questione delle librerie a cui accennava cionci o c'è dell'altro?
Tnx. ;)
E ogni volta che qualcuno esprime opinioni diverse dalle tue, con quel "rileggiti", tenti di farlo passare per cretino o ladro o bugiardo.
Se non puoi attaccare il ragionamento, attacca il ragionatore...
Un'altra etichetta che ti sta a pennello è quella del cretino intelligente:
Tratto da "Il Contesto" di Leonardo Sciascia:
...
"Già, voi sapete tutto... E avete saputo," con ironia,
"che Galano è mio ospite: informazione non del tutto
esatta. È ospite di mia moglie. Detto tra noi, io non
posso soffrirlo: è un piccolo, isterico intellettuale
di provincia. Che dico, intellettuale? È uno di quei
cretini che danno l'illusione del discorso intelligente.
Ci vuol poco, oggi, ad acquistare questa abilità illusio-
nistica. 'Parole, parole, parole...' Lei legge la sua ri-
vista?"
"Qualche articolo. Dovere professionale."
Nocio si abbandonò su una poltrona, in preda a una risata
quasi silenziosa ma incontenibile e viscerale.
...
A proposito di "parole, parole, parole...", avresti potuto, nei contest,
Contest 1 (http://www.hwupgrade.it/forum/showthread.php?t=1784948)
Contest 2 (http://www.hwupgrade.it/forum/showthread.php?t=1785752)
Contest 3 (http://www.hwupgrade.it/forum/showthread.php?t=1787500)
Contest 4 (http://www.hwupgrade.it/forum/showthread.php?t=1791293)
Contest 5 (http://www.hwupgrade.it/forum/showthread.php?t=1799059)
Contest 6 (http://www.hwupgrade.it/forum/showthread.php?t=1850150)
Contest 7 (http://www.hwupgrade.it/forum/showthread.php?t=1839674)
mostrare la netta superiorità di python nei confronti degli altri linguaggi.
Com'è che non s'è vista nemmeno l'ombra dy python?
Eppure all'inizio sembrava che la cosa ti interessasse:
da Contest 1 (http://www.hwupgrade.it/forum/showthread.php?t=1784948)
Mi sono perso questo interessante thread. :muro:
...
da Contest 3 (http://www.hwupgrade.it/forum/showthread.php?t=1787500)
Avast mi segnala questo:
"HTML:Agent-L [Expl]"
quando provo a scaricare il file.
P.S. Appena ho un po' di tempo e il file con la lista di numeri provo a cimentarmi. :)
poi, invece:
sempre da Contest 3 (http://www.hwupgrade.it/forum/showthread.php?t=1787500)
La domanda sorge spontanea: a che serve questo contest? :stordita:
Cos'è, i tuoi brillanti ragionamenti ti hanno portato a pensare che fosse tutta una congiura per gettare fango su python? :)
Scusa, guarda sopra ho aggiornato il post ;)
Sia chiaro che non ho mai detto che questi linguaggi sono inutili, in certi campi possono essere anche una valida alternativa, ho dato un sguardo a RoR e lo trovo davvero spettacolare.
Ma almeno ORA, affermare che sono più produttivi di Java in senso assoluto mi sembra senz'altro affrettato.
Ok allora siamo d'accordo.
Credo che ognuno debba trovare lo strumento giusto per fare il proprio lavoro. Secondo me conoscere le varie alternative è l'unico modo per sceglierne una, poi ognuno può trovare una soluzione diversa.
Vincenzo1968 e cdimauro...potete continuare in privato ? Grazie ;)
Alcune cose che non mi piacciono(meglio, per le quali python mi fa cagare):
1) Le prestazioni
2) Le stringhe immutabili
3) I blocchi di codice per i quali bisogna procedere a colpi di tabulazioni o spazi.
ma ti riferisci a python ? no xche se e x questo anche in java le stringhe sono oggetti immutabili :asd:
Vincenzo1968
09-11-2008, 16:37
ma ti riferisci a python ? no xche se e x questo anche in java le stringhe sono oggetti immutabili :asd:
Onestamente credevo che in Java fosse possibile utilizzare array di caratteri come in C o C++. Motivo in più per tenermi stretto il C :D
Ciao
Onestamente credevo che in Java fosse possibile utilizzare array di caratteri come in C o C++. Motivo in più per tenermi stretto il C :D
Ni, volendo è possibile, ma l'oggetto String è immutabile.
Vincenzo1968
09-11-2008, 16:46
Ni, volendo è possibile, ma l'oggetto String è immutabile.
Un punto, a parer mio, a favore di Java ;)
anonimizzato
09-11-2008, 16:47
Direi che il thread ha esaurito la sua utilità (per il mio fine), se il MOD lo ritiene opportuno può anche chiudere qua la discussione per evitare "pericolose deviazioni".
Grazie ancora. ;)
Che significa immutabile? Forse ho capito male.
Si crea una nuova stringa ad ogni modifica?
Eh no...ora alla fine ci dici cosa scegli :asd:
Vincenzo1968
09-11-2008, 16:55
Che significa immutabile? Forse ho capito male.
Si crea una nuova stringa ad ogni modifica?
No no, hai capito benissimo:
Dal capitolo 7:
7.6 Le stringhe sono immutabili
Si può essere tentati di usare l'operatore porzione [] alla sinistra di un'assegnazione, con l'intenzione di cambiare un carattere di una stringa:
Saluto = "Ciao!"
Saluto[0] = 'M' # ERRORE!
print Saluto
Invece di ottenere Miao! questo codice stampa il messaggio d'errore TypeError: object doesn't support item assignment.
Le stringhe sono infatti immutabili e ciò significa che non puoi cambiare una stringa esistente. L'unica cosa che puoi eventualmente fare è creare una nuova stringa come variante di quella originale:
Saluto = "Ciao!"
NuovoSaluto = 'M' + Saluto[1:]
print NuovoSaluto
Abbiamo concatenato la nuova prima lettera ad una porzione di Saluto, e questa operazione non ha avuto alcun effetto sulla stringa originale.
Si crea una nuova stringa ad ogni modifica?
Sì. Se vai a chiamare substring si crea una nuova stringa modificata come valore di ritorno. L'oggetto su cui chiami substring non viene cambiato.
In Java comunque c'è la classe StringBuffer dedicata alle stringhe mutabili.
Vincenzo1968
09-11-2008, 17:15
Sarei curioso di vedere una programmino, in python, del genere di quello che ho scritto qui:
http://www.hwupgrade.it/forum/showthread.php?t=1853851
e viri chi manci, con le stringhe immutabili :D
cdimauro
09-11-2008, 18:58
Mi hai fatto nuovamente un esempio di un software che necessita altri software per funzionare (necessita di un web server), appunto un'applicazione stand alone è un'applicazione di cui viene sviluppata completamente l'interfaccia, il backend ed il motore che processa le richieste dell'utente. Esempi di applicazioni stand alone: Winzip, Visual Studio, 3DSMax...e tante tante altre.
Puoi farle anche con Python.
Esempio: SPE (un IDE per Python) è scritto interamente in Python. BitTorrent è anch'esso scritto in Python.
Esempi di applcazioni non stand alone: qualsiasi applicazione che usa il browser come interfaccia grafica.
Questo non è necessariamente un male visto che negli ultimi tempi ci si sta spostando verso lo sviluppo di applicazioni web, e in particolare di cloud computing. ;)
Per applicazioni web può anche non esserlo, ma JSP l'hai provato ? Oppure JSF ? Perché se mi implementi un'applicazione web con una sola servlet è chiaro che sia poco produttivo.
Sì, ma è un casino. Java ha sicuramente una libreria ricchissima, ma è talmente ricca che... ti ci perdi anche per tornare semplicemente una stringa al client HTTP.
Poi non parliamo di Tomcat. Intanto configurarlo è un supplizio, e poi come mangia memoria lui non ne ho visti.
Ma a parte questo, per realizzare applicazioni mediamente semplici devi sbatterti non poco.
Mentre, ad esempio, con apache e mod_python scrivere un'applicazione http è banale: le funzioni che si trovano nel file .py che viene "esportato" sono automaticamente visibili:
def index(req):
return 'Questa è la pagina principale!'
def test(req, **Arguments):
s = '<BR>'.join(Key + ' = ' + Value for Key, Value in Arguments.iteritems())
return "L'elenco degli argomenti che hai passato a test è:<BR>" + s
Di recente ho realizzato un mini-server HTTP con una classe per gestire le richieste che mi permette di evitare di dover usare apache e mod_python che sono abbastanza pesanti (mai come tomcat comunque :D).
Adesso per tirar sù un server HTTP mi serve UNA riga di codice che richiama una funziona di una libreria a cui passo IP, porta e classe da istanziare per gestire le richieste, e fa tutto lei.
La classe per gestire le richieste HTTP eredita da una classe di questa libreria che si occupa di effettuare parsing dell'URL, ricavare i parametri e invocare il metodo giusto.
Praticamente una mia applicazione web adesso si riduce semplicemente a specificare il nome del metodo che è mappato sul path URL che mi serve, e il codice per gestire la richiesta. Nient'altro.
E quando l'oggetto non espone il metodo length ?
Considera che se io mi metto a scrivere un metodo di quel tipo in Java lo metto in una classe, quindi empty mi fa riferimento alla classe in cui l'ho messo. Non c'è bisogno di alcun parametro e la condizione empty sarà relativa esclusivamente a quella classe, quindi non c'è bisogno che funzioni su stringhe, array e quant'altro.
Questo lo puoi fare anche in Ruby e Python. :)
Ho cominciato a guardare Python qualche mese fa, ma proprio non ce l'ho fatta a finire :D Sicuramente lo studierò in futuro.
In ogni caso il fatto che lo unit testing non è un optional non toglie che quel codice è error prone. Nel senso che se domani pinco prende in mano il mio codice e lì ci infila un contenitore hand made che non espone length allora siamo punto e da capo ;) Ecco perché sono da sempre a favore della tipizzazione forte.
Python è fortemente tipizzato, al contrario di Ruby, PHP, Perl, ecc. ;)
Si si, è vero, di python ne so poco e niente. Ma ho avuto modo, qui (http://www.hwupgrade.it/forum/showthread.php?t=1841739), di leggere i primi capitoli del libro che hai in firma e confermo il mio giudizio su python. Alcune cose che non mi piacciono(meglio, per le quali python mi fa cagare):
1) Le prestazioni
Per te sono fondamentali, ma per tanta altra gente no. Per me è condizione necessaria che il codice giri e rispetti i REQUISITI per cui è stato sviluppato.
2) Le stringhe immutabili
Come in decine di altri linguaggi anche blasonati.
3) I blocchi di codice per i quali bisogna procedere a colpi di tabulazioni o spazi.
Questa è una cosa che fa automaticamente qualunque editor decente per qualunque linguaggio di programmazione.
L'unica cosa è che con Python l'indentazione serve ANCHE a definire i blocchi di codice.
Dimenticavo che, tra le etichette che mi affibi ogni volta, c'è anche quella di 'polemista intenzionale'.
Insisti nel volermi affibiare delle etichette? Bene, allora permettimi di fare altrettanto con te.
Sei uno spammista:
Gli "spammisti" non argomentano e facilmente si trascinano OT. Qualità che non mi appartengono.
A proposito di "parole, parole, parole...", avresti potuto, nei contest,
Contest 1 (http://www.hwupgrade.it/forum/showthread.php?t=1784948)
Contest 2 (http://www.hwupgrade.it/forum/showthread.php?t=1785752)
Contest 3 (http://www.hwupgrade.it/forum/showthread.php?t=1787500)
Contest 4 (http://www.hwupgrade.it/forum/showthread.php?t=1791293)
Contest 5 (http://www.hwupgrade.it/forum/showthread.php?t=1799059)
Contest 6 (http://www.hwupgrade.it/forum/showthread.php?t=1850150)
Contest 7 (http://www.hwupgrade.it/forum/showthread.php?t=1839674)
mostrare la netta superiorità di python nei confronti degli altri linguaggi.
Mi sembrava che i contest fossero nati per risolvere i problemi esposti, non per "misurare" i linguaggi di programmazione.
Com'è che non s'è vista nemmeno l'ombra dy python?
Dovresti rileggi meglio, perché ci trovi delle soluzioni proprio con Python.
Eppure all'inizio sembrava che la cosa ti interessasse:
da Contest 1 (http://www.hwupgrade.it/forum/showthread.php?t=1784948)
da Contest 3 (http://www.hwupgrade.it/forum/showthread.php?t=1787500)
poi, invece:
Poi ho perso interesse perché... ho altro da fare. Sic et simpliciter.
sempre da Contest 3 (http://www.hwupgrade.it/forum/showthread.php?t=1787500)
Cos'è, i tuoi brillanti ragionamenti ti hanno portato a pensare che fosse tutta una congiura per gettare fango su python? :)
Mi sembra che le due cose non siano affatto collegate.
La domanda, poi, era pertinente e legittima. Infatti dopo la risposta che ho ricevuto ho postato il mio contributo: http://www.hwupgrade.it/forum/showpost.php?p=23436189&postcount=39 che sicuramente ti sarà sfuggito, come ti saranno sfuggiti anche i NUMEROSI miei messaggi e contributi alla discussione.
Questo proprio perché all'epoca avevo interesse a seguire i contest, e nonostante fossero state presentate soluzioni decisamente più performanti delle mie (basti vedere i messaggi precedenti).
In soldoni: se l'obiettivo dei contest era quello di mostrare la superiorità prestazionale di Python, non avrei nemmeno partecipato (non c'è storia, anche usando psyco).
I miei contributi smentiscono questa visione delle cose, e le recenti soluzioni "esotiche" di gugo mi sembrano la cartina al tornasole della situazione in cui ormai versano i contest: la mera ricerca delle prestazioni invece di focalizzare l'attenzione sugli ALGORITMI per risolvere i problemi esposti.
Onestamente credevo che in Java fosse possibile utilizzare array di caratteri come in C o C++. Motivo in più per tenermi stretto il C :D
Ciao
E per informarti per bene quando ti esponi parlando di linguaggi di programmazione che non conosci.
Un punto, a parer mio, a favore di Java ;)
E se ti dicessi che è possibile farlo anche con Python? Un punto a favore di Python, immagino. :read: :O
No no, hai capito benissimo:
Dal capitolo 7:
Il capitolo 7 di quel libro NON è né il manuale di riferimento del linguaggio Python né tanto meno quello della libreria standard: è un libro nato per chi vuol imparare a programmare in Python ed è ovvio che non tratti in dettaglio tutto ciò che il linguaggio offre a livello di costrutti sintattici, tipi di dati e librerie.
Sì. Se vai a chiamare substring si crea una nuova stringa modificata come valore di ritorno. L'oggetto su cui chiami substring non viene cambiato.
In Java comunque c'è la classe StringBuffer dedicata alle stringhe mutabili.
Anche per Python c'è una classe allo scopo: MutableString. ;)
Sarei curioso di vedere una programmino, in python, del genere di quello che ho scritto qui:
http://www.hwupgrade.it/forum/showthread.php?t=1853851
e viri chi manci, con le stringhe immutabili :D
Quei 5 punti chiesti da quell'utente si risolvono con Python in una ventina di righe di codice e poco più di 10 minuti per scriverlo.
Ovviamente a condizione di conoscere BENE Python, i suoi oggetti base e le funzioni di libreria (in questo caso ce n'è una comodissima per effettuare la scansione di tutti i file di una cartella e tornarne i nomi in una lista).
Produttività rulez con Python. :cool:
Vincenzo1968
09-11-2008, 19:27
Hai altro da fare però il tempo per scrivere post-fiume per magnificare python lo trovi sempre.
Si, metto al primo posto l'efficienza. È una cosa che trova riscontro nei libri sugli algoritmi che ho letto(Sedgewick, Knuth, Cormen).
Le prestazioni, checché tu ne dica, contano eccome in informatica.
Non nego che la produttività conti anch'essa. Ma metterla al primo posto non mi sembra cosa; mi pare un discorso egoistico, dal punto di vista di noi programmatori, dico.
Dal punto di vista dell'utente finale, di colui che, cioè, dovrà utilizzare i nostri programmi, credo che la velocità di esecuzione conti molto di più. Cosa vuoi che gliene freghi all'utente se un programma è scritto in modo elegante e con sole venti righe di codice, se poi impiega un sacco di tempo a svolgere il lavoro?
Vogliamo confrontare le prestazioni per l'esempio che ho segnalato?
Dato che, come dici, si tratta di una ventina di righe di codice, scrivere il programma non dovrebbe portarti via molto tempo. :)
P.S. Scommetto che ora mi risponderai: Rileggi. Lo so benissimo che hai scritto che python non ti interessa per le prestazioni. Ma vogliamo farla comunque questa prova?
cdimauro
09-11-2008, 19:49
Hai altro da fare però il tempo per scrivere post-fiume per magnificare python lo trovi sempre.
Certamente. La vita è fatta di priorità, e ognuno si sceglie quelle che più gli aggradano.
Si, metto al primo posto l'efficienza. È una cosa che trova riscontro nei libri sugli algoritmi che ho letto(Sedgewick, Knuth, Cormen).
Le prestazioni, checché tu ne dica, contano eccome in informatica.
Non nego che la produttività conti anch'essa. Ma metterla al primo posto non mi sembra cosa; mi pare un discorso egoistico, dal punto di vista di noi programmatori, dico.
Come programmatore ti ho già ripetuto innumerevoli volte che ho un solo mandato: risolvere il problema rispettando i REQUISITI e possibilmente col miglior rapporto costi / benefici.
Tanto basta.
Questo non esclude che si debba pensare eventualmente alle prestazioni. Semplicemente si dà il giusto peso alle cose, e i libri di cui parli sono stati scritti per trattare diversi algoritmi: se gli autori avessero ricercato esclusivamente le prestazioni, avrebbero scartato a priori tutti gli altri algoritmi lasciando soltanto i "migliori" (da questo punto di vista).
Dal punto di vista dell'utente finale, di colui che, cioè, dovrà utilizzare i nostri programmi, credo che la velocità di esecuzione conti molto di più. Cosa vuoi che gliene freghi all'utente se un programma è scritto in modo elegante e con sole venti righe di codice, se poi impiega un sacco di tempo a svolgere il lavoro?
Vedi sopra: dipende, al solito, dai requisiti del problema. Una soluzione che non è utilizzabile dal customer... non è una soluzione del problema.
Vogliamo confrontare le prestazioni per l'esempio che ho segnalato?
Erano le prestazioni l'oggetto del problema esposto? Non mi pare:
Buonasera a tutti devo fare le statistiche da un corpus di testo molto grande(un corpus di testo è un insieme di file di testo) per chi lo conosce io uso il "tasa corpus".
Dato un file di testo al suo interno devo fare queste operazioni:
1) sostituire la punteggiatura con il carattere spazio ' '
2) sostituire tutte le lettere maiuscole con le minuscole
3) sostituire il carattere 'a capo' con uno spazio ' '
4) Tutte queste operazioni devono essere fatte in automatico dal programma su circa 10mila file .txt che sono nidificati in una cartella
5) infine questi 10mila e rotti file .txt li devo unire in un'unico enorme file
corpus.txt (non devono esserci parole attaccate alla fine di un file con il successivo, per cui è opportuno inserire uno spazio alla fine di ogni file)
6) a questo punto possono iniziare a fare le statistiche prendendo come input il file corpus.txt
l'ultimo punto il 6) l'ho già implementato ho pronto il programma scritto in fortran, devo solo crearmi questo file corpus.txt da dare in pasto al
mio programma fortran.
Ovviamente i primi 5 punti posso implementarli in qualsiasi linguaggio
preferisco c++ o java perchè li conosco.
Ragazzi mi date una mano?
Mi faresti vedere cortesemente dov'è scritto questo requisito? Grazie.
Dato che, come dici, si tratta di una ventina di righe di codice, scrivere il programma non dovrebbe portarti via molto tempo. :)
Vedi sopra: il tempo lo spendo come meglio credo io. Non per i soliti confronti per soddisfare chi soffre di ansia da prestazioni.
P.S. Scommetto che ora mi risponderai: Rileggi. Lo so benissimo che hai scritto che python non ti interessa per le prestazioni.
Scommessa persa: il rileggi è riferito al testo di quell'utente e ai problemi che ha esposto. Python non c'entra niente.
Ma vogliamo farla comunque questa prova?
No. Puoi farla tu: così ne approfitti e impari finalmente qualcosina di Python.
D'altra parte per questi compiti è particolarmente versato, come osservava giustamente Riccardo in precedenza: http://www.hwupgrade.it/forum/showpost.php?p=24933333&postcount=21 :cool:
Vincenzo1968
09-11-2008, 19:53
Altra cosa: è possibile, per chi, come me, è convinto che le prestazioni contino, dire che utilizzare python è follia pura? Anche alla luce di questo?:
http://www.hwupgrade.it/forum/newreply.php?do=newreply&p=24817054
Per Python 3.0 sono previste delle prestazioni inferiori. Qualche tempo fa con una beta era stato rilevato un decadimento del 30% circa, ma gli sviluppatori erano fiduciosi di migliorare la situazione per la versione finale.
:)
Cos'è? Dobbiamo stare in fiducia sulla fiducia degli sviluppatori di migliorare la versione finale?
cdimauro
09-11-2008, 20:08
Altra cosa: è possibile, per chi, come me, è convinto che le prestazioni contino, dire che utilizzare python è follia pura?
Dovresti dire la stessa cosa anche di tanti altri linguaggi, C incluso. :O
Dedicati all'assembly: vedrai che avrai modo di soddisfare al meglio la tua fame di prestazioni. ;)
Anche alla luce di questo?:
http://www.hwupgrade.it/forum/newreply.php?do=newreply&p=24817054
:)
Cos'è? Dobbiamo stare in fiducia sulla fiducia degli sviluppatori di migliorare la versione finale?
A giudicare da quanto leggo dalla mailing list ufficiale e dai progressi fatti col tempo, direi sì.
Anzi, ho scoperto di recente che c'è un branch in cui si stanno sperimentando alcune soluzioni per... (rullo di tamburi) migliorare il codice prodotto dal compilatore per avere prestazioni più elevate.
Vincenzo1968
09-11-2008, 20:24
La fissazione per le prestazioni non mi viene soltanto dalla lettura dei libri.
C'è il titolare della mia azienda che utilizza un linguaggio che non è né C né C++(non dico di quale linguaggio si tratta, così non si offende nessuno).
Ogni volta che vado da un cliente mi tocca sorbirmi le lamentele anche per le cose più cretine:
"Perchè il programma impiega tutto questo tempo per avviarsi?"
"Perchè ci sta tre ore per aprire un menù?"
"Perchè tutto questo tempo per aprire una finestra?" ( e si tratta di una semplice dialog con un paio di editbox e un paio di bottoni).
cdimauro
09-11-2008, 20:33
Può darsi che, profiler alla mano, sia sufficiente una riscrittura algoritmica di alcune parti dell'applicazione.
Tu, se volessi sposare esclusivamente le prestazioni, te la sentiresti di riscriverlo interamente in assembly?
Perché è a questa conclusione che si arriva portando all'estremo il concetto che esponi da tempo.
Solo che io di lavorare in assembly non lo consiglierei al mio peggior nemico. ;)
[...]
Le prestazioni, checché tu ne dica, contano eccome in informatica.
Non nego che la produttività conti anch'essa. Ma metterla al primo posto non mi sembra cosa; mi pare un discorso egoistico, dal punto di vista di noi programmatori, dico.
Dal punto di vista dell'utente finale, di colui che, cioè, dovrà utilizzare i nostri programmi, credo che la velocità di esecuzione conti molto di più. [...]
Veramente quello che conta sono i requisiti che ti vengono dati per sviluppare il progetto, se rispetta quelli il problema è risolto. Almeno a mio parere.
Vincenzo1968
09-11-2008, 20:56
Può darsi che, profiler alla mano, sia sufficiente una riscrittura algoritmica di alcune parti dell'applicazione.
Tu, se volessi sposare esclusivamente le prestazioni, te la sentiresti di riscriverlo interamente in assembly?
Perché è a questa conclusione che si arriva portando all'estremo il concetto che esponi da tempo.
Solo che io di lavorare in assembly non lo consiglierei al mio peggior nemico. ;)
Non si tratta di profiler. La finestra di dialogo di cui parlavo, non fa altro che restituire il testo contenuto nelle due editbox; contiene solo due pulsanti: OK e Annulla.
Per un paio fra i clienti più camurrusi sono riuscito a convincere il capo a riscrivere l'applicazione in C con la API.
E la soddisfazione non è stata piccola nel presentare al cliente un'applicazione le cui finestre, anche se piene di controlli(edit, button, combobox, etc) si aprono all'istante(e si avviano prima ancora di cliccarci sopra ;)).
Io non ho mai preso in considerazione l'assembly per lo stesso motivo per il quale Kernighan e Ritchie hanno creato il C: avere un linguaggio di alto livello(ma non troppo alto ;)) potente come l'assembly(o quasi).
Vincenzo1968
09-11-2008, 20:57
Veramente quello che conta sono i requisiti che ti vengono dati per sviluppare il progetto, se rispetta quelli il problema è risolto. Almeno a mio parere.
Bisognerebbe farlo capire ai clienti della mia azienda che in un primo momento accettano la versione proposta dal capo e, in seguito, scassano i cabasisi a me ;)
cdimauro
09-11-2008, 21:17
Non si tratta di profiler. La finestra di dialogo di cui parlavo, non fa altro che restituire il testo contenuto nelle due editbox; contiene solo due pulsanti: OK e Annulla.
Per un paio fra i clienti più camurrusi sono riuscito a convincere il capo a riscrivere l'applicazione in C con la API.
E la soddisfazione non è stata piccola nel presentare al cliente un'applicazione le cui finestre, anche se piene di controlli(edit, button, combobox, etc) si aprono all'istante(e si avviano prima ancora di cliccarci sopra ;)).
Se è solo per quello ricorrere al C mi sembra comunque esagerato.
Io non ho mai preso in considerazione l'assembly per lo stesso motivo per il quale Kernighan e Ritchie hanno creato il C: avere un linguaggio di alto livello(ma non troppo alto ;)) potente come l'assembly(o quasi).
L'assembly ti permette (conoscendolo bene ovviamente) di sfruttare qualunque aspetto dell'architettura della macchina, ma non si può dire lo stesso del C.
Comunque io preferisco i linguaggi di più alto livello proprio perché mi permettono di arrivare molto più velocemente a soluzioni che rispettino quanto ripetuto da dierre. Le prestazioni non m'interessano, a meno che non rientrino in qualche misura nella sfera del problema.
Bisognerebbe farlo capire ai clienti della mia azienda che in un primo momento accettano la versione proposta dal capo e, in seguito, scassano i cabasisi a me ;)
Se i requisiti sono stati soddisfatti, gli scassamenti si fanno pagare. Vedrai che gli scassamenti caleranno di colpo. :D
Bisognerebbe farlo capire ai clienti della mia azienda che in un primo momento accettano la versione proposta dal capo e, in seguito, scassano i cabasisi a me ;)
Sì ma a questo mi pongo una domanda. In che modo le progetti le applicazioni? Che tipo di design pattern usi? L'MVC come lo fai in C per esempio?
cdimauro
10-11-2008, 07:46
In effetti è strano. Una decina d'anni fa lavoravo con Visual Basic 5 a un (classico) programma di gestione aziendale, e ricordo che il form delle fatture differite era straboccante di controlli di tutti i tipi, ma non avevo quei rallentamenti e tempi d'attesa.
Questo su macchine che erano ridicole rispetto all'hardware attuale.
Puoi farle anche con Python.
Esempio: SPE (un IDE per Python) è scritto interamente in Python. BitTorrent è anch'esso scritto in Python.
No, non ho detto che non si possa fare, ho detto che lo vedo meno adatto ;) Soprattutto nel caso di un progetto sviluppato da molti utenti.
cdimauro
10-11-2008, 12:46
Ah, ok. Avevo capito altro, scusami.
Vincenzo1968
10-11-2008, 14:35
Sì ma a questo mi pongo una domanda. In che modo le progetti le applicazioni? Che tipo di design pattern usi? L'MVC come lo fai in C per esempio?
I design pattern posso applicarli anche in C. Non sono un concetto ad uso esclusivo dei linguaggi a oggetti.
Per esempio, in questo articolo (http://www.programmazione.it/index.php?entity=eitem&idItem=37984), c'è una mia applicazione che suddivide la logica dell'applicazione in più moduli.
Per il modello(la rappresentazione dei dati, secondo L'MVC) ho fatto uso del filesystem ma avrei potuto utilizzare anche un DBMS.
La vista è implementata in un programma (è l'unico modulo, fra i tanti dell'applicazione, non in C ma in C++/MFC).
Per il controllore, che ha la funzione di creare e gestire gli eventi che, a loro volta, hanno la possibilità di cambiare lo stato sia del modello che della vista, ho utilizzato un Windows Service (http://msdn.microsoft.com/en-us/library/ms681921(VS.85).aspx)(implementato in C/API Win32).
:)
Vincenzo1968
10-11-2008, 14:37
In effetti è strano. Una decina d'anni fa lavoravo con Visual Basic 5 a un (classico) programma di gestione aziendale, e ricordo che il form delle fatture differite era straboccante di controlli di tutti i tipi, ma non avevo quei rallentamenti e tempi d'attesa.
Questo su macchine che erano ridicole rispetto all'hardware attuale.
L'unico modo per sciogliere i dubbi è fare una prova: mettiamo a confronto due applicazioni; l'una in C/API e l'altra nel linguaggio che preferisci. Altrimenti torniamo al punto di partenza: "parole, parole, parole...". :)
I design pattern posso applicarli anche in C. Non sono un concetto ad uso esclusivo dei linguaggi a oggetti.
Per esempio, in questo articolo (http://www.programmazione.it/index.php?entity=eitem&idItem=37984), c'è una mia applicazione che suddivide la logica dell'applicazione in più moduli.
Per il modello(la rappresentazione dei dati, secondo L'MVC) ho fatto uso del filesystem ma avrei potuto utilizzare anche un DBMS.
La vista è implementata in un programma (è l'unico modulo, fra i tanti dell'applicazione, non in C ma in C++/MFC).
Per il controllore, che ha la funzione di creare e gestire gli eventi che, a loro volta, hanno la possibilità di cambiare lo stato sia del modello che della vista, ho utilizzato un Windows Service (http://msdn.microsoft.com/en-us/library/ms681921(VS.85).aspx)(implementato in C/API Win32).
:)
Non ne dubito. Ma perchè non usare c++? Per quanto un programmatore possa essere bravo in C anche delle semplici operazioni sulle stringhe possono causare orribili bug .
Premesso che preferisco mille volte programmare in c/c++ piuttosto che in python, penso che c/c++ dovrebbero essere relegati ad alcune nicchie, in tutti gli altri settori nel migliore dei casi fanno solo perdere un sacco di tempo al programmatore.
I design pattern posso applicarli anche in C. Non sono un concetto ad uso esclusivo dei linguaggi a oggetti.
Per esempio, in questo articolo (http://www.programmazione.it/index.php?entity=eitem&idItem=37984), c'è una mia applicazione che suddivide la logica dell'applicazione in più moduli.
Per il modello(la rappresentazione dei dati, secondo L'MVC) ho fatto uso del filesystem ma avrei potuto utilizzare anche un DBMS.
La vista è implementata in un programma (è l'unico modulo, fra i tanti dell'applicazione, non in C ma in C++/MFC).
Per il controllore, che ha la funzione di creare e gestire gli eventi che, a loro volta, hanno la possibilità di cambiare lo stato sia del modello che della vista, ho utilizzato un Windows Service (http://msdn.microsoft.com/en-us/library/ms681921(VS.85).aspx)(implementato in C/API Win32).
:)
Mi puoi dare i sorgenti in un link che non preveda registrazione please?
Vincenzo1968
10-11-2008, 19:00
Non ne dubito. Ma perchè non usare c++? Per quanto un programmatore possa essere bravo in C anche delle semplici operazioni sulle stringhe possono causare orribili bug .
Premesso che preferisco mille volte programmare in c/c++ piuttosto che in python, penso che c/c++ dovrebbero essere relegati ad alcune nicchie, in tutti gli altri settori nel migliore dei casi fanno solo perdere un sacco di tempo al programmatore.
Sul perdere tempo non sono d'accordo ma, si, generalmente, per applicazioni GUI - Windows, uso C++ con MFC invece che C + API.
L'esempio era solo per rispondere a Dierre che mi ha chiesto come progetterei un'applicazione in C.
Nel caso di quei due clienti, ho utilizzato C con API per essere certo di ottenere il massimo delle prestazioni e non farmi più scassare i cabasisi ;)
Ciao
Vincenzo1968
10-11-2008, 19:01
Mi puoi dare i sorgenti in un link che non preveda registrazione please?
Se mi dai un po' di tempo vedo di sistemare un paio di cose nei sorgenti(c'è un piccolo problema sui backup mensili) e poi ti posto il link nel mio sito.
EDIT: ecco il link (http://www.guidealgoritmi.it/public/BackupWindowsService.zip).
Vincenzo1968
10-11-2008, 19:39
tnx
prego ;)
Metto le mani avanti: il programma è migliorabile. Per esempio, per il programma di setup avrei dovuto utilizzare le api WindowsInstaller o il Tool InstallShield fornito con Visual Studio.
A mia parziale scusante dirò che, quando ho scritto quell'articolo, c'era una certa urgenza nei tempi di consegna.
Un'altra miglioria sarebbe quella di separare la gestione dei dati mettendo il tutto in una DLL a parte anziché nel Windows Service.
;)
cdimauro
10-11-2008, 19:57
L'unico modo per sciogliere i dubbi è fare una prova: mettiamo a confronto due applicazioni; l'una in C/API e l'altra nel linguaggio che preferisci. Altrimenti torniamo al punto di partenza: "parole, parole, parole...". :)
Non ti seccare, ma tu avevi scritto questo (http://www.hwupgrade.it/forum/showpost.php?p=24943320&postcount=67) e questo (http://www.hwupgrade.it/forum/showpost.php?p=24943745&postcount=70) e adesso stai cercando di trasformare il tutto nell'n-esimo confronto fra linguaggi, che non c'entra proprio nulla con quello di cui ti lamentavi prima.
Vincenzo1968
10-11-2008, 22:26
Non ti seccare, ma tu avevi scritto questo (http://www.hwupgrade.it/forum/showpost.php?p=24943320&postcount=67) e questo (http://www.hwupgrade.it/forum/showpost.php?p=24943745&postcount=70) e adesso stai cercando di trasformare il tutto nell'n-esimo confronto fra linguaggi, che non c'entra proprio nulla con quello di cui ti lamentavi prima.
Non ti seccare tu, ma ti devi togliere il vizio di cercare di far passare per bugiardo chi non la pensa come te.
Rileggiti un po':
In effetti è strano. Una decina d'anni fa lavoravo con Visual Basic 5 a un (classico) programma di gestione aziendale, e ricordo che il form delle fatture differite era straboccante di controlli di tutti i tipi, ma non avevo quei rallentamenti e tempi d'attesa.
Questo su macchine che erano ridicole rispetto all'hardware attuale.
Muovendo dal fatto che dieci anni fa hai scritto un programma in visual basic le cui finestre, anche se piene di controlli, si aprivano istantaneamente, arrivi alla conclusione, In effetti è strano, che io mi sia inventato tutto.
Sembrerebbe una brillante deduzione, un discorso intelligente. In realtà non hai considerato quanto segue:
1) io non ho parlato di visual basic.
2) Visual basic utilizza, o utilizzava, come controlli, gli OCX(una volta, VBX) che sono compilati in C/C++(lo stesso eseguibile è un eseguibile windows nativo, non si tratta di codice interpretato(o compilato a runtime).
Quello che in apparenza sembrava un discorso intelligente, dunque, è soltanto un discorso cretino. Da cretino intelligente.
E dovresti smetterla anche con questi metodi da Grande Inquisitore:
"tu hai scritto questo, tu hai scritto quello..."
Vuoi che ti indichi i link in cui parli del linguaggio C come del male assoluto?
:rolleyes:
1) io non ho parlato di visual basic.
2) Visual basic utilizza, o utilizzava, come controlli, gli OCX(una volta, VBX) che sono compilati in C/C++(lo stesso eseguibile è un eseguibile windows nativo, non si tratta di codice interpretato(o compilato a runtime).
La possibilità di creare eseguibili nativi fu introdotta solo nella 5.0 e non era nemmeno abilitata di default. Di fatto il compilatore produceva un byte code simile a quello di java e veniva compilato dal runtime quando era lanciato il programma. Stessa cosa per i controlli che con un po' di buona volontà, qualche api e un pizzico di subclassing si creavano anche in vb.
Penso che cesare volesse dire che se si riuscivano a creare finestre molto complesse in vb che non davano problemi sui pc del '98 allora nel programma che ti ha dato problemi a lavoro ci doveva essere qualche problema che dava tutti quei ritardi nell'interfaccia grafica.
Vincenzo1968
11-11-2008, 01:40
La possibilità di creare eseguibili nativi fu introdotta solo nella 5.0 e non era nemmeno abilitata di default. Di fatto il compilatore produceva un byte code simile a quello di java e veniva compilato dal runtime quando era lanciato il programma. Stessa cosa per i controlli che con un po' di buona volontà, qualche api e un pizzico di subclassing si creavano anche in vb.
Penso che cesare volesse dire che se si riuscivano a creare finestre molto complesse in vb che non davano problemi sui pc del '98 allora nel programma che ti ha dato problemi a lavoro ci doveva essere qualche problema che dava tutti quei ritardi nell'interfaccia grafica.
Vicius,
il problema non è questo. Il problema è che la deve smettere con le sue insinuazioni perchè mi ha proprio scassato i cabasisi.
Avevo detto che i clienti si lamentano per le cose più cretine.
Una cosa cretina, per esempio, è che un programma in C# o Java ci mette qualche secondo per avviarsi. Uno in C/API, nemmeno il tempo di farci doppio click sopra, ed è già avviato.
cdimauro
11-11-2008, 07:24
Non ti seccare tu, ma ti devi togliere il vizio di cercare di far passare per bugiardo chi non la pensa come te.
Rileggiti un po':
Fatto, grazie. Rimango della mia idea.
Muovendo dal fatto che dieci anni fa hai scritto un programma in visual basic le cui finestre, anche se piene di controlli, si aprivano istantaneamente, arrivi alla conclusione, In effetti è strano, che io mi sia inventato tutto.
Sembrerebbe una brillante deduzione, un discorso intelligente. In realtà non hai considerato quanto segue:
1) io non ho parlato di visual basic.
2) Visual basic utilizza, o utilizzava, come controlli, gli OCX(una volta, VBX) che sono compilati in C/C++(lo stesso eseguibile è un eseguibile windows nativo, non si tratta di codice interpretato(o compilato a runtime).
Quello che in apparenza sembrava un discorso intelligente, dunque, è soltanto un discorso cretino. Da cretino intelligente.
E' un discorso che Vicius ha capito perfettamente. Tanto mi basta.
E dovresti smetterla anche con questi metodi da Grande Inquisitore:
"tu hai scritto questo, tu hai scritto quello..."
Vuoi che ti indichi i link in cui parli del linguaggio C come del male assoluto?
:rolleyes:
Questo non c'entra col topic. Se hai voglia di rispolverare quel thread fagli un up, ma non continuare qui che siamo andanti già fin troppo fuori le righe.
Vicius,
il problema non è questo. Il problema è che la deve smettere con le sue insinuazioni perchè mi ha proprio scassato i cabasisi.
Avevo detto che i clienti si lamentano per le cose più cretine.
Nessuna insinuazione. E non ero il solo, tra l'altro ad aver fatto una OSSERVAZIONE, ma... hai quotato soltanto me.
Una cosa cretina, per esempio, è che un programma in C# o Java ci mette qualche secondo per avviarsi. Uno in C/API, nemmeno il tempo di farci doppio click sopra, ed è già avviato.
Ovvio. Ma esistono soluzioni anche per alleviare questi problemi.
Quello che in apparenza sembrava un discorso intelligente, dunque, è soltanto un discorso cretino. Da cretino intelligente.
Vincenzo1968: come avevo già chiesto, la polemica se la volete fare ve la fate in privato. Sospeso 3gg per flame.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.