Pagina 3 di 5 primaprima 1 2 3 4 5 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 45
  1. #21
    Utente bannato
    Registrato dal
    Jan 2012
    Messaggi
    9
    Originariamente inviato da vonkranz
    secondo me, a livello di progettazione puo' tornare utile conoscere il grado di versatilita' del linguaggio che si vuole usare per fare un determinato programma. penso che le stesse cose possano essere fatte con un'infinita' di linguaggi di programmazione diversi, a patto pero' di avere piu' o meno rogne nello sviluppo che dipendono dal linguaggio scelto.
    Se però all'università insegnarssero java e C#, quando il programmatore esce e si ritrova da fare un software che gestisce una macchina in una fabbrica:
    1)Lo sviluppa in java? la macchina risulta lenta e imprecisa... tutto da rifare
    2)Lo deve fare in c++ per gestione memoria e prestazioni? bene io avrei solo il terrore di un software fatto in c++ da qualcuno che non ha mai fatto a meno del garbage collector (tanto per esempio banale)


    Sapere o non sapere il c++ per un informatico ad oggi fa semplicemente la differenze tra uno "smanettone" ed un "programmatore".... questo secondo me.

  2. #22
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    io all'universita' ho fatto c (nn mi ricordo se ho fatto anche c++). un corso, il primo semestre, della triennale.
    sono passati 8 anni praticamente.
    non mi ricordo gran che'.
    le nozioni di base le ho ancora (puntatori etc, probabilmente una lista o una pila saprei ancora farla, dovrei riguardarmi la sintassi), ma l'esempio dell'array non ho ancora capito come mai e' O(n!) .
    per il resto ho sempre usato java (ma era per via dei corsi scelti).

    penso che c possa essere utile per alcune cose a basso livello che forse e' utile sapere. ma per il resto non saprei.
    ad esempio, sapere la differenza tra copia per refereneza/valore e' utile anche in java.
    I tipi primitivi sono copiati per valore mentre il resto per referenza.
    senza aver fatto i puntatori ci si mette a capirlo.

  3. #23
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Originariamente inviato da vonkranz

    ma questo fà parte del saper programmare non della conoscienza di un linguaggio piuttosto che un altro
    in linguaggi come python ci sono gli array "magici". Sono performanti solo perchè di fatto sotto (credo e spero) c'è una hashtable. Se impari a botta di python e poi passi a c# hai le stesse possibilità e facilitazioni (gli array magici che puoi ridimensionare a runtime ) ma in c# un array resta un array e tutte le facilitazioni hanno un costo di performance che si presuppone uno conosca (e che of course, sono scritte ma solo nei manualoni).
    Se hai un backgraund di C e passi a c# sfrutti tutte le facilitazioni messe a disposizione dal framework e sai quando usare una struttura piuttosto che un altra. Lo sai anche senza bisogno di leggerlo dal manualone di c#. Questa velocità nell'apprendere le cose in modo corretto è il vero valore aggiunto di aver imparato su C piuttosto che su python.

  4. #24
    Originariamente inviato da bako
    ma l'esempio dell'array non ho ancora capito come mai e' O(n!) .
    Credo sia dovuto al fatto che se elimini sempre il primo elemento dell'array, dopo averlo eliminato devi spostare indietro tutti gli altri, cosa che costicchia
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  5. #25
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Al volo so dire che con una lista costava n, e che con l' array costa n! perchè per togliere gli elementi in prima posizione alla prima botta slitti n elementi, alla seconda ne slitti n-1, ecc.... all' ultima botta ne slitti 1.
    Però non è vero che un linguaggio vale l' altro.
    Ogni linguaggio ha un suo (o i suoi) paradigma, ci sono linguaggi completamente differenti tra loro.
    Secondo me il C è una scelta vecchia proprio perchè ci sono problemi che potrebbero facilmente essere bypassati con la OOP.Quindi C++ o python.
    Poi se uno non si fa un idea di cosa c'è sotto a un computer perchè non usa linguaggi di basso livello, c'è sempre la teoria.E comunque si può implementare una classe lista anche in python.
    L' utilità conta, non è vero che un linguaggio vale l' altro.Se a un colloquio di lavoro chiedono di sapere C# non è la stessa cosa aver studiato un linguaggio differente.
    Comunque si, mi torna utile il C per cui è sicuramente una buona scelta ma secondo me non la migliore.

  6. #26
    Utente bannato
    Registrato dal
    Jan 2012
    Messaggi
    9
    Originariamente inviato da ramy89
    E comunque si può implementare una classe lista anche in python.
    L' utilità conta, non è vero che un linguaggio vale l' altro.Se a un colloquio di lavoro chiedono di sapere C# non è la stessa cosa aver studiato un linguaggio differente.
    Comunque si, mi torna utile il C per cui è sicuramente una buona scelta ma secondo me non la migliore.
    Se faccio un colloquio ad un senior in c++ per una posizione da c# sono sicuro che nel giro di 1 mese è sul pezzo.

    Se faccio un colloqui ad un senior c# per un posizione c++ sono invece grane.

  7. #27
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,584
    ti consiglio l'assembler
    è praticamente immortale come linguaggio
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  8. #28
    Utente bannato
    Registrato dal
    Jan 2012
    Messaggi
    9
    Dai non si può negare la maggiore difficoltà del c++ rispetto ad altri linguaggi, hai la gestione completa a basso livello della memoria, puntantori, modifichi valori spostando indirizzi di oggetti in memoria, devi tenere conto di terminatori....

    Potete, ma pericolossimo. Se domi il c++ domi tutto il resto.

  9. #29
    Originariamente inviato da Kahm
    ti consiglio l'assembler
    è praticamente immortale come linguaggio
    è la base della base

  10. #30
    Originariamente inviato da bako
    ma il vettore non e' una lista?
    Un vettore è un vettore (ovvero, è un blocco di memoria contiguo indicizzato, non è una lista concatenata).
    Però è quello che Python chiama "lista" ([1, 2, 3, 4] di fatto è un vettore).
    da dove viene O(N!)?
    Ho scritto una stupidaggine; il ciclo globale sarebbe O(N), ma ogni iterazione è O(N-i) con i numero dell'iterazione per spostare indietro tutti gli elementi del vettore ad ogni estrazione. Si ha (con k tempo per spostare un elemento e j tempo per l'elaborazione dell'elemento estratto):

    dunque è O(N^2).
    non basta assegnare che il puntatore della variabile vettore venga puntato all'elemento successivo del primo ?
    No, o meglio, potresti ma a quel punto diventa una struttura dati leggermente diversa (con tempo costante ammortizzato per l'inserimento in testa e l'accodamento) in cui scegli dei tradeoff diversi; i std::vector ed equivalenti nei vari linguaggi in genere non implementano questa soluzione.
    Originariamente inviato da CrollaTutto
    Se impari C++ e ti ritrovi a dovere lavorare in Python il tempo di apprendimento è di 48h.
    Verissimo, l'ho provato sulla mia pelle, anche se qualche "C++-ismo" ti rimane addosso.
    Originariamente inviato da vonkranz
    di quello che succede, in termini pratici, poco importa. ad esempio a cosa puo' servire sapere come il compilatore traduce le tue istruzioni in linguaggio macchina? ok, "a te" puo' interessare e va bene, ma a fini pratici serve a poco.

    con il tuo esempio e' la stessa cosa secondo me. A cosa ti serve dover implementare gestire ecc. un oggetto quando ce l'hai pronto? piu' che altro ti serve sapere che per fare una certa cosa ti serve (o puo' servire) un determinato oggetto che fà determinate cose, e questo vale a prescindere dal linguaggio. Che poi alcuni linguaggi te lo diano gia' bello e pronto mentre con altri te lo devi costruire non cambia la sostanza della mia affermazione (almeno credo).
    Il problema è che se usi sempre quelli già pronti è facile che tu non sappia come funzionino, e quindi scegli strutture dati o algoritmi non ottimali.
    Originariamente inviato da lanciafiamme
    Ma se non si impara in un'università specifica ogni minimo dettaglio di funzionamento dei computer e il suoi riflesso sui linguaggi di programmazione, ma dove uno lo dovrebbe imparare?

    A questo punto insegnamo che so a usare Word, e WordBasic, cosa sicuramente più utile e spendibile sia di C che phyton, e già che ci siamo Photoshop.

    In altri termini... se non "lì", "dove"?
    Concordo in pieno. Senza contare che, una volta che sai le basi, è poi facile impararti per i fatti tuoi linguaggi più astratti.
    Originariamente inviato da rsdpzed
    in linguaggi come python ci sono gli array "magici". Sono performanti solo perchè di fatto sotto (credo e spero) c'è una hashtable.
    Fortunatamente in Python c'è una chiara distinzione tra le "liste" (ovvero di fatto array) e "dictionary" (di fatto hashtable). Questa non c'è invece in PHP, dove si usano gli "array magici" per tutto (il che è demenziale sotto ogni punto di vista).
    Originariamente inviato da ramy89
    Però non è vero che un linguaggio vale l' altro.
    Ogni linguaggio ha un suo (o i suoi) paradigma, ci sono linguaggi completamente differenti tra loro.
    Sì e no. Una volta che conosci linguaggi con paradigma imperativo con OOP muoverti tra l'uno e l'altro è fondamentalmente questione di cambiare sintassi e libreria, non di impostazione mentale.
    Secondo me il C è una scelta vecchia proprio perchè ci sono problemi che potrebbero facilmente essere bypassati con la OOP.Quindi C++ o python.
    Il supporto per la OOP dei linguaggi di livello più alto è in gran parte "zucchero sintattico", nulla ti impedisce di programmare object-oriented in C (e anzi è una cosa che si fa di frequente), anche se ovviamente è più faticoso che in altri linguaggi. D'altra parte, anche qui capisci cosa sta sotto a certe funzionalità dei linguaggi di più alto livello (il puntatore "this" nascosto, come si implementa effettivamente ereditarietà e polimorfismo, ...).
    Poi se uno non si fa un idea di cosa c'è sotto a un computer perchè non usa linguaggi di basso livello, c'è sempre la teoria.E comunque si può implementare una classe lista anche in python.
    Puoi, ma non ha senso perché c'è già ed è ben più efficiente perché è implementata dietro le quinte in C.
    L' utilità conta, non è vero che un linguaggio vale l' altro.Se a un colloquio di lavoro chiedono di sapere C# non è la stessa cosa aver studiato un linguaggio differente.
    Non so, non credo che lo scopo dell'università sia di darti abilità immediatamente spendibili, ma di metterti nelle condizioni di poter imparare facilmente quello che poi effettivamente ti servirà.
    Originariamente inviato da Kahm
    ti consiglio l'assembler
    Quale assembly e quale assembler?
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.