Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,526

    Io ed il linguaccio C

    Salve a tutti.Mi son messo a studiare da quasi un mesetto il linguaggio C.La mia peregrinazione tra i linguaggi iniziò con il php,passando per java e python,finchè un giorno scoprii che se non avessi iniziato dalle basi,avrei capito ben poco di qualsiasi altro linguaggio.Ho comprato un libro della serie for dummies ed in più un testo dal titolo C from Novice to professional.Studiando mi sto comunque accorgendo che gli esempi e gli esercizi dei testi vertono parecchio sull'aritmetica o su problemi di tipo numerico.Premetto che la mia conoscenza della matematica risale ai ricordi di 4 anni fa,ai tempi del diploma.Ora il mio dubbio è:essendo interessato alla programmazione orientata ai socket ecc,mi conviene sciropparmi pagine e pagine di esercizi relativi al quadrato di un area o al calcolo della circonferenza di un cerchio?Cose che tra l'altro mi annoiano non poco.Sto valutando l'acquisto di un testo che tratti appunto della programmazione dei socket.Consigli e dritte su come proseguire il percorso di studio sono ben accetti.Grazie a tutti.


    ps. nel titolo ho scritto un idiozia,linguaccio.Scusate

  2. #2
    Il linguaggio C è ottimo in alcuni contesti e pessimo in altri. Se il tuo obiettivo è imparare a programmare allora ci sono tante alternative al C, tutte migliori in quanto meno low-level e più didattiche.

    Nella maggior parte dei casi non ha senso sviluppare applicazioni di rete direttamente con i socket, ci sono ottime librerie high-level che ti consentono di concentrare la tua attenzioni sullo sviluppo dei protocolli e dell'applicazione e non su complessi dettagli a basso livello (che si portano dietro bug quasi inevitabili).

    Nel caso del C gli esercizi "aritmetici" non sono inutili, perché servono a mostrarti caratteristiche tipiche del linguaggio. Se ti sembrano inutili allora stai saltanto le basi che tanto ti stanno care...

    Cosa vuoi sviluppare?
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Ho corretto il titolo, adeguandolo a quanto previsto dal Regolamento di quest'area, che ti invito a leggere.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,526

    Re: Moderazione

    Originariamente inviato da LeleFT
    Ho corretto il titolo, adeguandolo a quanto previsto dal Regolamento di quest'area, che ti invito a leggere.


    Ciao.
    scusami!

    #pallinopinco.

    Mi piacerebbe sviluppare qualche applicazione anche stupida,tipo un ping e con il tempo qualcosa di tipo client,ancora non ho un idea precisa,perchè come dicevo sono in fase di apprendimento e ad esempio la questione delle librerie high level mi era all'oscuro.Di quali altri linguaggi parlavi?magari potrei orientarmi su altro.Grazie ;-)

  5. #5
    Per scrivere codice basato sui socket in C che sia "bug-free", efficiente, portabile, (aggiungi qui caratteristiche positive), sono necessari anni di studio, considera che la maggior parte del codice di rete presentato in corsi universitari, tutorial e spesso anche nei libri è di qualità molto opinabile.

    Per questo motivo un principiante non dovrebbe scontrarsi con le complicazioni dei socket a meno che non sia costretto.

    Le librerie ad alto livello ti permettono di concentrarti sul problema da risolvere, difficilmente un programmatore alle prime armi può fare di meglio rispetto a quanto viene reso disponibile da linguaggi più moderni del C: per esempio Java, Python e C#.

    Tutti, a parte il C, prevedono delle librerie per la programmazione di rete che non ti costringono a lavorare a basso livello (ma volendo puoi farlo comunque).

    Per esempio questo è un server di chat con supporto per molteplici client realizzato con Python+Twisted, prova a scrivere l'analogo in C:

    codice:
    """The most basic chat protocol possible.
    
    run me with twistd -y chatserver.py, and then connect with multiple
    telnet clients to port 1025
    """
    
    from twisted.protocols import basic
    
    class MyChat(basic.LineReceiver):
        def connectionMade(self):
            print "Got new client!"
            self.factory.clients.append(self)
    
        def connectionLost(self, reason):
            print "Lost a client!"
            self.factory.clients.remove(self)
    
        def lineReceived(self, line):
            print "received", repr(line)
            for c in self.factory.clients:
                c.message(line)
    
        def message(self, message):
            self.transport.write(message + '\n')
    
    
    from twisted.internet import protocol
    from twisted.application import service, internet
    
    factory = protocol.ServerFactory()
    factory.protocol = MyChat
    factory.clients = []
    
    application = service.Application("chatserver")
    internet.TCPServer(1025, factory).setServiceParent(application)
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,526
    Originariamente inviato da pallinopinco
    Per scrivere codice basato sui socket in C che sia "bug-free", efficiente, portabile, (aggiungi qui caratteristiche positive), sono necessari anni di studio, considera che la maggior parte del codice di rete presentato in corsi universitari, tutorial e spesso anche nei libri è di qualità molto opinabile.

    Per questo motivo un principiante non dovrebbe scontrarsi con le complicazioni dei socket a meno che non sia costretto.

    Le librerie ad alto livello ti permettono di concentrarti sul problema da risolvere, difficilmente un programmatore alle prime armi può fare di meglio rispetto a quanto viene reso disponibile da linguaggi più moderni del C: per esempio Java, Python e C#.

    Tutti, a parte il C, prevedono delle librerie per la programmazione di rete che non ti costringono a lavorare a basso livello (ma volendo puoi farlo comunque).
    mi hai schiarito abbastanza le idee.Dovrò abbandonare per un pò le velleità da programmatore esperto per concentrarmi per bene sulle fondamenta.Python per quanto riguarda la didatticità come lo collochi?Sarebbe il caso di spostarmi su quest'ultimo?

  7. #7
    Ha una sintassi molto leggibile, una ricca libreria standard ed è supportato/usato da grandi realtà (Google, Microsoft, Yahoo, NASA, ...).

    Secondo me è tra i migliori linguaggi didattici, tra l'altro è orientato agli oggetti (il C non lo è) quindi ti permette di passare ad altri linguaggi OO con maggiore facilità.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,526
    Originariamente inviato da pallinopinco
    Ha una sintassi molto leggibile, una ricca libreria standard ed è supportato/usato da grandi realtà (Google, Microsoft, Yahoo, NASA, ...).

    Secondo me è tra i migliori linguaggi didattici, tra l'altro è orientato agli oggetti (il C non lo è) quindi ti permette di passare ad altri linguaggi OO con maggiore facilità.
    ad una prima occhiata su quell'applicazione,suppongo che per scrivere l'equivalente in C ci vogliono minimo due pagine di codice.Ho dato un'occhiata ai socket in C e per creare un minimo socket se ne vanno dieci/quindici righe

  9. #9

  10. #10
    Un libro ottimo, ma adatto ad un programmatore esperto che conosca bene il C e le implicazioni dell'uso dei socket rispetto ad altre soluzioni.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

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 © 2024 vBulletin Solutions, Inc. All rights reserved.