Topic: Imparare... o no?  (Letto 16776 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Imparare... o no?
« Risposta #15 il: Ottobre 13, 2013, 00:28 »
Fondamentalmente credo che Riko e qualcun altro sul forum non abbiano molta simpatia per i dilettanti della programmazione.

Se mi garantiscono che io non dovro' mai usare in maniera diretta o indiretta qualcosa di sviluppato da loro, a me stanno pure simpaticissimi eh.
Un po' come quando nei telefilm americani parlano di soluzioni IT a cappellate profuse. Mi fanno pure ridere.

Poi uno si sveglia la mattina, va a lavoro, legge un certo programma e gli viene da chiedersi se *forse* non sarebbe stato meglio che nel mondo qualcuno fosse stato un po' piu' deciso con un hobbista che, per errore, e' diventato professionista. E tu sei li con gli occhi a forma di WTF che ti stai dicendo... ma questo programma non ci sta mettendo 1 minuto per fare sta stronzata perche' qualche imbecille non sapeva che concatenare le stringhe con il + e' O(N^2)...

Poi c'e' tutta la casistica... quelli che non sanno scrivere una ricerca binaria e vengono a chiederti come "proteggere" il loro codice.

Quelli che si capisce che il programma lo scrivono per lavoro ma si vede lontano un miglio che non hanno aperto un libro e stanno andando avanti a spintoni e a domande sul forum.


In effetti, io non ho molta simpatia per tutte le persone che pensano che si possa chiedere senza saper chiedere. Non ho simpatia per chi non cerca di documentarsi.
Non ho simpatia per chi pensa che il suo tempo valga piu' del mio e di quello degli altri partecipanti del forum.


Detto questo, per chi studia e cerca di capire, ho simpatia e tanto rispetto. Non e' facile e sono il primo a dirlo.
Anzi: voglio che sia chiaro che non e' facile e che ci ce la fa merita dei sinceri complimenti oltre al rispetto che ci si guadagna impegnandosi.

E non e' che si debba sapere tutto di tutto: basta avere una chiara idea di quanto poco si sa e una vaga idea di come siano le cose.



> Io credo che invece non c'è nulla di male nel cercare di fare ciò che ci piace, anche quando i risultati sono inferiori alle aspettative.

Non c'e' nulla di male. Pero' posso comunque suggerire che trovare un hobby dove si ha un po' piu' di talento facilmente da piu' soddisfazione?
Cioe' non e' che giocare a calcio mi faccia schifo, ma a parita' di sforzo ci sono parecchie cose che mi anno piu' si soddisfazione.


 Più che altro direi che è da censurare chi decide di fare arti marziali perché vorrebbe diventare un maestro e nonostante i propri limiti insiste nel porsi traguardi irraggiungibili invece di godere nel migliorare ciò che sa. In parole povere credo che Riko abbia ragione da vendere nel suo post, quando intende parlare di coloro che si iscrivono credendo che in qualche mese sapranno fare chissà quale applicazione (ho letto di gente che voleva fare un sistema operativo e stava litigando con la raw_input)


> però c'è il rischio di cedere allo snobbismo, nel momento in cui si pensa che se non si arriva ad un certo livello è tutta
> energia sprecata che avrebbe avuto miglior sorte se utilizzata nel coltivare pomodori nell'orto .

Se vuoi c'e' snobismo. Pero' la questione non e' fra la nobile arte della programmazione e la plebea attivita' dell'orticoltura, che da come la metti sia cosi'.
Se uno ha il pollice verde e non gli piace il giardinaggio non lo fara'. Pero' se come programmatore non gli ci entra in testa, non e' detto che non possa avere piu' soddisfazione come giardiniere, fai da te, musicista, pittore, scrittore o sportivo.

Tutto qui.

E anche se lo fai per hobby, puoi benissimo raggiungere livelli di soddisfazione. Direi che l'esempio classico e' la musica.
Senza diventare professionisti, si possono raggiungere traguardi di tutti i tipi. Suonare dal vivo, suonare pezzi di soddisfazione, etc etc etc.
Se pero' uno e' come il mio vecchio vicino di casa che dopo 3 anni non riusciva ad intonare una dannata scala una sul suo piffero dannato, ...
Beh, davvero, meglio guardare altrove.


> Io lo faccio per hobby, so che il mio livello non sarà mai tale da poter aspirare a farlo di professione

Poi rendiamoci conto che la maggior parte delle persone che lo fanno di professione sarebbe meglio cambiassero mestiere.

> e tanta gente arriva e se ne va (non solo dal forum), rinunciando quando viene posta davanti alla realtà, ma chi si affaccia con umiltà andrebbe incoraggiato.

Ne abbiamo visti tanti. Molti di quelli che adesso sono considerati "esperti" li abbiamo visti quando avevano appena iniziato qualche anno fa.
E' bello e positivo. Niente da dire.

picapy

Re: Imparare... o no?
« Risposta #16 il: Ottobre 13, 2013, 09:57 »
Tu sai benissimo che i linguaggi, cosiddetti, di altissimo livello, sono realizzati attraverso la costruzione di funzioni macro che contengono al loro interno grandi quantità di codici elementari. Sono dette istruzioni che l'interprete ricava e che esegue nel puro linguaggio macchina, da dare in pasto al processore del pc (dico processore e non processori per non complicarmi la vita e per non dilungarmi oltre lo strettamente necessario). Se il linguaggio è invece uno di quelli che richiedono la compilazione, la conversione in linguaggio macchina la fa il compilatore.

No ecco, io non lo sapevo. Anzi, mi risultava che le cose fossero un po' diverse. Per esempio mi risultava che il concetto di "linguaggio compilato" sia una bella invenzione del marketing, visto che tramite le proiezioni di futamura, dato un interprete si puo' ottenere un compilatore. Il che vorrebbe dire che ogni linguaggio e' compilato, che farebbe suonare la frase "linguaggio compilato" piu' o meno come "linguaggio linguaggioso" con una salva di applausi di Mr. de la Palisse.

http://zeus.ing.unibs.it/FI-PPING/Lucidi/lucidi0910/T16-LingCompilatoriInterpreti.pdf

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1.720
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Re: Imparare... o no?
« Risposta #17 il: Ottobre 13, 2013, 23:20 »
Capito questo ed imparato che richiamando un dizionario otterrà un certo risultato, diverso da quello che otterrà invece utilizzando una lista (chiedo scusa per avere ridotto detti oggetti a livello di banalità, ma l'ho fatto semplicemente per semplificare il concetto), il resto, mettendo un pò di quel sale contenuto nella propria zucca, dovrebbe diventare di facile dominio e di semplice utilizzo.

Non mi trovi d'accordo. Io posso realizzare lo stesso codice in più modi, che hanno le stesse funzionalità:

[codice]
import numpy as np
a = np.arange(1,10)

a = list(range(1,10))

a = {(x-1):x for x in range(1,10)}
[/codice]
In questi tre casi a è sempre l'elemento i-esimo di a, ma in quali casi useresti un formato e in quali un altro? Qua si vede se uno è bravo o no a programmare, non basta buttare giù codice e vedere se funziona, vanno misurate le prestazioni!

Ecco, lo sapevo, mi sono dilungato. Ti chiedo scusa. Però ci sarebbe ancora tanto da dire sull'argomento. Forse è meglio che chi può e sa si limiti a dare pazientemente consigli, anche se magari la domanda dovesse vertere su temi già affrontati e risolti.  :)

Io, comunque, mi trovo dalla parte di chi ha bisogno d'aiuto.  ;)

Ciao.

Anche io sono dalla parte di chi ha bisogno di aiuto, ma l'aiuto va dato in modo intelligente. Non serve essere "pazienti" e rispondere sempre a qualunque domanda, è più educativo sollecitare la curiosità e la voglia di documentarsi e imparare da sè, cosa che in teoria dovrebbe essere già presente in una persona che si approccia ad imparare un nuovo "hobby/mestiere".

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Imparare... o no?
« Risposta #18 il: Ottobre 15, 2013, 09:27 »
http://zeus.ing.unibs.it/FI-PPING/Lucidi/lucidi0910/T16-LingCompilatoriInterpreti.pdf

Non e' la prima volta che qualcuno scrive qualcosa di errato su internet o su un set di slides con cui fa studiare degli studenti.

Un linguaggio e' semplicemente un sottoinsieme della star-chiusura di un alfabeto, fine della fiera.
Un linguaggio di programmazione avra' una semantica tale che lo rende appunto un linguaggio di programmazione, ma la teoria dice *chiaramente* che puoi interpretare e compilare ogni linguaggio di programmazione.

Non e' che ci voglia molto per intuire che un se esiste un compilatore per un linguaggio, possiamo facilmente scrivere un interprete. Voglio dire, se e' turing completo, per la tesi di church-turing possiamo scrivere un interprete su una macchina di turing che lo esegue. E abbiamo interpreti che eseguono macchine di turing universali, quindi *sicuramente* un interprete esiste per ogni linguaggio "di programmazione" (tecnicamente turing completo).

La terza proiezione di Futamura dato un interprete ci restituisce un compilatore in modo automatico.

Si e' quindi dimostrato che ogni linguaggio di programmazione per cui abbiamo un interprete ha un compilatore e viceversa. Di conseguenza, se vogliamo usare la dicitura "linguaggio compilato" e "linguaggio interpretato", si e' dimostrato che ogni linguaggio compilato e' anche un linguaggio interpretato e viceversa. Ergo non esiste particolare senso ad usare la dicitura.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: Imparare... o no?
« Risposta #19 il: Ottobre 15, 2013, 12:37 »
La terza proiezione di Futamura

[OT on]
Avevo letto terza proiezione di Futurama ed avevo pensato ad una superca**ola!  :party:
[OT off]
« Ultima modifica: Ottobre 15, 2013, 12:42 da Giornale di Sistema »

Offline Max74

  • python neanderthalensis
  • ****
  • Post: 383
  • Punti reputazione: 0
    • Mostra profilo
Re: Imparare... o no?
« Risposta #20 il: Ottobre 15, 2013, 20:51 »
http://zeus.ing.unibs.it/FI-PPING/Lucidi/lucidi0910/T16-LingCompilatoriInterpreti.pdf

Non e' la prima volta che qualcuno scrive qualcosa di errato su internet o su un set di slides con cui fa studiare degli studenti.

Un linguaggio e' semplicemente un sottoinsieme della star-chiusura di un alfabeto, fine della fiera.
Un linguaggio di programmazione avra' una semantica tale che lo rende appunto un linguaggio di programmazione, ma la teoria dice *chiaramente* che puoi interpretare e compilare ogni linguaggio di programmazione.

Non e' che ci voglia molto per intuire che un se esiste un compilatore per un linguaggio, possiamo facilmente scrivere un interprete. Voglio dire, se e' turing completo, per la tesi di church-turing possiamo scrivere un interprete su una macchina di turing che lo esegue. E abbiamo interpreti che eseguono macchine di turing universali, quindi *sicuramente* un interprete esiste per ogni linguaggio "di programmazione" (tecnicamente turing completo).

La terza proiezione di Futamura dato un interprete ci restituisce un compilatore in modo automatico.

Si e' quindi dimostrato che ogni linguaggio di programmazione per cui abbiamo un interprete ha un compilatore e viceversa. Di conseguenza, se vogliamo usare la dicitura "linguaggio compilato" e "linguaggio interpretato", si e' dimostrato che ogni linguaggio compilato e' anche un linguaggio interpretato e viceversa. Ergo non esiste particolare senso ad usare la dicitura.

Avevamo già sfiorato l'argomento. Confesso che non conoscevo ne' Futamura, ne' le sue proiezioni prima che tu me le nominassi la prima volta nella discussione su dichiarazione e inizializzazione (e anche io avevo letto Futurama con la stessa sensazione di Giornale ) o forse non le ricordavo, perché non vi ho dato la giusta importanza, e mi sono documentato. La cosa è molto interessante, però quello che tu proponi è un cambiamento di lessico corrente. No, perché non c'è un manuale che non parli di 'linguaggi interpretati' e 'compilati', anche quando poi spiega che si tratta di una distinzione arbitraria. Quando io ho fatto il mio unico esame di informatica all'università, 19 anni fa ormai, non era neanche pensabile non fare questa distinzione, anche se le proiezioni, a quanto pare erano già state sviluppate. Ora, nel linguaggio corrente alcuni tipi di linguaggi vengono definiti compilati, altri interpretati, altri ancora pseudocompilati o ibridi. Certo, sono definizioni arbitrarie, ma è una cosa talmente diffusa e consolidata, che anche se nel tempo perde di significato, credo che sia destinata a durare a lungo, almeno fino a quando sarà chiaro a cosa ci si riferisce, perché dare un nome alle cose è naturale nell'uomo. E in fondo il fatto che un linguaggio sia nato per essere interpretato non mi sembra una cosa da poco e credo che se non altro un'indicazione su come viene nativamente implementato debba essere data. Perciò non credo che si tratti di un'operazione di marketing, bensì di una distinzione di comodo. Alla fine mi sembra più che altro questione di semantica lessicale.

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Imparare... o no?
« Risposta #21 il: Ottobre 15, 2013, 21:47 »
Non sono io che "voglio cambiare il lessico". Perfino wikipedia fa notare come il termine sia vago.
Ed e' vago oggi piu' ancora che una volta.

Ci sono linguaggi la cui implementazione dominante e' sia un compilatore che un interprete (e.g., GHC per Haskell ti da appunto un compilatore e una REPL).
E sono linguaggi "in allargamento".

La maggior parte dei linguaggi piu' diffusi (con l'eccezione di C/C++/Objective-C) hanno come implementazione dominante una soluzione in cui il sorgente viene *compilato* in bytecode e poi il bytecode viene interpretato. O, in alternativa viene *compilato* in codice macchina. Il quale poi viene interpretato. Dal processore, questa volta.
Nota, la differenza fra Python e Java e' semplicemente che le implementazioni dominanti di Java tipicamente richiedono un passo esplicito di compilazione e poi l'esecuzione del bytecode (con o senza JIT, formalmente), mentre in CPython la compilazione e' *implicita*' (nonostante questo la documentazione lo definisce "interpretato"). PyPy provvede anche ad una specie di JIT.

Linguaggi come Pascal sono nati con interpretazioni a bytecode (il famoso PCode), mentre oggi tipicamente viene compilato su codice nativo. Quando invece non viene sparato su CLR .Net. Che e' un bytecode...

Non parliamo poi dei processori... un moderno processore x86-64 *interpreta* in microcodice (software, non propriamente hardware) la maggior parte delle istruzioni "native", che sono praticamente "interpretate" o per lo meno tradotte (visto che sotto sotto un processore fa parecchia roba).

Il problema e' che oggi la distinzione e' davvero fumosa: i motivi teorici rendono la distinzione praticamente arbitraria. Ovvero siamo costretti a riferirci ad una "implementazione dominante" che nascondiamo sotto il termine. Ma la realta' della pratica rende tutto in effetti *veramente* nebbioso. Tutto qui.

Quindi si, sarebbe il caso di abituarci ad usare altri termini, perche' quelli correnti non solo non indicano nulla di rilevante, ma non chiarificano nemmeno il problema. Anzi, lo complicano.

Offline Aezio

  • python neanderthalensis
  • ****
  • Post: 327
  • Punti reputazione: 1
    • Mostra profilo
Re: Imparare... o no?
« Risposta #22 il: Ottobre 16, 2013, 22:47 »
Ero molto indeciso se rispondere o meno a questo post data la sua natura didattica, ma magari do una mano a riportare il discorso in tema.

Citazione
Ecco... "noi", che facciamo questo di mestiere, abbiamo almeno una vaga idea di tutto questo. Potrebbe anche essere una tipica domanda fatta ad un colloquio di lavoro, per capirci. Ed e' anche qualcosa che uno che si va a laureare in Informatica dovrebbe provare vergogna a non sapere. Magari non abbiamo idea dettagliata di tutto... specialmente dei lati piu' bassi... dopotutto informatica ed elettronica sono discipline separate. Ma anche li...

La mia idea di tutto cio' e' molto piu' che vaga, non studio in maniera sistematica ed ho una forte tendenza ad appicciare codice preso qua e la' per fare cio' che mi serve.

Citazione
Poi uno si sveglia la mattina, va a lavoro, legge un certo programma e gli viene da chiedersi se *forse* non sarebbe stato meglio che nel mondo qualcuno fosse stato un po' piu' deciso con un hobbista che, per errore, e' diventato professionista. E tu sei li con gli occhi a forma di WTF che ti stai dicendo... ma questo programma non ci sta mettendo 1 minuto per fare sta stronzata perche' qualche imbecille non sapeva che concatenare le stringhe con il + e' O(N^2)...

Uso sempre spesso + per sommare le parole, sono venuto a conoscenza dell'esistenza di O(N^2) da questo forum qualche mese fa e ne ho letto qualcosa da wikipedia.

Il fatto e' che tra i programmatori professionisti e gli hobbisti puri vi e' una terza categoria di cui orgogliosamente faccio parte: quelli che usano python (o un altro linguaggio) per migliorarsi la vita ma non ci mangiano direttamente.

Mi spiego meglio, qualche anno fa dovevo selezionare l'ultimo numero della seconda colonna in piu' di mille file di testo e copiarlo in un file excel, li' capii che prima di morire di noia facendo il lavoro di una scimmia dovevo fare qualcosa.

Scrissi, faticosamente un programmino (senza la parte excel, ma vabbe') che per fare quel lavoro di 2 ore ci metteva un paio di minuti, magari oggi se lo riscrivessi ce ne metterebbe uno. Se studiassi per bene magari ci metterebbe mezzo secondo.

Il fatto e' che il vero guadagno e' stato il passaggio da 2 ore a 2 minuti.

Quindi a tutti gli utilizzatori non professionisti del forum che hanno avuto la pazienza di leggere fin qui' vorrei dire che ci si puo' divertire con la programmazione ed anche migliorarsi la vita togliendosi qualche sfizio anche se non si e' perfetti.

Certo, se volete farvi pagare per il codice che scrivete, o per le ore impiegate a scriverlo il discorso cambia e sarei il primo, da cliente, a richiedere conoscenze e professionalità'. Ne uso gia' tanto di codice orribile, non c'e' bisogno di aggiungerne altro al mondo  ;)

Buon  :py: a tutti!

mod edit: codice -> quote
Edit: pardon ;-)
« Ultima modifica: Ottobre 17, 2013, 08:54 da Aezio »

