Nascita e Dominio della Programmazione Orientata agli Oggetti - AFK STORIA
HTML-код
- Опубликовано: 29 авг 2024
- #oop #simula #programmazione
Tutto nasce con Simula, linguaggio di programmazione sviluppato da Ole Johan Dahl e Kristen Nygaard, informatici norvegesi che hanno implementato il primo di linguaggio di programmazione orientato agli oggetti della storia. Questo linguaggio ha influenzato la maggior parte dei linguaggi di programmazione moderni, tra cui C++ e Java. Ma com’è nato tutto?
Se questo video ti è piaciuto, lascia un Mi Piace e, se vuoi dire la tua opinione, lascia anche un commento.
Non perdetevi gli altri video che trovate nel Canale:
► AFK Breaking News: • BREAKING NEWS
► AFK Storia/Storie: • STORIA/STORIE
►AFK Under the hood: • UNDER THE HOOD
► CODE ACADEMY: • Python, C++, e Java - ...
► AFK VLOG: • VLOG
► Iscriviti al Canale!
► Seguitemi su Instagram: / valerio_afk
Video HS-22-016
io sono programmatore da più di 30 anni con una conoscenza che parte da Assembler a Python passanda da C , c++ , Visual Basic , Java e .Net. Devo dire per la mia conoscenza che per alcuni usi la programmazioni da oggetti dove non serve appesantisce la scrittura e il codice ma in alcuni casi senza la programmazioni ad oggetti si dovrebbe scriver la stessa struttura *n istanze.
Per tanto è vero che senza il codice della programmazione ad oggetti si legge meglio ma in casi in cui si deve strutturare un albero di oggetti predefiniti definiti che risultano sempre uguali e senza la programmazione ad oggetti devo scriver un numero esagerato di righe di codice.
Es. se devo scrivere un programma che deve fare muovere delle foglie , definisco Albero con dei sottoinsiemi che sono Rami che al loro interno avranno una gruppo di oggetti di quantità variabile che sarà popolato con la ripetizione dell'oggetto Foglia ( dove al suo interno sarà impostato tutto il codice per disegnare e per far muovere una foglia )
ed evitando la programmazione ad oggetti, finisci col ricrearla
@@StivenFocs purtroppo alcune applicazioni vanno scritte per forza ad oggetti , ti porto un esempio pratico che ho scritto per uno stabilimento , il PC/Server comunica sulla porta seriale con modem industriali che sono connessi a un massimo di 39 dispositivi. Nello stabilimento ci sono ~7000 dispositivi da controllare, i PC che fanno da nodo con database Mysql/MariaDB hanno un costo per tanto mi hanno chiesto di modificare l'applicazione per gestire più di un modem. Per far questo ho dovuto aprire n^ di istanze ( oggetti ) del modulo di comunicazione cosi da poter collegare un numero massimo dei modem che è uguale al numero di porte seriali a chi sono connesse i modem.
Cosi ho ridotto il numero dei PC
Grazie Valerio,
sei stato molto gentile ed esaustivo.
Complimenti
Grazie a te per essere passato da queste parti 🙂
Guarderei i tuoi video anche solo per sentirti dire "General purpose" 😁 A parte gli scherzi ho scoperto il canale da poco e sono contento di seguirti, bravo!
General....purpose....!
Stonks
Vai con la cavia!!! 😂
Sicuramente non mi posso definire un programmatore navigato super + e quindi mi può sfuggire l’elefante in mezzo alla stanza, ma davvero non sono mai riuscito a capire il vero vantaggio della programmazione orientata ad oggetti!😂
Ad ogni modo complimenti per tutto quello che fai! Spero che questo canale riceva tutte le attenzioni che merita!! 😀
Io la vedo da un punto di vista storico. Secondo me quando fu introdotta e poi applicata via via in altri linguaggi, negli anni 70/80 portava veramente dei vantaggi (e.g. mantenibilita' del codice). Poi i problemi si sono visti dopo. Infatti, le critiche mosse alla OOP che ho riportato nel video sono state dette dagli anni '90 in poi
@@valerio_afk il concetto dell'intera giungla ha senso, ma vale per tutti tutti i linguaggi? ricordo di aver fatto una cosetta in java e che avesse decisamente problemi di lag quando c'erano più interazioni.. e ho effettivamente fatto quasi tutto con la OOP 🤦♂
io credo che il motivo per cui la oop e' oggi dominante (e lo sará ancora per molto tempo) é dato da una serie di fattori.
Innanzi tutto peró dobbiamo chiederci quale sia l'ambito di proliferazione della oop: e' ovviamente quello aziendale e NON scientifico.
Ergo: in ambito aziendale dalle piccole alle medie ed alle grandi imprese, gli sviluppatori non sono tutti matematici, o almeno, non hanno le conoscenze o le basi per poter affrontare in tutta tranquillitá la produzione di applicazioni in erlang o haskell. E, in ogni caso, non sono molti quelli che sono in grado di applicare la logica funzionale pura.
E se ache fosse, se in un team di 5 sviluppatori, solo uno conosce anche Erlang, e' ovvio che il responsabile di questo team non accetterá di far scrivere anche un solo programma in erlang.
Quindi prima motivazione, secondo me, é di carattere sociale/culturale.
Altra motivazione, almeno in raffronto alla PF, e' che la PF non é sempre applicabile.
La PF in certe situazioni e' molto meno performante e molto piu avida di risorse rispetto a quella imperativa. E' un dato di fatto.
In ambito aziendale, java ad esempio(linguaggio principe OOP) per molti anni ha stravinto perché era nato con l'intento di "obbligare" gli sviluppatori a seguire approccio molto piu rigido allo sviluppo (tutto e' una classe, molto simile a smalltalk). Si levano i puntatori che creano spesso inomprensioni, si introduce il Garbage collector ed esce fuori un linguaggio general purpose oop straordinariamente adatto allo sviluppo aziendale.
Vorrei chiarire che sto esprimendo questi concetti in maniera quanto piu possibile oggettiva. Non e' mia intenzione detrarre le capacitá degli altri paradigmi.
E' vero che OOP tende ad apparire piu complessa perché aggiunge sovrastrutture che all'apparenza sembrano inutili, effimere.
Ma va anche detto che con l'aumento della complessitá di una soluzione il paradigma OOP offre dei vantaggi grazie all'incapsulamento. Poi e' chiaro che alla fine e' sempre il "manico" quello che conta. Perche' ci sono diversi modi per scrivere un programma e qualcuno di noi potrebbe anche aver dovuto modificare qualche applicazione scritta in male OOP. Questo fa parte del mestiere.
Ultimo considerazione e' invece rispetto ai personaggi citati nel video che esprimevano il loro disappunto per la OOP. Non c'é alcun dubbio che ne sappiano di gran lunga piu di me. Ma questi sono scienziati che scrivono compilatori e artefatti di natura simile. E' anche ovvio che abbiano la visione un po distorta rispetto ad altri ambiti in cui si scrive codice.
Mi trovo perfettamente d'accordo con tutto quello che hai detto. Vorrei fare un appunto. E' vero che la PF e' avida di risorse ed e' vero che e' un dato di fatto. Ma ti porto qua quello che diceva il nostro professore all'universita' a riguardo. Quando fu inventato il calcolo automatizzato (ergo, i computer), si fece una scelta di basarli sulla macchina di turing. Se i computer invece fossero stati basati sui concetti di lambda calcolo, allora oggi diremmo le stesse cose al contrario: che la programmazione imperativa e' avida di risorse. In soldoni, essendo che i computer di oggi sono basati sulla macchina di turing, quando devi eseguire qualcosa di funzionale puro, lo devi emulare. Ed e' da qui che nasce il problema che, ad oggi, ci ritroviamo con una PF che fatica ad avere prestazioni comparabili con quella imperativa. Ora questo e' quello che e' successo in passato. In futuro ci potremmo ritrovare ad avere computer quantistici (che sono tuttora in fase sperimentale). Pero', esistono delle librerie (C, Python per citarne alcune) che permettono di programmare (di emulare insomma) quello che potresti fare con un computer quantistico. Ma ovviamente non avrai mai le stesse prestazioni, perche' stai emulando con una macchina di turing qualcosa che non lo e'.
@@valerio_afk eh....volevo menzionare anche questo aspetto, relativamente alla genesi dei computer, ma mi ero accorto di essermi dilungato un po troppo e non ho voluto infierire...ehehhe.... in ogni caso colgo l'occasione per farti i complimenti per l'ottimo video ed anche gli altri che hai fatto. Mi appresto a seguirti.
Grazie mille per essere passato :)
Simula è funzionale?
non penso proprio