[FLUG] Re: Amministrate il mio futuro

  • From: Romano Romano <blueraven@xxxxxxxxx>
  • To: fanolug <fanolug@xxxxxxxxxxxxx>
  • Date: Sat, 9 Mar 2002 15:01:25 +0100

Mailing List del Fortunae LUG
=============================

On Fri, Mar 08, 2002 at 06:24:17PM +0100, legion wrote:

[programmare]   
> cosa consigliate per iniziare? tenendo conto che non ho mai fatto NULLA
> (non so manco l'html decentemente e provvederò)...
> perl? phyton? c? php? bo tanto per dire...qualcosa di non astruso che però
> magari abbia qualche utilità futura..

<standard disclaimer mode on>

Tutte le considerazioni sottostanti sono frutto di opinioni personali, di
esperienza sul campo e attenzione all'evoluzione del mercato.
Non sono verita' rivelate, per cui chi vuole contestare faccia pure. :-)

<mode off>

Dipende da cosa ci vuoi fare, poi, di quel che impari.
Se vuoi farne una professione in futuro, prendi in considerazione anche gli
ambienti di sviluppo M$.
Si', avete letto bene... e, no, non sono impazzito.
Microsoft e' una realta' importante del mercato, che ci piaccia o no.
I programmatori che sappiano sviluppare soluzioni in ambiente Microsoft
oriented sono richiestissimi, certamente molto di piu' di quelli che
sviluppano in ambienti alternativi.
Questo perche', a differenza degli altri, M$ ha una buona penetrazione in
differenti fasce del mercato, per cui e' piu' facile "riciclarsi" rispetto a
quei programmatori che, magari, sono abituati a lavorare ad alti livelli ma
sono "costretti" a limitarsi ad ambiti aziendali particolari.
Inoltre, con il lancio dell'architettura .NET - sulla quale, per ammissione
della stessa casa di Redmond, si gioca buona parte del suo futuro - M$ sta
introducendo una vera e propria killer technology.
L'importanza strategica di .NET e' enfatizzata, da un lato, dal fatto che
anche una parte della comunita' Linux si e' resa conto che Microsoft ha
proposto qualcosa di interessante e intende, fatto sinora inaudito,
realizzare una certa convergenza (vedi Mono e dichiarazioni di Miguel De
Icaza, sempre lui).
D'altronde, se veramente .NET si basera' SOLO sugli standard ufficialmente
depositati e documentati - su questo ho i miei dubbi, ma almeno il beneficio
del dubbio non si nega a nessuno - non ci vedo nulla di male.
Dall'altro lato, mi sembra significativa la posizione di IBM che, pur amando
Microsoft quanto io amo Michael Schumacher, si e' affrettata ad assicurare
il supporto a tutti i livelli.
Questo perche' M$ rischia veramente di spazzare via dal mercato i suoi
competitor, la cui posizione chiusa e autarchica non fa altro che fare il
gioco di Bill Gates.
Gia', mi riferisco proprio a Scott McNealy e alla SUN: con Java avevano
rischiato di trasformare veramente il mercato, lanciando una piattaforma
finalmente innovativa.
Ma, invece di renderla aperta (e su questo la comunita' Opensource aveva
lanciato segnali precisi), hanno preferito mantenerla chiusa, farla sviluppare
ai soli interni, con il risultato che ancora oggi, pur essendo Java un
linguaggio straordinario per valenza didattica e concetti di base, gli manca
l'ingrediente fondamentale del successo nel mondo reale: le prestazioni.
Aprirlo ora servirebbe a poco, ormai lo sviluppo e' troppo avanti e
riscrivere il tutto da zero e' improponibile.
.NET, in teoria, nasce gia' aperta e questo le da' un vantaggio incolmabile.
Questo per quanto riguarda i discorsi a lungo termine.
Per quanto riguarda l'immediato, oggi io vedo una forte domanda di persone
che sappiano realizzare applicazioni in grado di funzionare sul web, che e'
ormai il paradigma per eccellenza, il campo su cui tutti si misurano.
In questo senso, ferme restando le considerazioni di cui sopra, le
alternative non mancano.
Per esperienza personale, il PHP e' un buon linguaggio da imparare: oltre ad
essere molto popolare, e' abbastanza semplice (non come le prime versioni,
ma ancora si impara senza troppa fatica), permette di imparare a
padroneggiare buona parte dei concetti della programmazione tradizionale -
strutture dati, funzioni, classi, oggetti etc. - e si spartisce, con ASP,
buona parte del mercato delle applicazioni web.
Il suo piu' grosso limite e' che, essendo nato per il web, non va molto al
di la': in particolare, non so se sia possibile realizzarci applicazioni
piu' tradizionali.
Esiste una versione che permette di essere compilata, ma per quanto ne ho
capito serve solo ad aumentare la velocita' di esecuzione delle applicazioni
web e a nascondere il codice, quindi il campo rimane circoscritto.
Il Python e' un altro ottimo strumento, che io purtroppo non conosco ma di
cui non ho sentito altro che parlare bene: lo stesso Eric S. Raymond (e chi
non lo conosce in castigo!) lo consiglia nel suo mitico testo "How to become
a hacker" e uno dei progetti piu' mirabili del mondo opensource, Zope, si
fonda interamente su di esso.
Un'altra alternativa interessante potrebbe essere Ruby, che riunisce un po'
il meglio di svariati linguaggi ed e' interamente object oriented.
Altrimenti Java, anch'esso consigliato da Raymond, sperando che la
situazione attuale cambi (forse Sun sta cominciando a capire i suoi errori,
vedremo).
Va anche considerato che, se vuoi sviluppare, la conoscenza del linguaggio
conta sicuramente molto, ma forse, ancor di piu', conta saper padroneggiare
cio' che attorno a quel linguaggio ruota e ti permette di costruire
soluzioni facilmente scalabili e adattabili alle esigenze piu' diverse senza
che, necessariamente, tu debba fare tutto da zero.
L'esempio e' ancora Zope: sicuramente, conoscere il Python e' fondamentale,
ma ancor piu' importante, IMHO, e' la conoscenza dei products.
I products sono dei piccoli moduli, ognuno dedito alla gestione di un
compito specifico, che possono essere usati cosi' come sono o modificati un
pochino e combinati insieme per creare una soluzione.
Se ci pensi, i tanto celebrati portaloni non sono altro che una collezione
di moduli: news, community, SMS, webmail e orpelli vari sono tutti
pezzettini di un puzzle che, una volta composto, si trasforma in un caso di
successo.
Ora, puoi benissimo farti tutto questo da solo, ma puoi anche scegliere di
prendere i pezzi gia' pronti, se ci sono, modificarli per le tue esigenze,
dargli un'interfaccia coerente, costruirci sopra - uso un parolone del
marketing - il tuo valore aggiunto et voila', hai creato una soluzione che
puoi vendere (e bene, se hai lavorato in modo serio).
Per questo .NET e' interessante: spinge al limite questo concetto, per cui
alcuni pezzi della TUA soluzione possono stare su un server sconosciuto
all'altro capo del mondo e tu, magari, paghi un canone per utilizzare le
loro funzioni.
In questo modo, se quel web service (cosi' si chiamano) non ti soddisfa piu'
o non offre cio' di cui hai bisogno, e' sufficiente che ne crei o ne trovi
un altro piu' completo, che offra lo stesso interfacciamento - e questo, in
teoria, e' l'architettura stessa a garantirlo - e sei a posto.
Non me ne vogliano Gecco e Simon, ma Perl e C li lascerei perdere, o meglio
li vedo piu' adatti in altri contesti.
Perl e' forse il massimo della versatilita', ma a mio parere ha una sintassi
poco intuitiva e tende a spingere quelli che lo conoscono bene a scrivere
codice pressoche' incomprensibile.
A mio parere, il Perl da' il meglio di se' nei piccoli compiti dedicati,
come i CGI e la gestione delle stringhe.
Per quanto riguarda il C, e' sicuramente un punto di arrivo, il linguaggio
definitivo, ma in un contesto lavorativo web oriented IMHO e' poco adatto.
Va bene per quel che sta SOTTO le applicazioni, per realizzare strumenti e
soluzioni tese a fornire un ambiente di esecuzione il piu' affidabile
possibile, ma non per l'applicazione in se': troppo complesso, troppo
facile commettere errori fatali se non si e' piu' che sicuri di quel che si
fa (Simon, se dico cazzate, correggimi, ma penso che sia cosi').
Il C puo' andare bene per me, che mi occupo appunto delle infrastrutture
oppure per un programmatore tradizionale, ma per iniziare meglio rivolgersi
altrove, tanto piu' che imparare il C non e' di certo semplice.
Spero di essere stato esauriente e di averti chiarito un po' le idee.

-- 
Romano Romano

Se non e' tutto chiaro, regolate i parametri di brightness
e contrast della vostra mente ( Simon ).
--
"Una Slackware e' per sempre ..."


Other related posts: