PDA

View Full Version : Quale linguaggio ?


Goldrake_xyz
02-05-2004, 20:36
Hallo !

Premesso che mi divertivo molto a programmare in ASM e
Turbo C2.0 ( MS-DOS ) :bimbo:

Ora vorrei provare qualcosa stile C++ , VISUAL C++ , C# , JAVA
ma non sò cosa scegliere.
Premetto che la programmazione ad ogetti non mi è stata
mai molto simpatica .... :rolleyes:

Più in generale ho qualche problema in ASM, cioè,
una volta, tanto tempo fà, la memoria era indirizzata
in maniera diretta, l'indirizzo che usavi era l'indirizzo fisico reale,
ora invece c'è l'indirizzo virtuale che mi sembra una faccenda
abbastanza intricata :cry:

Saluti.

gokan
02-05-2004, 20:51
Ogni tanto fare una bella ricerchina sarebbe utile ;)
http://forum.hwupgrade.it/showthread.php?s=&threadid=671343
Dai un'occhiata alle F.A.Q in rilievo, troverai molte risposte alle tue domande :)

Ziosilvio
03-05-2004, 14:37
E' interpretato.
Lo usi sia sotto Windows sia sotto Linux.
Lo puoi estendere mediante C/C++.
Ha una sintassi che ti costringe a scrivere programmi leggibili :)
Ha un sacco di moduli aggiuntivi.
Ha una comunita' molto attiva.

Questo (http://www.python.org/) e' il sito di riferimento.

akyra
03-05-2004, 15:57
java per sempre, e tutta la vita.....

cavva81
04-05-2004, 16:27
Lo usi sia sotto Windows sia sotto Linux.

solo se non usi delle librerie generiche... python è multipiattaforma, ma non write-once-run-dovevuoi


Lo puoi estendere mediante C/C++.

mi dicono (io non l'ho mai fatto sinceramente) ke sia piuttosto complicato, vuoi anke per il fatto ke alla fine ti devi imparare pure il C e il C++


Ha una sintassi che ti costringe a scrivere programmi leggibili :)

questa è una cosa che mi piace del Python, ma costringere a mettere dei TAB al posto di parentesi graffe non vuol certo dire rendere un listato leggibile !!


Ha un sacco di moduli aggiuntivi.
Ha una comunita' molto attiva.

qui hai perfettamente ragione, inoltre aggiungerei che per iniziare a programmare ad oggetti il pitone è sicuramente uno dei più immediati e anche facili.

io però opterei di brutto per il Java

Icedguardian
04-05-2004, 22:24
Io voto per il python. Ci sono anche le librerie grafiche che girano sotto diverse piattaforme.

Ciao

P.S. Un certo Eric Steven Raymond consiglia di imparare a programmare iniziando proprio da Python ;)

cionci
05-05-2004, 00:14
Originariamente inviato da Ziosilvio
E' interpretato.
E' un vantaggio :confused:

Ziosilvio
05-05-2004, 12:33
Originariamente inviato da cionci
E' un vantaggio :confused:
Dipende da cosa devi fare.
Se vuoi imparare qualcosa di nuovo: si'.
Se devi scrivere qualcosa che possa girare su piu' di un'architettura: si'.
Se la velocita' non e' un problema: si'.
Se la velocita' e' un problema: no.
Eccetera...

cionci
05-05-2004, 13:32
Comunque se già conosci il C ti consiglio di passare senza pensarci due volte al C++ (per cominciare niente Visual e compagnia bella, poi passerei alle wxWidgets) ;)

Luc@s
05-05-2004, 18:58
cmq il python nn lo sottovaliterei..............io lo trovo molto potente e pulito :D

P.S: cionci, belll' avatar :eek:

cionci
05-05-2004, 19:02
Originariamente inviato da Luc@s
P.S: cionci, belll' avatar :eek:
Tnx ;)

Goldrake_xyz
26-05-2004, 20:05
! grazie a tutti ! __:)


Allora il mio prossimo step sarà C++ con il libro di Stroustrup,

Poi penso di provare a programmare in Java....

e il Visual C# ha qualche caratteristica particolare ???


a presto.

cionci
26-05-2004, 20:35
Originariamente inviato da Goldrake_xyz
e il Visual C# ha qualche caratteristica particolare ???

Sei cominci con il Java non ha senso C# ;)

Ikitt_Claw
26-05-2004, 21:04
Originariamente inviato da Ziosilvio
E' interpretato.


semicompilato, o compilato JIT.

Mixmar
26-05-2004, 22:04
Originariamente inviato da cionci
Sei cominci con il Java non ha senso C# ;)

