PDA

View Full Version : iniziare a programmare


88diablos
17-09-2005, 11:42
raga non ho mai programmato in vita mia e vorrei iniziare, che linguaggio mi consigliate di imparare? come e cosa mi serve per imparare?
grazie

VICIUS
17-09-2005, 13:28
Evita linguaggi come C e C++. Puntatori, gestione della memoria, eredita multipla, ... sono tutte cose con cui non vuoi avere a che fare per ora. :)

Concentrati su linguaggi come ruby o python che hanno della buona documentazione disponibile gratuitamente sul loro sito e una sintassi semplice.

ciao ;)

88diablos
17-09-2005, 13:50
Evita linguaggi come C e C++. Puntatori, gestione della memoria, eredita multipla, ... sono tutte cose con cui non vuoi avere a che fare per ora. :)

Concentrati su linguaggi come ruby o python che hanno della buona documentazione disponibile gratuitamente sul loro sito e una sintassi semplice.

ciao ;)
azzo, la mia intenzione era proprio quella di iniziare con C e C++ :D

VICIUS
17-09-2005, 13:58
azzo, la mia intenzione era proprio quella di iniziare con C e C++ :D
Fidati. Prima di andare a lottare a mani nude dentro l'arena con belve feroci e gladiatori cerca di fare un po di esperienza e procurati qualche arma. :D

ciao ;)

Gremo
17-09-2005, 14:19
java ? :mbe:

Mr.Paschi!
17-09-2005, 15:53
Iniziare con java sarebbe il massimo. Ma credo che per chi nn ha mia programmato l'inizio sarebbe un pò complicato.
Cmq se dovessi scegliere adesso come primo linguaggio con cui iniziare sceglierei java. Quanto è bello.

88diablos
17-09-2005, 16:49
raga java o no? ho + confusione di prima, se mi dite che java è il migliore inizio da quello, studierò d + pazienza :D

Minelab
17-09-2005, 16:56
Io ho iniziato con Fortran77 quindi una spolverata di C (dovrei approfondirlo pareccio) e quindi con Visual Basic passando per il linguaggio semi-proprietario di Mathematica.
Per me l'importante è l'avere un obiettivo pratico da raggiungere e tempo/voglia da dedicarci.

88diablos
17-09-2005, 18:21
Io ho iniziato con Fortran77 quindi una spolverata di C (dovrei approfondirlo pareccio) e quindi con Visual Basic passando per il linguaggio semi-proprietario di Mathematica.
Per me l'importante è l'avere un obiettivo pratico da raggiungere e tempo/voglia da dedicarci.
l'obiettivo pratico non c'è ancora, per adesso ho soltanto la voglia di imparare

Gremo
17-09-2005, 20:35
jav per iniziare va benissimo ripeto (qui lo insegnano all'uni come primo linguaggio). poi è a oggetti il che non è poco! è elegante ! (mai quanto il perl)

VegetaSSJ5
17-09-2005, 20:36
inizia con java poi passi al c

Ziosilvio
17-09-2005, 21:04
Vai di Python.

cionci
17-09-2005, 23:33
jav per iniziare va benissimo ripeto (qui lo insegnano all'uni come primo linguaggio). poi è a oggetti il che non è poco! è elegante ! (mai quanto il perl)
Un conto è se hai un professore che te lo insegna...un altro è iniziare da solo :)

Gremo
17-09-2005, 23:48
Un conto è se hai un professore che te lo insegna...un altro è iniziare da solo :)

intervieni senza consigliare il tuo linguaggio...
vorresti farlo iniziare con il C? :rolleyes:

il java:
-è "pulito" ed elegante
-è semplice e alla base per poi orientarsi verso altri linguaggi
-non ha strutture come i puntatori che solo per capirli...
-è a oggetti

ps. non ho mai seguito all'università, ho sempre studiato per conto mio (e non sono un gran genio...il java lo impara chiunque)