Offline shinken

  • python erectus
  • ***
  • Post: 206
  • Punti reputazione: 0
    • Mostra profilo
Re: Imparare... o no?
« Risposta #23 il: Dicembre 25, 2013, 13:55 »
Ho più o meno imparato le basi di python.
A che è servito?
Ogni volta che devo fare una cosa rognosa e ripetitiva perdo 2 orette e scrivo qualche linea di codice.
Magari le ore sono 5 o 6
Di solito vado in pari o in positivo rispetto al tempo che impiegerei a fare manualmente un operazione.
Valeva la pena studiarlo?

Si è più divertente scrivere 100 righe di codice piuttosto che fare 2500 volte un operazione a mano.
Le appl? Quelle le fanno i professionisti.
Python migliora il mio rapporto col mio computer... mi fornisce uno strumento per fare cose.
Questo è tutto

Adanf

Re: Imparare... o no?
« Risposta #24 il: Gennaio 03, 2014, 22:24 »
Ho letto tutti i post di questa conversazione e li ho trovati, in un certo senso, molto divertenti.
Per questo una parolina ce la devo mettere pure io.
Di quello che avete scritto è vero tutto e il contrario di tutto, perchè in fin dei conti quello che conta è il giudizio della "rete" che darà la popolarità e il successo al programma e al programmatore in questione. La storia dell'informatica ne è piena di esempi simili, basti vedere com'è nato Linux e la relativa discussione tra il suo creatore e un professore universitario, oppure come ha fatto ad avere tanto successo e ad avere così tanta longevità il primo sistema operativo di casa microsoft che a confronto con i Big dell'epoca sembrava scritto in fretta e furia da un bambino o, infine, il linguaggio di programmazione che tanto noi amiamo, Python, che a detta del suo creatore lo ha creato nei momenti in cui non sapeva cosa fare... e ne ho citati solo alcuni, per farli riaffiorare nella mente dir chi già li conosce o per dare speranza a chi non li ha mai sentiti, visto le considerazioni dei post precedenti.
Perciò, a mio modesto parere, che tu sia un insegnate esperto programmatore o uno studente alle prime armi che programma per passione o per hobby o altro, quello che conta è trovare quel qualcosa che ti fa dire " cavoli, però se ci fosse questa cosa..." e non importa poi come la implementi, basta che la fai conoscere al grande pubblico nel modo corretto e avrai raggiunto il tuo scopo (o anche di più).

Detto ciò io son sempre dell'idea che più una persona si ritiene (e magari lo è davvero) esperta più tenda a snobbare delle buone (se non ottime) idee provenienti da persone di livello conoscitivo inferiore.
E' anche vero che molta gente con poche o nulle conoscenze pensa di essere un "esperto" e pecca di esperienza in campo, dando per superflue certe conoscenze invece molto importanti, se non di vitali importanza per il programma che vuole sviluppare (in poche parole, "più brainstorming Sir!" :D)

Spero che nessuno se la sia presa per il mio discorso un pò sproloquioso.

Saluti
« Ultima modifica: Gennaio 14, 2014, 19:25 da Adanf »

Offline plurex

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Re:Imparare... o no?
« Risposta #25 il: Novembre 10, 2017, 03:30 »
ciao raga,sono nuovo,per non aprire un inutile thread posto qui la mia domanda,che è un po' pertinente,spero al titolo xD
sto studiando python da un po',tra teoria e pratica,e installazione di librerie.
ho studiato,non approfonditamente,anche altri linguaggi,tipo c++ e java perchè pensavo anche ad un possibile lavoro.
il mio percorso universitario è totalmente opposto all'informatica XD
veniamo al dunque.
python mi è piaciuto più degli altri.sentivo spesso amici o conoscenti,ma anche sul web,parlare della semplicità e potenza di python.(certo,"semplicità" si fa per dire lo so)

