PDA

Visualizza la versione completa : [OT] Per chi vuole cominciare a programmare


matrics21
01-05-2004, 20:37
Ho notato che su questo forum viene chiesto molto spesso che linguaggio imparare per cominciare a programmare.
Se i moderatori me lo consentono, avrei una breve descrizione:

Innanzi tutto esistono 2 categorie di linguaggi, in base alla difficoltà:

Linguaggi a basso livello, e linguaggi ad alto livello.
I primi sono dei linguaggi abbastanza ostici da imparare ma sono anche i linguaggi che permettono di far fare qualsiasi cosa ad un pc(o quasi :fagiano: ). Questi linguaggi sono molto vicini al linguaggio macchina, ovvero quella serie interminabile di 1 e di 0.
L'unico linguaggio davvero difficile che mi viene in mente è l'assembler.
Per essere buoni programmatori assembler bisognerebbe conoscere a fondo l'architettura hardware di un pc e saper gestire i numeri con basi diverse dal 10(anche se dovrebbero essere nozioni comuni per qualsiasi programmatore).
Salendo la scala arriviamo al linguaggio forse al livello più alto(ma non per questo poco efficiente) che è il Python.
Poi ci sarebbe una seconda suddivisione da fare, fatta in base alla filosofia di programmazione,che poi è la suddivisione che ci interessa di più:
Linguaggi procedurali e linguaggi ad oggetti:
I primi hanno come parola centrale l'algoritmo, cioè quell'insieme di istruzioni messe una dopo l'altra che, partendo da un input permettono di ottenere un output.
I linguaggi orientati agli oggetti(OOP), mettono al centro di tutto appunto l'oggetto.
Cosa è un oggetto?
Un oggetto è un qualcosa di reale, come un'automobile, una persona,ecc.
Ogni oggetto come sappiamo possiede delle caratteristiche(o attributi) e può svolgere delle azioni(o metodi).
Bene immaginiamo di estrapolare questi oggetti dal mondo reale e di metterli dentro ad un pc. Ecco a voi un linguaggio ad oggetti!
Qui non ci si basa più su una sequenza di istruzioni da eseguire, ma da attributi da cambiare e da metodi da svolgere.
Si, mi sono letta sta pappardella, ma io che linguaggio imparo?
Di linguaggi ne esistono a volontà, e non c'è un linguaggio migliore di un altro, dipende tutto da cosa vogliamo fare e perchè no da quello che più ci attira.
Eccone qualcuno:

C è un linguaggio procedurale, utilizzato per scopi generici ma soprattutto per la programmazione di sistemi operativi e giochi, affiancato da assembler.

C++ è l' evoluzione del C, in quanto si può programmare sia come lo si faceva in C, sia ad oggetti.

Java è un linguaggio ad oggetti, derivante dal C++ con la differenza di essere meno potente ma più robusto, nel senso che la memoria non la controlla il programmatore ma il pc, ciò vuol dire che viene si tolto un pò di controllo al programmatore, ma viene evitato il rischio di una scorretta gestione della memoria.All'inizio infatti si era pensato di chiamare questo linguaggio C++--( :fagiano: ).
Inoltre Java toglie quell'ambiguità che aveva il C++,che non era nè carne ne pesce,infatti non vi era un distinzione ben definita tra linguaggio procedurale e linguaggio a oggetti.Java invece è un linguaggio ad oggetti puro(anche se non al 100%,infatti se lo fosse stato anche per fare 2 + 2 ,si dovrebbe richiamare un metodo che facesse la somma).
Java viene usato per scopi generici.

Visual Basic è un linguaggio di programmazionwe casa Microsoft, nato anche esso per scopi generici, e per chi è alle prime armi avrà sicuramente un buon approccio con esso, ma forse meno possibiltà rispetto ad altri linguaggi.

Pascal è un linguaggio procedurale nato principalmente per insegnare la programmazione, quindi è usato per scopi generici.

Delphi, la versione successiva ed a oggetti del Pascal, con una sintassi "like human", nel senso che assomiglia molto al linguaggio umano.

Poi ci sarebbero dei linguaggi che non sono dei veri e propri linguaggi:

Asp, è un linguaggio utile per gestire siti dinamici, insieme al PHP e JSP,solo che per ASP bisogna pagare(è Microsoft), per PHP e JSP no.
(Spero di non aver fatto cattiva pubblicità ad Asp :fagiano: ).

Questi ultimi linguaggi spesso sono affiancati da altri come Javascript, Jscript e VBscript,che sono dei linguaggi di scripting, che servono per creare funzioni particolari nelle pagine web.

SQL, un linguaggio, o meglio uno standard di istruzioni per la creazione e gestione dei database.
SQL può essere sia a se stante, nel senso che possiede un suo programma, sia integrato, ovvero le sue istruzioni si possono inserire all'interno di altri linguaggi.


