Pagina 5 di 9 primaprima ... 3 4 5 6 7 ... ultimoultimo
Visualizzazione dei risultati da 41 a 50 su 109

Hybrid View

  1. #1
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Sostanzialmente abbiamo fatto un intero corso sulla programmazione OO a leggere assieme in aula la documentazione jdk e i tutorial oracle copiati (male) su delle slide.
    A ogni lezione pensavo "alla prossima non vado" e poi "ma magari dice qualcosa di interessante"... Beh, potevo non andare!

    Abbiamo fatto più di 3/4 del corso a leggere la documentazione di JavaFX (2.2 per giunta).
    Consolati, chi avrebbe dovuto insegnare a noialtri il C++ sapeva bene probabilmente il Fortran 77, doveva ripassarsi la sintassi dei template nell'intervallo e nella prima lezione non ricordava se era "cin>>a" o "cin>>&a".
    Per quanto riguarda lua, non posso confermare che la mancanza di convenzioni sia un problema. Più che altro perché, essendo la libreria standard limitata, ogni volta che cerchi una libreria "preconfezionata" su internet devi spendere il triplo del tempo per capirne la struttura.
    Esattamente quello che ho visto... ok fighissimo che il linguaggio non ti "cristallizza" i costruttori, ma capperi, almeno concordate tutti se è nomeclasse::new(), nomeclasse() o qualcos'altro ancora.
    Gli indici che iniziano da 1 danno molto fastidio a quelli del mestiere, per gli altri sono manna dal cielo
    Gli altri devono morire. Dijkstra ha dimostrato conclusivamente che gli indici a base 0 e i range semi-aperti [0, length) sono la Cosa Giusta™, tutto il resto è fuffa.
    (che poi, in generale in nel Lua attuale ci sono concetti ben più complicati da capire degli indici a base zero - che so, le coroutine, le magie delle closures, ... - mi sembra più un accidente storico che altro il fatto che sia rimasta questa odiosa peculiarità).
    Penso che in ogni caso in quanto a flessibilità rimanga uno dei miei linguaggi preferiti.
    Sì, quando ho visto come usa closures+metatables per costruire la OOP mi sono quasi emozionato è raro vedere un linguaggio che ti dà strumenti semplici ma sufficientemente potenti per costruire qualunque cosa in maniera così pulita.
    LOL cioè, no, sul serio, non ho parole per esprimermi su quel codice. Tiene il corso di Algoritmi?
    Fortunatamente no.
    Amaro C++, il gusto pieno dell'undefined behavior.

  2. #2
    Ah, altra chicca trovata oggi: codice che cancella degli elementi che matchano una certa condizione da una lista linkata:
    codice:
    REP:
        for (P = PPfirst; P != NULL; P = P->next) {
            if (condizione(P)) {
                // ...
                CPiazzPz *PL;
                if (P == PPfirst) {
                    PPfirst = P->next;
                    delete P;
                    goto REP;
                } else {
                    for (PL = PPfirst; PL != NULL && PL->next != P; PL = PL->next);
                    if (PL == NULL || PL->next != P) {
                        DIE("Errore in ...");
                        return 0;
                    }
                    PL->next = P->next;
                    delete P;
                    goto REP;
                }
            }
        }
    Questa roba è un piccolo capolavoro, credo sia riuscito a rendere O(n^3) un'operazione O(n):
    • è il primo elemento che deve essere cancellato? ok lo faccio... e ricomincio da capo con un goto?!?
    • altrimenti: ok, questo elemento va cancellato; però azz, devo agganciare il puntatore dell'elemento precedente, ma me lo sono dimenticato... spé che mi ri-scorro la lista da capo per andarlo a trovare
    • visto che non mi fido, comunque controllo se ho ritrovato *davvero* lo stesso elemento;
    • ok, sistemo i puntatori;
    • RICOMINCIO DALL'INIZIO DELLA LISTA CON UN GOTO!


    Dirai, è un aborto scritto da qualcuno momentaneamente incapacitato dal coma etilico e poi fatto sparire... none, è un pattern copincollato più o meno ovunque ci sia da filtrare questa lista :

    E per tornare a bomba sul tuo discorso: ti farà piacere che l'autore di questo codice attualmente insegna all'Università di Genova.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Il mio giudizio sull'università peggiora di giorno in giorno.
    Questi episodi vi aiutano senz'altro a capire meglio perché nelle multinazionali esistono apposite strutture formative interne, ben distinte dalle strutture che erogano corsi a clienti e appaltatori, le quali assorbono risorse notevoli (con non poche bestemmie a livello di management) perché, oltre alla vera e propria formazione verticale interna, spendono circa il 70% del tempo per (re)insegnare ai neoassunti (laureati o addottorati con punteggi non inferiori a 108/110) quello che in teoria dovrebbero già sapere benissimo dai loro corsi di laurea.

    Potrei raccontare cose da farvi drizzare i capelli. Ce n'è davvero per tutti i gusti: dal docente che si è "aggiornato" per l'ultima volta nel 1985 e continua imperterrito ad insegnare che i microkernel message passing sono "più lenti" dei monolitici (poveretti, in fondo le dimostrazioni del contrario sono apparse in letteratura solo nella prima metà degli anni Novanta, e poi uno non può mica leggersi tutto quello che viene pubblicato, specialmente sulla sua materia d'elezione...), fino a quelli, forse più tipici dei politecnici e di certi ambienti didattici, che al contrario si fissano solo sull'ultima piattaforma wintel, sul più recente standard del linguaggio C o C++, sull'ottimizzazione per i sistemi mainstream perché "tanto il resto è obsoleto" e "oggi il compilatore fa tutto". Stendiamo un velo pietoso sugli ottimizzatori più in voga nel mainstream, vedi GCC e dintorni, messi facilmente in ginocchio perfino da una banale equazione di ricorsione espressa in forma moltiplicativa, e limitiamoci a considerare che il "resto" è talmente "obsoleto" che, una volta che questi laureati arrivano in una società dove l'embedded la fa da padrone, bisogna reinsegnare da capo tutti i fondamenti di architettura Harvard, ISA RISC, microottimizzazione, computer arithmetics e in pratica tutto quanto un tempo costituiva il core know how di una laurea in elettronica o informatica. Senza contare che, facendo un conto della serva, oltre il 95% del codice C circolante in totale (non solo nel mainstream!) è a malapena C'89 compatibile e i due standard più recenti fanno davvero ridere i polli quanto ad adozione generalizzata. E si può continuare molto, molto a lungo con gli esempi.



    Riguardo a Lua, come già accennato, rimane uno dei linguaggi più flessibili in circolazione, dopo LISP e i suoi cloni.
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    @beh, ci sono anche persone competenti comunque!
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Poi diciamo che tra non trattare aspetti di micro-ottimizzazione e non sapere nemmeno il linguaggio di programmazione che si sta insegnando passano ordini di grandezza di incompetenza...
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    @beh, ci sono anche persone competenti comunque!
    Per fortuna! Quella dovrebbe essere la regola generale, ma purtroppo diventa sempre più un'eccezione...


    Quote Originariamente inviata da MItaly Visualizza il messaggio
    Poi diciamo che tra non trattare aspetti di micro-ottimizzazione e non sapere nemmeno il linguaggio di programmazione che si sta insegnando passano ordini di grandezza di incompetenza...
    Purtroppo l'intera gamma d'incompetenza appare ben coperta, ci sono rappresentanti di tutte le categorie, anche molto oltre i semplici esempi riportati... i fenomeni di scadimento qualitativo e compressione quantitativa dei piani di studio sono comunque fortemente interrelati, anche se talora in modo non lineare e controintuitivo, con la proliferazione delle sedi e la scarsa competenza specifica di taluni docenti. Occorre anche dire che, contrariamente a quanto avviene nelle università nordeuropee e anglosassoni in genere, in Italia spesso i corsi vengono affibbiati a chi di norma si occupa (talora anche molto validamente) di tutt'altro, per esigenze didattico-organizzative. Il che non giustifica in alcun modo l'attuale stato di cose, ma almeno ne spiega alcuni dei motivi fondamentali.
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

  7. #7
    Quote Originariamente inviata da M.A.W. 1968 Visualizza il messaggio
    Occorre anche dire che, contrariamente a quanto avviene nelle università nordeuropee e anglosassoni in genere, in Italia spesso i corsi vengono affibbiati a chi di norma si occupa (talora anche molto validamente) di tutt'altro, per esigenze didattico-organizzative. Il che non giustifica in alcun modo l'attuale stato di cose, ma almeno ne spiega alcuni dei motivi fondamentali.
    Questo è senz'altro vero, effettivamente i corsi di "calcolo numerico" da noi erano affibiati a gente che, almeno come curriculum, si occupava di tutt'altro (uno era un matematico analista che aveva fatto qualcosa di Fortran nei tempi che furono, l'altro era sì un informatico, ma sul versante teorico - mi sembra si occupasse di computer quantistici).

    È anche vero che a fisica l'interesse per la parte informatica in sé era abbastanza limitata, ma a quel punto non si capisce la scelta di insegnare C++ (con l'atroce libreria Root): nella vita di tutti i giorni del fisico sperimentale sarebbe cento volte più utile e produttivo imparare un linguaggio di scripting (con tutte le reti di sicurezza del caso) con binding a strumenti matematici/statistici/grafici potenti (Python + numpy/scipy, MatLab, Mathematica, R, Octave, ...) piuttosto che farsi del male con linguaggi unsafe che comunque non si sanno padroneggiare.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Vorrei aggiungere la mia goccia all'amaro calice.

    Sono uno studente di Ingegneria Informatica a Napoli (ma vivo a Praga da dicembre, come molti altri sanno).
    Ebbene, mi sono informato un po' su come convertire i miei esami e terminare il corso di studi alla università tecnica ceca (alla fine mi mancano 6 esami).

    Ebbene, il mio super corso di studi, per gli esami che ho dato, si avvicina incredibilmente molto di più ad Ingegneria Elettronica che ad Ingegneria Informatica.

    Sono pazzi, ho pensato.

    2 giorni dopo mi arriva una email. Sono stato scelto per una borsa di studio Erasmus a Tarragona. Fantastico, vediamo le corrispondenze degli esami.
    Ebbene, in anche in tal caso la corrispondenza più vicina è ingegneria elettronica o addirittura elettrica.

    Domanda fondamentale:
    Ma che cazzo mi avete fatto studiare, dannati bastardi?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  9. #9
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    @MItaly da noi i fisici studiano matlab e lo utilizzano anche nei corsi per l'analisi dei dati sperimentali.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  10. #10
    Quote Originariamente inviata da XWolverineX Visualizza il messaggio
    Vorrei aggiungere la mia goccia all'amaro calice.
    Credo che l'intera questione scaturisca dal fatto che da noi l'ingegnere informatico è un ingegnere che per caso sa anche qualcosa di più orientato all'informatica, ma la formazione di base resta la stessa di tutti gli ingegneri, più il fatto che storicamente in ingegneria l'ambito informatico salta fuori da quello elettronico. Viceversa, informatica viene da una costola di matematica (e, storicamente, con parte del personale da fisica e altre facoltà MFN).
    Forse il vero problema da noi è che una facoltà di informatica autonoma e ben fatta non si è mai davvero sviluppata.
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    @MItaly da noi i fisici studiano matlab e lo utilizzano anche nei corsi per l'analisi dei dati sperimentali.
    Anche da noi c'era qualche corso più specifico (con Mathematica e algoritmi un po' più divertenti in C++), e tra l'altro chi l'ha seguito mi ha anche detto che era interessante e fatto bene. Quello che è demenziale è che nei due corsi di calcolo numerico di base (obbligatori per tutti) ci si remeni con C++ e root invece di usare qualcosa di più immediatamente applicabile e con meno rischio di fare casini; paradossalmente, secondo me anche solo spiegare in maniera un po' più organica come si usa per bene un foglio di calcolo aiuterebbe un sacco nella gestione di tanti esperimenti.
    Sospetto che l'intera questione derivi dal fatto che il dipartimento di fisica in UniMi è pesantemente influenzato dall'INFN e dal CERN, dove questo è l'ambiente di lavoro più o meno standard (con tutti i disastri che ne conseguono).
    Ultima modifica di MItaly; 12-05-2015 a 09:27
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.