Sì', è vero, sono molto simili... però, se vuoi fare programmi _abbastanza_ performanti in ambiente Windows, secondo me C# è migliore... è indiscutibile, ha i vantaggi di essere "interno alla casa" che fa anche Windows... per il resto, è Java sputato.

mmx[ngg]
26-05-2004, 23:12
Originariamente inviato da cionci
E' un vantaggio:confused:

LOL

Originariamente inviato da Goldrake_xyz
Più in generale ho qualche problema in ASM, cioè,
una volta, tanto tempo fà, la memoria era indirizzata
in maniera diretta, l'indirizzo che usavi era l'indirizzo fisico reale,
ora invece c'è l'indirizzo virtuale che mi sembra una faccenda
abbastanza intricata :cry:


Se hai dei dubbi sull'assembler puoi kiedere a me....ma sappi che l'indirizzo virtuale è gestito totalmente in maniera automatica dall'O.S. quindi se non devi fare cose turche ti è indifferente.

Scoperchiatore
27-05-2004, 08:51
vai di C++, che in questo caso è il migliore compromesso fra oggetti e classico imperativo :cool:

poi io mi butterei su Ocaml, o prolog, tanto per divertirsi con la programmazione funzionale e la logica del primo ordine :D

Scherzi a parte, la potenza dei linguaggi funzionali mi spaventa sempre di più. Mi sto accorgendo che in Ocaml facevo in 3 (contate) righe di codice cose che con java faccio in 10-15 :eek:

solo che la ricorsione, se non ottimizzata, è poco performante...

texdida
27-05-2004, 12:53
Ti dico sinceramente di provare java ke è uno spettacolo e poi asp!!Io programmo con java e asp e javascript, visual studio e visual basic quindi ho l'imbarazzo però java è molto bello!!!!

Goldrake_xyz
27-05-2004, 19:29
Originariamente inviato da mmx[ngg]
ma sappi che l'indirizzo virtuale è gestito totalmente in maniera automatica dall'O.S. quindi se non devi fare cose turche ti è indifferente.
(Ti Ringrazio per la tua Disponibilità !___:) )

Ritornando sull' argomento assembler, il problema è che prima
potevo fare molti programmi per gestire direttamente l'hardware,
tipo programmare direttamente i registri della VGA,
Porta Parallela, ecc. ecc.
ora con l'indirizzo virtuale mi hanno cambiato un pochino le cose.. vedere per esempio i registri LGDT IGDT ??? :cry:

]Originariamente inviato da Scoperchiatore
poi io mi butterei su Ocaml, o prolog, tanto per divertirsi con la programmazione funzionale e la logica del primo ordine

Oddio Oddio .... ti prego, non mi parlare di prolog (e lisp)
ne ho fatto un' abbuffata, che a ripensarci mi sento male !

Pattern matching, ricorsione, e backtracking x il primo :cry:
una fila di parentesi x il secondo :cry:
Ocaml .. per fortuna non sò neanche da quale pianeta arriva :D

cionci
27-05-2004, 20:19
Ora l'hardware proprio te lo scordi...a meno di programmare un driver (in modalità kernel)... Ed a quel punto si tratta di fare solamente IN e OUT... In pratica ora il memory mapped I/O (come ad esempio si faceva per la scheda video) è quasi inesistente...

Programmando in assembler per Windows in modalità utente devi comunque richiamare le API per realizzare le varie cose...

Scoperchiatore
27-05-2004, 20:28
Originariamente inviato da Goldrake_xyz
(Ti Ringrazio per la tua Disponibilità !___:) )

Ritornando sull' argomento assembler, il problema è che prima
potevo fare molti programmi per gestire direttamente l'hardware,
tipo programmare direttamente i registri della VGA,
Porta Parallela, ecc. ecc.
ora con l'indirizzo virtuale mi hanno cambiato un pochino le cose.. vedere per esempio i registri LGDT IGDT ??? :cry:



Oddio Oddio .... ti prego, non mi parlare di prolog (e lisp)
ne ho fatto un' abbuffata, che a ripensarci mi sento male !

Pattern matching, ricorsione, e backtracking x il primo :cry:
una fila di parentesi x il secondo :cry:
Ocaml .. per fortuna non sò neanche da quale pianeta arriva :D

Si, si sò quelli :D

secondo me sono geniali :cool:

Goldrake_xyz
27-05-2004, 20:42
Ora l'hardware proprio te lo scordi
Oddio, non essere così drastico, lasciami almeno una speranza ...:D

