Newsgroup: it.comp.os.linux.iniziare
Titolo: Correte, correte!!!

Parlando di software, compilatori (tanto smanettate quasi tutti col piccě),
se dovreste dire la vostra (e non quello che č scritto sui libri o sui siti)
sui vantaggi
e svantaggi dei seguenti linguaggi C, C++, Java, cosa direste?
E sopratutto, quali linguaggi affiancherste a questi, che possiedono, a
vostro
avviso, le caratteristiche che quelli citati non hanno?
Il Prolog č caduto in disuso? In Intelligenza Artificiale si utilizza ancora
questo o č obsoleto?
= : |
Dite dite, che se passamo er post-feragosto
                        IL SANTO

 In Intelligenza Artificiale si utilizza ancora questo o è obsoleto?
beh, ho sentito di programmi di IA fatti in java, ma si usa ancora
-- 
§               ZeD               §
§           16/08/2004            §
§ S. Stefano di Ungheria-S. Rocco §
§     Now listening: Nothing      §

     dietro ai puntatori e' una cosa indescrivibile.
E' cazzoso da scrivere ma molto bello quando funziona =)
Te lo consiglio ma ci devi perdere molto tempo. E' molto performante. Al 
max se vuoi usare gli oggetti usa c++. Java è troppo lento e pesante.

 > sui vantaggi e svantaggi dei seguenti linguaggi C, C++, Java, cosa
direste?
 [cut su una bella risposta]
Grazie Zed, mi hai dato delle informazioni nuove e hai risposto in modo
"logico".
                           IL SANTO
p.s.
Se vedessi che cazzo di risposte mi hanno dato in altri ng, ti rendi conto
che quelli
che "effettivamente" sanno programmare, perché "logici", sono davvero pochi.
p.p.s.
Studi all'università?
p.p.p.s.
Guarda che ho trovato con goggle (potrebbe interessare qualcuno)
http://www.ugosweb.com/jiprolog/
p.p.p.p.s.
Ho Windows 2000, ma non discriminatemi in partenza, sto pensando di
installarmi Debian.
Ciao!


