Pages: [1] 2   Go Down
Print
Author Topic: Perl Vs Python  (Read 17560 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
khealer
Guest
« 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
Logged
Aigor
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.184


"Il destino non è una catena, ma un volo."[A.B.]


« Reply #1 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 ! "  pc pc
Logged

"Era d'altronde uno di quegli uomini che amano assistere alla propria vita, ritenendo impropria qualsiasi ambizione a viverla.
Si sarà notato che essi osservano il loro destino nel modo in cui, i più, sono soliti osservare una giornata di pioggia." - Seta,Baricco
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #2 on: 25-04-2010, 00:51:49 »

Vorrei dei pareri da persone [...] come Tommaselli che ha scritto "Relational".
Tomaselli, con una sola "m" univ!
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
cgreco
Matricola
*
Offline Offline

Posts: 39


« Reply #3 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)

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)
Logged
Aigor
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.184


"Il destino non è una catena, ma un volo."[A.B.]


« Reply #4 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)

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)

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.
Logged

"Era d'altronde uno di quegli uomini che amano assistere alla propria vita, ritenendo impropria qualsiasi ambizione a viverla.
Si sarà notato che essi osservano il loro destino nel modo in cui, i più, sono soliti osservare una giornata di pioggia." - Seta,Baricco
khealer
Guest
« Reply #5 on: 25-04-2010, 10:47:23 »

Vorrei dei pareri da persone [...] come Tommaselli che ha scritto "Relational".
Tomaselli, con una sola "m" univ!
Chiedo scusa, non avevo letto bene 

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?!
Logged
cgreco
Matricola
*
Offline Offline

Posts: 39


« Reply #6 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)

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)

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 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 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.
Logged
giaffa86
Matricola
*
Offline Offline

Gender: Male
Posts: 90


« Reply #7 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.
Logged

Nel Software esiste sempre almeno un Bug, generalmente è localizzabile tra la tastiera e la sedia!
khealer
Guest
« Reply #8 on: 25-04-2010, 13:57:08 »

Ok, il passo successivo è capire se acquistare un manuale oppure imparare tramite mamma internet
Logged
giaffa86
Matricola
*
Offline Offline

Gender: Male
Posts: 90


« Reply #9 on: 25-04-2010, 16:04:28 »

Se mastichi inglese non c'è di meglio della Guida per principianti. 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/

Buon Lavoro!
Logged

Nel Software esiste sempre almeno un Bug, generalmente è localizzabile tra la tastiera e la sedia!
Backdoor
Apprendista Forumista
**
Offline Offline

Posts: 117



« Reply #10 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! 
Logged
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #11 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.
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
khealer
Guest
« Reply #12 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
Logged
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #13 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.
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
havoc
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 224


« Reply #14 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.
Logged

Pages: [1] 2   Go Up
Print
Jump to: