Newsgroup: it.comp.programmare
Titolo: Mi consigliate cosa continuare a studiare... please?!?

Ciao a tutti,
da agosto scorso ho iniziato a studiare assiduamente.
Ho soprattutto studiato la programmazione strutturata ed ho appena iniziato
le classi.
I testi che ho letto sono:
Linguaggio C di A. Bellini e A Guidi
Introduzione alla prg. in C++ di C. Padovani
Fondamenti di C++ di H. Schildt (solo una parte)
C++ Fondamenti di prg. di Deitel (solo il prmio libro fino alle classi)
Il mio obbiettivo finale sarebbe quello di realizzare applicazioni
gestionali, database via Web e/o altro.
La domanda che e vi pongo e':
Mi conviene continuare lo studio delle classi (I libro Deitel) e poi le
tecniche avanzate del C++ (II libro Deitel),
o mi posso orientare, considerando le mie conoscenze, verso un linguaggio
tipo C# o cosa?
Grazie mille!

 
Se devi interfacciarti con i database, SQL e' imprescindibile.
I database sono una cosa da capire bene perche' l'accesso ad un database 
e' uno dei classici colli di bottiglia.
Se sarai tu a progettarli devi capire bene che cosa c'e' dietro, e se 
non sarai tu a progettarli devi capire bene lo stesso se quello che ti 
danno e' un buon database, o uno schifo di database che poi danno la 
colpa alla tua applicazione e invece e' il DB il problema.
Se devi lavorare col web devi approfondire tutto l'aspetto del 
networking e della sicurezza delle reti.
Il linguaggio per realizzare le applicazioni e' assolutamente secondario 
rispetto a quanto sopra.

igino76 ha scritto:

Dipende dal tipo di progetto che vorrai sviluppare.
Il C++ va bene solo se vuoi riscrivere Apache o IIS.
Altrimenti, per un'applicazione Web che verra' usata da centinaia o piu' 
utenti contemporaneamente, o che verra' installata in centinaia di siti 
diversi, o di una complessita' tale da richiedere anni-uomo di lavoro, 
conviene usare Java o C#.
Altrimenti, cioe' per applicazioni Web installate in pochi decine di 
siti, usate da poche decine di utenti simultanei, e cosi' semplice da 
poter essere sviluppata in poche settimane, o con un budget cosi' 
limitato da dover essere sviluppata in poche settimane, conviene usare 
PHP o Ruby.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

     
http://digilander.libero.it/carlmila
Grazie Carlo e Roberto,
riepilogando...
1 - Devo scegliere tra Java e C# se ho l'ambizione di sviluppare 
applicazioni professionali (web, desktop, etc..)
2 - Devo obbligatoriamente leggere un libro dedicato all'SQL.
PS: quale compilatore free di Sun devo scaricare per iniziare a vedere 
l'ambiente?
Ciao
igino76 

 l'ambiente?
La Sun non produce compilatori per C# e suppongo che produca un solo 
compilatore per Java, il cosiddetto JDK.
Scegli C# se vuoi sviluppare applicazioni che funzioneranno 
prevalentemente in ambiente Microsoft Windows, Java se vuoi sviluppare 
applicazioni che funzioneranno prevalentemente in altri sistemi operativi.


 2 - Devo obbligatoriamente leggere un libro dedicato all'SQL.
E devi anche scaricarti e installarti mySQL e impratichirti con il database.

 perche' hanno meno soldi da spendere per lo sviluppo del software.
Io rigirerei la frittata: siccome le grosse aziende hanno sistemi 
complessi, linguaggi come Python rendono molto più agevole la 
realizzazione degli stessi.
-- 
Let us change our traditional attitude to the construction of programs. 
Instead of imagining that our main task is to instruct a computer what 
to do, let us concentrate rather on explaining to human beings what we 
want a computer to do. (Donald Knuth)

 realizzazione degli stessi.
Questo non spiega perche' le grandi infrastrutture aziendali siano 
raramente implementate in linguaggi dinamici. E non penso che basti dire 
che i dirigenti dei CED siano poco illuminati.
La realta' e' che lo sviluppo di un pacchetto software per una sola 
grande azienda o per poche medie aziende o per molte piccole aziende o 
per moltissime imprese individuali, da una parte ha un budget talmente 
grande che puo' permettersi linguaggi relativamente poco produttivi come 
Java e C#, e dall'altra ha requisiti di qualita' e prestazioni talmente 
alti da non potersi basare su software poco performante o poco 
manutenibile come quello risultante usando alcuni linguaggi di scripting.
Viceversa, quando i requisiti di budget sono stringenti, la 
produttivita' del programmatore e' al primo posto, per cui i linguaggi 
dinamici risultano preferibili.


 gestionali, database via Web e/o altro.
