|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#41 | ||
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Quote:
Quote:
Per contro posso portarti l'esempio del visual basic, che è nato per essere eseguito da un interprete e che successivamente ha avuto il suo compilatore: nella versione 6 era possibile compilare sia in p-code da interpretare, sia in codice nativo. E ti assicuro che quello compilato in codice nativo girava più veloce del p-code, sebbene il linguaggio fosse "nato interpretato". |
||
|
|
|
|
|
#42 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Codice:
Non solo java può fondere i vari linguaggi!Lo si può fare un pò con tutti,quindi rimane una caretteristica poco rilevante. |
|
|
|
|
|
#43 | |
|
Member
Iscritto dal: Dec 2013
Messaggi: 90
|
Nonostante io sia un incallito sostenitore di vb devo ammettere che è stato un aborto da sempre!Chiamarlo poi linguaggio...
Ma queste sono considerazioni personali ricevute dalla mia esperienza. Tutto qui. Quando un linguaggio è fatto bene vuol dire che ha uno scopo e i suoi creatori ne hanno tenuto in considerazione. Il phyton ad esempio sa di essere interpretato quanto il c sa di essere compilato. Per questo che il phyton non espone ad esempio l'inline assembly mentre il c si! Tanto quanto il c++ sa di essere ad oggetti mentre il c no! Un linguaggio non è solo un insieme di costrutti, ma anche come vengono eseguiti. In definitiva un interprete c sarà sempre un accrocchio perchè non potrà mai e poi mai emulare tutte le funzionalità del reale c perchè il c è nato compilato. Tanto quanto un compilatore phyton non potrà mai e poi mai emulare le potenzialità offerte dal linguaggio c perchè nato interpretato. Poi esistono accrocchi per qualche ragione funzionante che permettono anche al vb6 di essere multithread, ma queste non sono la normalità, valgono solo per alcuni rari casi. Quote:
In java non puoi, allora devi ricorrere a qualche accrocchio che ti permetta di farlo, non dico che non si possa fare, ma è stata fatta una modifica perchè il linguaggio non lo permetterebbe. Quindi se io ho scritto un programma in c# e lo voglio dopo x tempo ottimizzare con una funzione in assembly modifico e fatto. In java molto probabilmente dovrei sbattere la testa in qua e la incrociandole le dita che il tutto funzioni. |
|
|
|
|
|
|
#44 |
|
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
E quindi siccome in Java (per la sua natura multipiattaforma) non si può fare direttamente codice inline (ma cmq esiste JNI o JNA, quest'ultimo nemmeno richiede codice 'collante') sarebbe un linguaggio che PROVA ad essere un linguaggio?
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
|
|
|
|
|
#45 | |||
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Quote:
Quote:
Quote:
|
|||
|
|
|
|
|
#46 | |
|
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
Secondo la tua tesi, poi: - usando C# con il .Net Framework (JIT finale una ed una sola volta verso codice macchina nativo interpretabile dalla CPU) -> "si vede chi è un linguaggio"; - usando C# con il .Net Compact Framework (JIT dinamico più volte se e quando ritenuto opportuno) -> "chi cerca di esserlo (un linguaggio)"; - usando C# con il .Net Micro Framework ("interpretazione nel senso classico", niente JIT) -> cosa, catastrofe? "linguaggio giocattolo"? Che dici, hai scritto o meno un sacco di sciocchezze? Ultima modifica di van9 : 26-06-2014 alle 15:33. |
|
|
|
|
|
|
#47 | ||
|
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
Quote:
|
||
|
|
|
|
|
#48 | |
|
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
|
|
|
|
|
|
|
#49 | |||
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Quote:
Quote:
Quote:
|
|||
|
|
|
|
|
#50 | |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12861
|
Quote:
Nonostante questo comunque C++ rimane un linguaggio molto complesso, e forse il punto è che la forbice di "skill" tra gli sviluppatori può essere più ampia rispetto ad altri linguaggi, il che potrebbe penalizzare il lavoro in team. Ultima modifica di WarDuck : 26-06-2014 alle 23:59. |
|
|
|
|
|
|
#51 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Sono di frettissima, ma: http://nuitka.net/
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#52 | ||
|
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
Quote:
|
||
|
|
|
|
|
#53 | |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12861
|
Quote:
|
|
|
|
|
|
|
#54 | |
|
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
Di Pypy ho visto l'annuncio della stable ma non dovendo più scrivere Python da un pò non seguo e non so nulla. Ultima modifica di van9 : 27-06-2014 alle 14:56. |
|
|
|
|
|
|
#55 | |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12861
|
Quote:
http://speed.pypy.org/ La sezione "How has PyPy performance evolved over time?" è abbastanza illuminante. Anche se già si intravede un limite superiore (non possono crescere all'infinito, ma questo è normale), allo stato attuale PyPy risulta mediamente 6 volte più veloce di CPython (l'attuale interprete Python). In ogni caso ritengo che poi alla fine lì dove servono le prestazioni vere si implementa un bel modulo C e via |
|
|
|
|
|
|
#56 | |
|
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
Poi certo restano i soliti GIL, il gc non parallelo/concorrente, la noiosa ignoranza di Van Rossum circa quello che non gli piace... Ma non si può avere tutto. Anni fa lavorai in produzione con Stackless e mi divertii un mondo - peccato davvero non fosse quello il default. Quella sezione è illuminante si. PyPy ha qualcosa come 11 anni. Undici anni... Purtroppo raggiungere certi risultati costa (e ne so qualcosa in prima persona) e non tutti hanno dietro gli investimenti di una Microsoft o Sun (compreso ad esempio OCaml con cui lavoro e a cui ancora manca un parallel gc performante). Ultima modifica di van9 : 27-06-2014 alle 18:51. |
|
|
|
|
|
|
#57 | |
|
Senior Member
Iscritto dal: Sep 2008
Messaggi: 36481
|
Quote:
Comunque per l'autore del topic, io ti consiglierei JAVA, non so che finalità ha la tua domanda ma diventare bravo con il JAVA apre facilmente sbocchi lavorativi, sopratutto sul mobile e lato server, che al momento tirano molto. Noto che hanno citato il C#, altra buona base di partenza sia per la relativa semplicità, sia per l'ottimo IDE, considera che lo sviluppo delle app per WP passa da li (ma anche per Windows). Credo che più che sulla differenza tra i linguaggi e i compilatori (o gli interpreti) dovresti considerare quale linguaggio oggi come oggi è più appetibile. Se poi non ti interessa a livello professionale ma solo amatoriale, probabilmente la migliore soluzione per smanettare è punta al vb.net o c#
__________________
Ryzen 5950x PBO2 - Asus B550m TUF- G.Skill 32GB 3200Mhz - ZOTAC 3080 12GB OC - 990 PRO 1TB - 970 EVO 1TB - 860 EVO 250GB
Asus ROG Ally Z1 Extreme |
|
|
|
|
|
|
#58 | |||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Peccato non posso integrarlo in PythonTools for VisualStudio (e mi pare pure con DreamPie). Quote:
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||
|
|
|
|
|
#59 | ||
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Quote:
Ci sono molti altri linguaggi dinamici che hanno ottenuto ottime performance senza dover ricorrere al C, e non sempre grazie a fondi generosi. Evidentemente gli sviluppatori e la comunita' non sono interessati, ma e' un peccato
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
||
|
|
|
|
|
#60 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Sono interessati, ma a mio avviso sono troppo legati a CPython e all'enorme mole codice (in particolare C) che da esso dipende, e quindi anche dalla compatibilità. Questo frena lo sviluppo di soluzioni alternative e votate alle pure prestazioni. Infatti anche PyPy, pur essendo molto maturo, non viene ancora visto come valido sostituto.
Si potrebbe anche dare una spintarella a CPython (anche se non potrebbe mai raggiungere i livelli di PyPy), perché le idee ci sono (e io ne ho accumulate tante con la mia esperienza con WPython), ma manca il tempo e la voglia di imbarcarsi in un progetto molto complesso e difficile da portare avanti, a causa... del codice già scritto e delle scelte già fatte. Ormai sono 2 anni che non seguo più la mailling list degli sviluppatori, causa cronica mancanza di tempo, ma la mia impressione è che aspettino che qualcuno tiri fuori un nuovo progetto, che funzioni bene e sia abbastanza retrocompatibile con CPython. Per cui... campa cavallo. Parlando di recente con un mio collega di queste problematiche, si chiedeva come mai non fosse possibile realizzare qualcosa di simile al compilatore JIT di LUA, che consente di ottenere eccellenti prestazioni (a volte compete col C!), nonostante il linguaggio non abbia una variegata tipizzazione dei dati (Python è più ricco e, sulla carta, potrebbe meglio beneficiare della type inference). Il tutto, tra l'altro, è stato scritto da una sola persona. Forse questo potrebbe essere un punto di partenza, anche se c'è da dire che Python richiederebbe molto più tempo a causa della maggior complessità del linguaggio. Un'altra cosa molto importante è che, come diceva van9, un altro grosso problema è rappresentato da Guido, che ha una visione diversa di come dovrebbe essere implementato il linguaggio, ed è troppo legato a una concezione "didattica". Lo vediamo, ad esempio, quando si oppone all'introduzione delle tail optimization per le chiamate a funzione. Ecco, questa è una cosa che da una parte apprezzo (perché a me piace che Python sia usato a livello didattico), ma dall'altra trovo sia castrante per chi è consapevole di eventuali rischi e sia disposto ad accollarseli pur di ottenere prestazioni migliori. Spesso nella mailing list ho sentito dire dagli sviluppatori che bisogna essere adulti e prendersi le responsabilità. Ma allora perché questo principio non potrebbe essere applicato anche a CPython, ad esempio abilitando la compilazione dei moduli con l'assunzione che le builtin-in function non possano essere cambiate da nessuno e, quindi, generando codice di gran lunga più ottimizzato quando se ne fa uso (tipo la famigerata funzione len, che per essere invocata si fa una trafila enorme nel codice)? Perché non consentire le tail-optimization per le funzioni? Perché non dare la possibilità di assumere che certe variabili dichiarate nel modulo siano globali, sì, ma nessuno le altererà da fuori dal modulo? E così via, perché di esempi ne potrei fare a bizzeffe. A parte questo, personalmente avrei fatto scelte molto diverse per CPython. Non mi piacciono diverse soluzioni che sono state adottate per tante cose, e mi riferisco in particolare alla struttura di PyObject & discendenti, e a come funziona il main loop della virtual machine (ceval). Per me, quindi, sarebbe meglio cominciare con un progetto nuovo, e procedere incrementalmente implementando man mano le varie caratteristiche del linguaggio. Il problema è che ci vorrebbe troppo tempo. Parlando con Antonio Cuni (uno dei core developer di PyPy) alla recente PyCon, mi diceva che secondo lui ci vorrebbero almeno un paio d'anni per cominciare un progetto del genere da zero. E gli posso credere sulla parola, sia per la sua esperienza sia perché anch'io ho avuto modo di sbatterci la testa. Ma alla fine chi dovrebbe accollarsene l'onere? Questa è la domanda più importante, a mio avviso. Python ormai è un linguaggio mainstream, utilizzato ampiamente da un sacco di gente, di aziende, e tantissime multinazionali. A mio avviso dovrebbero mettere in piedi una task force, cacciando fuori un po' di soldi per risolvere una volta per tutte questo problema. Anche perché le ricadute ci sarebbero sicuramente per tutti, e loro in primis...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:54.




