A voi la scelta del linguggio :)

Lardoman
01-05-2004, 20:59
Salendo la scala arriviamo al linguaggio forse al livello più alto(ma non per questo poco efficiente) che è il Java.



Dimentichi Python che è un linguaggio di livello ancora più alto di java e che è ottimo x chi comincia.




C++ è la versione ad oggetti del C



Non è proprio del tutto corretto,il C++ è (come la maggior parte) un linguaggio ibrido: si può programmare sia in modo procedurale che ad oggetti.

L'unico linguaggio totalmente ad oggetti è Java





Asp, è un linguaggio utile per gestire siti dinamici, insieme al PHP e JSP,solo che per ASP bisogna pagare(è Microsoft), per PHP e JSP no.
(Spero di non aver fatto cattiva pubblicità ad Asp :fagiano: ).

Questi ultimi linguaggi spesso sono affiancati da altri come Javascript, Jscript e VBscript,che sono dei linguaggi di scripting, che servono per creare funzioni particolari nelle pagine web.

SQL, un linguaggio, o meglio uno standard di istruzioni per la creazione e gestione dei database.
SQL può essere sia a se stante, nel senso che possiede un suo programma, sia integrato, ovvero le sue istruzioni si possono inserire all'interno di altri linguaggi.



Vabbè questa parte potevi anche tralasciarla. Quì si parla di programmazione software,quella x il web non centra molto.







Cmq ottimo lavoro. Ti consiglio di chiedere ai moderatori di aggiungerlo alle pillole, così che ogni utente che chieda "come inizio a programmare" venga reindirizzato a questa discussione

:ciauz:

matrics21
01-05-2004, 21:04
Originariamente inviato da Lardoman
Dimentichi Python che è un linguaggio di livello ancora più alto di java e che è ottimo x chi comincia.



Non è proprio del tutto corretto,il C++ è (come la maggior parte) un linguaggio ibrido: si può programmare sia in modo procedurale che ad oggetti.

L'unico linguaggio totalmente ad oggetti è Java




Vabbè questa parte potevi anche tralasciarla. Quì si parla di programmazione software,quella x il web non centra molto.







Cmq ottimo lavoro. Ti consiglio di chiedere ai moderatori di aggiungerlo alle pillole, così che ogni utente che chieda "come inizio a programmare" venga reindirizzato a questa discussione

:ciauz:

grazie per le correzioni, se me lo consenti modifico direttamente il mio post :)

Lardoman
01-05-2004, 21:07
Originariamente inviato da matrics21
grazie per le correzioni, se me lo consenti modifico direttamente il mio post :)

si,si fai pure :)

matrics21
01-05-2004, 21:08
Originariamente inviato da Lardoman
si,si fai pure :)


grazie ;)

:ciauz:

anx721
02-05-2004, 13:14
Java non è l'unico linguaggio totalmente ad oggetti, a parte il fatto che neanche java è totalmente ad oggetti. Smalltalk lo è davvero, e in smalltalk anche i numeri sono oggetti, anche i metodi invocati sugli oggetti sono essi stessi oggetti e anche i blocchi di istruzioni di un programma sono oggetti.

Lardoman
02-05-2004, 13:37
Originariamente inviato da anx721
Java non è l'unico linguaggio totalmente ad oggetti, a parte il fatto che neanche java è totalmente ad oggetti. Smalltalk lo è davvero, e in smalltalk anche i numeri sono oggetti, anche i metodi invocati sugli oggetti sono essi stessi oggetti e anche i blocchi di istruzioni di un programma sono oggetti.

Si ma...conosci qualcuno che programma in smalltalk ? :master:

maiosyet
02-05-2004, 13:49
Aggiungiamo due parole per il Ruby, un linguaggio che dopo aver finito il C mi attira molto? :)

(chi se la sente, ovvio, così la pillola è completa)

matrics21
02-05-2004, 14:03
Originariamente inviato da anx721
Java non è l'unico linguaggio totalmente ad oggetti, a parte il fatto che neanche java è totalmente ad oggetti. Smalltalk lo è davvero, e in smalltalk anche i numeri sono oggetti, anche i metodi invocati sugli oggetti sono essi stessi oggetti e anche i blocchi di istruzioni di un programma sono oggetti.


Si lo so che java non è totalmente ad oggetti per il fatto che non supporta l'ereditarietà multipla, ma ho preferito non scrivere per non approfondire cose che magari ad un neofita non interesserebbero.
Cmq ogni consiglio è ben accetto :)

matrics21
02-05-2004, 14:04
Originariamente inviato da Lardoman
Si ma...conosci qualcuno che programma in smalltalk ? :master:


appunto :fagiano:

Loading