Questi programmi hanno accesso a gran parte dell’attuale ecosistema Python e possono interagire direttamente con il Document Object Model (DOM) del browser. Inoltre, ha dato dimostrazioni piuttosto rivelatrici come parte del suo spettacolo.
Wang ha iniziato a presentare se stesso e l’azienda che gestisce, Anaconda, che ha co-fondato con Travis Oliphant dieci anni fa. Oliphant è il creatore di NumPy e uno dei fondatori di SciPy, entrambi pietre miliari del sistema di calcolo scientifico Python. Anaconda è una distribuzione dei linguaggi di programmazione Python e R per il calcolo scientifico (data science, applicazioni di machine learning, elaborazione dati su larga scala, analisi predittiva, ecc.), che mira a semplificare la gestione e l’implementazione dei pacchetti.
La distribuzione include pacchetti di data science adatti per Windows, Linux e macOS. Sviluppato e mantenuto da Anaconda, Inc. Fondata da Peter Wang e Travis Oliphant nel 2012. Come produttore per Anaconda Inc. , noto anche come Anaconda Distribution o Anaconda Individual Edition, mentre gli altri prodotti dell’azienda sono Anaconda Team Edition e Anaconda Enterprise Edition, entrambi a pagamento.
Ci sono diversi motivi per cui Anaconda e Olivant stanno concentrando i loro sforzi su Python, incluso il fatto che questo linguaggio è accessibile anche a chi non ha un background informatico. Un altro punto a suo favore è che la comunità Python è generalmente accogliente e divertente con cui lavorare. Questo è un punto molto importante se vogliamo continuare ad espandere la base di utenti.
Anaconda ha creato una serie di strumenti diversi ampiamente utilizzati nella comunità e ha anche fondato l’organizzazione no-profit NumFOCUS e le conferenze PyData.
Ma c’è un altro aspetto del linguaggio che lo rende così desiderabile dal suo punto di vista: può essere esteso con estensioni binarie che utilizzano un’API scritta in C, ma accessibile da altri linguaggi. Wang confronta il Python con una Honda Civic con viti di montaggio per trasmissione a curvatura. I bambini possono imparare la lingua, ha detto Wang, che possono quindi aprire lo stelo e installare su capsule warp che consentono al codice di funzionare più velocemente di C o C++ in alcuni casi.
Questo aspetto a volte viene trascurato, ma significa che Python può essere utilizzato in un modo che altri linguaggi simili non possono. Non è solo come Node, non è solo un’alternativa a Ruby. Ha detto che il motivo per cui Python è stato rilevato dalle società di Wall Street 10 o 15 anni fa è a causa di questa capacità di deformarsi.
Che cosa manca
Se è vero che Anaconda mira a fornire una distribuzione Python, non è meno vero che installare tutto il necessario per Python è estremamente difficile. C’è un gran numero di pacchetti nel Python Package Index (PyPI), ma è difficile farli funzionare insieme. Il 20% dei programmatori Python ha una scarsa esperienza di lavoro con il linguaggio. Ci sono molti strumenti diversi là fuori per aiutare a risolvere questo problema, ma sono tutti circa l’80%, ha detto, il che significa che le persone hanno una brutta esperienza il 20% delle volte, e non importa. “Non bello.”
È strano che per il linguaggio più diffuso al mondo, come Python, sia difficile scrivere e distribuire applicazioni utilizzando un’interfaccia utente. Ad esempio, non puoi scrivere app iOS usando Python. Non è possibile creare un’app per Windows, il desktop aziendale più diffuso, con un’interfaccia utente; Wang ha detto che anche se utilizzi un’interfaccia web front-end, dovresti scrivere JavaScript, CSS e HTML.
Tuttavia, i risultati di questi due punti, ovvero le difficoltà associate all’assemblaggio e alla creazione di interfacce utente, rendono difficile condividere il suo lavoro con gli altri. Per coloro che vedono Docker come una soluzione a questo problema, Wang risponde che quando crei un’app con Docker, impacchetta un disco rigido e lo invii a qualcuno. Questo non può essere il nostro modo per convincere milioni di persone a usare queste sostanze.
In larga misura, Python è una vittima del proprio successo. È un ottimo linguaggio di collegamento, ma ciò significa che è correlato a tutte queste cose. Ha detto che gran parte di ciò che facciamo nell’informatica è legato alle idee e alle architetture degli anni ’70 e ’80, a cominciare dal linguaggio C e dal modello di processo Unix; Include anche cose come catene di strumenti e protocolli di interconnessione come TCP/IP. Ha detto che le basi di Python stesso possono essere insegnate a chiunque in un fine settimana, ma ci vuole un grande sforzo per portarli al punto in cui possono creare un’app eseguibile per Windows o un’app iOS per iPad. Possiamo liberare Python da tutto questo?
Python e WebAssembly
Wang ha affermato che il browser web ha chiaramente vinto la guerra del sistema operativo. Non sa se il 2022 sarà l’anno del desktop Linux, (non lo sarà) ma sa che ci saranno molti browser sui desktop. JavaScript è il re di alcuni sondaggi sulla popolarità delle lingue, poiché è la lingua madre del browser. Quindi, se vogliamo entrare in quest’area, ha detto, WebAssembly (o Wasm) è chiaramente la risposta giusta.
WebAssembly è un punto di svolta fondamentale. Questo è un set di istruzioni della CPU virtuale che è recentemente diventato lo standard W3C; Ha uno spazio di indirizzi a 32 bit e può eseguire operazioni aritmetiche a 64 bit. Esiste uno strumento di compilazione, Emscripten, che può essere utilizzato per tradurre la maggior parte del codice C e C++ in WebAssembly, che può quindi essere eseguito nel browser. Secondo Wang, WebAssembly è ben supportato dai browser, inclusi i browser mobili.
CPython è, ovviamente, un programma C e gran parte dello stack digitale di Python è scritto in C o C++. Negli ultimi anni, progetti come JupyterLite hanno accumulato grandi porzioni dello stack scientifico e numerico di Python per puntare su WebAssembly.
Accedendo al sito Web di Pyodide, è possibile ottenere un ciclo di lettura, valutazione e stampa (REPL) Python nel browser. Da queste tre graziose parentesi quadre è possibile importare NumPy e panda. Dal sito Web JupyterLite è possibile ottenere un notebook nel browser eseguendo JupyterLab sul sistema locale.
Christian Hymes, principale sviluppatore Python, ha tenuto discorsi e ha lavorato molto per convincere CPython a lavorare con WebAssembly. Wang ha detto che presto sarà una piattaforma supportata di livello 2 per CPython. WebAssembly fornisce semplicemente un’altra architettura di elaborazione, oltre a x86, Arm, ecc., che un progetto CPython può indirizzare.
PyScript
Wang e altri membri di Anaconda hanno esaminato il lavoro svolto e hanno pensato a come renderlo accessibile a più persone. A tal fine, Wang ha annunciato PyScript, ma lo ha fatto codificando una demo “hello world” dal vivo dal palco della conferenza. Era la sua prima conferenza PyCon, e forse l’ultima”, ha detto con una risata, mentre scriveva un breve file HTML che caricava il file pyscript.js da pyscript.net in un tag.
1 | <py-script> print("Hello PyCon 2022!") </py-script> |
Quindi ha fatto doppio clic sul file e il saluto è apparso nella scheda del browser; Che è stato accolto da un applauso. Ma ha detto che è tutto solo HTML, quindi ha avvolto il codice sopra in un tag e lo ha ricaricato. In questi giorni, ovviamente, il tag è stato rimosso dall'HTML, forse purtroppo; Ora devo spiegare ai bambini che non c'è il faro.
Quindi ha aggiunto una funzione lampeggiante al codice PyScript e ha mostrato alcune altre cose. Creato da
Quindi PyScript è un framework per la creazione di applicazioni Python avanzate nel browser. Consente l'incorporamento di Python e HTML, fornisce l'accesso completo al DOM e garantisce l'accesso al codice alle librerie JavaScript, in entrambe le direzioni. Il codice Python può chiamare JavaScript o essere invocato da JavaScript. Quindi tutta la logica e il codice dell'applicazione possono essere in una lingua, nel browser, senza la necessità di un server web. È possibile inserire un file HTML su una chiavetta USB e darlo ad un amico. È necessario scaricare PyScript stesso, ma questo viene fatto da un file HTML con estensione .
Wang ha detto che PyScript non è una specie di fork in CPython, è lo stesso codice su cui i partecipanti stavano lavorando sui loro laptop e server, ed è stato appena compilato per Wasm. Include tutto il lavoro che Pyodide ha svolto per far funzionare gli enormi pacchetti di dati digitali e scientifici anche per Wasm. PyScript è un framework di opinione che fornisce una Foreign Functions Interface (FFI) per parlare con JavaScript e il DOM; Python ha già integrato C, C++ e Fortran, quindi JavaScript può anche essere aggiunto all'elenco. È davvero un computer serverless.
fonte : LWN
E tu?
Cosa ne pensi di PyScript?
Pensi che PyScript possa essere buono come JavaScript per essere eseguito in un browser web?
Guarda anche:
Python 3.11 migliorerà la posizione dei bug nelle tracce e porterà nuove funzionalità