Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

Scritto da: -

ZeitgeistZeitgeist, il logger degli eventi di sistema fortemente voluto da Canonical, è stato tradotto in Vala. La riscrittura coincide con l’esordio della versione 0.9 (attualmente in fase alfa). Finora, Zeitgeist è stato sviluppato in Python: la traduzione comporta tanto una serie di benefici, quanto alcuni bug da risolvere al più presto.

Michal Hruby ha spiegato che il cambiamento comporta una riduzione dei tempi d’avvio di Zeitgeist. Per il resto, il database e la Application Programming Interface (API) per D–Bus sono rimasti invariati. Il nuovo Zeitgeist richiederà soltanto un aggiornamento di GNOME Activity Journal, che risulterebbe compromesso dalla transizione.

Concepito per Unity, Zeitgeist progredisce su GNOME Shell: il passaggio a Vala evidenzia il costante avvicinamento, a livello di codice, tra le interfacce. Tuttavia, la transizione ha corrotto la Full–Text Search (FTS) di Zeitgeist e il porting su KDE non beneficerà dell’utilizzo di Vala. Il linguaggio è una “prerogativa” di GNOME.

Via | Seif Lotfy

Vota l'articolo:
3.43 su 5.00 basato su 7 voti.  
 
Aggiorna
  • nickname Commento numero 1 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    Sarebbe una buona occasione per rendere questo ottimo linguaggio più cross-platform, permettendogli di diffondersi molto di più. Scritto il Date —

  • nickname Commento numero 2 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @abral #1 Scusa cos'ha Vala in più di Python? Di meno ha una sintassi più scomoda, più "di basso livello", ha una "libreria standard" n volte inferiore a Python, non è portabile fuori da gobject, usa un meccanismo di traduzione in C che ricorda molto i vecchi C++. Perché devo inventarmi una specie di C# che non usi mono quando ho già dal eoni il Python? Cos'è le code-monkeys mono non hanno abbastanza neuroni per sostituire le parentesi coi tab o this con self?! Ps poiché vala usa GObject *non può essere multipiattaforma* senza avere dietro tutto GI… Scritto il Date —

  • nickname Commento numero 3 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: romfladef

    Per dirla alla Fantozzi, secondo me è stata «una c***ta pazzesca». Scritto il Date —

  • nickname Commento numero 4 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    Tanto valeva riscrivere tutto in COBOL…. :-) Scritto il Date —

  • nickname Commento numero 5 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: barra

    @Federico: tra i vantaggi ti sei dimenticato di riportare il più importante: l'utilizzo di memoria cala DRASTICAMENTE nel passaggio a Vala: It has a noticeable faster start-up time, and less memory consumption than before. A normal Zeitgeist instance that used to run for 2 days using 15-20 MB now uses around 3.5 – 7 MB (this is on my computer though). Detto questo non so se sarebbe stato possibile ottenere le stesse prestazioni ottimizzando il codice python o se la scelta di un linguaggio "più standard" (c++?) avrebbe prodotto le stesse prestazioni senza castrare la portabilità (se ben ricordo Vala non gira su tutto il mondo *nix) ma certamente avranno valutato vantaggi e svantaggi di questa scelta! Scritto il Date —

  • nickname Commento numero 6 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: romfladef

    @barra L'ho omesso per caso… tuttavia, considerando quanto "succhia" Ubuntu di suo, diventa un vantaggio relativo. Credo che l'intenzione fosse proprio una migliore integrazione con GObject, però limita molto l'utilizzo di Zeitgeist a GNOME/Unity. Tra tutte le scelte che potevano operare, Vala temo sia la peggiore! Scritto il Date —

  • nickname Commento numero 7 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: barra

    Beh alla fine soldi e risorse per sviluppare Zeitgeist sono arrivati fino ad ora da RH, Canonical e Collabora, tutta gente che campa su Gnome! Scritto il Date —

  • nickname Commento numero 8 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: romfladef

    Certo, però il porting per KDE è supportato ufficialmente dal team… e con Vala non penso andrà a compimento. Non vorrei che Vala fosse una soluzione di comodo per la dashboard di gEdit, che eprsonalmente mi domando a che serva davvero… in più mi chiedo che fine farà la FTS: senza funzioni di ricerca (adesso sono ancora in Python) a che serve Zeitgeist? Mah, è un "pastrocchio"! Perché sia convincente dovremo vedere come si comporterà: è ancora una alfa e il team non ha aggiornato i pacchetti nel PPA su Launchpad. Scritto il Date —

  • nickname Commento numero 9 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: romfladef

    *personalmente (non eprsonalmente) Scritto il Date —

  • nickname Commento numero 10 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    Personalmente non credo che ci siano problemi su kde. Vala, da quello che ho capito, è un linguaggio che viene poi tradotto in C, quindi per KDE si può semplicemente compilare il codice dopo che è stato tradotto in C… La dipendenza dalle Gtk, dopo la traduzione in C, si ha solo se si usano librerie Gtk… Scritto il Date —

  • nickname Commento numero 11 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: romfladef

    Indubbiamente, però significa avere un linguaggio in più che occupa spazio e risorse… inutili a KDE. Mi auguro che nessuno, a meno che non abbia esigenze di sviluppo, mantenga due desktop environment insieme: soprattutto su Ubuntu è un'esperienza che sconsiglio (ebbene sì, l'ho fatto… forse addirittura tre contemporaneamente). Perché il problema non è tanto utilizzare Vala per <em>una</em> applicazione di Zeitgeist. Sarà proprio <em>tutto</em> Zeitgeist a passare in Vala. Per quanto mi riguarda, la ritengo una scelta inopportuna! Scritto il Date —

  • nickname Commento numero 12 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @11: Ed invece no! Sono d'accordo sulle tue considerazioni sui desktop multipli però, per come la vedo io, se installi ad esempio kubuntu, vala non lo vedi perché hai già i binari belli e pronti. Il problema sarebbe al limite quando fai una compilazione da codice sorgente (arch, chakra,…). Però, anche in questo caso, non ci dovrebbero essere problemi perché vala non viene compilato direttamente, ma passa attraverso il C. Quindi, se gli sviluppatori rendono disponibile anche la versione in C, è sufficiente avere il gcc per fare la compilazione. In pratica anche in questo caso vala è del tutto trasparente. In più, sempre da quello che so, zeit non usa le gtk, quindi non si avrebbe bisogno neanche delle librerie. Ammesso che comunque questo non sia vero, bisogna distinguere il DE dal framework usato per realizzarlo: per usare zeit, al limite si avrà bisogno del framework non di Gnome… Ad esempio, per usare un app kde su gnome, c'è bisogno delle Qt e delle kdelibs (in futuro si chiameranno kde framework 5), che complessivamente in ram non occuperanno più di 15MB (vado a memoria): una quantità pari a meno dell'1% della Ram totale della maggior parte dei PC e, quindi, una quantità del tutto trascurabile… Per zeit, nel caso peggiore, i valori non saranno molto diversi. Scritto il Date —

  • nickname Commento numero 13 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @barra: Spero davvero che non abbiamo riscritto tutto solo per risparmiare quella decina di MB, altrimenti sarebbero da licenziare… Scritto il Date —

  • nickname Commento numero 14 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @ri.p: non l'avranno fatto solo per quello, penso che l'abbiano fatto principalmente per una maggiore integrazione con GObject. Comunque il passaggio ad un linguaggio ad un livello più basso (almeno in questo caso, ndr) non permette solo di avere un consumo di memoria minore, ma anche delle prestazioni migliori. Ricordate sempre che GNOME shell e Unity sono due 2 touch-oriented e, al giorno d'oggi non esiste nessun SoC ARM che ha MIPS paragonabili ad un Cess-Atom single core , quindi in questi casi qualsiasi cosa viene riscritta in linguaggi più prestanti è sempre benvoluta. Scritto il Date —

  • nickname Commento numero 15 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    premesso che comunque non mi serve, mi sembra un'ottima idea, vala è compilato mentre python è interpretato e quindi sia le prestazioni che il consumo di ram che i tempi d'avvio dovrebbero beneficiarne. Scritto il Date —

  • nickname Commento numero 16 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    Per un tool di sistema questa conversione ha senso. Il codice vala viene trasformato in codice C e compilato, quindi abbiamo performance di un compilato C, meno memoria consumata, tempi di avvio più rapidi. Di contro un linguaggio più di basso livello, una gestione scomoda dei week reference, una dipendenza da gobject, problemi a portarlo su altre distribuzioni visto che spesso le release di vala sono incompatibili anche con quella immediatamente precedente, e nei repository delle varie distribuzioni ci sono versioni di vala molto differenti tra loro. Per un programma UI che il 99% del tempo resta in attesa di un input utente o di dati da db le conversioni da un qualsiasi linguaggio ad un altro hanno ben poco senso, per tool di sistema ne può valere la pena, anche se mi viene da chiedere perché allora non scriverselo direttamente in C o C++.. ….. Scritto il Date —

  • nickname Commento numero 17 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: 0xdeadbeef

    Un progetto scritto di recente deve già venire riscritto in un altro linguaggio per via del runtime poco consono al desktop. Ma come, non ce l'aveva più lungo python? Non doveva essere la Panacea per tutti i mali? Non doveva esser meglio infilarlo dappertutto? <br />Comunque complimenti a Lotfy che magari sbaglierà, ma almeno fa qualcosa e impara dagli errori. Al contrario di certi tuttologi che stilano classifiche dei linguaggi senza averne mai usato uno. Scritto il Date —

  • nickname Commento numero 18 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @barra #5 Ahem, Vala in termini di performance non è superiore al python e l'utilizzo di memoria tolti circa 9Mb dalla pvm, è sostanzialmente uguale, se poi la tua app era scritta *peggio* prima della riscrittura in un altro linguaggio rispetto al dopo il discorso cambia un po'… Vala l'unico "vantaggio" che ha è traduce il codice vala in C e lo compila con un compilatore tradizionale, cosa molto simile a pycc che vine in genere ben poco usato perché se da un lato di da un binario nativo dall'altro toglie il vantaggio del python come linguaggio interpretato… Sulla portabilità Vala è legato a GObject ovvero alle GTk3, quindi va solo dove vanno le GTk3…. @erik_ilrosso #16 Ocio che vala non è come il C; quello che compili dal codice C generato da valac è *molto* più grosso di un programma C semplice! E per di più si porta dietro le GTk3, cosa che python fa *solo se vuoi*. Scritto il Date —

  • nickname Commento numero 19 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: barra

    @Kim: i programmi 100% python sono più di norma più pesanti dei concorrenti scritti con altri linguaggi (exaile ad esempio) e googlando un poco non è difficile trovarne conferma. Inoltre ZT aveva già avuto 2 riscritture (quasi) complete, la prima versione era scritta da cani e poi è migliorata grazie a 2 cose: Seif non è più solo e Seif non mette più mano al codice "core" ( :D )! Su Zeitgeist lavorano ottimi sviluppatori e non vedo come si possa affermare che TECNICAMENTE la scelta possa essere sbagliata (lasciando perdere kde e tutto il resto) Scritto il Date —

  • nickname Commento numero 20 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: 0xdeadbeef

    <blockquote>Ps poiché vala usa GObject *non può essere multipiattaforma* senza avere dietro tutto GI…</blockquote>Eh? <blockquote>se da un lato di da un binario nativo dall’altro toglie il vantaggio del python come linguaggio interpretato…</blockquote> Anche Vala può essere interpretato. Sebbene non mi sembri una buona idea per un'applicazione desktop. <blockquote>E per di più si porta dietro le GTk3, cosa che python fa *solo se vuoi*.</blockquote>Assolutamente no. Vala dipende unicamente da GLib. E il pacchetto GLib contiene GLib, GObject, GThread, GIO e GModule. Insomma, un runtime completo che astrae la piattaforma. Non c'è né GTK+ né alcuna dipendenza su di esso. In caso contrario sono i packager ad aver fatto qualche casino. Scritto il Date —

  • nickname Commento numero 21 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @0xdeadbeef: concordo con tutto, e aggiungerei che tutti i linguaggi possono essere sia interpretati che compilati, solo che i linguaggi interpretati (e che quindi usano quella che viene chiamata Virtual Machine) avrebbero un vantaggio prestazionale nullo o talmente minimo da rendere inutile la compilazione "in toto". Scritto il Date —

  • nickname Commento numero 22 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    Ho chiesto sul blog di Lofty cosa sarebbe cambiato per kde. Questo è quello che mi hanno risposto: [quote] As I can see, none. This daemon package actually reuses our other dependencies itself. Be lest assured. No API breakage or new depdendencies [\quote] Scritto il Date —

  • nickname Commento numero 23 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: ekerazha

    Forse il mondo si sta raddrizzando… Python è un aborto con troppo hype… Scritto il Date —

  • nickname Commento numero 24 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @Kim Allamandola: Vala in termini di performance è superiore a Python. Semplicemente perchè Python usa una Virtual Machine quindi il bytecode derivato dalla compilazione deve essere ricompilato per l'architettura su cui ci si basa. E tutto questo avviene al momento del lancio dell'applicazione. L'unico modo per migliorare le prestazioni di un programma interpretato (senza cambiare la macchina ovviamente) è includere il JIT, il quale esiste per Python ma non è tutto il codice ad essere compilato al momento, ma solo una larga parte parte, portando quindi a ben pochi vantaggi. Scritto il Date —

  • nickname Commento numero 25 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @0xdeadbeef Sorry linkare le GTk è colpa di chi impacchetta, per la frase GObject non può essere multipiattaforma… Bé volevo dire Vala non può essere multi piattaforma giacché vuole GI, Python gira nativamente ovunque da anni anche sui vecchi Symbiam S60… La cosa che mi da più fastidio cmq è la scomodità del linguaggio: Python vince sopratutto perché *è fottutamente facile* sia da scrivere che da leggere, si può leggere un programma Python senza saper nulla di Python! (bé quasi). Perché il perl è sempre meno diffuso? Perché Perl6 è sempre in attesa? Perché è "poco" OO? No! Perché ha una sintassi complessa che porta gli sviluppatori alle prime armi a *faticare* per capire cosa fa un listato di poche righe e porta anche gli habitueé ad spendere molto tempo a decodificare gli shourtcut del linguaggio… Il Python all'opposto per essendo un pelo meno stringato del perl, un po' meno del ruby (che ha altri problemi, leggi gestione interna dei charset, interprete più indietro ecc) ma è fottutamente comodo. Il Vala come sintassi non è comodo per un cavolo, né più né meno come non lo è il C# od il Java. @winebar #24 senza offesa, se non sai di cosa parli non scrivere, grazie. Python può essere precompilato in bytecode (.pyc) al cento per cento, cosa che può essere fatta a runtime (jit == Just In Time) o a priori prima di distribuire, se vuoi. Cosiccome si può fare con pycc un eseguibile, binario nativo della piattaforma su cui sei. La traduzione Vala->C->compilazione è sono una dimostrazione di fretta o di scarsa competenza. Idem è assurdo Genie (il "vala interpretato"). Tradurre in C è più facile che creare un interprete od una VM (che no, non sono sinonimi) od ancora del codice nativo; una volta tradotto in C il grosso del lavoro se lo fa il compilatore che han scritto altri… Ti faccio notare che sono stati fatti tentativi simili col Fortran e che le prime versioni di C++ usavano la "traduzione"; entrambi i sistemi sono stati abbandonati per i loro limiti e la loro scomodità. @ekerazha #23 ceeeerto, chissà come mai è sempre più diffuso…………… Ah e non solo tra le piccole app desktop (oggi la maggior parte delle nuove sono in Python GTk/GI) ma anche per cosine dallo streaming della BBC alle "evoluzioni" delle enormi librerie di calcolo scientifico in fortran (il python fa da "colla") passando per framework come Web2Py o DJango o CherryPy ecc… Scritto il Date —

  • nickname Commento numero 26 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @Kim Allamandola: Avrai mal interpretato ciò che ho scritto. Tutti i linguaggi che prevedono l'uso di una Virtual Machine utilizzano esclusivamente bytecode precompilato e lo "traducono", giusto per usare un termine diverso, nel linguaggio macchina proprio dell'architettura. Quello sul JIT è un discorso a parte. Il JIT è stato implementato in questo tipo di linguaggi perchè il bytecode viene ricompilato per la macchina solo nelle parti realmente necessarie al fine di migliorare i tempi di esecuzione, che comunque rimangono più elevati di software compilati. So bene che non tutti i linguaggi interpretati prevedono una VM, anche perchè l'interpretazione di un linguaggio in sè significa che esegui il sorgente ad ogni avvio del programma, poi è stato ampliato l'uso anche a linguaggi con passaggi "intermedi" come .NET, Java e Python. Scritto il Date —

  • nickname Commento numero 27 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @winebar #26 pycc non usa alcun bytecode: genera un eseguibile (ELF nativo, lo stesso che puoi attenere da delle source C con GCC) standalone che è un *interprete python* specializzato per un solo compito, quello che descrivono i file .py compilati. Non ci sono né .pyc né .pyo dentro il binario. python (CPython, Jyton ed IronPython non lo so) come interprete ogni volta che ogni volta che importa un modulo se non trova il file .pyc (il bytecode) lo genera a partire dal .py, se dai python -O file.py generi invece il .pyo. Questi sono bytecode bytecode python. Quindi un programma python può essere un: * es. nativo (interprete "custom") -> pycc * bytecode (tipo .class di java) python/python -O -> .pyc/.pyo * testo puro letto una riga alla volta In più è in fase di sviluppo (già usabile) un frontend <a href='http://is.gd/YULdtW' rel='nofollow'>http://is.gd/YULdtW</a> a gcc python nativo, ovvero in grado di generare un eseguibile standalone (un ELF) che non è più un interprete python + il tuo programma ma solo "il tuo programma", cosa che il Vala evita di fare cercando la più comoda ma lenta via della traduzione. Sul discorso "del JIT" guarda che python quando mastica dei fili .py usa un JIT, JIT non è un software specifico, vuol dire Just In Time, ovvero al volo, ovvero anziché pigliare dei .py, compilarli in bytecode e distribuirli io eseguo dei .py e quelli che importo (iow che, forse, uso più volte) anziché rileggermeli ad ogni richiesta me li salvo in bytecode ovvero già "pre-letti". Tutto qui. Poi che ciò lo chiami JIT perché fa fico è un altro discorso ma la procedura è questa, la fa il python come la fa mono. Più in generale puoi spiegarmi perché è preferibile un linguaggio che non è qualcosa di a-se-stante ma richiede un backend (GI) non proprio piccolo e ad ogni modo assai poco diffuso fuori dall'ambiente Gnome/GTk, che ha una sintassi più "vecchia"/scomoda del python, che deve per forza essere convertito in C e poi compilato, che ha una versione interpretata (genie) molto all'acqua di rose rispetto ad un linguaggio con una sintassi iper-semplice, una libreria standard veramente completa e dei framework di tutto rispetto (Twisted, Web2Py, Scipy/NumPy ecc) che può essere compilato al pari del Vala anche se con una via un pelo diversa (non c'è la traduzione in C) e con in sviluppo un fe a gcc che promette di dare le stesse performance del D o del C++? Forse perché RH/Gnome vogliono il GnomeOS? Così se ogni cosa è ben incastrata nelle altre è più difficile per "la concorrenza" incorporarla? Non insegna nulla da {Open,Libre}Office a LaTeX a mplayer l'evoluzione e la sorte dei progetti autoreferenziali? Scritto il Date —

  • nickname Commento numero 28 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: ekerazha

    <blockquote> ceeeerto, chissà come mai è sempre più diffuso…………… Ah e non solo tra le piccole app desktop (oggi la maggior parte delle nuove sono in Python GTk/GI) ma anche per cosine dallo streaming della BBC alle “evoluzioni” delle enormi librerie di calcolo scientifico in fortran (il python fa da “colla”) passando per framework come Web2Py o DJango o CherryPy ecc… </blockquote> Se l'indice della bontà di un prodotto fosse la sua diffusione, PHP dovrebbe rasentare la perfezione. Se l'indice della bontà di un prodotto fosse l'esistenza di framework, PHP sarebbe eccelso (Zend, Symfony, Yii ecc.). Se l'indice della bontà di un prodotto fosse la dimensione dei progetti che lo utilizzano, PHP sarebbe colmo di gloria per essere usato da sitarelli tipo Facebook. Putroppo questo non basta e bisogna andare oltre alla superficie, quindi ti lascio tranquillamente disquisire sul fatto che 2+5 faccia 7 oppure 25. Scritto il Date —

  • nickname Commento numero 29 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @Kim Allamandola: lasciando perdere il discorso tecnico su python (che comunque non conosco molto), non posso che concordare con ekerazha. Python è usato sul web per lo stesso motivo di flash: semplificare/implementare ciò che non è possibile fare con HTML4 in maniera indipendente dall'OS. L'importante e che sia implementato nel browser in maniera nativa o con l'ausilio di un plugin che rimanda all'applicazione esterna (come flash, java, silverlight e chi più ne ha più ne metta) Scritto il Date —

  • nickname Commento numero 30 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @ekerazha #28 ok, argomentazione valida, allora ignoriamo il piano logico ed andiamo su quello tecnico: dimmi cos'ha il Python che non va! Io dico: * GIL * multiprocessing in uno stato troppo immaturo * futures parecchio da rivedere * il frontend a gcc da avere stabile prima possibile di pro: * la sintassi è la più semplice sulla piazza * pulito, non come il php, e forza la "pulizia" * leggero (~9Mb di ram), veloce, completo, immediato, intuitivo * il "C" dei giorni nostri com'era il C intorno al 1971 Sul Vala t'ho già detto cosa non va: * sintassi antica, scomoda, insensata per un linguaggio nato da poco * traduzione in C+compilazione, nessun supporto a prove rapide * linguaggio interpretato (genie) separato * libreria standard pressoché assente rispetto a Python/Ruby/Perl * dipendenza da GI… Di positivo non ci vedo *nulla*, è solo una ***ata per avere applicazioni legate al fantomatico et idiota GNomeOS. @winebar #29 Python *non è usato solo sull'web* ma anche nel calcolo scientifico, nel piping, nell'A&D, nel controllo del traffico aereo, nelle applicazioni desktop ecc. persino OSX include Python nativamente. Poi il discorso vale come per ekerazha: non vogliamo il piano logico? Ok, è anche comprensibile vista la diffusione si soluzioni illogiche da php a pascal sino a Windows o vala… Andiamo sul piano tecnico allora, li di opinabile c'è poco, quindi chiedo anche a te: cos'ha Vala in più di Python, cos'ha Python in meno di Vala, cos'ha python che non va e cosa che va, cos'ha vala che non va e cos'ha che va. Quel che ho visto io è scritto qui sopra… Scritto il Date —

  • nickname Commento numero 31 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: ekerazha

    Ignorare il "piano logico" non è il mio forte… <blockquote> ok, argomentazione valida, allora ignoriamo il piano logico ed andiamo su quello tecnico: dimmi cos’ha il Python che non va! Io dico: * GIL * multiprocessing in uno stato troppo immaturo * futures parecchio da rivedere * il frontend a gcc da avere stabile prima possibile di pro: * la sintassi è la più semplice sulla piazza * pulito, non come il php, e forza la “pulizia” * leggero (~9Mb di ram), veloce, completo, immediato, intuitivo * il “C” dei giorni nostri com’era il C intorno al 1971 </blockquote> La sintassi è oscena e solo un malato di mente può aver concepito annidamenti fatti con spazi/tab, sai che gusto scoprire che qualcosa non va perché in un programma con migliaia di righe di codice c'è uno spazio di troppo da qualche parte. "Forzare la pulizia" non serve perché qualsiasi sviluppatore competente è in grado di formattare decentemente il codice e degli sviluppatori incompetenti non mi interesso. Veloce? Giusto se il metro di paragone è PHP. Inoltre, se la cosa non è cambiata di recente, python non è in grado di condividere la memoria tra i "processi" che lancia. Per farci grasse risate, possiamo citare anche il fatto che non abbia nemmeno il costrutto do..while (utile quando si vuole verificare la condizione del ciclo dopo una prima esecuzione). Vala potrà non essere perfetto, ma se l'alternativa è Python preferisco Vala tutta la vita. Scritto il Date —

  • nickname Commento numero 32 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @ekerazha #31 Sei tu che hai contestato, con valide argomentazioni peraltro, il mio discorso sul piano logico circa la diffusione del Python, per questo inchinandomi alla tua affermazione che citare diffusione, gradimento ecc sono discutibili visto esempi come PHP, Windows&c. Non hai però risposto sul piano tecnico… L'uso dei tab *forza* un indent decente, le parentesi no; il discorso di tab-vs-spazi non è un problema, se usi Vim od un qualunque editor che supporti l'indent e non lo è manco a posteriori se non l'hai usati, ci sono n tools di refactoring se vuoi. Del resto quanti han la brutta abitudine di aprire una parentesi e scrivere il codice *prima* di chiuderla? Questa non la vedo come una argomentazione tecnica valida. Ti può piacere o meno, al neofita serve perché forza la coerenza, all'esperto serve per lo stesso motivo, piaccia o meno. Ed è sempre più facile leggere il codice che non n listati con parentesi usate in modi diversi, pensa solo ad: int main(…) { } int main(…) { } ecc. Anche qui c'è il refactoring, né più né meno come per il Python, solo che qui gli stili non sono forzati quindi il bisogno di refactoring è maggiore. La memoria condivisa tra processi diversi c'è il modulo mmap nella libreria standard, è ad ogni modo *buona pratica* in tutti i linguaggi non usare shm ma preferire soluzioni mp, al più serializzare i dati in code che internamente sono gestite via pipe con lock, mutex ecc. In Python puoi usare tutte le primitive POSIX per quanto non ce ne sia generalmente bisogno… Del do…while non ho mai sentito la mancanza, come non ho mai sentito la mancanza dell'until&c passando dal perl al ruby anni fa… Il do…while che cmq puoi implementare come vuoi, è pressoché inusato. La velocità: la puoi provare quando vuoi, sulla tua macchina c'è python già pronto! Certo se mi calcoli una riga di primi usando i thread anziché i processi python è lento, è il problema della scelta di un GIL che per ora ha realmente rimosso solo Jython, è una delle cose che ho elencato come sgradite del python subito sopra. Tali cose sgradite però non sono un impedimento, sono solo una seccatura, IMO ben inferiore alla sintassi del vala, a genie separato alla compilazione alla dipendenza da GI ecc… Desumo quindi che al di la del tuo gusto personale non hai argomenti validi su "cosa manchi al Python", almeno un vantaggio del vala, gusto a parte? Scritto il Date —

  • nickname Commento numero 33 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @Kim Allamandola: Non ho mai detto che è usto solo sul web,. Ho semplicemente detto che è molto adatto per il web semplicemente perchè è indipendente dall'hardware e quando fai un sito non sai mai se il client avrò Winzozz, Linux, BSD, OSX Minix, Solaris, e chi più ne ha più ne metta. Anche perchè ci sono moltissimi programmi in Python eseguiti esclusivamente in locale. Ad esempio la prima volta che ho avuto a che farci è stato con un vecchio Nokia con Symbian S60 v3 con un software che necessitava del serpente. Senza poi contare Pybrowser, Ubuntu Software Center e altri che utilizzano PyGTK. Comunque Python è poco indicato in quei casi dove le istruzioni di I/O sono poche e dove il software deve andare su dispositivi dotati di scarsa potenza, ed è indicato negli altri casi, per una migliore gestione del codice (USC è scritto in python e la sua lentezza non è dovuta tanto all'uso di Python, quanto alla grande quantità di operazioni di I/O). Scritto il Date —

  • nickname Commento numero 34 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: ekerazha

    <blockquote> Non hai però risposto sul piano tecnico… L’uso dei tab *forza* un indent decente, le parentesi no; il discorso di tab-vs-spazi non è un problema, se usi Vim od un qualunque editor che supporti l’indent e non lo è manco a posteriori se non l’hai usati, ci sono n tools di refactoring se vuoi. Del resto quanti han la brutta abitudine di aprire una parentesi e scrivere il codice *prima* di chiuderla? Questa non la vedo come una argomentazione tecnica valida. Ti può piacere o meno, al neofita serve perché forza la coerenza, all’esperto serve per lo stesso motivo, piaccia o meno. Ed è sempre più facile leggere il codice che non n listati con parentesi usate in modi diversi, pensa solo ad: int main(…) { } int main(…) { } ecc. Anche qui c’è il refactoring, né più né meno come per il Python, solo che qui gli stili non sono forzati quindi il bisogno di refactoring è maggiore </blockquote> Non c'è nulla di <em>tecnico</em> nel sostenere che lo sviluppatore dovrebbe essere costretto ad indentare il codice in un determinato modo. Come già detto, fa parte dell'ABC dello sviluppatore l'indentare decentemente il codice, non lo si deve indentare decentemente solo perché si è costretti, quindi come argomentazione mi sembra alquanto debole. Il neofita può imparare ad indentare il codice come a suo tempo ho imparato io, prima che Python esistesse. Se su migliaia di righe di codice mi dimentico una parentesi, mi avvisa pure il compilatore, se su migliaia di righe di codici ti scappa uno spazio… buona fortuna. Tantomeno l'utilizzo delle parentesi precluderebbe la possibilità di indentare il codice per facilitarne la lettura. <blockquote> La memoria condivisa tra processi diversi c’è il modulo mmap nella libreria standard, è ad ogni modo *buona pratica* in tutti i linguaggi non usare shm ma preferire soluzioni mp, al più serializzare i dati in code che internamente sono gestite via pipe con lock, mutex ecc. In Python puoi usare tutte le primitive POSIX per quanto non ce ne sia generalmente bisogno… </blockquote> Non parlavo di IPC, parlavo di eventuale codice in comune, Python non lo "deduplica". <blockquote> Del do…while non ho mai sentito la mancanza, come non ho mai sentito la mancanza dell’until&c passando dal perl al ruby anni fa… Il do…while che cmq puoi implementare come vuoi, è pressoché inusato. </blockquote> Viene usato quando si vuole verificare la condizione del ciclo dopo una prima esecuzione, a volte torna molto comodo e la sua assenza costringe alla scrittura di codice ben poco elegante, magari dovendo replicare il codice contenuto nel while appena prima del while (in modo che venga eseguito una volta prima del while) o comunque con altri escamotage… bleah. <blockquote> La velocità: la puoi provare quando vuoi, sulla tua macchina c’è python già pronto! Certo se mi calcoli una riga di primi usando i thread anziché i processi python è lento, è il problema della scelta di un GIL che per ora ha realmente rimosso solo Jython, è una delle cose che ho elencato come sgradite del python subito sopra. Tali cose sgradite però non sono un impedimento, sono solo una seccatura, IMO ben inferiore alla sintassi del vala, a genie separato alla compilazione alla dipendenza da GI ecc… </blockquote> Premesso che il codice Python può girare in vari modi (Jython, IronPython ecc.) quindi bisognerebbe considerare i vari casi, l'interprete Python di riferimento è generalmente più lento di Java, non parliamo di C++. <blockquote> Desumo quindi che al di la del tuo gusto personale non hai argomenti validi su “cosa manchi al Python”, almeno un vantaggio del vala, gusto a parte? </blockquote> Ti ho già fatto un buon elenco di argomenti validi… per quanto riguarda Vala, non lo conosco approfonditamente, ma l'intento di avere una sintassi più moderna di quella del C ma con le prestazioni del codice C compilato (con le ottimizzazioni del caso da parte del buon gcc) mi sembra piuttosto riuscito. Aver convertito Zeitgeist da quell'aborto di Python a Vala è stata indubbiamente cosa buona e giusta (e gli sviluppatori di Zeitgeist devono aver pensato lo stesso). Scritto il Date —

  • nickname Commento numero 35 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: barra

    Vorrei riportare il discorso su un piano più vicino all'utente finale e Kim scusami ma TUTTI gli applicativi desktop che fanno uso di python fanno pena per prestazioni e uso di memoria. Che sia sempre colpa degli sviluppatori mi sembra poco probabile! Che poi in settori verticali come il calcolo scientifico e simili convenga sfruttare i vantaggi di python e di accontentarsi delle prestazioni ci sta, sono settori molto particolari dove analisi e sviluppo costano e dove spesso LA RAPIDITÀ nell'adattare il codice è più importante delle prestazioni del codice stesso. Da quel che ho potuto capire Python può girare in 1000 modi diversi ma sono certo che i signori che sviluppano zeitgesist già sapessero la cosa prima di riscrivere da 0 tutto…. Scritto il Date —

  • nickname Commento numero 36 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @ekerazha #34 CPython è più lento di Java!? Scusa hai un benchmark? Tempo fa passando una web-(cr)app java su Web2Py non solo il risultato è stato molto più leggero, scritto in molte meno linee di codice, in un mese contro oltre 10, ma era anche terribilmente più veloce………………… Sulla sintassi faccio notare che ti ho solo risposto: i miei punti contrari a vala non sono limitati alla sintassi (linguaggio compilato in due stage, prima valac poi gcc o quel che vuoi, ed il codice non gira più veloce del python compilato con pycc; versione "povera" interpretata, genie, diversa dal "vala" "vero"; dipendenza da GI; libreria standard pressoché nulla), scusa se è poco… Che compilando un software scritto in vala ottieni le stesse performance di un software equivalente scritto in C è lontano dal vero nello stesso modo di pycc. Non vorrei portare avanti una polemica sterile ma nel post #30 ho elencato i vantaggi e svantaggi principali del python e quelli del vala (sul vala vantaggi non né ho messi, perché non né vedo); hai detto che non ti piace la sintassi python e che non dovrebbe servire forzare la coerenza del codice, ok, ci son stati scritti fiumi di inchiostro sopra, ma questo non cambia di molto l'argomento tecnico di fondo, altro non hai detto… Se non hai argomenti e non ti piace il python ok, chiudiamola qui, ma una preferenza personale non vuol dire che sia una realtà tecnica eh! Tanto più che se non conosci il vala come fai a gradirlo? Alle volte sulla carta qualcosa sembra buono, dopo un po' che lo usi cambi idea… @barra #35 Non credo che i software di calcolo meteorologici siano scritti di corsa e senza curarsi del carico computazionale, idem nel traffico aereo, idem nel piping, idem nell'A&D dove giusto un po' di tempo fa avevo sentito parlare di software di controllo macchine in python "con la prevista migrazione verso ethernet/ip" (!) In generale python col GIL rompe ed essendo multiprocessing "giovane" sono pochi gli sviluppatori di app-ine desktop che lo usano; tutti più o meno masticano qualche concetto sull'uso dei thread (che non vuol dire sappiano granché di programmazione concorrente, solo come buttar fuori qualche thread e sperare non vi siano deadlock…) mentre han molta più difficoltà anche con IPC semplici come le pipe… Guido Van Rossum vuole il GIL, a molti ciò stà sulle scatole ma per ora è così, si usa multiprocessing e il problema è risolto, si usa mmap se proprio vuoi, ed il problema è risolto, certo devi sapere che esistono e come usarli… Il vala è ben poco documentato, il python a livello "dummy" ha un'esagerazione di libri, ma ad un livello un pelo superiore ha ben poco, e poiché molti lo considerano un linguaggio per "imparare a programmare" non vanno oltre… Sulle app desktop in python, dimmi qualche titolo, però fai anche un giro di ldd su quel che usi, oggi ci sono *tonnellate* di software desktop con pezzi in python e pezzi in altro, da Unity a Gnome-Shell, da apt, ad rpm (e li si che con yum è lento!), persino lo zfs! Solo che non c'è scritto sull'app in che linguaggio è scritta… Scritto il Date —

  • nickname Commento numero 37 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: barra

    Forse non mi sono spiegato bene: i software di calcolo in ambito meteorologico e simili sono applicativi che richiedono frequenti modifiche esattamente come (tutt'altro ambiente) i motori di ricerca. Ricompilare tutte le volte sarebbe un po complicato (si corre il rischio di passare più tempo a compilare che ad usare gli applicativi, come certe distro oggi), ecco perché si preferisce un linguaggio interpretato…… Scritto il Date —

  • nickname Commento numero 38 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: ekerazha

    <blockquote> CPython è più lento di Java!? Scusa hai un benchmark? Tempo fa passando una web-(cr)app java su Web2Py non solo il risultato è stato molto più leggero, scritto in molte meno linee di codice, in un mese contro oltre 10, ma era anche terribilmente più veloce………………… </blockquote> Di benchmark ne trovi quanti vuoi, ad esempio cerca su Google "performance comparison java python", primo risultato. <blockquote> Sulla sintassi faccio notare che ti ho solo risposto: i miei punti contrari a vala non sono limitati alla sintassi (linguaggio compilato in due stage, prima valac poi gcc o quel che vuoi, ed il codice non gira più veloce del python compilato con pycc; versione “povera” interpretata, genie, diversa dal “vala” “vero”; dipendenza da GI; libreria standard pressoché nulla), scusa se è poco… </blockquote> Nemmeno i miei contrari a Python sono limitati alla sintassi (anche se è una componente non indifferente). Tu hai un concetto tutto tuo di "velocità", come indica anche il benchmark che ti ho fatto presente sopra (ed altri che si possono reperire in rete). <blockquote> Che compilando un software scritto in vala ottieni le stesse performance di un software equivalente scritto in C è lontano dal vero nello stesso modo di pycc. </blockquote> Mai detto nulla del genere (anche se non siamo così lontani come sostieni). Io ho parlato di "codice compilato in C", non di "software equivalente scritto in C". Presta attenzione. <blockquote> Non vorrei portare avanti una polemica sterile ma nel post #30 ho elencato i vantaggi e svantaggi principali del python e quelli del vala (sul vala vantaggi non né ho messi, perché non né vedo); hai detto che non ti piace la sintassi python e che non dovrebbe servire forzare la coerenza del codice, ok, ci son stati scritti fiumi di inchiostro sopra, ma questo non cambia di molto l’argomento tecnico di fondo, altro non hai detto… Se non hai argomenti e non ti piace il python ok, chiudiamola qui, ma una preferenza personale non vuol dire che sia una realtà tecnica eh! Tanto più che se non conosci il vala come fai a gradirlo? Alle volte sulla carta qualcosa sembra buono, dopo un po’ che lo usi cambi idea… </blockquote> Come già detto, la gran parte di ciò che tu chiami "tecnico" non ha assolutamente nulla di "tecnico". Spunti sui quali riflettere te ne ho dati parecchi, ma oltre a mettermi in bocca cosa che non ho mai detto e a far passare come meriti tecnici delle tue discutibili opinioni personali (che di tecnico hanno ben poco), non hai fatto. Così facendo perdi delle occasioni. Scritto il Date —

  • nickname Commento numero 39 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by: ekerazha

    *** "codice compilato in C" -> "codice in C compilato" Scritto il Date —

  • nickname Commento numero 40 su Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

    Posted by:

    @Kim Allamandola: Ubuntu software center è completamente (o quasi) in python e risulta molto più lento di muon software center su Kubuntu (confronto la versione 4 di USC), sul mio notebbok muletto con processore single core. Sulfur (il tool di gestione software di Sabayon) è scritto in PyGtk e ha delle prestazioni che rasentano il ridicolo. Potrebbe essere scarsa ottimizzazione (in quest'ultimo caso), ma Erculani ha dichiarato che ha riscritto molte parti di codice al fine di ottimizzare il tutto. Scritto il Date —