cionci
17-09-2005, 23:52
intervieni senza consigliare il tuo linguaggio...
vorresti farlo iniziare con il C? :rolleyes:
Appunto...che mi leggi nella mente :rolleyes:
Io consiglierei Python...
ps. non ho mai seguito all'università, ho sempre studiato per conto mio (e non sono un gran genio...il java lo impara chiunque)
Nemmeno le prime lezioni ? Non avevi mai visto un linguaggio di programmazione ?

Gremo
17-09-2005, 23:56
Appunto...che mi leggi nella mente :rolleyes:
Io consiglierei Python...

non so cosa sia...link?
a parte che col java si fanno mille cose e può tornare utile...dal multithreading alle servlet alle pagine jsp...


Nemmeno le prime lezioni ? Non avevi mai visto un linguaggio di programmazione ?

giuro, mai ;) (il mio problema è svegliarmi la mattina :stordita: )
basta avere un buon libro e internet, oltre che ad un minimo di intelligenza logica

cionci
18-09-2005, 00:00
http://www.python.org/

cj++
18-09-2005, 06:16
java è "pulito" ed elegante

pulizia ed eleganza nn sono propri di un linguaggio ma di chi scrive il codice. a mio parere. ti posso assicurare che se mi ci metto d'impegno riesco a scrivere una vera porcheria di codice java :D

Gremo
18-09-2005, 06:26
pulizia ed eleganza nn sono propri di un linguaggio ma di chi scrive il codice. a mio parere. ti posso assicurare che se mi ci metto d'impegno riesco a scrivere una vera porcheria di codice java :D

ci credo :D

a me sembrerà cmq sempre più "bello" (stiamo sempre parlando di linguaggi :D:D)


#include<stdio.h>
int main(void) {
printf("Hello\n");
return 0;
}



public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello");
}
}

cionci
18-09-2005, 07:41
a me sembrerà cmq sempre più "bello" (stiamo sempre parlando di linguaggi :D:D)


public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello");
}
}

In pratica hai usato il Java come il C...ottimo esempio di paradigma ad oggetti ;)
Se volevi dimostrare la bellezza del linguaggio certo non era quello il modo :)

Ti spiego...non mi piace come fanno Java nei primi corsi universitari, visto che danno per scontato molte cose sulla programmazione ad oggetti...e per questo non mi piace che all'università facciano Java come primo linguaggio...

Ho preso il primo programma sulle liste trovato sul sito di una università italiana... Realizzare un programma sulle liste fatto così non ha senso in Java (come in C++ del resto):

import java.io.*;

class Lista{
int info;
Lista next;
}

public class Liste{

static Lista leggiLista() throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String linea = in.readLine();
if(linea==null||linea.equals("quit"))
return null;
else {
Lista l=new Lista();
l.info = Integer.parseInt(linea);
l.next = leggiLista();
return l;
}
}

static void stampa(Lista l){
if (l!=null) {
System.out.print(l.info + " ");
stampa(l.next);
}
else System.out.println("");
System.out.flush();
}


static Lista inverti(Lista l){
// l riferimento alla lista ancora da invertire
// tmp riferimento alla lista invertita
Lista tmp=null;

while (l != null){
Lista tmp1 = l.next;
l.next = tmp;
tmp = l;
l = tmp1;
}
return tmp;
}

public static void main(String[] args) throws IOException{
Lista lista = leggiLista();
stampa(lista);
lista = inverti(lista);
stampa(lista);
}
}


/**
Perche' si e' usata una funz. che restituisce una lista per "inverti"
invece di una funz. void come in [Testo Fond.II Cap.3.6.3]?
**/
Il problema è che Java venendo realizzato in questo modo perde ogni sua utilità...anzi probabilmente in C sarebbe stato stilisticamente più bello...
in pratica corrisponde ad usare Java come un linguaggio strutturato...
La giusta realizzazione in Java sarebbe stata quella di realizzare in un file separato la classe Lista, lista doveva esportare i metodi aggiungi, inverti, e due metodi che ritornavano il valore contenuto spostandosi verso la testa o verso la coda...
Realizzare programmi in Java così è un ORRORE...invece i corsi universitari dei primi anni tendono ad usare Java come se fosse un linguaggio strutturato, ma la cosa peggiore è che lo insegnano ad usare in quel modo...

Gremo
18-09-2005, 07:54
il mio era un esempio era il classico hello word trovato su google :)
non so quale sia effettivamente situazione italiana e se effettivamente il linguaggio venga insegnato male: dalla mia esperienza sono soddisfatto,anche se non penso di conoscere perfettamente il java perchè ovviamente ci vuole molta pratica.

Gli esami qui sono 2: uno sul java "strutturato"...in pratica le basi con i costrutti, i tda, e l'introduzione agli oggetti e awt. l'altro è sulla programmazione ad oggetti con java, thread, swing e tutto il resto.anche qualche design pattern

ovviamente penso che questa divisione sia giustissima

cionci
18-09-2005, 08:02
Io invece penso che se si vuole insegnare Java si debba fare almeno un minimo di programmazione ad oggetti...e come vedi, il programma che ho incollato precedentemente non ne inserisce nemmeno un minimo !!! Altrimenti potrebbero continuare ad insegnare C come hanno fatto per decenni...

Gremo
18-09-2005, 08:04
Io invece penso che se si vuole insegnare Java si debba fare almeno un minimo di programmazione ad oggetti...altrimenti potrebbero continuare ad insegnare C come hanno fatto per decenni...

bhè il secondo esame infatti è solo sugli oggetti :mbe:
è un pò difficile capire gli oggetti senza una buona base di programmazione imperativa o no?

cionci
18-09-2005, 08:08
bhè il secondo esame infatti è solo sugli oggetti :mbe:
è un pò difficile capire gli oggetti senza una buona base di programmazione imperativa o no?
Appunto...allora perchè fare Java ?!?!?!? Java non è un linguaggio imperativo !!! :D

Gremo
18-09-2005, 08:14
Appunto...allora perchè fare Java ?!?!?!? Java non è un linguaggio imperativo !!! :D

porta a commettere meno errori e può essere usato in più ambiti (web) oltre a essere portabile etc etc.. :O

cionci
18-09-2005, 08:21
porta a commettere meno errori e può essere usato in più ambiti (web) oltre a essere portabile etc etc.. :O
Ma questo che c'entra ? Non mi sembra una risposta alla mia obiezione... Ripeto...usare un linguaggio OOP in modo strutturato è una boiata incredibile...quindi penso che quando si fanno le strutture dati vada studiato un linguaggio strutturato...e quando si fa OOP vada studiato un linguaggio OO...

Ziosilvio
18-09-2005, 10:02
il java:
-è "pulito" ed elegante
Python lo è ancora di più.
-è semplice e alla base per poi orientarsi verso altri linguaggi
Python è ancora più semplice, e pur avendo una sintassi diversa dai vari C/C++/Java, ti costringe a usare la filosofia giusta, che è molto più importante.
-non ha strutture come i puntatori che solo per capirli...
Neanche Python.
Il quale fa di meglio: associa variabili prive di tipo a oggetti dotati di tipo, introducendo un ulteriore livello di astrazione.
-è a oggetti
Anche Python.
Che però non costringe a usare la OOP, come fa Java, ma permette anche l'approccio procedurale e, limitatamente, quello funzionale (con il costrutto lambda).

In più Python:
- ha un interprete just-in-time interattivo;
- si può usare facilmente per scripting e programmazione di sistema;
- ha una licenza d'uso molto più permissiva.

Red_dragon
18-09-2005, 14:27
Ragazzi c'ho un problema: sto tentando di imparare il c++ e per questo ho scaricato un tutorial. quando però tento di compilare gli esempi il programma restituisce un errore dicendomi che l'inclusione <iostream.h> è antica e di usarne una nuova che devo fare? uso dev-c++ della bloodshed
grazie

DioBrando
18-09-2005, 15:56
porta a commettere meno errori e può essere usato in più ambiti (web) oltre a essere portabile etc etc.. :O

un'opinione del tutto disinteressata dato che a Udine Programmazione prevede proprio ( ed esclusivamente) Java :D

DioBrando
18-09-2005, 16:03
Ma questo che c'entra ? Non mi sembra una risposta alla mia obiezione... Ripeto...usare un linguaggio OOP in modo strutturato è una boiata incredibile...quindi penso che quando si fanno le strutture dati vada studiato un linguaggio strutturato...e quando si fa OOP vada studiato un linguaggio OO...

anche per me è una boiata e la programmazione dovrebbe partire direttamente dagli oggetti perchè in questo modo il modo di ragionare IMHO diventa + semplice, mentre il passaggio da strutturata a oggetti, sempre IMHO, da capire per gli studenti è + complesso...

D'altra parte capisco anche quel tipo di scelte: di tempo n ce n'è molto, occorre cmq un bel pò di pratica individuale e si predilige l'utilizzo di un unico linguaggio sia per Prog1 che Prog2, in questo modo n occorre impiegare delle ore ( preziose) a dar modo agli studenti di imparare ed abituarsi alla sintassi del nuovo linguaggio.


Java poi è estremamente didattico, non ha i puntatori, n porta con sè le difficoltà che si hanno nella gestione degli indirizzi e della memoria ( cone in C/C++), anche se il Garbage Collector non è la panacea a tutti i mali.
E' portabile ed è estremamente diffuso, dagli Application Server, ai dispositivi mobili ecc. ecc., ecco perchè preferito a Python o Ruby per es...

cionci
18-09-2005, 16:32
Ragazzi c'ho un problema: sto tentando di imparare il c++ e per questo ho scaricato un tutorial. quando però tento di compilare gli esempi il programma restituisce un errore dicendomi che l'inclusione <iostream.h> è antica e di usarne una nuova che devo fare? uso dev-c++ della bloodshed
grazie
Stai seguendo un guida molto vecchia... Lo standard impone di usare gli header della libreria standard senza il .h... Ovviamente dopo devi usare l'istruzione using per importare i simboli dal namespace std, se ti serve...

http://www.cplusplus.com/doc/tutorial/tut5-2.html
Leggi tutto e guarda la differenza con la parte "// ANSI-C++ compliant hello world"

♫ Cesco ♫
18-09-2005, 20:00
e se provasse a cominciare con visual basic (non .net) ?

è semplice e permette di ottenere risultati da subito, secondo me il miglior linguaggio per un newbie...

tanto all'inizio chissene frega se il linguaggio non è ad oggetti e l'applicazione ci mette 25 millisecondi in più che se fosse scritta in C?

Ziosilvio
18-09-2005, 20:21
e se provasse a cominciare con visual basic (non .net) ?
Legandosi subito a doppio filo a Microsoft? Pessima idea.
è semplice e permette di ottenere risultati da subito
Anche Python.
Che ha il vantaggio di essere indipendente dal sistema operativo.

cdimauro
19-09-2005, 11:43
Java poi è estremamente didattico, non ha i puntatori, n porta con sè le difficoltà che si hanno nella gestione degli indirizzi e della memoria ( cone in C/C++), anche se il Garbage Collector non è la panacea a tutti i mali.
E' portabile ed è estremamente diffuso, dagli Application Server, ai dispositivi mobili ecc. ecc., ecco perchè preferito a Python o Ruby per es...
Python è molto più diffuso rispetto a Java: esistono porting anche per i s.o. più reconditi... :p

Per imparare a programmare è MOLTO meglio un linguaggio semplice (ma estremamente versatile) come Python, che Java.

Ecco qui: http://it.diveintopython.org/ in particolare: http://it.diveintopython.org/toc/index.html

fek
19-09-2005, 13:01
e se provasse a cominciare con visual basic (non .net) ?

è semplice e permette di ottenere risultati da subito, secondo me il miglior linguaggio per un newbie...