tra ieri e oggi mi sono sorti molti dubbi su python.si parla sempre della vastità di librerie,ma alcune tra ieri e oggi mi hanno un po'deluso.
stavo provando a creare un semplice programma si sintesi vocale,o che comunque riconoscesse le voci.librerie ce ne sono.(ho googlato molto e mi sono aiutato con alcuni esempi già pronti lo ammetto)

ma ho notato che molto spesso si appoggiano su altre servizi o programmi.nel senso,creo sto progammino che scrive a video le parole che sente,ma poi scopro che servono altri programmi perchè il tutto funzioni.
che ne so,c'è una libreria che praticamente sfrutta cortana per "sentire " e scrivere quello che tu dici.

allora mi sono chiesto,dov'è il senso?che motivo ho di scrivere un programma che in mancanza del programma esterno non funzionerebbe?
uso direttamente quello gia pronto.anche il fatto che sia un linguaggio interpretato non è una debolezza?certo posso creare l'exe,se poi però ho problemi di compatibilità su altre macchine?
scusate la lunghezza e comunque forse ho scritto fregnacce,dato che sono niubbo
(dato che ho letto i messaggi sopra,preciso che studio python,o la programmazione in genere,nel tempo libero,quindi potrei essere leggermente confuso,studiando da solo)
« Ultima modifica: Novembre 10, 2017, 03:43 da plurex »

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re:Imparare... o no?
« Risposta #26 il: Novembre 10, 2017, 07:31 »
allora mi sono chiesto,dov'è il senso?che motivo ho di scrivere un programma che in mancanza del programma esterno non funzionerebbe?
uso direttamente quello gia pronto.