Uhm... non sono espertissimo, ma qui IMHO oltre al linguaggio occorre 
imparare ad usare un vero e proprio framework. Sentendo in giro, molti 
sviluppatori usano "Rails" che si basa sul linguaggio Ruby. Io, da parte 
mia sto diventando un "fan" di python. Anche per questo linguaggio trovi 
dei framework per il web, come Django o Turbogears. Ma di più non poso 
dirti, non occupandomi di programmazione web.
Prendilo come un consiglio (oltre ai già citati C# e Java).
Ciao,
Giulio
-- 
OnAir:
http://www.giuliopetrucci.it

 linguaggi di scripting.
Questa è una realtà fasulla. In primo luogo la realtà dei fatti 
dimostra che non necessariamente i linguaggi dinamici non sono veloci 
abbastanza. La faccenda bisognerebbe valutarla caso per caso, ma non è 
infrequente che i colli di bottiglia siano risorse, db, reti. Il che 
rende assolutamente trascurabile l'overhead del linguaggio dinamico (se 
le performance fossero davvero stringenti, sarebbe C++ e non Java, 
btw).
La manutenibilità di progetti in Python è ordini di grandezza superiore 
a quella di progetti Java. Non solo: sono progetti molto più 
estensibili. La qualità di un progetto poi deriva dalla capacità dei 
programmatori (per quanto un linguaggio possa ovviamente rendere tutto 
più difficile). In particolare guardandosi intorno ci si rende conto 
che i progetti in Python hanno tipicamente ottimi requisiti medi di 
qualità, proprio perchè è la direzione in cui ti spinge naturalmente il 
linguaggio.
Semmai il punto è che hanno sempre usato quello e non vedono la 
necessità di cambiare. Principalmente perchè non interessa 
particolarmente 'buttare soldi' allungando i tempi di sviluppo.
-- 
During the process of stepwise refinement, a notation which is natural 
to the problem in hand should be used as long as possible.
Niklaus Wirth

 particolarmente 'buttare soldi' allungando i tempi di sviluppo.
Java esiste dal 1995, C# dal 2001, mentre Common Lisp dal 1984, 
Smalltalk per PC dal 1985, Python e Perl dall'inizio degli anni '90.
Come spieghi che aziende che esistono da 30 anni hanno adottato Java o 
C# invece di Lisp, Smalltalk, Python o Perl, che esistevano da piu' tempo?


 C# invece di Lisp, Smalltalk, Python o Perl, che esistevano da piu' tempo?
Perche' dietro a Java e C# ci sono i signori Sun e Microsoft con tutta 
la loro macchina commerciale, mentre dietro a Python e Perl ci sono solo 
i pareri positivi dei tecnici (che in una azienda medio grande contano 
meno del due di picche quando briscola e' fiori) e sono gratuiti, e 
quindi non generano mazzette, non fanno gonfiare i preventivi etc...

 preventivi etc...
Senza la parte 'malizia', comunque quoto. Java e C# hanno un supporto 
pubblicitario e di marketing che Python se lo scorda. BTW, Microsoft 
sta introducendo pesantemente Python fra le sue tecnologie chiave e 
pure Sun sta assumendo programmatori chiave della comunità Python e 
Ruby (ovviamente per lavorare su Python e Ruby rispettivamente).
-- 
Science is what we understand well enough to explain to a computer. Art 
is everything else we do.
Donald Knuth

 tempo?
Nel modo più banale: Java e C# (guarda caso) avevano dietro grossissime 
aziende (una enorme e l'altra non piccola, oltre tutto IBM ha dato il 
suo supporto abbastanza alla svelta).
Dopo di che, diciamola tutta. Lisp esiste dal '58 (anche se non nel 
dialetto standardizzato Common Lisp). Tuttavia è sempre rimasto in 
qualche modo elegato alla comunità 'colta' e 'accademica', non agli 
aziendali e commerciali. Questa domanda puoi farla ad un lisper, non a 
me.
Smalltalk ha avuto un discreto successo. L'inghippo è che ambienti di 
sviluppo e compagnia costavano una valanga. Oltretutto per i PC deglia 
nni 80 era oggettivamente pesantino per fare roba corposa. Usavano 
macchine carrozzate etc etc etc.
Perl ha avuto un grossissimo utilizzo nel campo in cui è nato. E' nato 
come linguaggio colla per sostituire bash+awk+sed etc. E lo ha fatto 
egregiamente. Poi si è diffuso pure in ambito web, etc etc etc. Non è 
nato per essere un sistema per sviluppare sistemi complessi. I perlisti 
dicono che si faccia bene, io ho dei dubbi (e nota che in Perl ci ho 
pure lavorato). Suppongo di non essere abbastanza bravo io in Perl. Va 
anche detto che il suo peculiare object model non può facilitare le 
cose.
Python invece non ha dietro *nessuno*. Non può pagare 'promoter' che 
vanno a fare lavaggio del cervello a manager. Tutte le risorse che 
abbiamo le spendiamo nel linguaggio, interprete e librerie. Ed è una 
cosa che sta pagando, vedo un immenso interesse al momento per Python.
Il linguaggio è eccellente, ben pensato, facile da usare e mai 
limitante. Le librerie sono tantissime, generalmente pensate per essere 
comode da usare.
BTW, non è affatto vero che Python sia poco usato. Anzi. E' indubbio 
tuttavia che sia meno usato di Java. Ma questo cosa vuole dire?
-- 
Python is fast enough for our site and allows us to produce 
maintainable features in record times, with a minimum of developers.  
(Cuong Do, Software Architect, YouTube.com)

 ha scritto nel messaggio 
news:s8zAj.10976$q53....@tornado.fastwebnet.it...

Sto leggendo MySql Pocket di Saverio Rubini  edito da Apogeo.
Ed ho installato il server...

Nel frattempo ho saputo che il gruppo di "ingegneria software" della mia 
azienda ha iniziato lo studio del C#...
... la mia scelta e' quasi obbligata...
Ciao
igino76