tanto all'inizio chissene frega se il linguaggio non è ad oggetti e l'applicazione ci mette 25 millisecondi in più che se fosse scritta in C?

Evita Visual Basic come la peste.
Ti interessa che un linguaggio sia ad oggetti, perche' e' molto piu' complicato imparare i paradigmi di un linguaggio come Visual Basic, per poi doverseli dimenticare per imparare nuovamente a programmare con paradigmi ad oggetti.

Poi dipende dai gusti personali.
Se vuoi la semplicita' e l'eleganza vai su Python/Ruby/SmallTalk.
Altrimenti se vuoi un linguaggio C-like piu' vicino a quello che farai in futuro vai su Java/C#.

Ma all'inizio ricordati che devi imparare i concetti dietro la programmazione, puoi passare in seguito ad un linguaggio C-like.

DioBrando
19-09-2005, 13:35
Python è molto più diffuso rispetto a Java: esistono porting anche per i s.o. più reconditi... :p

più diffuso a livello lavorativo?

Io ho seri dubbi ;)

anche perchè finora n ho mai visto nessun annuncio in cui venga richiesta la sua conoscenza esplicita ( poi ok che sia molto adatto a livello teorico senz'altro...)


Per imparare a programmare è MOLTO meglio un linguaggio semplice (ma estremamente versatile) come Python, che Java.

Ecco qui: http://it.diveintopython.org/ in particolare: http://it.diveintopython.org/toc/index.html

Sì mi avevi passato quegli url :D

cmq ho rivisto la sintassi in questi gg e sn d'accordo con fek, n mi entusiasma eccessivamente...

cionci
19-09-2005, 14:57
più diffuso a livello lavorativo?

Io ho seri dubbi ;)
Idem ;)

88diablos
19-09-2005, 17:16
raga mi sto convincendo nell'usare java, come posso studiarlo, cosa mi serve?
grazie

cj++
20-09-2005, 05:30
più diffuso a livello lavorativo?
Io ho seri dubbi ;)
anche perchè finora n ho mai visto nessun annuncio in cui venga richiesta la sua conoscenza esplicita

Messa su questo piano Installshield e Macromedia cerca(va)no esplicitamente programmatori C, nn java...


Ed anche chi programma in Pascal o Fortran o Lisp non trova difficolta a trovare lavoro se sa fare :)

DioBrando
20-09-2005, 06:13
Messa su questo piano Installshield e Macromedia cerca(va)no esplicitamente programmatori C, nn java...


perdonami, ma di quale piano stai parlando?

Io n ho mica detto che tutte le società, aziende, SW House del mondo cerchino programmatori in Java.
Ci saranno benissimo realtà importanti che avranno bisogno di esperti in altri linguaggi, C compreso.

Al contrario n ho mai visto richieste per Python...che poi possa essere utile per la sua struttura e per la sua versatilità oltre che portabiliità anche a fini didattici, questo è un altro paio di maniche.
Ciò n significa che universalmente sia diffuso.


Ed anche chi programma in Pascal o Fortran o Lisp non trova difficolta a trovare lavoro se sa fare :)

Ma certo, anche chi è particolarmente bravo in Assembly, nonostante ormai si tenda a risolvere tutte le problematiche con linguaggi ad alto livello, troverà lavoro.
Conosco ragazzi che hanno lavorato al progetto Alice2 e per scrivere il firmware sia della SMART Card che del router hanno utilizzato svariate porzioni di codice in quel linguaggio e dato che così bravi sulla piazza n ce ne sn, la retribuzione è stata + che ottima.

La questione è banalmente numerica.
Se ci sn 1000 annunci che cercano programmatori ( diciamo uno per annuncio), in percentuale, quanti credi che saranno gli esperti in Basic, VB, Pascal, Fortran, Cobol e quanti in Java, C#, C/C++, PHP, ASP?