Diciamo che quello che e` sottointeso e` che gli altri programmatori
sono 'nemici' e bisogna a tutti i costi nascondere loro le cose. Dopo di
che i modi per scavalcare la faccenda ci sono, ma sono porcate astrali.
Sarebbe piu` bello semplicemente segnalare che una certa cosa non va
fatta, e poi in caso di emergenza non brontolare troppo.
L'ereditarieta` multipla del C++ poi e` spesso da mal di testa (o
meglio, bisogna stare molto molto accorti a progettare).
Il piu` grosso limite del C++ e` la sua non dinamicita`, per cui diviene
necessario inventare un sacco di accrocchi per farlo funzionare.
Ad esempio i templates, per dire... funzionano, ma sono inutilmente
complessi.
Java:
Beh.. adesso e` molto di moda. Sulle cose brutte di Java ci sono interi
threads per esempio su it.comp.lang.python .
In fondo non e` malaccio. Spiace solo che sia del tutto proprietario...
e le gui sono messe davvero male. Sono *lente*. E lento e` a partire
l'interprete. Una volta su pero` il fatto che sia *lento* ad operare
tutto sommato non e` 100 motivata.
Diciamo che pero` non lo vedo benissimo per il desktop. IMHO,
chiaramente.
Linguaggi interessanti sono:
ObjectiveC: E` l'estensione ad oggetti del C che il C++ non ha saputo
essere. Salvo il discorso che il C++ non e` effettivamente un
soprainsieme del C, ma gli assomiglia solo tantissimo, ObjectiveC e` un
linguaggio molto dinamico e molto interessante che mutua idee da
Smalltalk (un bellissimo linguaggio ad oggetti).
E` dinamico quando serve e statico quando serve. 
Il grosso problema e` che GNUStep e` a mio avviso ancora un work in
progress. Alla fin fine non ha la maturita` di altri ambienti come per
esempio GTK.
Lisp: behh... che dire. Linguaggio stupendo. Geniale. Purtroppo puo`
venire l'ulcera a furia di parentesi. :)
Resta comunque un interessantissimo linguaggio, estremamente potente. Ma
ha una filosofia di sviluppo molto molto sua propria.
Lo ho abbandonato in favore di un altro linguaggio.
Perl: comodo. sara` un mio limite, ma non riesco a sviluppare progetti
di una certa estensione con l'eleganza e l'ordine che vorrei. Immagino
sia un limite mio. Molto belle le idee che ci sono sotto, d'altra parte.
Ho abbandonato anche questo in favore di un altro linguaggio.
Beh... e` venuto il momento di presentare quest'altro linguaggio:
Python.
Si riesce a sviluppare in modo rapidissimo cose anche complesse, grazie
alla libreria standard, ai vari moduli e a capolavori come Twisted.
Completamente dinamico, mi permette di fare alcuni giochetti del Lisp,
ma con una sintassi a mio avviso molto piu` leggibile.
Si interfaccia ad un mare di interfacce grafice diverse (hi hi), e
diventa davvero comodo per scrivere applicazioni desktop. Grazie a
twisted poi diventa adattissimo a tutte le applicazioni che hanno a che
fare con la rete (o meglio, lo e` di suo, ma con twisted diventa ancora
meglio). Grazie alla programmazione asincrona si riesce ad evitare l'uso
dei threads (quasi sempre), eppure ad averne i vantaggi.
E` anche facile per interfacciarsi a diversi database.
Possiede anche diversi moduli per potere fare 'siti web', sia 'alla
PHP/ASP' sia in modo decoroso, usando i template e separando logica da
grafica.
Si puo` usare anche per il calcolo scientifico/numerico grazie a
numarray (per esempio lo usano in questo modo nella pipeline di calcolo
per processare le immagini di Hubble). Ha moduli per fare grafici.
Ha anche librerie apposite per i giochi (pygame). Si adatta a processare
testo, xml, html anche in dosi massicce.
Puo` essere un efficacie strumento per la programmazione di sistema, e
risulta pure essere estremamente portabile.
-- 
RiK0
Non credo negli schemi non vincenti.

 che "effettivamente" sanno programmare, perché "logici", sono davvero
pochi.
ah grazie...
limortaccitua!!!
che ha python che non va?
sentiamo...

 
Mi intrometto!
Sai se esiste una bella guida open source o free su Python, qualcosa che 
parta dagli inizi. Tempo fa volevo cominciare pe rstaccarmi dal ma poi 
avevo ripiegato su Java perchč mi era sembrato molto piů veloce in 
termini di apprendimento, magari ho sbagliato, ma ero riuscito a trovare 
molto piů materiale e quindi mi ero buttato completamente li.
Se trovassi anche solo un bel manuale (se fosse in ita sarebbe 
splendido), che tocchi un po tutti i punti di quel tipo di 
programmazione, penso che potrei farci un pensierino.

 parta dagli inizi.
http://www.python.it/Doc/index.html

 molto piů materiale e quindi mi ero buttato completamente li.
Non so quanto tempo fa. Io posso dirti che dal punto di vista
dell'apprendimento il Python e` davvero istantaneo.
Io personalmente ho iniziato con il tutorial di VanRossum. Poi ho
iniziato direttamente a programmare, e in seguito mi sono preso il
fantastico libro di Alex Martelli 'Python in a Nutshell'.
Dopo di che per tutte le librerie la documentazione delle stesse e`
ottima, sia come tutorial 'esterni' sia come docstring.
facendo dall'interprete interattivo python
help(something)
dove something e` un modulo, una funzione, un oggetto, ottieni un sacco
di informazioni sull'uso etc etc etc.
chiaramente puoi anche usare pydoc.


 mi sono preso il fantastico libro di Alex Martelli 'Python in a Nutshell'.
