Ogni linguaggio ha un campo ottimale nel quale riesce ad esprimenre il massimo delle funzionalità  e della completezza. PHP non fa differenza, basti guardare il successo avuto nello sviluppo web e lo scarso seguito dell'estensione PHP-GTK. E questo non è un caso: lo stesso Python, che ritengo uno dei migliori linguaggi in circolazione per la risoluzione della maggior parte dei problemi, risulta poco utilizzato sul web. (more...)

Continua a leggere Cooperazione tra linguaggi

Categoria: PHP e Open Source

Per chi non lo sapesse (penso moltissime persone) uno dei campi che mi attraggono di più dell'informatica è quello dello sviluppo di compilatori o interpreti. In questi anni ho sviluppato qualche semplicissimo linguaggio di scripting per diletto, ed ho avuto modo di testare e studiare moltissimi linguaggi di programmazione (o presunti tali!).Per qualche tempo ho avuto il piacere di interloquire via email con Marco Pantaleoni, uno sviluppatore che ha inventato qualche anno fa un linguaggio di programmazione chiamato ElastiC. Il linguaggio ha delle feature interessantissime, prese dai linguaggi più interessanti presenti in circolazione (si vedano Python o C) e viene distribuito con un bel po' di librerie interessanti, tra cui una versione di yacc con target il linguaggio stesso ed un porting delle librerie GTK.Il progetto non rilascia più versioni ufficiali da un po' di tempo (la data dell'ultima versione rilasciata sul sito internet risale a qualche anno fa!) ma il progetto su CVS è ancora vivo. Spero non cada nel dimenticatio come moltissimi altri progetti validi. Purtroppo non sono più in contatto con l'autore, ma ritengo il linguaggio veramente interessante e potente, da provare anche solo a livello hobbystico.Se continuerà  a crescere e se riceverà  il supporto che si merita, sono sicuro acquisità  prestigio nel mondo informatico. Io ogni tanto lo utilizzo e mi ci trovo molto bene, se qualcuno fosse interessato penso che l'autore accetterebbe un aiuto o qualche consiglio. In caso di altre novità  vi faccio sapere ...

Continua a leggere Elastic, un altro linguaggio nel futuro informatico?

Categoria: PHP e Open Source

Tags: , ,