Ecco perchè è importante IMHO utilizzare un linguaggio che si presti all'apprendimento dei concetti basilari della programmazione, ma è anche importante che la sintassi, la struttura dati, lo stile del coding vengano assimilate sulla base di un linguaggio conosciuto, diffuso ed apprezzato nel mondo del lavoro, in modo che tutte queste nozioni anche pratiche possano essere riciclate in un futuro ( dato che di tempo ce n'è sempre poco a disposizione).

Radagast82
20-09-2005, 09:17
Anche io volevo iniziare a programmare, con visual basic riuscì a fare un programma, seppur banale ma sempre un programma, tutto da solo e si tratta di un euro convertitore. L'ho fatto senza difficoltà.
L'anno scorso mi sono accostato a Java, ma sarà perchè la guida dava per scontato un sacco di cose, sarà perchè la sintassi non mi è mai entrata in testa, ma io ho abbandonato dopo due settimane che non arrivavo a niente... ora seguendo i vostri consigli mi dirigo verso il python sperando che non sia come java...

cdimauro
20-09-2005, 10:31
più diffuso a livello lavorativo?

Io ho seri dubbi ;)

anche perchè finora n ho mai visto nessun annuncio in cui venga richiesta la sua conoscenza esplicita ( poi ok che sia molto adatto a livello teorico senz'altro...)
Su questo hai perfettamente ragione: Java è molto più conosciuto e usato.

Io mi riferivo soltanto alla presenza di Python sulle varie piattaforme hardware e/o software.

Sfortunatamente è poco conosciuto e poco usato in ambito lavorativo, ma è un peccato perché permette di scrivere codice molto velocemente ed è anche molto efficiente.
Sì mi avevi passato quegli url :D

cmq ho rivisto la sintassi in questi gg e sn d'accordo con fek, n mi entusiasma eccessivamente...
Se non ricordo male, l'unica cosa indigesta per Francesco è l'assenza di operatori o istruzioni che delimitano i blocchi, e quindi l'uso dell'indentazione per la loro definizione.

In effetti è una cosa dura da digerire all'inizio, ma poi ci si fa l'abitudine.

Per il resto mi sembra che sia proprio l'eleganza e la semplicità della sua sintassi ad affascinare e a fare nuovi proseliti... :)

cdimauro
20-09-2005, 10:38
Anche io volevo iniziare a programmare, con visual basic riuscì a fare un programma, seppur banale ma sempre un programma, tutto da solo e si tratta di un euro convertitore. L'ho fatto senza difficoltà.
L'anno scorso mi sono accostato a Java, ma sarà perchè la guida dava per scontato un sacco di cose, sarà perchè la sintassi non mi è mai entrata in testa, ma io ho abbandonato dopo due settimane che non arrivavo a niente... ora seguendo i vostri consigli mi dirigo verso il python sperando che non sia come java...
Guarda, non c'entrano proprio NULLA, te lo posso garantire. :p

Ti consiglio di aprire il link su Dive into Python che ho postato e leggerlo, perché è un'ottima guida per chi comincia, è di facile comprensione, ed è pure scritta in italiano... :)

Per gli amanti di Python che vogliono sfruttare la piattaforma Java, c'è anche questo: http://www.jython.org/

"Jython is an implementation of the high-level, dynamic, object-oriented language Python seamlessly integrated with the Java platform. The predecessor to Jython, JPython, is certified as 100% Pure Java. Jython is freely available for both commercial and non-commercial use and is distributed with source code. Jython is complementary to Java and is especially suited for the following tasks:

Embedded scripting - Java programmers can add the Jython libraries to their system to allow end users to write simple or complicated scripts that add functionality to the application.

Interactive experimentation - Jython provides an interactive interpreter that can be used to interact with Java packages or with running Java applications. This allows programmers to experiment and debug any Java system using Jython.

Rapid application development - Python programs are typically 2-10X shorter than the equivalent Java program. This translates directly to increased programmer productivity. The seamless interaction between Python and Java allows developers to freely mix the two languages both during development and in shipping products."

:D :D :D

DioBrando
20-09-2005, 20:00
Su questo hai perfettamente ragione: Java è molto più conosciuto e usato.

Quello che n sapevo e che ho scoperto curiosando in questi gg ( quando le discussioni sn interessanti, succede :D) è che in realtà Python un paio di anni prima di Java...la differente diffusione credo si possa spiegare nel fatto che l secondo linguaggio è stato fortemente voluto e fortemente spinto da uno dei giganti del SW ( che soprattutto in quegli anni ha vissuto i suoi momenti migliori) e tutta questa pubblicità l'ha fatto preferire per es nella sua adozione all'interno del Web ( applet e compagnia)...crescendo uno è cresciuto anche l'altro ed ora ci ritroviamo Java praticamente dappertutto, nei dispositivi mobili, cellulari, SO, browsers...


Io mi riferivo soltanto alla presenza di Python sulle varie piattaforme hardware e/o software.


n saprei stilare una classifica, dato che sn entrambe linguaggi n legati ad una piattaforma direi che se la giocano, con però Java che vince nettamente su PDA e company...
Ma nel versante PC tu ne sai sicuramente di + quindi mi fido :)