È un modo di fare che ha un nome: "don't reinvent the wheel", ossia non reinventare la ruota.

Immagina questo scenario: stai scrivendo un programma di posta elettronica, hai già implementato l'invio e la ricezione delle email, per gli utente con deficit visivo vuoi implementare anche la lettura vocale del testo: cosa fai? Ti scrivi da capo il codice con tutto il tempo necessario per farlo e testarlo (anche mesi), oppure vai a cercarti una libreria che già lo fa e con un binding per Python che ti permette semplicemente di importarla e usarla sin da subito?

Tra l'altro quella libreria se è in giro da un po' (qualche anno) e ha anche una base di sviluppatori che ne seguono lo sviluppo, è sicuramente più testata e ricca di funzionalità di quanto potresti far tu in un periodo equivalente.

anche il fatto che sia un linguaggio interpretato non è una debolezza?certo posso creare l'exe,se poi però ho problemi di compatibilità su altre macchine?

Perché dovrebbe essere una debolezza? Se sei a conoscenza del concetto di Virtual Machine, proprio il fatto che hai una piattaforma Python che ti gira su sia su Mac che Linux che Windows (tanto per citare i sistemi operativi più comuni per  un utente home) ti permette di scrivere il programma una volta sola ed eseguirlo ovunque (entro certi limiti variabili) c'è un Python che gira.
« Ultima modifica: Novembre 10, 2017, 07:35 da Giornale di Sistema »

