Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese di utilizzo intensivo e l'analisi di oltre 50 scatti, l'articolo offre una panoramica approfondita di Nintendo Switch 2. Vengono esaminate le caratteristiche che la definiscono, con un focus sulle nuove funzionalità e un riepilogo dettagliato delle specifiche tecniche che ne determinano le prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-06-2014, 17:55   #61
ingframin
Senior Member
 
L'Avatar di ingframin
 
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
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...
WPython era un progetto interessante, peccato che non abbia una community attiva di sviluppatori...
Pypy l'ho provato ma non è che mi abbia esaltato... Ho notato ad esempio che se il codice usa cose tipo struct.unpack(...) non va per niente più veloce di CPython, anzi... Anche codice che si interfaccia con moduli C non va meglio (pygame ). Sicuramente è promettente ma direi che per sfruttarne appieno le potenzialità bisognerebbe cominciare a scrivere in python puro e risolvere il limite di velocità imposto dalle chiamate a moduli scritti in C (o evitarle proprio...).
Non sapevo che fosse guido ad opporsi alla tail optimization...
Inoltre secondo me si potrebbero prendere tante idee da Lisp per rendere python un po'migliore.
La cosa che più mi fa rabbia è che non ho abbastanza conoscenze informatiche per partecipare attivamente allo sviluppo!
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli!
ingframin è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2014, 19:00   #62
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
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.
Capisco la volonta' di mantere la chiarezza e da debuggabilita', nula vieterebbe pero' di aggiungere ottimizzazioni "opt-in" da usare solo quando uno ha imparato, o vuole spremere l'ultimo ciclo.
In Common Lisp ad esempio uno puo' dichiare la priorita' tra "speed" "debug", "safety".
Se speed e' piu' importante di safety il compilatore puo' decidere di non effettuare il controllo sui limiti di un array, oppure optare per effettuare la tail call di una chiamata ricorsiva se "speed" > "debug". Puoi pure deciderlo funzione per funzione. Questo mi sembrerebbe un buon compromesso.
__________________
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2014, 22:04   #63
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da ingframin Guarda i messaggi
WPython era un progetto interessante, peccato che non abbia una community attiva di sviluppatori...
Ero il solo: altro che community.
Quote:
Pypy l'ho provato ma non è che mi abbia esaltato... Ho notato ad esempio che se il codice usa cose tipo struct.unpack(...) non va per niente più veloce di CPython, anzi... Anche codice che si interfaccia con moduli C non va meglio (pygame ).
E' un problema noto di PyPy, che ha difficoltà con ctypes. Infatti ha proposto un altro metodo d'interfacciamento col codice C, chiamato cffi se non ricordo male, che oltre a essere di gran lunga più veloce con PyPy è fatto anche molto meglio a livello di funzionamento e API.