Sfortunatamente è poco conosciuto e poco usato in ambito lavorativo, ma è un peccato perché permette di scrivere codice molto velocemente ed è anche molto efficiente.

in effetti sì, l'es che mi facesti vedere con Clear Silver ne è una riprova ed anche il fatto che l'interprete lavori meglio rispetto al corrispettivo Java ( anche perchè il bytecode, a sentire gli addetti ai lavori, che ne viene fuori risulta + efficiente) lo farebbe preferire a Java stesso.
Strano che però un linguaggio che nasce a livello accademico e proprio lì ottiene la sua diffusione e primi riconoscimenti, poi sparisca in un certo senso e n venga utilizzato come strumento didattico.

Chiaramente io parlo solo della situazione italiana, che però in teoria è tra le + ricettive ad accogliere queste novità, proprio per la particolarità del metodo di insegnamento così orientato alla forma mentis e n al pragmatismo ( a differenza dei Paesi anglosassoni)...un pò paradossale a pensarci bene.


Se non ricordo male, l'unica cosa indigesta per Francesco è l'assenza di operatori o istruzioni che delimitano i blocchi, e quindi l'uso dell'indentazione per la loro definizione.

In effetti è una cosa dura da digerire all'inizio, ma poi ci si fa l'abitudine.

Per il resto mi sembra che sia proprio l'eleganza e la semplicità della sua sintassi ad affascinare e a fare nuovi proseliti... :)

è proprio l'indentazione a farmi storcere il naso...sarà che n ho una mentalità troppo flessibile ancora e ho bisogno di quelle piccole certezze ( d'altra parte n faccio il programmatore :p)...magari in futuro :)

xglobusx
20-09-2005, 22:23
Ad ing Informatica iniziano con tre corsi sul C i primi due anni uno proprio semplice per imparare la sintassi cicli vettori ecc. uno più avanzato basato per lo più su liste di ogni tipo e la gestine della memoria e un terzo che non ho ancora dato ( :help: ).
Il terzo anno si inizia programmazione ad oggetti e viene usato java, e non permettono che java venga usato per programmare "non ad oggetti".
Secondo me se una impara subito Java non avrà più voglia di cercare di impararsi puntatatori, creazione di liste e alberi ecc.

cionci
20-09-2005, 22:27
Bisogna anche dire che con Java non si possono risolvere tutti i problemi del mondo... Nel curriculum di un bion programmatore o ingegnere informatico imho il C è d'obbligo...

fek
21-09-2005, 10:18
Per gli amanti di Python che vogliono sfruttare la piattaforma Java, c'è anche questo: http://www.jython.org/

Abile e arruolato!
Perfetto per gli script di Diamonds.

fek
21-09-2005, 10:24
Secondo me se una impara subito Java non avrà più voglia di cercare di impararsi puntatatori, creazione di liste e alberi ecc.