Offline Trizio

  • python unicellularis
  • *
  • Post: 40
  • Punti reputazione: 1
    • Mostra profilo
Re:Imparare... o no?
« Risposta #27 il: Novembre 10, 2017, 10:04 »
E cosa risolvi facendo un exe?  :dont-know:

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re:Imparare... o no?
« Risposta #28 il: Novembre 10, 2017, 10:06 »
scusate la lunghezza e comunque forse ho scritto fregnacce,dato che sono niubbo

Non ti preoccupare. E si, in tutta onesta' sono fregnacce.

> stavo provando a creare un semplice programma si sintesi vocale,o che comunque riconoscesse le voci.

Grazie, hai preso un "Problema Difficile". E' anche un problema su cui al momento il mio employer e un altra manciata di nomi pesanti e qualche nuovo arrivato si stanno scannando. Sembra sia attualmente l'holy grail dell'informatica.

Ora, io scommetto che trovi anche librerie di riconoscimento vocale "standalone". Pero' capisci che se (ora) esiste accesso agli affati di suddetti big player, che fondamentalmente sforano completamente dalle logiche de "deve girare su un singolo computer -- che potrebbe anche essere un cellulare --". E secondo me al momento attuale suddetti affari sono davvero allo stato dell'arte.

Detto questo, scusa, ma mi viene da sorridere pensando alla frase "semplice programma di sintesi vocale". Cioe', capisco cosa intendi, ma fa sorridere lo stesso. Anche perche' per ora rimane un problema difficile.

