View Full Version : conviene ancora studiare linguaggi come il c?
crashrade
05-06-2010, 22:55
ciao....
ho aperto questa discussione per avere alcuni consigli....
sono un ragazzo che con tante difficoltà è riuscito ad imparare delle buone basi di python e ora volevo chiedervi dei consigli riguardo al prossimo linguaggio che mi conviene studiare...prima ero intenzionato ad imparare il c, ma ormai sembrerebbe che il futuro sia l'oop...detto questo mi conviene ancora studiare linguaggi come il c (procedurali/modulari)??
ora è preferibile studiare linguaggi come il java, c++, delphi ecc (orientati agli oggetti), giusto??
grazie in anticipo!
il futuro é orientato agli oggetti ma anche funzionale. se hai cominciato con Python hai fatto un'ottima scelta ma di certo non ti conviene proseguire col C.
Delphi IMHO é troppo di nicchia: sebbene sia molto potente lo sento nominare poco, e poi secondo me l'Object Pascal fa schifo, é troppo verboso, stupidamente verboso, inutilmente verboso.
per quanto riguarda Java invece, se ti metti a studiarlo sicuramente non perdi tempo perché oggi é estremamente usato, solo che per quanto mi riguarda si é avviato verso la tomba: la versione 7 definitiva si sta facendo aspettare molto, delle chiusure non ne sentiremo mai parlare (errore enorme) ed inoltre potremmo dire che la Oracle ha un'ottica molto diversa dalla Sun, un'ottica che mira piu ai danari che all'innovazione e non é detto che le due cose coincidano.
a dire la veritá non vedo perché tu debba passare a qualcosa di diverso da Python: non si smette mai di imparare, per quanto possano essere buone le tue basi io continuerei con Python senza cercare a tutti i costi di mettere altra carne al fuoco imparando un altro linguaggio. altrimenti se hai proprio voglia di novitá io mirerei dritto dritto alla piattaforma .NET: C# e F#.
delle chiusure non ne sentiremo mai parlare (errore enorme)
Con tuo sollazzo e mia disperazione, ci saranno. E' stato ufficialmente annunciato da Mark Reinhold al DevoXXX.
Su C, per me un'occhiata bisognerebbe sempre dargliela, non fosse altro per quelle rare occasioni in cui occorre collegare una funzione del sistema operativo ad un programma scritto da un po' più in alto. Lo usa la piattaforma Java, lo usa anche Python se non erro.
Con tuo sollazzo e mia disperazione, ci saranno. HÁH!! :cool:
ne sono felice, provo una certa soddisfazione a programmare "agilmente" acchiappando ("chiudendo") le variabili da una parte e catapultarle dall'altra :D :D
Usa Scala, vedrai che ti passa subito.
Che, scherzi a parte, potrebbe non essere un cattivo prosieguo per crashrade. C'è un thread in rilievo sui linguaggio in cui ne enumero le nequizie.
cdimauro
06-06-2010, 08:42
ciao....
ho aperto questa discussione per avere alcuni consigli....
sono un ragazzo che con tante difficoltà è riuscito ad imparare delle buone basi di python e ora volevo chiedervi dei consigli riguardo al prossimo linguaggio che mi conviene studiare...prima ero intenzionato ad imparare il c, ma ormai sembrerebbe che il futuro sia l'oop...detto questo mi conviene ancora studiare linguaggi come il c (procedurali/modulari)??
ora è preferibile studiare linguaggi come il java, c++, delphi ecc (orientati agli oggetti), giusto??
grazie in anticipo!
Prima ti faccio una domanda: sei sicuro di aver appreso tutte le caratteristiche del linguaggio? Di padroneggiarle? Hai dato un'occhiata alla libreria standard?
Python è un linguaggio molto semplice da apprendere, ma non cadiamo nell'errore che si riesca a impararlo tutto in breve tempo, e soprattutto a programmarlo con una certa mentalità. ;)
Eventualmente passa al C, ma giusto come infarinatura per conoscere qualcosa di più basso livello (e, purtroppo, ancora molto diffusa).
Delphi IMHO é troppo di nicchia: sebbene sia molto potente lo sento nominare poco, e poi secondo me l'Object Pascal fa schifo, é troppo verboso, stupidamente verboso, inutilmente verboso.
per quanto riguarda Java invece, se ti metti a studiarlo sicuramente non perdi tempo
Perdonami: se l'Object Pascal è troppo verboso, come fai a consigliare Java, che da questo punto di vista è anche peggio? :p
Ovviamente mi riferisco alla programmazione OOP.
a dire la veritá non vedo perché tu debba passare a qualcosa di diverso da Python: non si smette mai di imparare, per quanto possano essere buone le tue basi io continuerei con Python senza cercare a tutti i costi di mettere altra carne al fuoco imparando un altro linguaggio. altrimenti se hai proprio voglia di novitá io mirerei dritto dritto alla piattaforma .NET: C# e F#.
Concordo: meglio imparare bene Python, e poi eventualmente studiare qualcos'altro.
Su C, per me un'occhiata bisognerebbe sempre dargliela, non fosse altro per quelle rare occasioni in cui occorre collegare una funzione del sistema operativo ad un programma scritto da un po' più in alto. Lo usa la piattaforma Java, lo usa anche Python se non erro.
Sì, esatto. C'è la libreria ctypes che serve a interfacciarsi con qualunque libreria scritta in C (o che, comunque, espone un'interfaccia C), e servirà conoscere almeno le basi del C per poter importarne correttamente simboli e funzioni.
Ma prima, come ho già detto, è meglio conoscere bene Python.
Usa Scala, vedrai che ti passa subito.
Che, scherzi a parte, potrebbe non essere un cattivo prosieguo per crashrade. C'è un thread in rilievo sui linguaggio in cui ne enumero le nequizie.
:rotfl: Mi hai fatto ribaltare!!! :p
lupoxxx87
06-06-2010, 12:41
il futuro é orientato agli oggetti
....di certo non ti conviene proseguire col C.
per quanto riguarda Java invece, se ti metti a studiarlo sicuramente non perdi tempo perché oggi é estremamente usato
sarà che fero quando scrive proprone le sue opinioni come "la verità assoluta", o almeno così mi è sempre sembrato,
ma un sistema embedded programmato ad oggetti ad oggi non l'ho ancora incontrato...
ogni linguaggio ha i suoi pregi e i suoi difetti, a seconda dell'ambiente in cui operiamo, e non smetterò mai di dirlo.
se vuoi far funzionare una lavatrice usando java, sparati, fai prima.
se vuoi scrivere un applicazione web usando c, idem...
dal mio punto di vista direi....
quale direzione dell'informatica ti interessa di più ?!
informati quali sono i linguaggi adoperati in quell'ambiente, e imparane BENE uno, o al massimo due.
conoscere le basi di tutti i linguaggi non serve se non sai padroneggiarne davvero nemmeno uno
crashrade
06-06-2010, 13:03
beh, programmo in python da piu o meno un anno, ho letto vari manuali...l'unica cosa che credo di non aver studiato sono i socket che non mi interessano tanto e quindi credo di non studiarli...ovviamente mi mancano molti moduli da studiare (dato che è impossibile studiarli tutti:p ), conosco soltanto alcuni tra i piu importanti...forse devo approfondire meglio l'argomento delle classi ecc. (quindi programmazione ad oggetti), con cui non vado molto d'accordo e proprio per questo volevo continuare con un linguaggio orientato agli oggetti, per familiarizzare meglio con questo "nuovo" (nuovo in un certo senso per me) modo di programmare...
non credete che continuare ancora con un linguaggio procedurale vada a mio svantaggio?? finirei per abituarmi troppo con la programmazione procedurale e quindi non imparare mai l'oop...
allora con cosa mi consigliate di continuare?? di certo non continuo con la piattaforma .NET, dato che da non molto sono passato a linux definitivamente...
beh, programmo in python da piu o meno un anno, ho letto vari manuali...l'unica cosa che credo di non aver studiato sono i socket che non mi interessano tanto e quindi credo di non studiarli...ovviamente mi mancano molti moduli da studiare (dato che è impossibile studiarli tutti:p ), conosco soltanto alcuni tra i piu importanti...forse devo approfondire meglio l'argomento delle classi ecc. (quindi programmazione ad oggetti), con cui non vado molto d'accordo e proprio per questo volevo continuare con un linguaggio orientato agli oggetti, per familiarizzare meglio con questo "nuovo" (nuovo in un certo senso per me) modo di programmare...
non credete che continuare ancora con un linguaggio procedurale vada a mio svantaggio?? finirei per abituarmi troppo con la programmazione procedurale e quindi non imparare mai l'oop...
allora con cosa mi consigliate di continuare?? di certo non continuo con la piattaforma .NET, dato che da non molto sono passato a linux definitivamente...
Non trovi che dopo un pò è "studiare" che viene a noia? :asd:
A un certo punto l'unica cosa da fare è cercare di fare un programma vero ed utile... magari anche abbastanza complesso.
vedrai che cosa studiare dopo verrà da sè!
cdimauro
06-06-2010, 14:58
beh, programmo in python da piu o meno un anno, ho letto vari manuali...l'unica cosa che credo di non aver studiato sono i socket che non mi interessano tanto e quindi credo di non studiarli...ovviamente mi mancano molti moduli da studiare (dato che è impossibile studiarli tutti:p ), conosco soltanto alcuni tra i piu importanti...forse devo approfondire meglio l'argomento delle classi ecc. (quindi programmazione ad oggetti), con cui non vado molto d'accordo e proprio per questo volevo continuare con un linguaggio orientato agli oggetti, per familiarizzare meglio con questo "nuovo" (nuovo in un certo senso per me) modo di programmare...
non credete che continuare ancora con un linguaggio procedurale vada a mio svantaggio?? finirei per abituarmi troppo con la programmazione procedurale e quindi non imparare mai l'oop...
allora con cosa mi consigliate di continuare?? di certo non continuo con la piattaforma .NET, dato che da non molto sono passato a linux definitivamente...
Se non hai ancora lavorato con le classi in Python, a questo punto non avrai nemmeno idea di cosa siano le metaclassi (http://www.ibm.com/developerworks/linux/library/l-pymeta.html)...
Tra l'altro Python offre, oltre a quello "tradizionale", un modo nuovo di lavorare con gli oggetti: il duck typing (http://en.wikipedia.org/wiki/Duck_typing#In_Python).
E a questo punto non so nemmeno se padroneggi la programmazione funzionale (http://docs.python.org/howto/functional.html) con Python. :fagiano:
Prima ti faccio una domanda: sei sicuro di aver appreso tutte le caratteristiche del linguaggio? Di padroneggiarle? Hai dato un'occhiata alla libreria standard? ma quando mai... :stordita:
Perdonami: se l'Object Pascal è troppo verboso, come fai a consigliare Java, che da questo punto di vista è anche peggio? :p MAH, MAH, MAH...
ora magari dovremmo capirci meglio sul significato di "verboso", ma io in Java non devo mica dividere tra "interfaccia" e "implementazione", cosa che mi costringe a duplicare i prototipi di tutti i metodi, ed inoltre al posto di "begin" e "end" scrivo le parentesi graffe :stordita:
e inoltre lo stesso discorso vale per gli operatori booleani, che in Java sono simboli e in Object Pascal sono keywords. non capisco perché in Pascal ogni cavolata deve essere una keyword, ci mancava solo che per fare le sottrazioni ci fosse la keyword "minus" (e ci mancava poco visto che per le divisioni intere c'é "div" :stordita: ).
sarà che fero quando scrive proprone le sue opinioni come "la verità assoluta", o almeno così mi è sempre sembrato, no no, é proprio cosi: sono dell'idea che se una cosa la scrivo io é naturale che faccia parte del mio universo di idee, infatti gli IMO per me sono quasi sempre inutili; gli IMHO poi sono addirittura umilianti quindi non vedo proprio perché usarli.
ma un sistema embedded programmato ad oggetti ad oggi non l'ho ancora incontrato... quando si parla del futuro si puó dire qualunque cosa perché non é ancora arrivato e quindi nessuno sa com'é :asd:
oggi per esempio mi va di dire che non sta scritto da nessuna parte che un linguaggio funzionale e orientato agli oggetti non possa essere compilato per un sistema embedded o che il risultato non possa essere efficiente o che richieda necessariamente un runtime troppo ingombrante per un ambiente dalle risorse limitate.
se vuoi far funzionare una lavatrice usando java, sparati, fai prima. e dire che era nato proprio per quello.
se vuoi scrivere un applicazione web usando c, idem... un tempo lo si faceva tramite CGI :stordita:
forse devo approfondire meglio l'argomento delle classi ecc. ah, ecco :asd:
forse devo approfondire meglio l'argomento delle classi ecc. (quindi programmazione ad oggetti), :muro:
PGI-Bis, quando arriva la guida? :cry:
non credete che continuare ancora con un linguaggio procedurale vada a mio svantaggio?? finirei per abituarmi troppo con la programmazione procedurale e quindi non imparare mai l'oop... Python un linguaggio procedurale...? in effetti lo é anche, ma tu per un anno in Python hai scritto solo sotto-procedure? :stordita:
allora con cosa mi consigliate di continuare?? di certo non continuo con la piattaforma .NET, dato che da non molto sono passato a linux definitivamente... ammazza quanto sei fico :eek:
ora che ti sei sporcato le mani e hai capito cos'é un vero sistema operativo si che sei un vero informatico :cool:
Programming language flame war in 3..2..1...
cdimauro
06-06-2010, 19:08
MAH, MAH, MAH...
ora magari dovremmo capirci meglio sul significato di "verboso", ma io in Java non devo mica dividere tra "interfaccia" e "implementazione", cosa che mi costringe a duplicare i prototipi di tutti i metodi,
Su questo hai ragione, ma in ObjectPascal(Delphi & FreePascal) non sei costretto a ripetere ogni volta il qualificatore di visibilità, ad esempio (basta dichiararlo all'inizio del blocco dei membri), e anche questo è un ben risparmio. ;)
Inoltre la netta divisione fra definizione e implementazione permette di realizzare parser a una sola passata, che sono decisamente più veloci in fase di compilazione. Con Delphi non è inusuale compilare programmi con una milionata di righe di codice in pochi secondi. :cool:
ed inoltre al posto di "begin" e "end" scrivo le parentesi graffe :stordita:
e inoltre lo stesso discorso vale per gli operatori booleani, che in Java sono simboli e in Object Pascal sono keywords. non capisco perché in Pascal ogni cavolata deve essere una keyword, ci mancava solo che per fare le sottrazioni ci fosse la keyword "minus" (e ci mancava poco visto che per le divisioni intere c'é "div" :stordita: ).
Questo riguarda il Pascal, più che altro, da cui Delphi, ObjectPascal, ecc., "discendono".
Comunque ci sono anche dei vantaggi per i linguaggi Pascal-like. Ad esempio non sei costretto a mettere le parentesi tonde attorno alle espressioni logiche. ;)
Qui ovviamente è una questione di gusti, ma io preferisco nettamente un linguaggio che usa keyword al posto di simboli, in quanto i sorgenti sono più leggibili. Diventano simili a un testo d'inglese, con tutti i vantaggi del caso.
Poi non è che ci voglia poi così tanto a scrivere una keyword. Diciamo che dopo anni di pratica, la tastiera manco la vedo quando esercito i polpastrelli, e mi viene più facile scrivere una parola che un simbolo (poi per le parentesi graffe, non ne parliamo: sono decisamente scomode sulle tastiere italiane; la tilde, poi, è un incubo). :D
Python un linguaggio procedurale...? in effetti lo é anche, ma tu per un anno in Python hai scritto solo sotto-procedure? :stordita:
A quanto pare. :p
Programming language flame war in 3..2..1...
Quanto sei scettico. :O
:asd:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.