Ieri sera ero in pizzeria con un amico che ha iniziato a programmare molto prima che io decidessi di dedicarmi a questa attività . Tra i vari argomenti di cui abbiamo dibattuto quello affrontato più frequentemente riguardava l'utilizzo di editor testuali per lo sviluppo di codice oppure l'utilizzo di IDE.La discussione è nata dopo la lettura degli articoli di DEV che preannunciavano le feature della nuova versione di Visual Studio che, a quanto pare, integrerà  in un'unica suite una serie di strumenti necessari a coprire in modo più o meno completo l'intero processo di sviluppo di un software. Secondo gli ingegneri Microsoft (cosa con cui mi trovo parzialmente d'accordo) il software attualmente non si può più permettere lunghi periodi di sviluppo, altrimenti rischia di essere obsoleto al momento del rilascio. Per questo motivo, a loro parere, un IDE dovrebbe integrare una serie di strumenti che facilitino l'organizzazione e la produzione e, di conseguenza, diminuiscano i tempi di ricerca e sviluppo. (more...)

Continua a leggere Ide o editor ?

Categoria: PHP e Open Source

Stavo continuando i miei esperimenti con OCaml e mi sono imbattuto in un'invenzione molto interessante creata da Nicolas Cannesse: lo script in questione si chiama ODLL e permette di generare librerie dinamiche win32 partendo da codice OCaml. Ho fatto delle prove e devo dire che sono rimasto soddisfatto del risultato: ho provato ad integrare le DLL generate in Python e PHP, ed i risultati sono stati ottimi. Un ottimo strumento per migliorare l'interoperabilità  tra il mondo della programmazione funzionale e quello della programmazione prodecurare o object oriented.Sempre sul sito di Nicolas Cannesse (che per chi non lo sapesse è il creatore di MTASC, un compilatore per ActionScript open source scritto in OCaml) ho trovato altre risorse molto interessanti: ho scoperto che PHPTAL, uno dei template engine più interessanti per PHP, è sviluppato dalla stessa società  per cui lui lavora; ho trovato alcuni script PHP interessanti, tra cui PHP2XMI che permette di generare schemi XMI che rappresentano classi ed interfacce implementate in PHP. Per chi non lo sapesse gli schemi XMI possono essere importati facilmente in programmi di modellazione UML; come se non bastasse l'autore ha sviluppato anche una libreria che permetto l'accesso ad oggetti OLE da OCaml, chiamata OCAM'OLE. Tutti gli script PHP sono sviluppati con la versione 5, quindi, anche se non molto complessi, potrebbero essere uno studio interessante per chi è alle prime armi con la nuova versione del linguaggio.

Continua a leggere Risorse per PHP e OCaml

Categoria: PHP e Open Source

Ieri sera ho formattato per l'ennesima volta il mio portatile. Dato che avevo un po' di tempo mi sono diverito a scaricare le versioni aggiornate dei vari tool installati precedentemente sul mio notebook. Tra questi ho notato che finalmente py2exe, la libreria per Python che estende distutils permettendo la creazione di eseguibili stand alone partendo da script python, ha introdotto la possibilità  di racchiudere l'intero programma in un unico eseguibile.Dico finalmente perchè sono moltissime le richieste di persone che preferiscono avere il proprio programma compatto in un unico eseguibile piuttosto che distribuito su vari file.Personalmente non trovo geniale l'idea di condensare tutto in un unico file: a parte il fatto che non ne vedo assolutamente il motivo, una soluzione del genere limita la possibilità  di patch o update di piccole dimensioni per i programmi. Rimane comunque il fatto che py2exe è un ottimo tool che facilita la distribuzione dei programmi python in un ambiente (Windows) utilizzato spesso da persone con poche competenze informatiche.

Continua a leggere Buone nuove per py2exe

Categoria: PHP e Open Source

Tags: ,

Da qualche tempo girano sulla rete varie discussioni riguardo l'implementazione della nuova major version di PHP. C'è chi dice verrà sviluppata per compilare bytecode per Parrot, la virtual machine open source che si propone come ottimo sistema con l'obiettivo di far cooperare diversi linguaggi tra loro (l'implementazione standard è per Perl ma c'è chi ha già pensato ad implementare il compilatore per Python).Dato che a pochi eletti è dato sapere cosa accadrà realmente, ci limitiamo a leggere alcuni ragionamenti scovati per la rete: in questa discussione, iniziata da Rasmus Lerdorf un mesetto fa, si parla di quali feature ormai obsolete eliminare in PHP6; anche Marco Tabini ragiona su questo argomento traendo delle interessanti conclusioni. Il problema di tutte queste innovazioni è che, purtroppo, comporteranno l'incompatibilità degli attuali script PHP. C'è da dire che alcune innovazioni, quale il supporto per Unicode, sono necessarie per tenere passo con i concorrenti. Staremo a vedere ...

Continua a leggere Discutendo PHP6

Categoria: PHP e Open Source

CodeFetch

13 Sep

Navigando per la rete ho trovato questo CodeFetch. Il sito permette di effettuare ricerche avanzate sui code snippet che sono stati pubblicati a corredo di vari manuali. Le ricerche effettuate possono essere molto complesse, e possono essere eseguite su moltissimi linguaggi di programmazione differenti tra cui PHP, Perl, Python. L'obiettivo principale del sito è quello di vendere libri, ma il motore di ricerca può sempre fare comodo. Da tenere d'occhio!

Continua a leggere CodeFetch

Categoria: PHP e Open Source

Spesso mi capita di dover testare delle librerie o il funzionamento particolare di alcune funzioni in determinate circostanze. Solitamente creo il mio file PHP e lo faccio eseguire dal mio webserver e poi controllo il risultato. Pratica comune, direi, ma da quando ho iniziato ad utilizzare Python mi trovo spesso a rimpiangere la sua comoda command line.Stamattina, visto che avevo qualche minuto di tempo, mi sono messo con il mio iBook alla mano ed ho creato un semplice script che emula una shell per PHP.Lo script è molto semplice e sfrutta la funzione eval per valutare l'espressione immessa dall'utente. Purtroppo soffre di alcuni problemi (lascio a qualcun altro il compito di risolverli) dovuti al motore di PHP o a piccole inesattezze che possono essere corrette facilmente. La shell accetta in input un'espressione valida PHP, la esegue e restituisce in output il valore restituito dall'espressione. In caso vegano scritti costrutti sintattici particolari, quali classi, cicli, istruzioni condizionali, la shell si occupa di immagazzinare in memoria l'intero blocco di istruzioni e di eseguirlo. La shell indenta automaticamente il codice se trova una parentesi graffa alla fine della riga, quindi è necessario seguire delle semplici regole sintattiche per far funzionare correttamente la shell. Siete liberi di modificare e correggere il codice. (more...)

Continua a leggere Una shell in PHP

Categoria: PHP e Open Source

In questi giorni mi sto occupando di sviluppare l'interfaccia grafica della nuova versione di SEPY, un editor scritto in Python utilizzato per gestire codice AS.All'inizio ho optato per utilizzare nuovamente i widget nativi, dato che la libreria wxPython che utilizziamo per interfacciarci con il GUI Engine del sistema operativo risulta molto comoda in questi casi. Dopo qualche tempo però, ho voluto provare ad implementare manualmente alcuni widget, in modo da fornire loro un aspetto personalizzato ed accattivante.Mi ero preparato a dover affrontare ore di lavoro per risolvere problemi di ogni genere, ed invece ho scoperto che l'obiettivo che mi ero prefissato non era affatto difficile da raggiungere. wxPython fornisce l'oggetto wxDC che può essere utilizzato in diverse situazioni al fine di disegnare immagini, testo e forme geometriche più o meno complesse su una finestra. Combinado questo oggetto con il sistema di eventi della libreria, sviluppare i miei widget è stato quasi un gioco da ragazzi.Ho provato anche a far girare il programma su Linux e Mac OSX: ottimi risultati, omogeneità del layout e nessun errore!All'interno della libreria wxPython è possibile trovare moltissimi esempi di widget personalizzati: wxOGL, libreria di cui recentemente è stato fatto il porting completo in Python, ne è un ottimo esempio. Anche il programma pySketch, incluso nei demo di wxPython, utilizza l'oggetto wxDC e le sue estensioni per visualizzare i disegni fatti dall'utente.L'unica nota dolente è che purtroppo le cose si complicano nel momento in cui si ritiene necessario apportare delle ottimizzazioni al processo di rendering dei widget. Però questa è un'altra storia ...

Continua a leggere Widget personalizzati con wxPython

Categoria: PHP e Open Source

Unicode è un sistema che permette di associare a molti caratteri e simboli un numero univoco indipendente dalla lingua, dalla piattaforma e dall'applicativo. Con il passare degli anni si è affermato come standard e molti linguaggi hanno iniziato ad includerene il supporto nativamente. Si pensi per esempio a Python o a Java che includono un ottimo set di librerie per la gestione unicode.Purtroppo PHP non sembra voler seguire la moda, e continua a gestire le stringhe come se fossero tutte sequenze di caratteri ascii, lasciando all'utente il dovere di implementare sistemi per la gestione di lingue che richiedono charset multibyte. A dir la verità tra le estensioni di PHP troviamo qualche libreria utile per la gestione di queste situazioni (si pensi alla libreria mbstring o al supporto per le librerie iconv), ma spesso gli hoster non ne abilitano il supporto.In molti si sono mossi al fine di convincere il team di sviluppo di PHP ad includere il supporto nativo per unicode, ma a quanto pare l'operazione sembra essere più complicata del previsto e comunque gli sviluppatori sono frenati dai problemi che portò a suo tempo l'implementazione del supporto nativo per unicode in Perl.Fortunatamente qualcosa sembra muoversi all'orizzonte: probabilmente PHP 6 si baserà su Parrot, un'efficiente virtual machine multipiattaforma creata per supportare i moderni linguaggi di scripting. La VM in questione supporta nativamente unicode, quindi molti dei nostri problemi potrebbero risolversi tra qualche anno ...Speriamo che tutto avanzi come previsto, e nel frattempo continuiamo ad occuparci dell'implementazione dei nostri sistemi hand-made per la gestione dello unicode.

Continua a leggere Supporto nativo per Unicode

Categoria: PHP e Open Source