Quando smettera' di essere un problema difficile? Fra non troppo. Aspetta che i vari aggeggi che abbiamo adesso maturino. A quel punto tutti daranno per scontato che la sintesi vocale e' una cosa che funziona.

Vedi anche, per esempio: https://aws.amazon.com/documentation/lex/

> ma ho notato che molto spesso si appoggiano su altre servizi o programmi.nel senso,creo sto progammino che scrive a video le parole che sente,ma poi scopro che servono altri programmi perchè il tutto funzioni.

Allora, tu hai vagamente idea di quanti "programmi" servono anche solo per fare si che tu possa scrivere un file su disco con ed?
Firmware, bootloader, kernel, qualche variante di init, shell, ed stesso. Stiamo parlando di qualche milione di linee di codice.

Non saprei nemmeno *contare* il numero di programmi che sta venendo eseguito perche' io scriva questo messaggio e tu lo legga. Non saprei nemmeno stimarlo con precisione, ma direi nell'ordine delle centinaia.

Non siamo in un epoca di

> che ne so,c'è una libreria che praticamente sfrutta cortana per "sentire " e scrivere quello che tu dici.

Mi sembra sensato. Se appena posso (ovvero posso assumere di non funzionare in mancanza di rete) la qualita' di servizi del genere e' difficilmente raggiungibile altrimenti. Scommetto che ci sono librerie analoghe per i vari cugini di Cortana.


> allora mi sono chiesto,dov'è il senso?che motivo ho di scrivere un programma che in mancanza del programma esterno non funzionerebbe?

Diciamo che tutto il mondo del software engineering parte dal presupposto che non solo questa cosa abbia senso, ma anche che sia l'unica cosa sensata. Ovvero che scrivere monoliti senza dipendenze e' in generale non pratico, troppo costoso, fragile e una cattiva idea. Ci sono alcuni specifici casi in cui si vuole che questo succeda, e in generale questo vincolo rende il problema drammaticamente piu' complicato.

Food for thought. Che senso ha scrivere in Python? Senza la macchina virtuale Python non gira. Ma anche... che senso ha scrivere in C? Senza un compilatore non riesco nemmeno a produrre un binario che possa eseguire.


> anche il fatto che sia un linguaggio interpretato non è una debolezza?

Ok. adesso cerca di convincermi che non sei un troll. Fai necroposting di un thread defunto. E di tutte le cose di cui vai a parlare c'e' il "linguaggio interpretato", concetto che e' stato discusso a lungo in questo stesso thread. O non hai letto il thread che hai riaperto, o non lo hai minimamente capito, oppure... non so. Forse non sei d'accordo? Ma il tuo messaggio non sembra quello di uno che non e' d'accordo. Boh.

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re:Imparare... o no?
« Risposta #29 il: Novembre 10, 2017, 10:07 »
E cosa risolvi facendo un exe?  :dont-know:

Ah, si... poi anche la storia degli exe. Sembra uno dei vecchi del forum che si sta facendo quattro risate. :)