Newsgroup: it.comp.programmare
Titolo: Dilemmi

Salve a tutti. Questo è uno di quei classici post "quale
linguaggio/libreria dovrei utilizzare?" Spero di non essere troppo pedante
nel chiarire le mie necessità e le mie conoscenze...
Ho avuto una certa esperienza di programmazione in ambito scolastico, col
sano vecchio Pascal della Borland, che trovo tuttora insuperato rispetto a
qualunque cosa abbia poi provato in quanto a facilità d'uso (verso la fine
ci avevo "quasi" scritto un semplice texture mapper...) In ambito
universitario ho imparato un po' di C (diciamo che mi sono fatto una
"tabella di conversione" dal Pascal) e sto scrivendo programmi di quasi
puro calcolo, con I/O minimale da console.
Da sempre, la mia voglia di programmare si è scontrata con la dura realtà
del tempo "perso" nella scrittura delle interfacce, che per quanto
necessarie mi annoiavano a morte. Cercando di andare oltre il Turbo Pascal,
questo genere di problemi mi sembrava peggiorare enormemente, non trovando
un altro ambiente pensato per fare "piccole cose con poche scocciature"
(per i miei scopi, la scelta sterminata 
p.es
. di librerie grafiche fra loro
incompatibili del C++ è una seccatura più che una libertà.) Ho provato
degli ambienti grafici tipo VB ma mi sembrava di perdere ancora più tempo a
lottare con le finestre piuttosto che a scrivere il vero codice. Per cui,
da un po' di tempo sono in stallo.
Comprando un Macintosh, ho scoperto preinstallati gli interpreti di quei
nuovi "linguaggi di scripting" di cui avevo sentito vagamente parlare, e
concettualmente mi sono sembrati perfettamente adatti ai miei vecchi
desideri. Soprattutto il Ruby, che mi pare di una semplicità estrema. So
che il Python è più diffuso, ma non mi sembra ugualmente bello...
La domanda è: quale di questi linguaggi vi sembra più adatto per fare
piccoli progetti (piccoli ma non banali :) perdendo il minor tempo
possibile con le interfacce e i vari compiti "ancillari", scrivendo
relativamente poco codice, e possibilmente con un ambiente "stile Turbo
Pascal" dove c'è *più o meno* tutto ciò di cui ho *normalmente* bisogno
senza doverlo andare a cercare?
Mi accontento senza problemi di interfacce "anni '80", ovvero con input da
tastiera e _magari_ mouse e disegnate con delle banali primitive grafiche
2D ( Line, Circle, Floodfill, eccetera.. ). Certo, se gestire un sistema a
finestre moderno è ugualmente facile meglio, ma non è necessario. Ad
esempio, mi dicono che in Ruby si usi spesso il "toolkit TK" per le GUI: è
semplice da imparare e da gestire?
Tanto per darvi un'idea di quello che vorrei fare, queste sono alcune idee
a cui vorrei da tempo mettere mano:
1) Un "controller" per alcuni progettini basati su una scheda a
microcontrollore, che comunica col PC tramite la vecchia seriale RS232.
Fondamentalmente devo visualizzare diversi grafici basati su dati che
vengono trasmessi costantemente dalla scheda, e presentare un menù di
scelte per inviare dei semplici comandi (pochi caratteri ASCII).
2) Un'applicazione che impari a giocare ad un gioco semplicissimo, tipo il
tris o poco più, basandosi su un algoritmo trovato in un vecchio testo anni
'70: è richiesto di stendere l'albero completo delle mosse, cosa che in
pratica dovrà essere fatta da un secondo programma. La gran parte del
lavoro è manipolazione di testo e gestione di qualche numero casuale, oltre
all'interfaccia.
3) Un programma per un gioco più complesso, probabilmente la dama. In
questo caso scrivere l'albero per esteso è ovviamente impossibile, e dovrò
usare un sistema minimax con funzione di valutazione. I parametri di questa
funzione possono essere fatti "evolvere" a seconda dei risultati delle
partite in modo da migliorarli. Il programma si baserà molto sulla forza
bruta, per cui la funzione minimax va pensata con in mente la traduzione in
C per velocizzarla.
4) Eventualmente, un coder/decoder RSA (generazione di numeri primi e
codifica vera e propria). So benissimo che esistono decine di librerie già
pronte, ma potrebbe essere dato come esercizio/progetto in un contesto
scolastico.
Grazie a tutti da ora ;)
-- 
I professionisti sono prevedibili.
Il guaio è che il mondo è pieno di dilettanti.

 scolastico.
No problem, una volta deciso il linguaggio tra i due ti posso
consigliare come cominciare.
-- 
Lawrence - 
http://www.oluyede.org/blog
http://www.neropercaso.it
"Nothing is more dangerous than an idea
if it's the only one you have" - E. A. Chartier

 consigliare come cominciare.
Grazie, ma come cominciare spero di ricordarmelo ^^ Con contesto scolastico
intendo che "potrebbe" in un futuro non troppo vicino essere dato come
esercizio in un corso tenuto da un mio amico, e quindi va iniziato da
"Siano dati due interi primi Q ed R..."
Non che eventuali consigli facciano schifo, eh! ^__^
-- 
"When we got into office, the thing that surprised me most
was to find that things were just as bad as we'd been saying they were"
	(John F. Kennedy)

 Non che eventuali consigli facciano schifo, eh! ^__^
No intendevo i soliti tutorial per cominciare.


linguaggi, magari avendo anche in mente la convivenza col C?
Per Ruby, immagino, FreeRIDE, almeno negli intenti (non ne ho
esperienza diretta).
Ciao.