che spesso e volentieri si puo' trovare su i.c.l.python
-- 
§                      ZeD                      §
§                  16/08/2004                   §
§        S. Stefano di Ungheria-S. Rocco        §
§ Now listening: Lain - Lain' s theme (Reprise) §

 che spesso e volentieri si puo' trovare su i.c.l.python
'nfatti :)
e pure su it.comp.macintosh :))


 e svantaggi dei seguenti linguaggi C, C++, Java, cosa direste?
C: Tremendo. Tipizzazione lasca; abuso di puntatori; modularita' e 
packages pressoche' inesistente, risultante in un gran namespace da 
manovrare a suon di compiler directives; macro sporche, che si evalutano 
  con priorita' assurde; tipo boolean inesistente; tipo stringa 
pressoche' inesistente; variabili non inizializzate; range di variabili 
e array non gestiti. Tanto per dirne alcune.
C++: Come C.
Java: nessuno dei suddetti problemi, ma: pesantezza, inadeguatezza per 
applicazioni time critical, e non e' software libero.
E ora flammatemi pure :P

> In Intelligenza Artificiale si utilizza ancora questo o è obsoleto?
Z> beh, ho sentito di programmi di IA fatti in java, ma si usa ancora
Infatti. Non e` il linguaggio, ma gli algoritmi. LISP e` stato il linguaggio
della IA solo perche` era il meglio disponibile all'epoca. Ed e' ancora un
gran bel linguaggio. Molto comodo se unito al miglior editor del pianeta :)
Ah, c'e`  un dirigente nella  mia ditta che  col Prolog ci fa  pure le
patatine :).
-- 
 /\            ___
/___/\__|_|\_|__|___Gian Uberto Lauri_____________________
  //--\ | | \|  |   Integralista GNUslamico e fancazzista 
\/

 writes:
EF> Lisp: behh... che dire. Linguaggio stupendo. Geniale. Purtroppo puo`
EF> venire l'ulcera a furia di parentesi. :)
Usa la forza Enrico.
EF> Resta comunque un interessantissimo linguaggio, estremamente potente. Ma
EF> ha una filosofia di sviluppo molto molto sua propria.
E' completamente diverso dagli altri linguaggi cui si e` abituati. 
Lui e` funzionale,  gli altri sono procedurali.  Ambedue  i tipi hanno
dato vita a versioni ad oggetti.
EF> Completamente dinamico, mi permette di fare alcuni giochetti del Lisp,
EF> ma con una sintassi a mio avviso molto piu` leggibile.
Questione di gusti. Io preferisco la sintassi del Lisp al Python.
Quello che non supera e` la necessita` (solo psicologica) di ridefinire
gli operatori. Pero` e` geniale il modo in cui non la supera.


 Java: nessuno dei suddetti problemi,
Diciamo che ne porta ben altri con se'...
-- 
§          ZeD           §
§       17/08/2004       §
§ S. Giacinto-S. Alberto §
§ Now listening: Nothing §

 patatine :).
fritte o al forno? ;P


> e svantaggi dei seguenti linguaggi C, C++, Java, cosa direste?
{}> C: Tremendo. 
E' acerba, disse la volpe dell'uva.
{}> Tipizzazione lasca; 
Il C e` per i programmatori che veramente sanno quello che fanno. Sono
pochissimi.
{}> abuso di puntatori; 
Ma hai presente come funziona un computer ? :)
{}> modularita' e packages pressoche' inesistente, 
No, c'e`, bisogna saperla usare.
{}> risultante in un gran namespace 
Ah, da quando Java ha fatto i package tutti dietro:).
{}> macro sporche, che si evalutano con priorita' assurde; 
Non se si studiano bene le regole del linguaggio.
{}> tipo boolean inesistente; 
Non serve. Ma di nuovo devi sapere per davvero quello che fai.
{}> tipo stringa pressoche' inesistente; 
{}> variabili non inizializzate; 
{}> range di variabili e array non gestiti. 
{}> Tanto per dirne alcune.
Ma il cervello chi lo deve avere tra le orecchie, tu o il compilatore ?
Se uno non sa programmare non programmi. Ci sono moltissimi degnissimi
lavori a questo mondo che permettono anche di essere utili al prossimo.
{}> Java: nessuno dei suddetti problemi, ma: pesantezza, inadeguatezza per
{}> applicazioni time critical, e non e' software libero.
L'unica buona e` l'ultima.


 altro, con le regex.
