View Full Version : piccola curiosità: c = C#?
Louder Than Hell
28-12-2002, 08:46
come da oggetto :rolleyes:
Kleidemos
28-12-2002, 10:46
Originally posted by "Louder Than Hell"
come da oggetto :rolleyes:
no, nn lo sono :D
Pakoprog
28-12-2002, 11:45
Il c# è visuale,mentre il c no,ciao.
Kleidemos
28-12-2002, 12:48
Originally posted by "Pakoprog"
Il c# è visuale,mentre il c no,ciao.
a parte che hai sparato na mezza cagata.............. le differenze nn sono solo quelle!
Pakoprog
28-12-2002, 13:20
E' dimmele tu allora le differenze sapientino :sofico:
Kleidemos
28-12-2002, 13:28
Originally posted by "Pakoprog"
E' dimmele tu allora le differenze sapientino :sofico:
foreach, using, classi, ereditarietà, OOP!
Ti basta?
Pakoprog
28-12-2002, 13:31
Si ma cmq il c nn è visuale,ma penso ke tu nn sai kosa significa visuale!!
Originally posted by "Pakoprog"
Si ma cmq il c nn è visuale,ma penso ke tu nn sai kosa significa visuale!!
Dipende che intendi per visuale... Se intendi programmazione per Windows...allora si fa anche in C...
Kleidemos
28-12-2002, 18:17
Originally posted by "Pakoprog"
Si ma cmq il c nn è visuale,ma penso ke tu nn sai kosa significa visuale!!
se intendi il vb.............si!
Cmq anche il C con le API32............è visuale :D
eh dai, non fate i litigiosi :-)
http://www.geocities.com/csharpfaq/ qui c'è qualche link, è il primo sito che mi è venuto fuori con google...
cmq, dire che un linguaggio è visuale non lo classifica per niente... insomma c può essere visuale, java può esserlo oppure no, idem c++
Louder Than Hell
31-12-2002, 08:44
l'ho chiesto perchè in libreria non trovavo libri sul c ma molti sul c#...
Originally posted by "Louder Than Hell"
l'ho chiesto perchè in libreria non trovavo libri sul c ma molti sul c#...
il c e' ormai soppiantato dal c++; in linux e' ancora discretamente usato (in primis per il kernel, ove non e' ammesso codice in c++);
lo stesso sviluppo di compilatori commerciali, pare sia essenzialmente indirizzato al c++
Kernel Panic!!
31-12-2002, 11:51
Originally posted by "hilo"
il c e' ormai soppiantato dal c++; in linux e' ancora discretamente usato (in primis per il kernel, ove non e' ammesso codice in c++);
lo stesso sviluppo di compilatori commerciali, pare sia essenzialmente indirizzato al c++
anche gnome & gtk per dire eh ;)
Kleidemos
31-12-2002, 11:51
Originally posted by "Kernel Panic!!"
anche gnome & gtk per dire eh ;)
c'è anche GTK# :D
Kernel Panic!!
31-12-2002, 11:59
ma C# non è strettamente legato a .NET (o mi sbaglio?)
Kleidemos
31-12-2002, 12:06
Originally posted by "Kernel Panic!!"
ma C# non è strettamente legato a .NET (o mi sbaglio?)
considerando che il framework e scritto in C# e che senza le classi .NEt il C# nn ha classi......................no :D
Cmq Mono(di Ximian) è ha buon punto e presto si potra programmare in C# indifferentemente sia in Linux, sia in win!
Kernel Panic!!
02-01-2003, 10:41
mmm mi par di aver intuito la seguente proporzione (per chi si ricorda J++ :p )
J++ : Java = C# : C++
:p
Kleidemos
02-01-2003, 10:46
Originally posted by "Kernel Panic!!"
mmm mi par di aver intuito la seguente proporzione (per chi si ricorda J++ :p )
J++ : Java = C# : C++
:p
C# combina la sintassi di C le classi di C++ e la semplicita(garbage collector, Il) di Java
Kleidemos
02-01-2003, 10:50
cmq J++ esiste ancora!
E skarikabile dal sito della M$ la vers .NET
/\/\@®¢Ø
02-01-2003, 21:07
Originally posted by "Kernel Panic!!"
mmm mi par di aver intuito la seguente proporzione (per chi si ricorda J++ :p )
J++ : Java = C# : C++
:p
Non proprio, il C# e' molto piu' simile al Java che non al C++.
Probabilmente e' lo stesso J++ a cui e' stata un po' modificata la sintassi, lasciando invariato il generatore di codice sottostante.
Kernel Panic!!
02-01-2003, 23:51
Originally posted by "Kleidemos"
cmq J++ esiste ancora!
E skarikabile dal sito della M$ la vers .NET
credevo (speravo :D ) fosse morto :p
il C++ e' uno stardard internazionale con circa 12 anni di sviluppo alle spalle, e' multipiattaforma e conta migliaia di testi di riferimento e documenti ufficiali, oltre che milioni di programmi che sono stati sviluppati con questo linguaggio da il semplice "hello world" a interi sistemi operativi, personalemente non ha eguali al momento il C# e' il classico ambiente microsoft che scimmiotta uno stardard internazionale per evitare che i codici sviluppati in .net siano portabili su altre piattaforme essendo le specifiche di C# sotto copyright al contrario di quelle del C++ che sono uno stardard ANSI.
post scriptum: non ho scritto una riga di codice in C# e al momento non ho alcuna intenzione di scriverla, invito a chi usa il C# a non imbarcarsi in un linguaggio che li rende schiavi di un singolo produttore.
Mezzetti0903
05-01-2003, 11:21
Originally posted by "homero"
C# e' il classico ambiente microsoft che scimmiotta uno stardard internazionale per evitare che i codici sviluppati in .net siano portabili su altre piattaforme essendo le specifiche di C# sotto copyright al contrario di quelle del C++ che sono uno stardard ANSI.
:rolleyes: :rolleyes: :rolleyes: :muro: :muro: :muro:
Kernel Panic!!
05-01-2003, 12:16
Originally posted by "homero"
il C++ e' uno stardard internazionale con circa 12 anni di sviluppo alle spalle, e' multipiattaforma e conta migliaia di testi di riferimento e documenti ufficiali, oltre che milioni di programmi che sono stati sviluppati con questo linguaggio da il semplice "hello world" a interi sistemi operativi, personalemente non ha eguali al momento il C# e' il classico ambiente microsoft che scimmiotta uno stardard internazionale per evitare che i codici sviluppati in .net siano portabili su altre piattaforme essendo le specifiche di C# sotto copyright al contrario di quelle del C++ che sono uno stardard ANSI.
post scriptum: non ho scritto una riga di codice in C# e al momento non ho alcuna intenzione di scriverla, invito a chi usa il C# a non imbarcarsi in un linguaggio che li rende schiavi di un singolo produttore.
qua scatta il flame fra un po' :pig:
cmq è quel che penso anche io (imho ovviamente... che poi un fondo di verità ci sia... :p ) ;)
Originally posted by "homero"
il C++ e' uno stardard internazionale con circa 12 anni di sviluppo alle spalle, e' multipiattaforma e conta migliaia di testi di riferimento e documenti ufficiali, oltre che milioni di programmi che sono stati sviluppati con questo linguaggio da il semplice "hello world" a interi sistemi operativi, personalemente non ha eguali al momento il C# e' il classico ambiente microsoft che scimmiotta uno stardard internazionale per evitare che i codici sviluppati in .net siano portabili su altre piattaforme essendo le specifiche di C# sotto copyright al contrario di quelle del C++ che sono uno stardard ANSI.
post scriptum: non ho scritto una riga di codice in C# e al momento non ho alcuna intenzione di scriverla, invito a chi usa il C# a non imbarcarsi in un linguaggio che li rende schiavi di un singolo produttore.
..concordo pienamente....
chi ha detto che C# è un linguaggio? :D
Sul fatto che lo scopo di MS sia quello di fare soldi (che è lo scopo di tutti, non dimentichiamolo), alla fin fine, non ci piove sicuramente e questo passa anche attraverso una "fidelizzazione" indotta dai (e ai)suoi strumenti di lavoro. Però mi sembra ci sia un po' di confusione:
--C# e' il classico ambiente microsoft
No, è solo un linguaggio nato con il framework .Net e particolarmente predisposto verso di esso. Ambiente, se proprio vuoi può essere Visual Studio ma, ancora di più, il framework .Net stesso, quest'ultimo mi sembra decisamente il bersaglio più indicato per eventuali strali e maledizioni....altrimenti possiamo anche prendercela con il Cobol.Net, Fortran.net, Delphi.Net (spero che esca alla svelta..) ecc...ma non mi sembrano i veri imputati.
--per evitare che i codici sviluppati in .net siano portabili su altre piattaforme
Veramente MS ne ha rilasciato le specifiche, ed anche una discreta parte del codice, e gli stessi creatori del progetto Mono (.Net portato su Linux, www.go-mono.com) per una volta si sono detti soddisfatti dell'atteggiamento tenuto a Redmond sulla questione. Il vero punto è capire se sotto c'è qualche cosa....e su questo non mi pronuncio ma è possibile, direi probabile, che ci sia dell'interesse dietro. Per il momento puoi scrivere applicazioni C# sotto win e vederle girare pari pari sotto Linux senza una mezza riga di correzione. Certo per ora si tratta per lo più di applicazioni console e ci saranno parecchi bachi da sistemare, a me sembra una cosa positiva, quantomeno interessante.
--C# a non imbarcarsi in un linguaggio che li rende schiavi di un singolo produttore.
Questo è un rischio, remoto ma possibile, ma lo corre anche chi programma con Delphi, ad esempio e direi anche Java (per cui il bello e il cattivo tempo lo fa Sun) e anche altri.
Sulla questione C++, C, C# (che qualcuno indica polemicamente come C++++) direi che potremmo evitare di assumere quegli atteggiamenti faziosi che stanno immiserendo altre sezioni del forum (schede video e processori in particolare) altrimenti si finisce a suon di C# rulez o C++ rulez e compagnia. Personalmente ritengo che incuriosisrsi e conoscere quanta più materia si può sia soltanto positivo, poi si possono fare le proprie scelte, fermo restando che , al momento, C# è un promettente linguaggio, C++ una consolidata certezza con un paio di veri "rivali" sul piano della diffusione, che sono Java e VB.
/\/\@®¢Ø
05-01-2003, 20:11
Originally posted by "homero"
il C++ e' uno stardard internazionale con circa 12 anni di sviluppo alle spalle, e' multipiattaforma e conta migliaia di testi di riferimento e documenti ufficiali, oltre che milioni di programmi che sono stati sviluppati con questo linguaggio da il semplice "hello world" a interi sistemi operativi, personalemente non ha eguali al momento il C# e' il classico ambiente microsoft che scimmiotta uno stardard internazionale per evitare che i codici sviluppati in .net siano portabili su altre piattaforme essendo le specifiche di C# sotto copyright al contrario di quelle del C++ che sono uno stardard ANSI.
Come scrivevo prima il confronto non va fatto con C++ ma con Java, ed in effetti sono davvero poche non solo dal punto di vista tecnico (caratteristiche del linguaggio, uso di VM, etc.), ma anche da quello 'commerciale'. Le differenze principali da questo punto di vista sono che il C# e' (o dovrebbe comunque diventare) uno standard ECMA (a differenza di Java che invece resta "proprieta'" della Sun, e mi sembra che nessuno si lamenti poi di rimanere legato ad una piattaforma proprietaria quando programma in Java ), e che Microsoft ha spinto molto sull'indipendenza della piattaforma .NET dal linguaggio specifico ( mentre Java e JVM sono intimamente legate ).
/\/\@®¢Ø
05-01-2003, 20:24
Originally posted by "atragon"
Il vero punto è capire se sotto c'è qualche cosa....e su questo non mi pronuncio ma è possibile, direi probabile, che ci sia dell'interesse dietro.
Secondo me si tratta di un tentativo di contrastare Java "da fuori", dopo che sono falliti (in tribunale) quelli di farlo "da dentro". In quest'ottica la portabilita' era una condizione fondamentale e forse dettata anche dagli interessi di Microsoft ad ambienti diversi dal classico PC ( palmari, telefonini, televisori, in sostanza il motivo della nascita di Java ). In questo modo la MS corre il rischio di vedere utilizzato il proprio prodotto in altri ambienti, pero' essendo una sua opera ha un certo vantaggio e' puo' comunque dire "Si', .NET funziona di qua, funziona di la', pero' sotto Windows e' piu' veloce, piu' completo, piu' affidabile". Cosa analoga per il linguaggio. La macchina virtuale sara' probabilmente tarata su misura per C# permettendogli migliori prestazioni rispetto ad altri (tanto per fare un esempio, linguaggi diversi possono fare un uso profondamente diverso della memoria , e quindi un Garbage Collector ottimizzato puo' cambiare parecchio i risultati ).
Sulla questione C++, C, C# (che qualcuno indica polemicamente come C++++)
Se lo chiamavano Java# forse era meglio... ma ormai la mia idea in proposito l'avete capita :D
Mezzetti0903
06-01-2003, 10:30
Io avevo risposto con le faccine per non discutere.....tanto va a finire così!
Vabbuò per il momento i toni sono stati cordiali, continuiamo così!
Comunque...entrando nel merito.......ma Microsoft si sta muovendo molto bene per promuovere il CIL e il C# come standard.
Certo la motivazione di fondo è che in questo modo più aziende investano su questa tecnologia e guadagni di più ma......Chi non lo farebbe??
Poi....finchè non commette scorrettezze perchè no??
Di cose da dire su C# (e framework .NET) vs. Java ce ne sono tante... alcuni miei spunti (pensieri e impressioni):
-Mi pare si sia dimenticato di dire che C# (come Java) e a differenza di C / C++ è interpretato dalla virtual machine
- Confermo che sia C# che il CLI sono stati standardizzati dall'ECMA (ente europeo e la standardizzazione di C# mi pare sia ECMA-262) e pare che debbano essere anche standardizzati dall'ISO (poiché l'ECMA non è riconosciuta in tutti gli stati)
- Sono ancora dubbioso per un completa portabilità tra Linux e Windows; rammento che è uscito una nuova versione del framework che rompe la compatibilità in alcune cose (che secondo Microsoft sono marginali) in entrambi i versi. Penso che la comunità Linux presto si stancherà di stare dietro a Microsoft e questo significherà non portabilità. (Ricordo anche che GTK# ha già un diverso namespace quindi questo significa già mancanza di portabilità)
- "Penso" (ma sono pronto a ricredermi) che C# sia una brutta copia di Java (brutta significa: ValueType, Ereditarietà che prende in considerazione n-mila casi che di fatto sporcano il paradigma OOP)
- Il modello del framework è ben fatto l'implementazione lascia a desiderare (ho trovato una cosina non del tutto carina...)
- Interfacce: se una classe implementa un'interfaccia ma non vuole implementare un particolare metodo esiste una stupenda eccezione: MethodNotSupportedException -> altro ingarbugliamento dell'OOP
- Che piaccia o no dal mio punto di vista il futuro riserva Java vs C#; C# non potrà morire poiché è il linguaggio di riferimento Microsoft per la sua piattaforma
E questo è quanto....
Ciaociao
Soalle
Ma C# è completamente interpretato ? Oppure ha un compilatore JIT come gli altri linguaggi con .Net ?
No no.... (mi sono spiegato male ;)) compilato in IL e poi c'è il JIT del framework che pensa al resto...
<<Ma C# è completamente interpretato ? Oppure ha un compilatore JIT come gli altri linguaggi con .Net ?
Il file .exe prodotto dal compilatore è in realtà un file in formato intermedio, esiste un JIT per l'esecuzione che, peraltro, segue regole abbastanza complesse. Se vai sul mio sito 1 (per ora down) trovi una descrizione del framework che parla anche di queste cose.
<< "Penso" (ma sono pronto a ricredermi) che C# sia una brutta copia di Java
Credo che vada a gusti...io ho lavorato con java per 2 anni (97-99) e mi sono scocciato, nel tempo, di star dietro alla beghe di Sun ed alle sue incertezze, alle deprecazioni che inseguivano i miei programmi, salvo che poi con le novità introdotte ci volevano settimane di lavoro per far girare tutto a puntino (così finivo per tenermi i deprecated) ecc... probabilmente ho sbagliato, Java vale la pena di essere seguito ma ha i suoi bravi difetti, come C# che però è in fase evolutiva (quindi ha, secondo me, molti più margini di miglioramento). Tra l'altro, andando un po' OT, ho avuto il resoconto di una presentazione di Marco Cantù, uno dei guru di Delphi, che ha fatto notare le similitudini che si possono trovare tra il framework e il mondo Delphi, anche se è difficile farle saltare all'occhio...in fondo il papà è lo stesso (Hejlsberg).
Originally posted by "atragon"
in fondo il papà è lo stesso (Hejlsberg).
piccole reminiscenze -> writeln ;)
Però il modello OOP un po' sporco credo sia abbastanza alla luce del sole... (la parola chiave new ha cento significati diversi... la necessità di definire i metodi virtual per poi usare la parola chiave override o new.... e poi quel MethodNotSupportedException che non mi va proprio giù :rolleyes: )
Questo non significa che Java (il cui modello rimane secondo me il più pulito) abbia poi problemi per quanto riguarda il mondo di classi e metodi deprecati... ma sono sicuro che cose simili le vedremo anche in C# tra un po'... anzi in realtà si vedono già :cry: (quando crei un delegato, deriva sempre dalla classe MulticastDelegate perché quelli della Microsoft non hanno fatto a tempo prima di fare uscire il framework di unire le due classi Delegate e MulticastDelegate...)
qualunque sistema hardware indipendent attualmente e' poco funzionale oltre ad essere di per se stesso meno efficente dell' object code per sua stessa struttura, proteggere con la compilazione il codice sorgente rimane anche nel nuovo millenio una priorita', dove questo non e' applicato come in vari linguaggi script, numerosi nel mondo unix, ci sono alternative efficenti a java, con margini di sviluppo di gran lunga superiori.
La maggior parte dei sistemi e' rivolta allo sviluppo di applicazioni per network data base, trovo centinaia e centinaia di metodi tra cui scegliere per sviluppare tali applicazioni personalmente i migliori che mi sia trovato ad utilizzare sono proprio quelli che si basano su script interpretati piuttosto che linguaggi opcode basati su virtual machine.
Il sistema framework della microsoft vuole estendere la compilazione basata su opcode anche per applicazioni estese superiori alle 100.000 righe di codice, cosa che attualmente in java e' estremamente dificile da programmare, la netscape e la corel ne sanno qualcosa quando hanno provato a tradurre in java i loro prodotti di punta rispettivamente il browser e workperfect 2000, dopo nove mesi di sviluppo i bugs e le prestazioni generale dei programmi scritti in java erano talmente lontane dall'efficenza da rendere inutile anche sperare di portare avanti il progetto come test di programmazione. Microsoft spera con .net di poter sviluppare applicazioni stabili compilate in opcode che girino su framework, la pessima efficenza di tali applicazioni dovrebbe essere compensata dall'aumento delle prestazioni dei sistemi hardware di futura generazione.
Mi chiedo se tutto questo serva a qualcosa, attualmente preferisco ancora suddividere i sistemi di sviluppo in interpretati e compilati in codice oggetto, le cosidette mezze compilazioni le lascio a chi a tempo e voglia di sperimentare, gia' troppo tempo ho perso inseguendo false novita' e vane promesse.
"qualunque sistema hardware independent attualmente è poco funzionale" :confused:
In un mondo sempre più distribuito non è il decadimento delle prestazioni di un linguaggio interpretato da una virtual machine che fa la differenza... Anzi linguaggi come Java o il framework .net non fanno altro che rendere la vita più facile al programmatore cercando di spostare le problematiche di una applicazione dall'implementazione al reale problema che l'applicazione deve risolvere. Java e il framework facilitano in maniera considerevole tutte le problematiche dell'integrazione... e questo va a beneficio dello sviluppatore...
Secondo me la strada giusta da seguire per il futuro non è avere un linguaggio interpretato da una virtual machine, ma avere un framework veramente portabile abbinato ad uno o molti linguaggi compilati...
Concordo con te ma... forse è utopia....
Java ha provato di fare una virtual machine portabile e c'è riuscita ma gli manca l'integrazione con gli altri linguaggi....
Framework .net è riuscito molto bene nell'integrazione con gli altri linguaggi ma dal mio punto di vista faticherà molto con la portabilità...
Ciaociao
Soalle
Eh si... per il momento siamo piuttosto lontani dall'avere piattaforme che riescano ad adattarsi ad ambienti e linguaggi diversi....che sarebbe davvero il massimo. D'altronde le differenze architetturali sono notevoli e gli sforzi in tal direzione dovrebbero essere compiuti da qualcuno super partes...Borland ha provato ad adattare Delphi a Linux ma le diversità tra VCL e CLX sono la dimostrazione di quanto lavoro ci sia da fare. In più entrano in gioco altri discorsi, che tutti ben conosciamo, legati ad interessi personali dei vari attori in gioco. Non ci resta che attendere....
si scrive C# ma si legge JAVA
il solito scherzo della Microsoft!!!
povera SUN e......... poveri NOI
Dunque, provo a contribuire anch'io.
C nasce circa 30 anni fa e costituisce tutt'ora la base fondaemntale della programmazione. Con questo linguaggio fu scritto UNIX, a parte una primissima versione in Assembler.
C è un linguaggio procedurale o strutturato che dir si voglia e forse è il linguaggio per eccellenza, perchè padre della programmazione attuale.
E' ancora molto utilizzato per scrivere applicazioni, di non facile apprendimento. Infatti, essendo vicino alla macchina, al processore, richiede una conoscenza di concetti per la gestione della memoria, l'utilizzo dei puntatori e altro ancora. tra i linguaggi di alto livello, è quello + basso, se permettete l'espressione.
C++ è un linguaggio orientato anche agli oggetti, che deriva da C parte della sintassi e che è utilizzatissimo. Usarlo non è facile: per esempio, non ha un'unica gerarchia di oggetti e lascia alla capacità del programmatore la gestione della memoria e degli errori.
JAVA è un linguaggio ad oggetti, per molti non puro al 100%, di apprendimento forse + facile rispetto ai sopracitati: infatti ha una gestione rigida e obbligata degli errori, una gestione automatica della memoria (certi automatismi però costano in termini di prestazioni) e un'unica gerarchia di oggetti. Inoltre la SUN, che lo ha inventato, sta spingendo moltissimo e lo ha già largamente diffuso. JAVA è free: compilatore, ambiente di esecuzione, librerie e documentazione.
Possiede tecnologie orientate al web, simili, per logica, ad ASP e PHP: si chiamano JSP e permettono di scrivere HTML dinamico, usate con altre tecnologie per programmare lato-server (servlet ed ejb).
JAVA è spinto da partner come Oracle (l'Universal Installer è scritto in java, J-Developer e altro ancora) e anche per questo è lanciatissimo a livello commerciale.
C# la copia di JAVA, tanto che, con pochissime correzioni, codice scritto con uno compila anche nell'ambiente dell'altro.
Non lo considero un linguaggio di programmazione originale.
non do giudizi sul livello assoluto dei vari linguaggi, anche perchè ognuno ha il suo ambito.
Tuttavia, second me, chi ne sa davvero conosce almeno C, poi C++ e un linguaggio web-oriented. Facendo considerazioni commerciali, quest'ultimo, sempre second me, non può che essere JAVA.
Un progetto di grande livello commerciale, in Italia, ora? SILEF EUROFIGHTER, 62 milioni di euro sborsati dall'Aeronautica a Vitrociset e Datamat per scrivere una enorme web-application. In JAVA!!
Originally posted by "Skatter"
JAVA è un linguaggio ad oggetti, per molti non puro al 100%
Perché??? :confused:
Originally posted by "Skatter"
C# la copia di JAVA, tanto che, con pochissime correzioni, codice scritto con uno compila anche nell'ambiente dell'altro.
Beh dipende se fai "Hello World" o qualcosina di più... già convertire applicazioni Java in J# (un obrobrio ma comunque più vicino a Java) non è una passeggiata...
Originally posted by "Skatter"
Dunque, provo a contribuire anch'io.
C nasce circa 30 anni fa e costituisce tutt'ora la base fondaemntale della programmazione. Con questo linguaggio fu scritto UNIX, a parte una primissima versione in Assembler.
piccola precisazione : UNIX contiene comunqua una piccolissima parte in assembler (essenzialmente la parte piu' interna del SO)
Per quanto riguarda Hello world, è chiaro che in poche righe (e il mio post era già troppo lungo) ho semplificato, ma credo di aver reso l'idea che C# è molto simile a Java.
Per quel che riguarda la purezza di JAVA , facciamo così: vai su it.comp.quello che ti pare e posta qcosa tipo "mi hanno detto che java è un linguaggio a oggetti puro, mentre small talk non lo era..." aspetta pocghi istanti e sarai aggredito, forse anche fisicamente da energumeni attempati ma agguerritissimi...
Fammi sapere!
Vebbè SmallTalk è il capostipite ed anche il linguaggio con la programamzione ad oggetti più radicale :)
Appunto vedi, tu dici che Small Talk è + radicale, quindi sai anche tu che java non viene considerato da alcuni, così radicale...cmq a me java piace..e poi mi da il pane, quindi w java!
Io invece ho un astio particolare per Java ;)
Ho cominciato a programmarci nel '94 ed ho finito di programmarci nel '94 :)
Sì ma nel 94 non era ancora uscita la prima versione di Java... quindi forse era un po' presto per trarre le conclusioni...
Sono piccolino :p e SmallTalk anche se l'ho sentito nominare non l'ho mai visto... quindi mi spiegate cosa intendete per "più radicale"...
Grazie...
Originally posted by "soalle"
Sì ma nel 94 non era ancora uscita la prima versione di Java... quindi forse era un po' presto per trarre le conclusioni...
Come no...mi pare fosse del '94 la prima versione... Mi pare che fosse il JDK 1.0.2 :)
uhmmm guarda qua:
http://www.mokabyte.it/1998/10/javastory.htm
la prima versione di Java ufficiale jdk 1.0 è dell'inizio del '96...
Sono curioso di sapere qualcosa di più sul modello Object Oriented "puro" di SmallTalk
Io ti assicuro che sono stato alla presentazione ufficiale di Java a Firenze non mi ricordo se in 4a o 5a superiore...aspetta che faccio un attimo i conti...o '95 o '96...
Sinceramente non conosco SmallTalk, ma mi è stato presentato come più rigido del C++ e quindi di conseguenza più rigido di Java (la programmazione OO di Java è meno completa di quella C++)...
scusami... ma personalmente ritengo che il modello di java sia molto più pulito e omogeneo di quello di c++...
certo che le possibilità (a livello di modello di programmazione) che ti offre c++ sono maggiori di quelle di java...
Io non vedo invece cosa ci sia di sporco e non omogeneo nel modello di programmazione di C++...
Il modello di Java è solamente più semplice...ovviamente IMHO :)
mi piacciono questi confronti... provo a spiegarmi meglio...
beh... il fatto è che il livello di astrazione fornito dal linguaggio Java secondo me è più alto di quello fornito dal c++ (assenza dei puntatori, impossibilità di ridefinire gli operatori, assenza dell'early binding) e questo ha due conseguenze:
- Pone meno problemi al programmatore che può concentrarsi di più sul problema da risolvere
- Non permette al programmatore di fare dei giochini a più basso livello che a volte possono risultare utili
Ok...ma sinceramente trovo la possibilità di ridefinire gli operatori una ottima cosa...
Per i puntatori...i puntatori sono molto utili con le gerarchie di classi... Ad esempio usando il puntatore ad una classe base è possibile applicare la stessa operazione a tutta la gerarchia di classi (magari ridefinendo un operatore) ;)
Io non parlo di giochini con i puntatori (algebra dei puntatori etc etc), ma di usare i puntatori come modo per fare collection o link fra diverse gerarchie di oggetti...e questa la vedo come una grande cosa :)
Non mi sembra nemmeno che diminuisca il livello di astrazione...
Chiaramente se si fanno altri "giochini" con i puntatori allora sì che il lviello di astrazione diminuisce...
probabilmente non riesco ad apprezzare fino in fondo tutta la potenza di c++ perché la mia conoscenza è limitata ad un uso didattico e non per fare applicazioni serie...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.