Ottime notizie: Zeitgeist/Mayanna resta in Python!
In News il 9/04 @ 20:09 trackbackPietro Battiston ha lasciato un intervento a “Tomboy in C++ …sarà mai rilasciato?” che merita una segnalazione in prima pagina.
Zeitgeist/Mayanna resterà in Python, come avevo congetturato in “Zeitgeist e Mayanna uniti per GNOME 3” (cfr ultimo paragrafo “Mono || Python”), e non verrà portato a Mono o a nessun altro linguaggio (cfr “GNOME-Zeitgeist porting ridicule“). La notizia viene direttamente da Seif Lotfy, che ha commentato con un inequivocabile: “We decided to stay with Python!“. Decisione saggia e a quanto pare molto condivisa: vi invito a leggere la quantità di commenti che bocciano Mono…
|
— Pagine forse correlate:
Commenti »
Se arriveranno a dire questa cosa non la possiamo implementare perchè python non lo permette, o ancora peggio se arriveranno a sviluppare parte dell'applicativo in c allora dirò: ve lo avevo detto.
Poi magari arriva Google che investe in Python e in un 'acceleratore' (VM o altro non so) e le cose migliorano, però da quel pò che ho letto i limiti non sono solo nelle prestazioni.
Ottima notizia. Python is the way to go.
Python ha dei limiti? Cavolo, e io che pensavo il contrario, potresti citare almeno una fonte? Anzi, fallo proprio per favore perchè mi sembra troppo una buffonata. Per quel che mi riguarda Python è un portento, alla faccia di altri linguaggi. E' soltanto un pò lento per questioni di interpretazione.
>vi invito a leggere la quantità di commenti che bocciano Mono…
… e il commento di Seif Lotfy:
Mono however although very appealing would just cause as much enemies as friends.
Non ci sono grossi limiti di prestazioni, perchè in un'applicazione di quel tipo, la differenza sarebbe praticamente impercettibile.
Nel momento in cui servissero delle parti iper-ottimizzate (ma dubito per questo progetto) potrebbero scriverle in c e agganciarle da python.
Il vero problema di python è che, essendo una vm, richiede un po' di memoria in più (fà 5-6 mega di più).
Python ha altri vantaggi. Incluso quello della rapidità di sviluppo e di essere semplice (il che aiuta la gente a spedirti bugfixes etc). La velocità di sviluppo e la semplicità fanno spesso la differenza tra un progetto che cresce ed uno che dopo un po' si ferma e invecchia.
politica, come sempre…
Python, se non sbaglio, compila in .pyc alla prima esecuzione :)
E poi tutta questa lentezza io non la vedo: giusto un secondo in più da aspettare prima che si avvii l'applicazione ma non mi sembra una tragedia.
Io trovo Python adorabile: è facile (se ci sto programmando io…), veloce, installato di default in molte distro (al contrario di Java), usa (realmente) gli oggetti e lo puoi usare sia per scriptini che per applicazioni con l'interfaccia :)
Sono felice che gli sviluppatori di GNOME la pensino come me ^-^
Soprattutto la velocità di sviluppo di codice python non ha pari con qualsiasi altro linguaggio di programmazione (C# compreso).
Beh… e cosa c'è di male?
Hanno visto che passare a Mono sarebbe stata una decisione non condivisa da molta parte della comunità. E un software libero *vive* perché, e solo se, ha una comunità alle spalle.
Inoltre, anche se in Italia abbiamo molti politici cialtroni/imbroglioni non bisogna essere qualunquisti.
La Politica è una cosa nobile, è cercare di fare il bene comune. Quindi, per me, il tuo commento ha un significato positivo.
A parte i toni non certo eleganti, ti rispondo quotando alcuni altri post:
luca 2 giorni ago
infatti, ormai python è usatissimo (lo uso pure io) con estensioni in c per le parti più critiche.
esatto, ricordo che python è facilmente estendibile in c.. quindi per le parti che necessitano più calcolo possono essere scritte in c e importate in python. http://www.python.org/doc/2.5.2/ext/intro.html
Io non sono un programmatore ma ho letto altre volte queste affermazioni. Penso estendere sviluppare una parte del programma in C indichi che qualche limite ci sia… Andando + indietro sempre qui sul blog si parlava di C# e java. Python veniva messo un gradino + in basso rispetto a questi 2.
La politica non dovrebbe entrare nelle questioni tecniche, punto.
forti come un pitone!!!! Bellllllllllo!!
^§^
Mettila così:
per un programma che deve gestire una lista di file, fossero anche un migliaio, non si nota grande differenza. Per un programma che converte i frame di un filmato da un formato all'altro allora il discorso cambia: sono miliardi di operazioni da fare.
Parafrasando: l'UpdateManager di ubuntu è scritto in Python. Non mi sembra significativamente piu' lento di apt-get .
Il fatto che sia estendibile in C è un punto a favore di python. Fai il tuo programma in python, se poi se proprio hai bisogno di C lo usi solo dove serve, tenendo il resto estremamente semplice e gestibile.
Scrivere tutto in C ad occhio e croce (io non scrivo in C) è un macello. Il futuro dello sviluppo di programmi su desktop è lo scripting (questo anche secondo ShuttleWorth), usando C solo dove veramente serve.
Niente toni eleganti, è vero, ma odio chi fa disinformazione anche se in buona fede. Hai detto che i limiti del python non sono solo nelle prestazioni senza dire ne chi lo ha detto ne quali sono i limiti del python. Si chiama disinformazione. E neppure nella risposta al mio primo post dici nulla di nuovo, forse citi luca il quale, nota bene, non è una fonte, ma un'altra opinione (che condivido)….il fatto che python sia estendibile in C (o possa estendere un programma scritto in C) è un'ottima cosa, le parti di calcolo possono essere ridotte a quello, ma ti garantisco che il resto del programma viene scritto in python.
Da programmatore posso dire che Python è ben superiore a Java (sicuramente) e probabilmente anche al C#. L'uso di C# è dettato probabilmente dalla quantità di librerie già presenti per questo…
Non sto dicendo che python non sia valido e non vada usato. Penso però che un applicativo come Zeitgeist/Mayanna se davvero diventeranno la base di gnome3 (con l'aggiunta di gnome shell e altro) debba essere performante al massimo e vorrei evitare di leggere che non verranno implementate alcune funzioni perchè difficilmente potrebbero essere realizzate in python.
Non potevano scegliere meglio :)
Ho IPOTIZZATO una cosa, non ho dato notizie, avessi scritto che con python il programma non era realizzabile o che non sarebbe stato flessibile come se fosse stato scritto in mono o altro avresti avuto ragione.
Leggendo i commenti qui sul blog di Felipe si è discusso + volte del confronto tecnico (lasciando quindi perdere la politica) tra mono e java. In questo discorso python mi ha dato l'idea del fratello un pò sfigato.
Python superiore a java? (a proposito di disinformazione :P) tanti (sempre su questo blog) hanno scritto il contrario. Puoi giustificare l'affermazione? Cimi ritiene l'accoppiata C#/GTK# la scelta migliore per sviluppare su linux o almeno a una mia richiesta specifica: 'volessi avvicinarmi allo sviluppo software da cosa parto?' lui ha risposto così. Altri dicono che Java+SWT sono meglio, tu parli di python (certamente ottimo per alcune cose, ma mi chiedo: su windows come si comporta? volessi creare un progetto multipiattaforma?)
Cimi è uno che fa disegnini e la sua opinione sui linguaggi di programmazione non conta niente.
??? era ironica spero…
Va bene, allora ti chiedo scusa. Non mi sembrava un'ipotesi, ma in fondo mi sono fatto prendere un pò troppo dal flame.
A proposito di disinformazione, vediamo se ti convinco: Java è Object Oriented (quasi) puro, non permette di fare niente di più ne niente di meno. Le sue estensioni, mi viene in mente AspectJ ma anche tutto ciò che riguarda JML ecc…sono interessanti, ma non fanno parte del linguaggio in se, sono poco usate e in generale restano nell'ottica object oriented. Quindi Java considera tutto come un oggetto.
Python no, anzi: supporta la programmazione object oriented ma permette lo sviluppo tramite programmazione strutturata e supporta in parte la programmazione funzionale. C'è una differenza ABISSALE tra i due linguaggi.
Per fare un semplicissimo esempio, in Java deve esiste un oggetto con un metodo public final static void main(String[] args) {…} che dice dov'è il main: l'idea che una classe abbia un metodo statico che non riguarda la classe in se ma che avvia il programma è assurdo (tant'è che di solito si fa una classe main in cui si mette solo quel medoto…). Sinceramente la programmazione pura ad oggetti non mi soddisfa e comunque Java, usando solo questo stile, è chiaramente inferiore al Python che invece ne supporta altri.
Cimi è un grande, se pensa che il futuro sia C#/GTK# tanto di cappello. Tra l'altro a me mono non dispiace, mi piace l'idea del framework multipiattaforma (nota, non C# in se, a me piace mono). Ma C# è uguale a Java e continuo a considerare Python superiore e in una discussione Python vs C# non posso accettare che qualcuno dica che C# è superiore al Python perchè con Python alcune cose non si possono fare!
Per tua informazione: Python è multipiattaforma quanto Java, la sua libreria è costruita per essere portabile al 100% (questo si legge nella documentazione di Python).
Ecco ora la cosa mi inizia a piacere!!! :D (a parte che come ti ho detto sono praticamente digiuno di programmazione quindi ho riletto 5 volte prima di capire del tutto!)
Approfitto per chiederti: per quanto riguarda le comunita italiane, quali è messa meglio tra le 3, decidessi di avvicinarmi a python ci sono risorse ufficiali in italiano? (giusto per farti un esempio, mi serviva della documentazione su php, vado in php.net e trovo che su php5 non c'è quasi nulla in italiano, in compenso la documentazione è tradotta in Bulgaro, portoghese, polacco, rumeno, turco. Ok che l'inglese lo mastico abbastanza ma capirai che è + difficoltoso…
Sapevo che python è multipiaffarorma ma non mi sembra che sia molto diffuso su windows (o mac), almeno non mi vengono in mente programmi sviluppati con questo linguaggio. Come integrazione con il look del resto del sistema?
gimme a hell yeah! :D
partiamo da una premessa molto semplice: in python (così come in C#, C o qualsiasi altro linguaggio) puoi fare pressochè tutto, al massimo cambiano le prestazioni e la complessità (nonchè il tempo impiegato) per scriverli =)
quindi dubito che non implementino alcune features solo perchè difficili da realizzare in python, non regge =P
continuando su questo discorso, ti faccio presente che *i primi tempi di Mono*, quasi tutte le applicazioni avevano il backend in C e l'interfaccia in C#/Gtk# un po' per le performance un po' per sfruttare librerie native già esistenti. quindi erano quasi tutti *ibridi*. molto più tardi spuntarono un po' di applicazioni *100% C#*. Io stesso qualche anno fa mi cimentai in un dvd-ripper con c#, ma usai le libdvdcss scritte in C (praticamente per collegare i due linguaggi dovetti scrivere quasi solo in C…).
infine parliamo di netsukuku (un protocollo di rete *puro* al pari dell' IP): ha una minima parte in C (le chiamate di basso livello) ed il resto in python (tutto l'algoritmo di routing, etc) proprio per accelerare/semplificare lo sviluppo.
per quanto mi riguarda non ho nulla contro Mono, nè sono un fanatico di Python (sebbene lo uso con piacere tanto quanto Ruby…). Mi sono discostato da Mono quando ho dolorosamente realizzato che NON PUÒ star dietro a .NET e non ci riuscirà mai (IMHO). Se, come qualcuno ha commentato in altri post passati, Mono prenderà una SUA strada (magari anche con il web, abbandonando asp.net per i soliti motivi…) allora *forse* tornerà appetibile =)
personalmente non voglio monodevelop che scimmiotta visualstudio, nè moonlight che sta sempre 3 passi dietro a silverlight, tantomeno le altre tecnologie microsoft. del resto non si può scagionare Mono solo perchè ha le Gtk# ma per tutto il resto continua ad inseguire .NET =)
Allora, la documentazione in italiano di Python è abbastanza ben fatta, ti consiglio di provare il sito http://www.python.it/ : nel menu di sinistra c'è la documentazione tra cui l'ottima sezione per principianti (non so se tu sia un principiante, ma quando mi sono avvicinato io al linguaggio l'ho trovato abbastanza utile!). Sul sito trovi quasi tutto in italiano, altrimenti il sito in inglese è abbastanza ben fatto. Esistono tanti altri siti utili, per esempio it.diveintopython.org è ottimo.
Comunque, una volta che si imparano le basi proseguire nell'utilizzo del python è semplice…prova ad aprire una shell e scrivi python. Ti si apre l'interprete di Python. Da qui puoi scrivere righe di codice come se fossi dentro un sorgente e vengono interpretate. Prova ad usare un pò il comando help() che è una specie di man di linux che ti da documentazione su un oggetto. Prova per esempio a digitare help(list) e verrà fuori la documentazione di list. Questa caratteristica è estremamente utile, la uso tantissimo!
Per la GUI python può usare librerie standard come qt (http://wiki.python.org/moin/PyQt4) e gtk (http://www.pygtk.org/). Entrambi i progetti vantano il fatto di essere multipiattaforma al 100%.
Quando all'essere in se multipiattaforma, se qualche libreria per python non fosse multipiattaforma, sull'help della libreria di solito c'è scritto a chiare lettere.
Comunque ribadisco, mono è un bel progetto basato su uno standard, quello ecma (http://mono-project.com/ECMA), che è una garanzia di qualità.
Però Python è da provare, è un'esperienza davvero unica tra i linguaggi di programmazione. E' semplicemente un altro livello…
Non crederete di cavarvela così a buon mercato!
Avete scelto Python?
Bene!… QUALE ???
Python 3 o Python 2?
Come tutti i Pythoniani sanno il 3 è incompatibile col 2.
Gnome 3 intende dare un'accelerata a Python 3,
o rallentarne ulteriormente l'adozione? ;)
@ barra
Python e' usato anche sotto Windows e sotto Mac e' installato di default assieme al sistema operativo.
Python e' un ottimo linguaggio: non e' eccessivamente formalizzato come sintassi (al contrario di Java) e' multi-paradigma, come si diceva prima, e va' bene per (quasi) qualunque cosa: dallo script, ai codici “colla” per costruire su una base di librerie C fino ai software piu' complicati.
@barra
Non riesco a rispondere al tuo ultimo post…cmq sul sito http://www.python.it trovi molta documentazione. A destra, nel menu documentazione c'è tutto, dalle guide per principianti a tutorial un minimo avanzati.
Per la grafica esistono PyGtk (http://www.pygtk.org/) e PyQt4(http://wiki.python.org/moin/PyQt4), entrambi vantano la massima portabilità. Inoltre Python può usare tante altre librerie grafiche.
Comunque Mono è una buona piattaforma, non potrebbe essere altrimenti visto che si basa su uno standard ECMA riconosciuto (http://mono-project.com/ECMA).
Però Python è un altro livello di esperienza, è davvero fantastico. Da provare!
Vero che con qualunque linguaggio si può fare tutto però il tempo è importante. Se una cosa richiede troppo tempo magari non la si implementa.
Non mi sembra poi che mono si accontenti di seguire .net, è nato da poco, sta rincorrendo, ci metterà del tempo. Inoltre mono e moonlight stanno implementando cose nuove, ad esempio il supporto a ogg e immagino anche altro. Detto questo sono comunque molto interessato da python e dalle evoluzioni googliche :D
grazie, per le dritte mi documento.
Sarebbe bello vedere sempre più parti di GNOME scritte in Python
A onor del vero quella del .pyc non si può chiamare tecnicamente “compilazione”, il python è e resta un linguaggio interpretato (a parte particolari implementazioni di nicchia).
Ma su tutto il resto hai assolutamente ragione.
dire che python ha dei limiti rispetto a mono/microzozz è una boiata pazzesca… altrimenti prego il buon felipe di darti uno spazio su questo blog per spiegare i limiti che tu intendi.
Ho già risposto ad altri. Semplicemente da non programmatore leggendo altri + esperti di me parlare di c#, java, python quest'ultimo sembra un pò il fratello sfigato. Su questo blog si è spesso toccato l'argomento Mono si/Mono no, tanti hanno espresso pensieri negativi nei confronti di mono (soprattutto per le note questioni 'politiche') e hanno indicato java e c come alternative. Chi parla di Python poi afferma di poter implementare in C quelle parti che necessitano di particolari prestazioni.
Tutto questo agli occhi di un NON PROGRAMMATORE sembra dire: python è bello per farci qualcosa di poco impegnativo ma per progetti seri meglio altro…
Poi magari sono cavolate (tant'è che non ho detto che non riusciranno a farlo in python, ho parlato a livello di ipotesi) e sarò ben felice se sarò smentito (le spiegazioni che mi hanno dato altri, soprattutt rief mi fanno ben sperare).
Sarebbe bello vedere sempre più parti di GNOME scritte in Python…
in genere si passa da python al c proprio perchè inizi con python e ottimizzi in c…. non viceversa.
Disdetta!!! Io avrei usato Vala.
o in alternativa Java, o C# o addirittura D.
Python compila eccome, ma dato che in python tutto è dinamico non può capire in fase di compilazione se una chiamata è errata e lo fa durante l'esecuzione quindi è lento.