Non credo che sia cosi'. Dopo aver imparato Java/Python come primo linguaggio, poi un buon programmatore cresce e si interessa a come funzionano le cose a piu' basso livello, sotto la prima astrazione che il linguaggio gli presenta.
Allora inizia a studiare che cos'e' l'allocazione dinamica, come funziona la memoria, i puntatori, ma partendo da una base "solida".

Il percorso inverso invece e' molto piu' complicato: dover disimparare tutte le brutte abitudini imparate in C per poi iniziare a programmare in maniera "piu' semplice" non e' un processo banale.

Io ancora uso brutte abitudini imparate 15 anni fa, e dai primi commit di Diamonds mi sono accorto come entrare nella mentalita' del "fare le cose semplici" e' meno semplice di quanto sembri.

Meglio imparare a fare le cose semplici fin da subito.

cdimauro
21-09-2005, 11:21
Quello che n sapevo e che ho scoperto curiosando in questi gg ( quando le discussioni sn interessanti, succede :D) è che in realtà Python un paio di anni prima di Java...la differente diffusione credo si possa spiegare nel fatto che l secondo linguaggio è stato fortemente voluto e fortemente spinto da uno dei giganti del SW ( che soprattutto in quegli anni ha vissuto i suoi momenti migliori) e tutta questa pubblicità l'ha fatto preferire per es nella sua adozione all'interno del Web ( applet e compagnia)...crescendo uno è cresciuto anche l'altro ed ora ci ritroviamo Java praticamente dappertutto, nei dispositivi mobili, cellulari, SO, browsers...
In effetti la differenza è abissale: Python è derivato da un linguaggio di script che ha realizzato Guido, il suo inventore, per velocizzare la scrittura di script batch. :p
n saprei stilare una classifica, dato che sn entrambe linguaggi n legati ad una piattaforma direi che se la giocano, con però Java che vince nettamente su PDA e company...
Ma nel versante PC tu ne sai sicuramente di + quindi mi fido :)
A livello desktop considera che porting di Java non ce ne sono molti, e alcuni sono incompleti (non basta avere soltanto la JVM: Java è un framework piuttosto grosso), mentre Python te lo ritrovi portato anche su sistemi praticamente sconosciuti.
in effetti sì, l'es che mi facesti vedere con Clear Silver ne è una riprova ed anche il fatto che l'interprete lavori meglio rispetto al corrispettivo Java ( anche perchè il bytecode, a sentire gli addetti ai lavori, che ne viene fuori risulta + efficiente) lo farebbe preferire a Java stesso.
Strano che però un linguaggio che nasce a livello accademico e proprio lì ottiene la sua diffusione e primi riconoscimenti, poi sparisca in un certo senso e n venga utilizzato come strumento didattico.
Perché non è nato in ambito accademico, se non ricordo male... :)
Chiaramente io parlo solo della situazione italiana, che però in teoria è tra le + ricettive ad accogliere queste novità, proprio per la particolarità del metodo di insegnamento così orientato alla forma mentis e n al pragmatismo ( a differenza dei Paesi anglosassoni)...un pò paradossale a pensarci bene.
Sì, però spesso ci fossilizziamo. Infatti nella mia (ormai ex) facoltà da quando ha preso piede Java, una decina d'anni fa, si è arrivati a metterlo alla base di quasi tutto...
è proprio l'indentazione a farmi storcere il naso...sarà che n ho una mentalità troppo flessibile ancora e ho bisogno di quelle piccole certezze ( d'altra parte n faccio il programmatore :p)...magari in futuro :)
Se non Prodi non godi... Oops :D E' quel che pensavo anch'io, abituato alla "prolissità" di Delphi/Pascal, ma dopo qualche giorno mi sono abituato. Più che altro le mie pupille fanno un ottimo lavoro... :p

cdimauro
21-09-2005, 11:22
Abile e arruolato!
Perfetto per gli script di Diamonds.
Ma sei un avvoltoio!!! :D :D :D

Per il resto, ampiamente d'accordo con il tuo messaggio seguente... ;)