Sinceramente ormai vedo che anche gli altri linguaggi implementano le
regex perl-style.


 Diciamo che ne porta ben altri con se'...
quoto.


 regex perl-style.
Beh, si', certo... oramai le regex le si fa pure col javascript, pero',
bho, sara' una cosa affettiva, ma in perl mi riescono meglio O_o


 Ma il cervello chi lo deve avere tra le orecchie, tu o il compilatore ?
La risposta a questa domanda e' molto semplice: il compilatore (o 
meglio, il linguaggio).
Ovvero, il linguaggio e' tanto migliore quanto piu' "ha cervello".
Il linguaggio dovrebbe infatti fare tutto cio' che e' in suo potere per 
togliere la complessita' al programmatore.
Ad esempio un linguaggio che inizializza automaticamente le variabili (o 
che impedisce di lasciarle non inizializzate) e' da preferire a uno che 
non lo fa, perche' toglie un pensiero al programmatore, e quindi e' meno 
error prone.
Idem per le stringhe, e' chiaro che si puo' far tutto coi pchar, ma si 
puo' far tutto anche con l'assembler. Il linguaggio dovrebbe aiutare il 
programmatore sollevandogli i lavori gravosi (ed error prone) che e' 
possibile automatizzare.
Per concludere, non oso pensare a quante ore in tutto il mondo sono 
state sprecate per debuggare problemi generati da questi difetti del 
linguaggio, che si sarebbero potuti evitare con un linguaggio meglio 
strutturato.
Io non amo particolarmente java per i motivi che ho indicato prima, ma 
sicuramente e' molto meglio per vari punti di vista.
Sapevo che ne sarebbe uscito un flame coi fiocchi :P

 Sapevo che ne sarebbe uscito un flame coi fiocchi :P
Flame che e` assolutamente OT in questi lidi.
Direi che e` meglio:
it.comp.os.linux.developement (al limite)
oppure it.comp.programmare