.... a proposito di Window ..... ho scaricato LCC-WIN32,
in sintesi per disegnare una linea grafica in DOS con
Turbo C2.0 mi bastavano 3 istruzioni :
Initgraph(); line(xyz); closegraph();

Ora con Lcc-Win per scrivere un "hello world" non bastano
100 linee di codice ..... quì c'è qualcosa che non và ... :wtf:
vedere il sito :http://www.john.findlay1.btinternet.co.uk/winprog/winprog.htm

a Presto.__:)

cionci
27-05-2004, 21:41
Eh...è così ;)

mmx[ngg]
28-05-2004, 00:14
L'istruzione IGDT non esiste...o io non la conosco :p

Cmq ti vuoi proprio far del male :D

Quella roba lì non ti serve a niente per sviluppare un normale applicativo. Può tornare utile se decidessi di scrivere un S.O. ma in questo caso ti faresti ancora + male :D

Se vuoi un consiglio fai così :

- Se vuoi imparare qualcosa ke ti possa fruttare un pò di soldi impara Java, Html, JavaScript e un DB a caso tra Oracle, MS SQL Server o DB2
- Se ti vuoi divertire e le performance non sono la tua massima pretesa puoi provare il PHP
- Se vuoi farti un pò del male impara l'assembler a 32-bit

Io personalmente (al di fuori del lavoro) uso Delphi x l'interfaccia grafica con Win / Linux (è praticamente istantaneo a differenza del C) e l'assembler per le parti cpu limited (anke il C non è malvagio ma una routine scritta bene va al doppio della velocità in asm)

X quanto riguarda l'asm a 32 bit impara i nuovi metodi di indirizzamente, la gestione dello stack, le nuove istruzioni x86 e mmx (se vuoi anke le sse ma non sono poi così indispensabili) e inizia a scrivere codice in pseudo linguaggio, testalo e quando sei sicuro ke funzia lo converti in asm e lo provi...poi ti prendi l'x86 code optimization guide (dal sito Intel/Amd) e inizi a sfruttare a pieno il linguaggio macchina (branch prediction, prefetch della memoria e allineamento delle istruzioni nelle pipeline).

Goldrake_xyz
28-05-2004, 21:40
Effettivamente .... IGDT non esiste ... :ops:
Mi riferivo ai registri GDTR, LDTR, IDTR ....
e alle istruzioni L/SGDT e L/SLDT
Cmq ti vuoi proprio far del male
Sinceramente ti dico che l'asm mi piace molto,
e anzi mi divertivo molto a scrivere dei programmi in
assembler per programmare il processore matematico !

Questo, forse perchè io provengo dal settore elettronico,
mentre invece gli informatici puri, mi sembra che non
lo gradiscono molto.

mi ricordo che avevo un bel programmino asm che rimaneva
residente (i famosi programmi TSR del DOS) e faceva fare
click all' altoparlante di sitema ad ogni pressione di un tasto ! :D
(Come era anche d'uso per i video-terminali del VAX
i famosi VT104 se non ricordo male)
Ma con il window .... addio .... :cry:

cionci
28-05-2004, 22:06
Quei registri sono gestiti dal sistema operativo...non c'è alcuna necessità di usarli... Tu, programmatore, vedi realmente 2^32 byte...come se fossero veramente installati sul sistema... Poi penserà il sistema operativo a gestire la paginazione ed il file di swap...

Goldrake_xyz
29-05-2004, 14:06
Ok, se è il S.O. che mi gestisce la memoria, e gli indirizzi,
che mi alloca il task dove gli pare .... :mad:
ma allora che gusto c'è a programmare in ASM ?
orig. inviato da mmx[ngg] quindi se non devi fare cose turche....
Si, si, voglio fare cose turche ! :oink:

Saluti... :)

cionci
29-05-2004, 16:00
Originariamente inviato da Goldrake_xyz
Ok, se è il S.O. che mi gestisce la memoria, e gli indirizzi,
che mi alloca il task dove gli pare .... :mad:
ma allora che gusto c'è a programmare in ASM ?
E' così...infatti la gente che programma un intero programma in assembler è diminuita... Ora in assembler si fanno solo certe parti di codice per ottenere il massimo delle prestazioni...e molte volte è codice inline in sorgenti C o C++...

Goldrake_xyz
29-05-2004, 17:19
Oibò .... effettivamente hai ragione al 100%

Forse in un prossimo fururo con Linux ..... :(


Saluti e Grazie a tutti. :)

yeah
30-05-2004, 11:59
Ehi, dove hai imparato l'assembly? Mi piacerebbe conoscerlo anch'io, torna sempre utile se si deve ottimizzare qualcosa all'estremo ;)