Ne ha parlato sempre Antonio Cuni all'ultima PyCon. Forse lo ricordi.
Quote:
Sicuramente è promettente ma direi che per sfruttarne appieno le potenzialità bisognerebbe cominciare a scrivere in python puro e risolvere il limite di velocità imposto dalle chiamate a moduli scritti in C (o evitarle proprio...).
Se CPython fosse (molto) più veloce si potrebbe pensare di riscrivere tanti moduli in Python. Infatti è quello che fanno con PyPy.
Quote:
Non sapevo che fosse guido ad opporsi alla tail optimization...
Tail Recursion Elimination
Final Words on Tail Calls
Quote:
Inoltre secondo me si potrebbero prendere tante idee da Lisp per rendere python un po'migliore.
Il LISP lo conosco poco (ho studiato Scheme all'università, più che altro), e non so nulla delle implementazioni.
Quote:
La cosa che più mi fa rabbia è che non ho abbastanza conoscenze informatiche per partecipare attivamente allo sviluppo!
Beh, c'è sempre tempo per imparare. Anzi, mettendo le man in pasta in genere si impara anche più velocemente.
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Capisco la volonta' di mantere la chiarezza e da debuggabilita',
Sì, è esattamente questa la sua posizione.
Quote:
nula vieterebbe pero' di aggiungere ottimizzazioni "opt-in" da usare solo quando uno ha imparato, o vuole spremere l'ultimo ciclo.
In Common Lisp ad esempio uno puo' dichiare la priorita' tra "speed" "debug", "safety".
Se speed e' piu' importante di safety il compilatore puo' decidere di non effettuare il controllo sui limiti di un array, oppure optare per effettuare la tail call di una chiamata ricorsiva se "speed" > "debug". Puoi pure deciderlo funzione per funzione. Questo mi sembrerebbe un buon compromesso.
Proposi qualcosa del genere (in stile pythonico) un po' di anni fa, in risposta a una mail nella mailing list degli sviluppatori. Ma la proposta non fu apprezzata...
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2014, 14:18   #64
van9
Member
 
Iscritto dal: Nov 2012
Messaggi: 126
Quote:
Originariamente inviato da marco.r Guarda i messaggi
E' l'ecosistema nel suo complesso che conta. Puoi avere una linguaggio semplice come Java ma poi se le librerie e i framework principali sono immense torri di babele dove non trovi un singolo programmatore che le usi o le conosca allo stesso modo.
Il punto però era l'inerente complessità del C++, in risposta a "Non capisco inoltre tutta questa paura del c++". Poi volendo si può discutere anche di altro - tra Java e C++ in quanto a linguaggi/ecosistemi è un bel testa a testa su chi storicamente ha fatto e continua a fare di peggio. Personalmente saprei dire con certezza solo un tot (di negativo, ofc) sull'ecosistema Java/JVM perché lavoro a tempo pieno con altro (OCaml,Haskell,C,C++ e ultimamente F#) e quello che ho visto in passato mi è bastato e avanzato.

Ultima modifica di van9 : 01-07-2014 alle 14:20.
van9 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2014, 14:26   #65
mone.java
Senior Member
 
L'Avatar di mone.java
 
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
Quote:
Originariamente inviato da van9 Guarda i messaggi
Poi volendo si può discutere anche di altro - tra Java e C++ in quanto a linguaggi/ecosistemi è un bel testa a testa su chi storicamente ha fatto e continua a fare di peggio. Personalmente saprei dire con certezza solo un tot (di negativo, ofc) sull'ecosistema Java/JVM
Ovvero?
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
mone.java è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2014, 21:45   #66
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13826
Impara Swift e taglia la testa al toro
__________________
GPU Compiler Engineer

Ultima modifica di AnonimoVeneziano : 01-07-2014 alle 23:15.
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2014, 13:53   #67
van9
Member
 
Iscritto dal: Nov 2012
Messaggi: 126
Quote:
Originariamente inviato da mone.java Guarda i messaggi
Ovvero?
Difficile risponderti senza incorrere in una sorta di "blub paradox" per dirla alla Graham.
van9 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
vivo X200 FE: il top di gamma si è fatto tascabile? vivo X200 FE: il top di gamma si è fatto ...
Elon Musk apre un ristorante: ecco il pr...
Stranger Things 5, ecco il primo teaser ...
SpaceX ha lanciato con un razzo spaziale...
L'UE punta forte sull'IA e mette 200 mil...
Hanoi dice addio ai motorini a benzina: ...
AMD Ryzen AI 5 330: 4 core e NPU da 50 T...
Tesla sta per lanciare la Model YL: pass...
Scegliere la cartuccia giusta: i consigl...
'Non è un nuovo gioco, ma lo semb...
Google Discover con riassunti generati d...
Emmy 2025: HBO sbalordisce tutti, Apple ...
La scommessa degli ex OpenAI: Thinking M...
Apple MLX si apre a CUDA: in arrivo il s...
TOP offerte Amazon: iPhone 16 Pro -270€,...
Il telescopio spaziale James Webb potreb...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:06.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v