> compilatore ?
{> La risposta a questa domanda e' molto semplice: il compilatore (o
{> meglio, il linguaggio).
O.K.
Tu ti  sei autoescluso dalla  razza umana.  Sappi  che e` il  fatto di
avere il cervello  con il quale controlla cio`  che crea a distinguere
gli uomini dagli altri abitanti di questo pianeta.
{> Ovvero, il linguaggio e' tanto migliore quanto piu' "ha cervello".
{> Il linguaggio dovrebbe infatti fare tutto cio' che e' in suo potere
{> per togliere la complessita' al programmatore.
Questa e` una bella favola che piace tanto ai marketroid, ai manager
e a chi in generale di programmazione non ci capisce una sega.
Il buon linguaggio e` coerente, prevedibile ed affidabile.
Un  linguaggio ricco  puo`  accelerare lo  sviluppo  di software,  non
togliere la complessita` alla programmazione.
Java  e` carino  perche`  estremamente coerente.  Ma  non parliamo  di
togliere la complessita` per favore.
{> Ad esempio un linguaggio che inizializza automaticamente le variabili
{> (o che impedisce di lasciarle non inizializzate) e' da preferire a uno
{> che non lo fa, perche' toglie un pensiero al programmatore, e quindi
{> e' meno error prone.
Un programmatore che necessita di  questo farebbe bene a rivolgersi al
piu` vicino consorzio agrario per cercare un nuovo datore di lavoro.


 del K&C "Guida e condotta del Benelli Testacalda".
Argh! Abominio! :-)
Era il Landini, il testacalda, lasciatelo dire da uno della zona.
Hmm, sembra che oggi io sia portato a post non proprio costruttivi.
Mi plonko da solo, saluti.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

> del K&C "Guida e condotta del Benelli Testacalda".
r> Argh! Abominio! :-)
r> Era il Landini, il testacalda, lasciatelo dire da uno della zona.
Grazie Roberto della correzione e perdona l'errore :)


> non sono veri programmatori", il linguaggio dovrebbe farlo.
EF> Io ritengo che chiunque dovrebbe sapere programmare in C. E poi
EF> eventualmente essere appeso per le palle se decide di usarlo quando
EF> potrebbe vantaggiosamente usare un linguaggio piu` moderno.
EF> O per lo meno, se fosse un mio collaboratore lo appenderei per le palle,
EF> prenderei le sue funzioni e le farei diventare dei moduli per Python :)
Lisp figliolo, Lisp :).
Scherzi a parte.
Non e` male usare un linguaggio piu` ricco di librerie per abbreviarsi
il lavoro *quando si sa cosa si sta facendo*, anche accettando perdite
di prestazioni.
Bene o male e` compito dei  computer fare per noi le cose ripetitive e
meccaniche.
Ma e` deletereo  per l'intero genere umano che  si dica "usiamo questo
linguaggio   perche'  e`   facile   e  ci   costa   poco  formare   un
programmatore".
Palle.
Nessun linguaggio e` facile, temo nemmeno il COBOL.
Se hai un  dominio applicativo noto e arcinoto  ed un'ambiente dove ci
sono  esperienze  ultradecennali  puoi  sperare  di  avere  un  numero
sufficientemente elevato  di "pattern"  che prendi lo  scimmiotto, gli
insegni il  linguaggio e tutta  una serie di  "questo lo fai  cosi`" e
"quest'altro cosa`".
Ma  questo lo  puoi fare  solo quando  scrivi programmi  gestionali su
mainframe.
Non con ambienti recenti e affrontando problematiche nuove.
Non  si  deve mai,  quando  si usa  il  computer,  dimenticare che  il
cervello e` situato  tra le orecchie di  chi lo usa e che  non si puo`
demandare  la  responsabilita`  delle  azioni alla  macchina,  che  si
programmi o si chatti in IRC.


 Non con ambienti recenti e affrontando problematiche nuove.
'nfatti


 {>   #define NINE   8 + 1
]zac[
Questo è un errore enorme di programmazione, anzi di matematica, visto che
la priorità degli operandi è una questione di matematica, è una FAQ.
#define SIX    (1 + 5)
#define NINE   (8 + 1)

 la priorità degli operandi è una questione di matematica, è una FAQ.
eppure c' e' un fondo di verita' in tutto cio': 
http://it.wikipedia.org/wiki/La_vita,_l'universo_e_tutto_quanto
(vedi la risposta dei programmatori)
^_^
-- 
§            ZeD             §
§         18/08/2004         §
§ S. Elena-Ss. Floro e Lauro §
§   Now listening: Nothing   §

 ma con una sintassi a mio avviso molto piu` leggibile.
Perl: che dire, sarà affetto, sarà che ha quel non so che, ma per me, perL
oggi perL domani ... perl sempre ;-).
semplice, elegante, le regex sono bestiali, veloce qb per me, porti uno
script in perl in CGI in pochissimo tempo, Xplataform, va da shell...
Prolog:
Mi ha sempre affascinato... ma va oltre la mia comprensione
Ne accodo altri 2...
Delphi:
La robustezza dei costrutti pascal, un compilatore con il turbo... una
pecca... la piattaforma su cui gira :( (mi sembra che ci siana un porting su
*x ma nn l' ho mai provato...
Ma l'eleganza del pascal... aaaaah..... vabbeh sono un sentimentale...
ADA:
che dire, anche il nome si dichiarava!
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 che dire, anche il nome si dichiarava!
troppo BDSM ;)


 piu` vicino consorzio agrario per cercare un nuovo datore di lavoro.
Puo' non averne la necessita', perche' e' bravo quanto te, ma magari 
puo' tornargli comodo.
Visto che programmi tanto in C, sicuramente avrai perso le tue belle ore 
a debuggare codice che non andava per via di questi tipi di problemi.
O forse no, visto che sei cosi' bravo.
Concludendo, purtroppo non tutti i programmatori sono dei geni. Se lo 
fossero, probabilmente avrebbero gia' cestinato il C (e forse anche il 
java) da molto tempo

 java) da molto tempo
Ops, mi e' partito il send prima che finissi..
Dicevo, ci sono anche i programmatori scarsi, e il loro codice spesso 
viene debuggato anche da programmatori bravi, o almeno cosi' succede 
nella mia societa', che probabilmente conosci bene.
Se dovessi pensare di debuggare codice C altrui, veramente seguirei i 
tuoi consigli e mi darei all'agricoltura.
La fortuna vuole che invece si usi nella mia societa' principalmente 
Java, che con tutti i suoi difetti, mi rende la vita un po' piu' facile.
Ora, capisco che tu possa essere affezionato al C, ma dire che e' un 
linguaggio ottimale o che renda la vita facile ai programmatori, di 
certo sarebbe una sciocchezza.
E con questo, chiudo la mia parte dei questo flame preventivato e ti 
lascio l'ultima parola
Saluti

 Dicono che sia morto ormai (Kylix intendo)
Sono sempre i migliori che se ne vanno...
 
Manuel


 Ma l'eleganza del pascal... aaaaah..... vabbeh sono un sentimentale...
Il pascal a mio avviso e' uno dei linguaggi migliori con una buona 
struttura. Fonde bene i vantaggi di linguaggi come C e Java.
(Si, altro flame :P)
Kylix (il porting linux) l'ho usato e zoppica un po' rispetto alla 
versione windows, seppure funzioni. Dicono in effetti che sia morto.
Speriamo di no.
(Per me, avrebbero fatto meglio a basarlo su GTK che su QT. Avrebbero 
evitato diverse rotture).
Cio' che mi piace poco e' che l'IDE (di delphi) e' proprietario, e di 
open source ne esistono pochi e brutti.
Inoltre e' un peccato che ci siano diversi dialetti lievemente 
incompatibili, che rendono necessario ricorrere a volte all'abuso di 
compilers directives (delphi, kylix, freepascal, gnu pascal).

 struttura.
Sara' per come l' ho studiato, sara' che ho letto "real programmers don' t
eat quiche", ma io il pascal non l' ho mai sofferto...
mah...


 writes:
EF> Tantomeno il COBOL :)
 
E ti assicuro che almeno in certi ambienti e` considerato facile perche'
"ci skilli una persona in pochi giorni"... E poi salta fuori bolletta
pazza...


> {>   #define NINE   8 + 1
GDB> ]zac[
GDB> Questo è un errore enorme di programmazione, anzi di matematica, visto che
GDB> la priorità degli operandi è una questione di matematica, è una FAQ.
GDB> #define SIX    (1 + 5)
GDB> #define NINE   (8 + 1)
Un'altro che non ha letto la Guida Galattica degli Autostoppisti.
Male malissimo (vi siete persi  una vagonata di risate per ogni pagina
della trilogia in 5 volumi).
Cercate con wikipedia
"The Answer to Life, the Universe and Everything" (la risposta alla
Vita, all'Universo e a Tutto il Resto ) con Google
http://www.google.com/search?q=the+answer+to+life,+the+universe+and+everything&ie=UTF-8&oe=UTF-8
Quindi seguite il primo link
http://en.wikipedia.org/wiki/The_Answer_to_Life,_the_Universe,_and_Everything
e date un'occhiata a cosa vi dice il calcolatore di google.
e cosi` capirete (anche se perdendovi una vagonata di risate a pagina) che
 #include <stdio.h>
 
 #define SIX    1 + 5
 #define NINE   8 + 1
 
 int main(void)
 {
     printf( "What you get if you multiply six by nine: %d\n", SIX * NINE );
     return 0;
 }
non e` quello che superficialmente viene definito
GDB> ... un errore enorme di programmazione, anzi di matematica ...
ma una  geniale "barzelletta in  C" dove *COSCIENTEMENTE* si  e` fatto
ricorso  alle  macro ed  alla  priorita`  deglio  operatori e  che  fa
riferimento alla parte  della trilogia in cui si  fa la conoscenza con
la risposta alla Vita, all'Universo e a Tutto il Resto.


> Ma l'eleganza del pascal... aaaaah..... vabbeh sono un sentimentale...
{> Il pascal a mio avviso e' uno dei linguaggi migliori con una buona
{> struttura. 
Pascal e` un linguaggio elegantissimo. Ma didattico. Wirth stesso si
e` meravigliato che lo abbiano usato per "andare in produzione".
Ha delle FORTI limitazioni.
{> Fonde bene i vantaggi di linguaggi come C e Java.
Non ha gli oggetti... 
Il Turbo Pascal a oggetti non e` altro che un Pascal imbastardito
con le funzionalita` del C scritte in maniera prolissa.
Oddio, un ottimo compilatore sotto, e Delphi e` meglio di VB. Ma...


> togliere la complessita` per favore.
{> Certo, programma un po' di applicazioni multithread in C e poi
{> scrivile in Java. Oppure lavora un po' coi socket. Oppure connettiti a
{> un database in C.
{> Certo, una volta finito saprai tutto sui socket e sui thread, bravo!
{> Peccato che ci hai messo il doppio del tempo della concorrenza.
Dipende da come  fai le cose. Se  ti inventi 20 volte la  ruota e` una
cosa.  Se ti  prepari le librerie ben fatte  e` un'altra. Purtroppo e`
vero, nell'IT italiana  si reinventa sempre la ruota,  e spesso con un
numero di lati minore o uguale a 4.
{> Visto che programmi tanto in C, sicuramente avrai perso le tue belle
{> ore a debuggare codice che non andava per via di questi tipi di
{> problemi.
{> O forse no, visto che sei cosi' bravo.
Ci sono  altri problemi su  cui ho lavorato  ed ho perso tempo,  ma si
trattava di  algoritmi numerici,  e li' C,  C++, Java... la  musica e`
quella. Ma quello delle  variabili non inizializzate no. Probabilmente
per come penso.
{> Concludendo, purtroppo non tutti i programmatori sono dei geni. Se lo
{> fossero, probabilmente avrebbero gia' cestinato il C (e forse anche il
{> java) da molto tempo
Il C non lo cestinera` mai nessuno.
Perche` ci  puoi scrivere cose come  la barzelletta di  "Quanto fa sei
per nove  ?" come domanda  per la risposta  42, il Duff's device  o il
programma  che calcola  pi  greco  partendo dal  rapporto  tra area  e
diametro di un cerchio campionato nel discreto.
Diverte.


 GDB> ... un errore enorme di programmazione, anzi di matematica ...
]zac[
Il punto era ... no lasciamo perdere, il thread è ormai degenerato
completamente (non ce l'ho con te), fesso io che ho dato una risposta
seria.

 Prometto di rimediare ( :) ).
Non ci vuole molta fatica: 
http://utenti.lycos.it/DouglasAdams/
 ;-)
Bye, G.

 Oddio, un ottimo compilatore sotto, e Delphi e` meglio di VB. Ma...
Infatti e' ottimo, l'ho usato per anni e ho smesso solo ora che ha preso 
la brutta piega del .NET (della serie: come muore il software non libero)
Ora non resisto alla tentazione di ribattere anche all'altra tua email :P
Chiedo scusa, ma e' l'ultima veramente visto che da domani sono in vacanza.
 > Col C Tom Duff tiro` fuori questo splendido (o infame) pezzo di
 > codice
[CUT]
 > che gli permise  di scrivere in C un  loop srotolato (vedi spiegazioni
 > dello stesso Duff in 
http://www.lysator.liu.se/c/duffs-device.html
) in
 > cui  il corpo  del loop  (8 istruzioni  C) veniva  tradotto (su  VAX e
 > Motorola 680x0) esattamente in 8 istruzioni macchina.
Ora, tu vorresti dirmi che un linguaggio che permette di fare quella 
porcheria e' un linguaggio valido?
Quell'accrocchio sara' anche geniale, ma e' una schifezza che viola le 
piu' basilari regole dell'ingegneria del software e che storpia i 
costrutti offerti dal (troppo permissivo) compilatore.
Pensa che bello se negli ambienti di produzione tutti facessero queste 
genialate..
Senza contare che se proprio uno vuole fare del codice veloce, puo' 
semplicemente usare l'assembler inline che sicuramente risulterebbe piu' 
leggibile.
Se questo e' cio' che di bello si puo' fare col C, e' un motivo in piu' 
per starne alla larga.
 >{> Il fatto che sia piu' compatto non significa che sia migliore. >Quando
 >{> vedo una funzione che ritorna un int, come faccio a sapere che in
 >{> realta' quell'int e' considerato semanticamente come un boolean?
 >Usualmente e` scritto nella documentazione (sorgente  :)  al limite).
Si ma il fatto e' che la documentazione non e' sicura. Resta indietro, 
non viene letta, ecc ecc. E la correttezza dell'uso dell'int come 
boolean deve essere controllata da un programmatore (umano). Invece con 
l'uso del boolean, non c'e' possibilita' di errore, ed e' il compilatore 
che controlla che tu faccia giusto. A parita' di tutto il resto 
(abilita' del programmatore, velocita' del compilatore, dimensioni del 
programma ecc ecc), e' meno error-prone. E' per questo che pressoche' 
tutti i linguaggi nati dopo il C usano il tipo boolean.
(non me ne viene in mente nessuno che non lo abbia)
 >{> Beh mi piacerebbe vederli questi fantomatici packages c :P
 >{> Con tutto il codice C che ho visto sotto linux, non ne ho trovato
 >{> traccia. Devono essere nascosti bene :P
 >Il compilato usualmente e` in /lib o qualcosa di simile  :) .
E che c'entra il compilato con la modularita' e pacchettizazione del 
codice ? Il C non va oltre agli include.
E con cio', ho finito, scusate ancora e spero di non aver annoiato troppo..

> Usualmente e` scritto nella documentazione (sorgente  :)  al limite).
{> Si ma il fatto e' che la documentazione non e' sicura. Resta indietro,
{> non viene letta, ecc ecc.
Quale ? Quella dei programmi messi in produzione ? Ah, si, quelli non
sono mai documentati che costa.
Seguiti invece la mailing list di Emacs e ascolta quello che dice
RMS sulla documentazione...
{> E la correttezza dell'uso dell'int come
{> boolean deve essere controllata da un programmatore (umano). 
Cazzo, ma  e` BANALE!!!  Fai un programma  che anche uno  scemo potra`
usare e solo uno scemo lo vorra` usare - vecchio adagio.
Non  ho MAI avuto  questo problema.  E non  mi ritengo  superiore alla
media (dei programmatori).


 (tant'e' che si studia alla grande nelle universita')
erh...
certo, ma soprattutto perche' e' *alla moda*, e te lo dice uno a cui
mancano 5 esami per la laurea in informatica a bari ^^;
-- 
§                            ZeD                             §
§                         21/08/2004                         §
§                          S. Pio X                          §
§ Now listening: Elio e le storie tese - Sogno o son desktop §

 certo, ma soprattutto perche' e' *alla moda*,
Sono dello stesso avviso. E aspetto con apprensione mista
a timore l'eventuale passaggio a C#.
-- 
Francesco Romani -- Ikitt 
'In fact, users don't read /anything/'                         -- Joel Spolsky

 a timore l'eventuale passaggio a C#.
Questa e` la trama di un film orror.
