Domanda Python - Versione obsoleta?

Stato
Discussione chiusa ad ulteriori risposte.

nullptr

Utente Emerald
26 Novembre 2015
1,096
21
368
356
Creo questa discussione per l'ignoranza messa in rilievo da molta gente in questo thread:
http://www.inforge.net/xi/threads/aiuto-dos-in-python.412261/
(Premetto che non ho molte esperienze in Python)

Prima cosa, Python 2.7 è obsoleto? La risposta è: NO! Python 2.7 ha moltissime librerie che devono ancora essere convertite in Python 3.*, perciò molti utenti lo usano ancora. Inoltre non c'è molta grandissima differenza tra la 2.7 e la 3.*.
Quindi @TheSeeker aveva ragione. Non è obsoleta - chi scrive che lo è non ha minima idea di cosa pensa!
Seconda cosa, l'utente non è stato soddisfatto. Nessuno ha notato questo errore di sintassi quando chiama la procedura e tenta di passare i parametri "sock.sendto(bytes,(ip,port))"? La virgola...?
E inoltre i parametri di norma sono tre!
Codice:
socket.sendto(string, flags, address)
Terza cosa, perchè nessuno ha riferito all'OP che le contromisure per questi tipi di attacchi sono molto semplici?

No fesserie, thanks!
 
Premettendo il fatto che allora sono stato così stupido da non notare l'errore ma vabbe..

Comunque non sono ancora cosi tanto d'accordo con le affermazioni che avevo fatto, nel senso che oggi nemmeno c'è la vedo più la distinzione, in quanto almeno personalmente, tutti i moduli di cui necessito posso usarli con entrambi i rami.

Poi ovviamente passare da uno all'altro è facile, è sempre Python, cambiano solo delle piccole sottigliezze.
 
Comunque - da notare che ho solo esperienze in C/C++ - Java e .NET.
Io in Python sono 0. Anyway, dal mio punto di vista accertarsi prima di affermare qualcosa di cui non si è sicuri è sempre meglio.
Caro @Xordas & @sik1.
 
Si ma è quella che a più lungo andare sarà supportata.

Dico questo perché annunciarono che a breve il supporto al ramo 2.x finirà.
 
  • Mi piace
Reazioni: deleted5917
Premetto che non conosco Python ma commento quello che ho letto dalla news su Python 3.
Dipende in prima analisi cosa significa linguaggio obsoleto: se per obsoleto significa che non sfrutta le nuove tecnologie allora sì, lo è. Se è sintatticamente o semanticamente obsoleto rispetto alla concorrenza allora non è obsoleto, al limite è mal pensato (o poteva essere pensato meglio).

Prendiamo però l'esempio PHP: la versione 5 non è stata rilasciata perchè nel frattempo sono nate nuove tecnologie che rispondono alle esigenze di mercato, una fra tutte il multithreading. Se ciò non è possibile in Python 2.x (parlo da ignorante), IMHO inizia ad essere obsoleto.

Un'altra accortezza che leggo nel changelog è il supporto a UTF-8: abbiate pietà, lo dico con tutta l'ignoranza del mondo, ma in un mondo globalizzato non puoi usare un charset degli anni '90.

Poi per carità, ognuno è libero di pensare e programmare come preferisce, noi in Staff stiamo studiando un linguaggio ideato nell'85 e poi ripensato solo due anni fa, ciò nonostante in 30 anni si è difeso bene e non lo ritengo assolutamente "vecchio".
 
@murdercode: in italiano obsoleto ha una definizione abbastanza chiara:
Di bene o mezzo di produzione superato da altri più moderni.
E' superato? Non ancora! Per il fatto già spiegato nell'@OP.
Però sì, Python 2.7 è il presente e Python 3 è il futuro. Ma ancora nessuno dei due sono obsoleti.
 
  • Mi piace
Reazioni: TheSeeker
@murdercode: in italiano obsoleto ha una definizione abbastanza chiara:
E' superato? Non ancora! Per il fatto già spiegato nell'@OP.
Però sì, Python 2.7 è il presente e Python 3 è il futuro. Ma ancora nessuno dei due sono obsoleti.
Ma infatti il 3 nasce dall'esigenza di standardizzare alcune piccole cose che mancano al 2.7 . Nessuno sta dicendo che 2.7 è vecchio fracico, anche perchè tra 2.7 e 3.x non vedo praticamente alcuna differenza spulciando le demo.
Però non capisco questa propensione a difendere a tutti i costi il 2.7, è un linguaggio con i suoi piccoli difetti - che però ci sono - e con la 3 si cerca di rimediare.
Che poi se le librerie non sono compatibili un bel ecchissenefotte ci sta tutto, c'è tutto il tempo del mondo per riprogrammarle.
Se però non si passa al 3.x *solo* perchè non ci sono tutte le librerie IMHO questo significa non saper programmare...
 
Ma infatti il 3 nasce dall'esigenza di standardizzare alcune piccole cose che mancano al 2.7 . Nessuno sta dicendo che 2.7 è vecchio fracico, anche perchè tra 2.7 e 3.x non vedo praticamente alcuna differenza spulciando le demo.
Però non capisco questa propensione a difendere a tutti i costi il 2.7, è un linguaggio con i suoi piccoli difetti - che però ci sono - e con la 3 si cerca di rimediare.
Che poi se le librerie non sono compatibili un bel ecchissenefotte ci sta tutto, c'è tutto il tempo del mondo per riprogrammarle.
Se però non si passa al 3.x *solo* perchè non ci sono tutte le librerie IMHO questo significa non saper programmare...
Cosa manca nel 2.7? E inoltre, ti sei mai fatto queste domande?
NB: Non c'è tanta differenza momentaneamente tra il 2 e il 3
* Sono tutti i framework compatibili con Python 3?
* Qualsiasi distro (come Ubuntu) porta Python 3 come installazione predefinita? E secondo te, perchè no?
* La 3 supporta tutto quanto la 2 in termini di documentazioni, librerie, eccetera?

Dipende in prima analisi cosa significa linguaggio obsoleto: se per obsoleto significa che non sfrutta le nuove tecnologie allora sì, lo è.
Questa parte non l'ho proprio capita! E Python 3 sfrutta nuove tecnologie in confronto alla 2?

Date queste affermazioni, come posso spiegarmi questa? Da Wikipedia:
Ultima versione: 2.7.10 (23 maggio 2015) e 3.5.0 (13 settembre 2015)
Stranamente la 2.7 e la 3 sono state aggiornate insieme pochi mesi fa: sono tutte due in aggiornamento!

PS: Può esser pure scocciante fare tutto da soli, e in questo caso non vuol dire che chi usa la 2 non sa programmare!
 
Cosa manca nel 2.7? E inoltre, ti sei mai fatto queste domande?
Infatti non ho detto che manca qualcosa nel 2.x, ho detto che il 3 corregge dei difetti di logica-semantica-sintassi. Le risposte alla mia domanda sono tutte qui. https://docs.python.org/3.0/whatsnew/3.0.html

* Sono tutti i framework compatibili con Python 3?
Differenze nel linguaggio stesso e compatibilità con i framework non è la stessa cosa. Un linguaggio è differente se fai distinzioni tra un oob/function, tra sintassi, tra modus operandi del linguaggio rispetto a interprete/compilatore/vm ...

* Qualsiasi distro (come Ubuntu) porta Python 3 come installazione predefinita? E secondo te, perchè no?
Perchè in Linux python è defacto sinonimo di python 2.7. Python 3 è praticamente su qualunque repository e preinstallato su qualunque distribuzione Rolling Release, mentre sulle varie LTS-Stable non lo è perchè si aggiornano ogni morto di papa, ma è la stessa cosa per qualunque software (in alcune non è neanche presente l'interprete ruby).

* La 3 supporta tutto quanto la 2 in termini di documentazioni, librerie, eccetera?
Vedi che non ci capiamo.
Se Python 3 introduce il != che nel resto del mondo significa diverso, è logico dire che il linguaggio non è compatibile ma questo non significa che sia un cambiamento rivoluzionario, è un'introduzione semplice che però cambia il paradigma di molte sintassi e non rende compatibile le librerie, documentazione, framework e blablabla.
Stesso cacchio per l'UNICODE, se esistono 100 librerie che fanno la manipolazione delle stringhe, e in 3 le stringhe sono trattate in codebyte riferenti a UTF-8, che senso avrebbe usarle? E se avesse senso, come potresti integrarle con un charset diverso?
Ripeto, sono PICCOLE modifiche che però cambiano MOLTO nel linguaggio e crepano qualunque compatibilità.
Altro esempio? Su Python 2.x hai 1 < '' che in altri linguaggi di programmazione ti sputerebbero in un occhio e avrebbero ragione di farlo.
Python 3 IMHO da delle regole fondamentali al programmatore della domenica e di sicuro non fa mai male...

Questa parte non l'ho proprio capita! E Python 3 sfrutta nuove tecnologie in confronto alla 2?
Che fai, citi messaggi precedenti? Se guardi attentamente, il messaggio non era riferito a Python ma al significato del termine "obsoleto".

PS: Può esser pure scocciante fare tutto da soli, e in questo caso non vuol dire che chi usa la 2 non sa programmare!
Quindi mi stai dicendo che il panorama di Python è fatto solo di programmatori degni di essere chiamati tali?
Sono d'accordo con la tua affermazione MA questo significa che t'aspetti che chi ha creato le librerie presto o tardi le traduca in 3.x perchè tu sei bello?
Conosco molti programmatori Ex-Python convertitosi in altri linguaggi, gli unici rimasti anzichè spingere alla novità rimangono piazzati alla vecchia generazione.

Che poi, detto su due piedi, a me non me ne può fregare una strabeataminchia di Python e delle sue versioni, sia chiaro.
Non è un linguaggio che mi affascina e non ho intenzione di usarlo nè impararlo per nessuna ragione al mondo.
Quello che posso consigliarti - che poi accettalo o meno sono fatti tuoi - è che alla lunga è controproducente fossilizzarsi su un linguaggio, a meno che qualche santone non lo riconverte in qualcosa di più appetibile e allora lì sei uno su un miliardo, però sappi che arriverà un giorno in cui dirai: "non posso farlo più potente, più veloce, più bello, più scalabile?". Allora li ti accorgerai che hai programmato una vita da solo, mentre tutto il mondo si divide in OOB/Functional e chi continuerà a usare Python saranno quei ragazzini che hanno spolverato una rivista di informatica del 2000 con su scritto: "Python 3, che la rivoluzione abbia inizio".
 
Infatti non ho detto che manca qualcosa nel 2.x, ho detto che il 3 corregge dei difetti di logica-semantica-sintassi. Le risposte alla mia domanda sono tutte qui. https://docs.python.org/3.0/whatsnew/3.0.html
Non vedo dove sia scritto, me lo citi? Anzi, io vedo questo:
Nevertheless, after digesting the changes, you’ll find that Python really hasn’t changed all that much – by and large, we’re mostly fixing well-known annoyances and warts, and removing a lot of old cruft.
Dove sono questi difetti? Python 2 è stato in sviluppo per molto tempo e non si ha molta probabilità di trovare bug con esso. Python in generale è ben scritto.

Differenze nel linguaggio stesso e compatibilità con i framework non è la stessa cosa. Un linguaggio è differente se fai distinzioni tra un oob/function, tra sintassi, tra modus operandi del linguaggio rispetto a interprete/compilatore/vm ...
Ma cosa c'entra la differenza nel linguaggio - se quello che intendevo è semplicemente che potresti trovare moduli più prescritti sulla 2 che sulla 3? E che ti potresti orientare meglio lì?
Non ci sono troppi vantaggi e svantaggi, nella 3 trovi solo nuove caratteristiche che saranno implementate lì anzichè nella 2.

Stesso cacchio per l'UNICODE, se esistono 100 librerie che fanno la manipolazione delle stringhe, e in 3 le stringhe sono trattate in codebyte riferenti a UTF-8, che senso avrebbe usarle? E se avesse senso, come potresti integrarle con un charset diverso?
Scusami, ma questa parte ancora non riesco proprio a capirla.

Che fai, citi messaggi precedenti? Se guardi attentamente, il messaggio non era riferito a Python ma al significato del termine "obsoleto".
La definizione è solo una per obsoleto, e si sa!

Ora ti do pure io un consiglio:
Leggi attentamente quello che scrivo e non parlare di cose che non c'entrano nel discorso.

Invece di scrivere cose non molto attinenti all'@OP, puoi rispondere finalmente a questa domanda?:
Python 2.7 è obsoleto?
Mi devi dire di SI o no.
 
Non vedo dove sia scritto, me lo citi? Anzi, io vedo questo:
Guarda che quello che hai citato conferma ciò che ti sto dicendo da due pagine di topic (traduzione maccheronica): "una volta digeriti i cambiamenti, Python non è così dverso... abbiamo sistemato alcune piccole imperfezioni e rimosso delle cose inutili" => e cioè dei difetti nel linguaggio stesso.

Python 2 è stato in sviluppo per molto tempo e non si ha molta probabilità di trovare bug con esso. Python in generale è ben scritto.
Ma se quello che dici è vero, che senso avrebbe una versione 3? Se la regola è "mai reinventare la ruota", allora che senso ha fare una versione superiore incompatibile con la 2?

Scusami, ma questa parte ancora non riesco proprio a capirla.
Se conoscessi l'UNICODE non avresti problemi di comprensione: https://docs.python.org/3/howto/unicode.html

La definizione è solo una per obsoleto, e si sa!
Ora ti do pure io un consiglio:
Leggi attentamente quello che scrivo e non parlare di cose che non c'entrano nel discorso.
Invece di scrivere cose non molto attinenti all'@OP, puoi rispondere finalmente a questa domanda?:
Python 2.7 è obsoleto?
Mi devi dire di SI o no.
Tu non hai specificato in quale ambito lo è ma visto che non vuoi affrontare il discorso sul lato tecnico e preferisci farlo solo sulla semantica del termine "obsoleto" mi limiterò a risponderti come a una persona che conosce solo il Python 2.7 .

Per me il Python 2.7 sta diventando obsoleto, ancora non lo è, ma presto lo sarà. Non ho la sfera di cristallo per dirti quando questo succederà ma rispetto a se stesso (rimpiazzato con il 3) e rispetto agli altri linguaggi concorrenti non ha più nulla da dare al mondo della programmazione. E se questa mia affermazione non fosse vera non si sarebbe pensato a una major release, nè tantomeno sarebbero nati linguaggi interpretati come funghi.
Sia chiaro, Python come C sono linguaggi che non moriranno mai, ma se pensi che asserendo che Python 2.7 non sia (ancora) un linguaggio obsoleto/vecchio/malandato e ti ci fossilizzi finchè un santone della programmazione non inventerà un modo per programmare senza dita, allora rimani pure nel mondo della programmazione solitaria.
Peace.
 
  • Mi piace
Reazioni: TheSeeker
Guarda che quello che hai citato conferma ciò che ti sto .dicendo da due pagine di topic (traduzione maccheronica): "una volta digeriti i cambiamenti, Python non è così dverso... abbiamo sistemato alcune piccole imperfezioni e rimosso delle cose inutili" => e cioè dei difetti nel linguaggio stesso.
Tu hai scritto questo:
Infatti non ho detto che manca qualcosa nel 2.x, ho detto che il 3 corregge dei difetti di logica-semantica-sintassi.
Ma la documentazione non dice che corregge difetti di semantica/sintassi! E' solo scritto di avere alcune piccole imperfezioni, non va nello specifico
Ma se quello che dici è vero, che senso avrebbe una versione 3? Se la regola è "mai reinventare la ruota", allora che senso ha fare una versione superiore incompatibile con la 2?
La 3 è ancora in fase di sviluppo, quindi ciò che dici non ha senso
Se conoscessi l'UNICODE non avresti problemi di comprensione: https://docs.python.org/3/howto/unicode.html
Lo conosco meglio di te, ma non capisco il senso di quello che hai scritto qui:
se esistono 100 librerie che fanno la manipolazione delle stringhe, e in 3 le stringhe sono trattate in codebyte riferenti a UTF-8, che senso avrebbe usarle? E se avesse senso, come potresti integrarle con un charset diverso?
Mezzo mezzo mi sembra che sia un copy 'n paste o un pezzo di testo preso dalle wiki pure tradotto male. Quel "che senso avrebbe usarle?" cosa vuol dire? A cosa si riferisce?
Per me il Python 2.7 sta diventando obsoleto, ancora non lo è, ma presto lo sarà. Non ho la sfera di cristallo per dirti quando questo succederà ma rispetto a se stesso (rimpiazzato con il 3) e rispetto agli altri linguaggi concorrenti non ha più nulla da dare al mondo della programmazione. E se questa mia affermazione non fosse vera non si sarebbe pensato a una major release, nè tantomeno sarebbero nati linguaggi interpretati come funghi.
Quindi, mi hai scritto cose scontatissime, magari documentandoti dalle wiki, per dire alla fine la stessa cosa che ho detto io? (Python 2.7 non è obsoleto, ma presto lo sarà)! Ma leggi quello che scrivi?
Sia chiaro, Python come C sono linguaggi che non moriranno mai, ma se pensi che asserendo che Python 2.7 non sia (ancora) un linguaggio obsoleto/vecchio/malandato e ti ci fossilizzi finchè un santone della programmazione non inventerà un modo per programmare senza dita, allora rimani pure nel mondo della programmazione solitaria.
Peace.
Ma lascia stare C che non c'entra nulla, è il paragone più ignorante che abbia mai sentito dire! Paragonare un comune linguaggio interpretato con un linguaggio compilato ... C non morirà mai per un ben chiaro motivo:
Ha dato forma alla sintassi e altri aspetti di tutti gli altri. E Python è compreso in questa lista.
 
  • Mi piace
Reazioni: TheSeeker
Ma la documentazione non dice che corregge difetti di semantica/sintassi! E' solo scritto di avere alcune piccole imperfezioni, non va nello specifico
Ma stiamo leggendo lo stesso documento? Ma lo vedi che molte funzioni cambiano per allinearsi con la sintassi del linguaggio?

La 3 è ancora in fase di sviluppo, quindi ciò che dici non ha senso
Ma in che mondo?! Scusa, se non era Final si chiamava Beta-RC, cosa che fanno tutti gli sviluppatori al mondo! Il fatto che sia integrato con nuove funzioni è normale amministrazione di qualunque progetto!

Mezzo mezzo mi sembra che sia un copy 'n paste o un pezzo di testo preso dalle wiki pure tradotto male. Quel "che senso avrebbe usarle?" cosa vuol dire? A cosa si riferisce?
Se hai una libreria che lavora sulle stringhe, e queste sono di charset diverso, come pretendi che funzionino ancora? Credo di essere stato abbastanza chiaro, seppur semplificando a tal punto da rendere ridicola questa affermazione ma credo che così - anche chi non sa programmare - abbia capito il discorso.

Ma lascia stare C che non c'entra nulla, è il paragone più ignorante che abbia mai sentito dire! Paragonare un comune linguaggio interpretato con un linguaggio compilato ... C non morirà mai per un ben chiaro motivo:
Ha dato forma alla sintassi e altri aspetti di tutti gli altri. E Python è compreso in questa lista.
Ok, ti faccio l'esempio da cani.
La zappa è obsoleta? No, ci puoi zappare la terra, ma non significa che è a pari passo di un trattore. Questo esempio ti è più congeniale?

Quindi, mi hai scritto cose scontatissime, magari documentandoti dalle wiki, per dire alla fine la stessa cosa che ho detto io? (Python 2.7 non è obsoleto, ma presto lo sarà)! Ma leggi quello che scrivi?
Almeno io mi sono preso la briga di leggermele le Wiki. Tu fin'ora hai parlato di tutto e di niente, non hai parlato di nessun tecnicismo, di nessuna differenza, ti sei limitato a controbattere con modi da facilone e a "non capire".

Lo conosco meglio di te
Questa frase dice tutto, complimenti.

Buon divertimento nella tua ubiquità e nella tua conoscenza. Ho già perso abbastanza tempo, parlare con te è come parlare con i Testimoni di Geova. Hai ragione su tutto, ciao ciao ;)
 
Ma stiamo leggendo lo stesso documento? Ma lo vedi che molte funzioni cambiano per allinearsi con la sintassi del linguaggio?
Serio? :O
Io vedo solo che è stata cambiata solo la funzione input() - con Python 2 era presente raw_input(). raw_input(), e la differenza sostanziale è che input() non restituisce più i dati che riceve - ricevi sempre una stringa.
Tutte le altre sono imperfezioni fixate anche se poche :D.
Ma in che mondo?! Scusa, se non era Final si chiamava Beta-RC, cosa che fanno tutti gli sviluppatori al mondo! Il fatto che sia integrato con nuove funzioni è normale amministrazione di qualunque progetto!
Il naming non influisce sul discorso :\
Se hai una libreria che lavora sulle stringhe, e queste sono di charset diverso, come pretendi che funzionino ancora? Credo di essere stato abbastanza chiaro, seppur semplificando a tal punto da rendere ridicola questa affermazione ma credo che così - anche chi non sa programmare - abbia capito il discorso.
Mi aspettavo una risposta del genere. Ti volevo mettere alla prova per vedere cosa scrivevi.
Python 2 e 3 hanno due tipi di stringhe. Ci sono sequenze di byte che devono essere caratteri letterali dall'alfabeto ASCII. Ci sono stringhe unicode, che possono supportare qualsiasi carattere che vuoi mettere. In unicode puoi includere qualsiasi linguaggio con la giusta codifica. La differenza è che in Python 2 devi marcare singole stringhe unicode con la u all'inizio, e.g:
Codice:
u'Pippo'
Se dimentichi la u hai invece una sequenza di byte. Su Python 3 adesso di default tutte le stringhe sono unicode e se vuoi puoi marcare le sequenze di byte con b. E' questo quello che è stato sistemato! C'era tanto da capire?
Documentarsi non fa male, ma soprattutto mettici un po' di testa e rifletti su ciò che dici oltre a tradurre!

Ok, ti faccio l'esempio da cani.
La zappa è obsoleta? No, ci puoi zappare la terra, ma non significa che è a pari passo di un trattore. Questo esempio ti è più congeniale?
Ciò che intendevo è che devi evitare di fare certi paragoni. In quel caso è molto fraintendibile.

Buon divertimento nella tua ubiquità e nella tua conoscenza. Ho già perso abbastanza tempo, parlare con te è come parlare con i Testimoni di Geova. Hai ragione su tutto, ciao ciao
Questa non la commento neanche :\
 
@murdercode lascia stare, vuole avere sempre ragione. Mi ricordo ancora la discussione http://www.inforge.net/xi/threads/source-dll.440636/page-3#post-4354134 che voleva avere ragione con @EvOlUtIoN_OGM che ormai lavora da anni nel settore.

Non solo voleva avere ragione, ma per lo più era un pivellino rispetto a evo che è una persona saggia e sa quel che fa.

@nullptr ma non hai sempre ragione tu. il 70 % delle volte che scrivi sbagli e le persone se ne accorgono come in questo caso di python. Il concello è semplice.. cerca di mantenerti più calmo e di acculturarti, conosco tutto quello che gira intorto a Python e ti posso dire che ha ragione murder..

Non insistere con chi è più grande di te (murder) e non devi neanche controbbattere se ti dice una cosa è quella, non vedi che sta cercando di fartelo capire ? Ma si è seccato anche lui, povero stefano..
Siccome hai detto che conosci bene il mondo che gira intorno a Python, vorrei leggere la tua opinione.. :D
 
  • Mi piace
Reazioni: nullptr e aba
non l'ho capita, rispondi alla mia domanda. E non scappare, non eri l'ingegnere informatico con 50 anni di esperienza? @srsly
ma se ho 18 anni, come faccio ad avere più di 50 anni? sei pazzo? :O
puzzi molto di quell'elysium che si inventò una storiella con exsta, fatta apposta e che non c'entrava nulla :D
 
ah non sei più ingegnere informatico..
:\
1) non ho intenzione di continuare a programmare per tutta la mia vita. Fare l'ingegnere non è mia intenzione. E non è un fatto che ti riguarda
2) ma quando l'ho detto?
3) @St3ve hai vinto la scommessa, se ne è ricreato un altro :\
 
Stato
Discussione chiusa ad ulteriori risposte.