Forum Informatica Unict

Area Studenti => Approfondimenti => Topic started by: khealer on 24-04-2010, 22:02:43



Title: Perl Vs Python
Post by: khealer on 24-04-2010, 22:02:43
Come da titolo, ho intenzione di imparare uno tra questi due linguaggi (magari entrambi in un futuro, ma per adesso mi limiterò ad uno soltanto), ma non ho idee in merito. Mi spiego... Ho letto su alcuni forum che Perl e Python sono pressoché identici come potenzialità, entrambi molto versatili e adattabili alle varie esigenze di un programmatore; però nessuno scrive realmente perché si dovrebbe scegliere uno o l'altro linguaggio.

Molti parlano bene di Perl per la sua somiglianza a C, altri decantano Python per il suo utilizzo da parte di colossi come google e per il "rigore" che serve per scrivere... Insomma, ognuno dice la sua ma nessuno alla fine ha una spiegazione tecnica (o forse sono io che non la colgo) che mi soddisfi più di tanto.

Vorrei dei pareri da persone che questi due linguaggi li conoscono (magari entrambi) come Tommaselli che ha scritto "Relational".

Grazie


Title: Re:Perl Vs Python
Post by: Aigor on 25-04-2010, 00:11:33

Decisamente Python !!
Sono "pythoniano" da poco tempo ma devo dire che è il linguaggio in assoluto più bello che un programmatore possa desiderare !
Semplice, ordinato ( l'ordine nello scrivere è un obbligo in Python ),non tipizzato, object-oriented, multi-piattaforma e totalmente free.
Python ti permette di creare sia piccole applicazioni per la tua macchina, sia enormi applicativi stand-alone con interfaccia grafica ( anche questa ormai compatibile con tutte le piattaforme grazie al framework wxPython ) e che possono, con semplicissime righe di codice, interagire con qualsiasi applicativo tu voglia ( io ho fatto interagire alcune mie piccole applicazioni con Excel quindi figurati XD ) !.
E poi, come dice Marco Beri ( un pythoniano DOC italiano ) " Una cosa hanno in comune Google, Star Wars e la NASA : Python ! "  :[Emoticon] PC Asd: :[Emoticon] PC Asd:


Title: Re:Perl Vs Python
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 25-04-2010, 00:51:49
Vorrei dei pareri da persone [...] come Tommaselli che ha scritto "Relational".
Tomaselli, con una sola "m" |-O!


Title: Re:Perl Vs Python
Post by: cgreco on 25-04-2010, 09:21:50

Semplice, ordinato ( l'ordine nello scrivere è un obbligo in Python ),non tipizzato, object-oriented, multi-piattaforma e totalmente free.

Python è strongly typed (fortemente tipizzato?) e dynamically typed (tipizzato dinamicamente?). (qui (http://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language))

Il fatto che non sia necessario dichiarare il tipo delle variabili è dovuto alla tipizzazione dinamica. Non esistono linguaggi di programmazione di alto livello non tipizzati (almeno tra quelli reali e/o di uso comune).

IMVHO, l'indentazione "forzata" dei blocchi non necessariamente impedisce di scrivere del brutto codice. (link (http://www.secnetix.de/~olli/Python/block_indentation.hawk))


Title: Re:Perl Vs Python
Post by: Aigor on 25-04-2010, 10:08:10

Semplice, ordinato ( l'ordine nello scrivere è un obbligo in Python ),non tipizzato, object-oriented, multi-piattaforma e totalmente free.

Python è strongly typed (fortemente tipizzato?) e dynamically typed (tipizzato dinamicamente?). (qui (http://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language))

Il fatto che non sia necessario dichiarare il tipo delle variabili è dovuto alla tipizzazione dinamica. Non esistono linguaggi di programmazione di alto livello non tipizzati (almeno tra quelli reali e/o di uso comune).

IMVHO, l'indentazione "forzata" dei blocchi non necessariamente impedisce di scrivere del brutto codice. (link (http://www.secnetix.de/~olli/Python/block_indentation.hawk))

1. Per tipizzazione forte si intende quando il programmatore deve esplicitamente specificare il tipo di ogni elemento sintattico che durante l'esecuzione denota un valore, ad esempio Java e C sono fortemente tipizzati. In Python questo non devi farlo. Dire che la tipizzazione è dinamica, invece, è più che corretto poichè la natura delle variabili cambia ( senza bisogno di casting esplicito ) durante l'esecuzione di un programma.
Dicendo che Python non è tipizzato intendevo dire appunto che non è soggetta a tipizzazione statica.


2. Beh sono dell'idea che un programmatore che scrive del codice illegibile è un cattivo programmatore. Il Python sotto questo punto di vista impone al programmatore di scrivere in una maniera quanto più ordinata possibile, se poi si vogliono cercare "scappatoie" è un altro discorso.

Le fonti cercatele tu online, io cito quanto detto da due libri di riferimento per il linguaggio.


Title: Re:Perl Vs Python
Post by: khealer on 25-04-2010, 10:47:23
Vorrei dei pareri da persone [...] come Tommaselli che ha scritto "Relational".
Tomaselli, con una sola "m" |-O!
Chiedo scusa, non avevo letto bene  .arrossisco

1. Per tipizzazione forte si intende quando il programmatore [...] In Python questo non devi farlo. Dire che la tipizzazione è dinamica, invece, è più che corretto poichè la natura delle variabili cambia ( senza bisogno di casting esplicito ) durante l'esecuzione di un programma.
Dicendo che Python non è tipizzato intendevo dire appunto che non è soggetta a tipizzazione statica.
Mi pare che anche Perl non sia soggetto alla "tipizzazione forte" esattamente come Python.In sostanza, per uno che come me viene dal c (non c++), che utilizza PHP e ne mastica poco di shell in ambiente Linux, cosa è + consigliato imparare?!


Title: Re:Perl Vs Python
Post by: cgreco on 25-04-2010, 11:20:28

Semplice, ordinato ( l'ordine nello scrivere è un obbligo in Python ),non tipizzato, object-oriented, multi-piattaforma e totalmente free.

Python è strongly typed (fortemente tipizzato?) e dynamically typed (tipizzato dinamicamente?). (qui (http://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language))

Il fatto che non sia necessario dichiarare il tipo delle variabili è dovuto alla tipizzazione dinamica. Non esistono linguaggi di programmazione di alto livello non tipizzati (almeno tra quelli reali e/o di uso comune).

IMVHO, l'indentazione "forzata" dei blocchi non necessariamente impedisce di scrivere del brutto codice. (link (http://www.secnetix.de/~olli/Python/block_indentation.hawk))

1. Per tipizzazione forte si intende quando il programmatore deve esplicitamente specificare il tipo di ogni elemento sintattico che durante l'esecuzione denota un valore, ad esempio Java e C sono fortemente tipizzati. In Python questo non devi farlo. Dire che la tipizzazione è dinamica, invece, è più che corretto poichè la natura delle variabili cambia ( senza bisogno di casting esplicito ) durante l'esecuzione di un programma.
[...]
Le fonti cercatele tu online, io cito quanto detto da due libri di riferimento per il linguaggio.

Non so se la tua fonte sia un libro di riferimento o questa (http://it.wikipedia.org/wiki/Tipizzazione_forte) pagina di wikipedia ("In un linguaggio fortemente tipizzato, il programmatore è tenuto a specificare il tipo di ogni elemento sintattico che durante l'esecuzione denota un valore"), ma anche li è ben scritto che per strong typing non si intende necessariamente soltanto static typing  ma anche type safety, ovvero il fatto che il linguaggio garantisca che le operazioni sui tipi siano corrette (ed è quest'ultimo il caso di Python).

La fonte che ho riportato da python.org descrive chiaramente che il linguaggio è strongly typed e dynamically typed, ed è una FAQ scritta proprio con l'intento di chiarire quella che potrebbe sembrare una "contraddizione". Per la cronaca, anche wikipedia (http://it.wikipedia.org/wiki/Python) riporta le stesse informazioni.

Dicendo che Python non è tipizzato intendevo dire appunto che non è soggetta a tipizzazione statica.

Non è corretto, dire che un linguaggio non è tipizzato significa altro.


Title: Re:Perl Vs Python
Post by: giaffa86 on 25-04-2010, 13:45:01
Non voglio entrare nei meriti delle specifiche dei linguaggi, ed onestamente non ho mai programmato in Perl, mentre mi sono alcune volte dilettato in Python e lo trovo un linguaggio grandioso, si può fare veramente di tutto, si impara in pochissimo tempo perché è veramente intuitivo. Poi le applicazioni Python sono notoriamente delle schegge,ma ti ripeto non so fare confronti con il Perl.

Secondo me Python ti dà più opportunità di sviluppo , poi dipende sempre dalle specifiche esigenze, ma in generale ti consiglio di impararlo per primo,poi in un secondo momento il Perl. .ciaociao


Title: Re:Perl Vs Python
Post by: khealer on 25-04-2010, 13:57:08
Ok, il passo successivo è capire se acquistare un manuale oppure imparare tramite mamma internet .penso


Title: Re:Perl Vs Python
Post by: giaffa86 on 25-04-2010, 16:04:28
Se mastichi inglese non c'è di meglio della Guida per principianti. http://wiki.python.org/moin/BeginnersGuide (http://wiki.python.org/moin/BeginnersGuide)

Poi se cerchi bene non mancano di certo dei tutorial.

Ti linko pure la documentazione ufficiale.

http://docs.python.org/ (http://docs.python.org/)

Buon Lavoro!


Title: Re:Perl Vs Python
Post by: Backdoor on 25-04-2010, 20:15:55
li puoi imparare entrami...
non sono per niente difficili...

non comprare manuali... internet è il miglior manuale che puoi usare!

Adesso c'è pure iron python cioè python interfacciato con .net

Buono studio!  .ciaociao


Title: Re:Perl Vs Python
Post by: LtWorf on 25-04-2010, 20:23:51
Vorrei dei pareri da persone che questi due linguaggi li conoscono (magari entrambi) come Tomaselli che ha scritto "Relational".

Ma cosa ti ha fatto pensare che io conosca il perl?

In linea di massima con tutti i linguaggi si possono fare le stesse cose, essendo solitamente i linguaggi turing-completi.

Volevo inoltre dire che paragonare i tipi del C a quelli di Java è un po' azzardato... In java sia il compilatore che la JVM fanno parecchi controlli sui tipi, che quindi sono controllati sia in compilazione che a runtime, mentre in C si possono fare dei casting assurdi e il programma verrà compilato ed eseguito.

I programmi python su CPython (che è l'interprete python che si usa di solito) sono più lenti degli equivalenti in java. Però CPython si apre molto più velocemente, ed ha un garbage collector che funziona (al contrario di quello di java).

Ma nessuno ha ancora accennato al vero punto di forza di python: i moduli!!!
Ecco due vignette esplicative:
http://xkcd.com/353/
http://xkcd.com/413/

In python esistono moduli per qualsiasi cosa.


Title: Re:Perl Vs Python
Post by: khealer on 25-04-2010, 20:58:00
Ma cosa ti ha fatto pensare che io conosca il perl?
In realtà volevo dire che Tu conosci Python, non alludere al fatto che conosci perl. Lo conosci?!
Comunque è la frase che ho scritto a trarre in inganno  :pray


Title: Re:Perl Vs Python
Post by: LtWorf on 25-04-2010, 21:39:12
No non conosco perl, è una mia lacuna devo ammettere. Per questo motivo ho solo parlato di python.
Però ho sempre apprezzato le battute di Larry Wall.


Title: Re:Perl Vs Python
Post by: havoc on 25-04-2010, 23:10:10
Io come linguaggio general purpose consiglio Python, che si dice essere il linguaggio più facile da imparare.
Prima o poi imparerò Perl, ma con lo scopo fondamentale di lavorare su file di testo (su cui si dice essere imbattibile).

Per quanto riguarda da dove imparare io consiglio la documentazione ufficiale.
Se hai problemi con l'inglese cercati un altro mestiere trovi anche la traduzione italiana della documentazione.


Title: Re:Perl Vs Python
Post by: khealer on 26-04-2010, 08:49:10
Io come linguaggio general purpose consiglio Python, che si dice essere il linguaggio più facile da imparare.
Prima o poi imparerò Perl, ma con lo scopo fondamentale di lavorare su file di testo (su cui si dice essere imbattibile).

Per quanto riguarda da dove imparare io consiglio la documentazione ufficiale.
Se hai problemi con l'inglese cercati un altro mestiere trovi anche la traduzione italiana della documentazione.

Ok, allora parto da Python, e senza guida cartacea. L'inglese non è mai stato uno scoglio per fortuna, quindi mi affiderò alle guide online che avete postato.
Grazie a tutti


Title: Re:Perl Vs Python
Post by: hukketto on 26-04-2010, 12:34:51
riguardo i moduli python... ma  in fondo non ci sono un mare di librerie pure per perl (vedi su CPAN) e per Java (queste soprattutto di terze parti) ?
ammetto di non avere ancora utilizzato python per fare alcunchè...


Title: Re:Perl Vs Python
Post by: LtWorf on 26-04-2010, 14:28:59
riguardo i moduli python... ma  in fondo non ci sono un mare di librerie pure per perl (vedi su CPAN) e per Java (queste soprattutto di terze parti) ?
ammetto di non avere ancora utilizzato python per fare alcunchè...

Non c'è confronto. In python i moduli sono una cosa naturale e spontanea. In java sono una cosa dolorosa e innaturale.


Title: Re:Perl Vs Python
Post by: hukketto on 27-04-2010, 21:11:23
ammetto di non avere ancora utilizzato python per fare alcunchè...
forse è ora di provare qualcosa  :[Emoticon] PC Asd:


Title: Re:Perl Vs Python
Post by: salvin on 29-04-2010, 14:02:58
Perl è un linguaggio orientato naturalmente all' uso di regexp, quindi è molto potente(o magico) nel senso che riesce a fare tantissimo con poco codice.
Per questo è più difficile saperlo usare bene o capire codice di altri, quindi molti hanno iniziato a utilizzare python che è un po' più intuitivo.
E dato che ormai ci sono molte più librerie per python che per perl, quest'ultimo sta diventando sempre più un linguaggio di nicchia per usi specifici.