Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-08-2009, 14:30   #1
anonimizzato
 
Messaggi: n/a
[Generico] curiosità sui vari linguaggi

Ciao a tutti,

scusate la domanda un da niubbo ma mi sono sempre chiesto se tra i vari linguaggi di progammazione: C, C++, Java, Python, Ruby, PHP, ASP ecc. che siano di scripting o no, compilati o interpretati ci siano delle limitazioni varie.

Mi spiego: un linguaggio qualsiasi può fare, in teoria, qualunque cosa che può fare un altro linguaggio? in Java posso fare le stesse cose che farei in C, C++? con Ruby o Python è possibile fare le stesse cose di Java o C, C++ e viceversa?

Non parlo tanto di comodità, ovvio che se voglio ad esempio fare un sito dinamico non lo faccio in C ma PHP o ASP (esempio), quanto alla possibilità del linguaggio di accedere a qualunque risorsa o strumento al pari un suo simile.

Nello creazione di software per usi più disparati, nell'accesso ai vari OS, nel dialogo con l'hardware ecc.

Mi chiedevo appunto se esistono o meno dei limiti invalicabili per cui il linguaggio X può fare "di tutto" mentre il linguaggio Y solo compiti specifici.

Spero di essere stato chiaro.
Tnx
  Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 15:45   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Sgurbat Guarda i messaggi
...
Mi chiedevo appunto se esistono o meno dei limiti invalicabili per cui il linguaggio X può fare "di tutto" mentre il linguaggio Y solo compiti specifici.

Spero di essere stato chiaro.
Tnx
Ti do i miei 2 cent, che valgono veramente poco.

Quando ci si pone una domanda come la tua, che è centrata attorno alla definizione di linguaggio, bisogna distinguere bene tra la definizione del linguaggio in se e la/e sua/e eventuale/i implementazione/i concreta/e esistenti.

Senza contare che gli aspetti che determinano alcuni dei limiti/differenze che hai indirettamente citato, quoto:
Quote:
Originariamente inviato da Sgurbat Guarda i messaggi
...quanto alla possibilità del linguaggio di accedere a qualunque risorsa o strumento al pari un suo simile...
sono dovute direttamente da altri aspetti (tipo di codice prodotto dalla compilazione del sorgente - gestione della memoria demandata a un garbage collector o meno - libreria standard di utilità messa a disposizione - ecc..) che sono tra loro interdipendenti.

Per dirla in breve: cito la frase che ha in firma marco.r:
Quote:
It’s not about what the language makes possible, it’s what the language makes easy
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 15:45   #3
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
tutti i linguaggi possono fare tutto quello che fanno gli altri in quanto sono tutti turing-completi, se poi invece possono fare tutto in senso assoluto bisogna che qualcuno dimostri la Tesi di Church-Turing, che a mio avviso non sarà meno arduo dell'ipotesi di rieman
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 16:08   #4
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
tutti i linguaggi possono fare tutto quello che fanno gli altri in quanto sono tutti turing-completi,
come potenza di calcolo si, ma come accesso alla piattaforma sottostante é tutto un altro discorso; in Java ad esempio attualmente non si possono scrivere filesystems ne' per Windows ne' per Linux ne' per Mac OS (non so per Solaris ma dubito fortemente).

edit - inoltre sarebbe meglio precisare che i linguaggi citati sono Turing-completi (anche se ho dei dubbi sul PHP), ma in generale esistono anche linguaggi non Turing-completi, per esempio SQL.

Ultima modifica di fero86 : 25-08-2009 alle 16:10.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 16:10   #5
anonimizzato
 
Messaggi: n/a
Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
tutti i linguaggi possono fare tutto quello che fanno gli altri in quanto sono tutti turing-completi, se poi invece possono fare tutto in senso assoluto bisogna che qualcuno dimostri la Tesi di Church-Turing, che a mio avviso non sarà meno arduo dell'ipotesi di rieman
Ti avviso che stai parlando ad un Geometra uscito con 68/100
  Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 16:13   #6
anonimizzato
 
Messaggi: n/a
Quote:
Originariamente inviato da fero86 Guarda i messaggi
come potenza di calcolo si, ma come accesso alla piattaforma sottostante é tutto un altro discorso; in Java ad esempio attualmente non si possono scrivere filesystems ne' per Windows ne' per Linux ne' per Mac OS (non so per Solaris ma dubito fortemente).
Uhm interessante, motivi principali di questa cosa?
Ho sentito di JavaOS, può essere considerato come un vero e proprio OS stile Win, Linux, OSX?

Quote:
edit - inoltre sarebbe meglio precisare che [b]i linguaggi citati[/i] sono Turing-completi (anche se ho dei dubbi sul PHP), ma in generale esistono anche linguaggi non Turing-completi, per esempio SQL.
Infatti avevo letto che SQL non può essere considerato un vero linguaggio di programmazione in quanto privo, ad esempio, di cicli infiniti.
  Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 16:15   #7
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
Quote:
Originariamente inviato da Sgurbat Guarda i messaggi
Ti avviso che stai parlando ad un Geometra uscito con 68/100
e io ho finito da la seconda superiore; non è che sia un decano; so giusto per sentito dire il necessario
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 17:20   #8
anonimizzato
 
Messaggi: n/a
Un'altra cosa che mi stavo chiedendo guardando un pò tra i vari toolkit GUI era perchè GUI come Wx o GTK sono scritte in C.

Java ad esempio ha una sua GUI scritta nel linguaggio stesso come Swing.

Come mai ad esempio Ruby o Python non hanno un toolkit grafico scritto nello stesso linguaggio?

Per questioni di efficenza? in C è più veloce? Oppure perchè non sarebbe possibile realizzarlo?

E sempre in tema: come fa (tecnicamente) un OS come Win a visualizzare le finestre grafiche di una GUI? Essendo abituato alla programmazione web so che le GUI in quel caso sono il rendering del codice HTML/CSS fatto dal browser ad esempio.

Mercie.
  Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 17:28   #9
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
Quote:
Originariamente inviato da Sgurbat Guarda i messaggi

Come mai ad esempio Ruby o Python non hanno un toolkit grafico scritto nello stesso linguaggio?
no questione di comodità di chi le ha scritte: riscriversi da zero una libreria grafica è un suicidio visto che c'è possibilità di usare dei bridge verso altri linguaggi in genere si è preferito fare così; java invece è un discorso apparte dovuto alla volonta sun di far avere un look and feel uguale su tutte le piattaforme, cosa che librerie native fanno difficilmente. poi swing non è l'unica, ho trovato più di un applicazione java scritta con le qt
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 17:40   #10
anonimizzato
 
Messaggi: n/a
Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
no questione di comodità di chi le ha scritte: riscriversi da zero una libreria grafica è un suicidio visto che c'è possibilità di usare dei bridge verso altri linguaggi in genere si è preferito fare così
Si, immaginavo.
  Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 22:00   #11
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da Sgurbat Guarda i messaggi
Uhm interessante, motivi principali di questa cosa?
é cosi e basta; tu conosci un modo per scrivere in Java un file system per Windows o per Linux? senza usare JNI naturalmente, perché altrimenti non lo stai scrivendo in Java ma anche in C o C++.


Quote:
Ho sentito di JavaOS, può essere considerato come un vero e proprio OS stile Win, Linux, OSX?
non ne ho idea, suppongo di si visto che su Wikipedia c'é scritto che gira pure su IA-32, e avrá anche avuto i suoi file systems scritti in Java se é per questo, tuttavia resta il discorso iniziale: se non parliamo di Turing-completezza certi linguaggi, in relazione a specifiche piattaforme, possono risultare molto piu potenti di altri.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 22:13   #12
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da Sgurbat Guarda i messaggi
Un'altra cosa che mi stavo chiedendo guardando un pò tra i vari toolkit GUI era perchè GUI come Wx o GTK sono scritte in C.
wxWidgets é scritta in C++, non in C. per GTK invece me lo chiedo anch'io.


Quote:
Java ad esempio ha una sua GUI scritta nel linguaggio stesso come Swing.
Swing é un'estensione di AWT e AWT non é scritta interamente in Java: per forza di cose una parte deve andare a finire in ambiente nativo tramite JNI, e quindi sará scritta in C o C++ (non so quale dei due, puoi andare a guardarti i sorgenti per saperlo).


Quote:
Per questioni di efficenza? in C è più veloce?
la questione dell'efficienza dei programmi Java contro quelli nativi ormai é trita e ritrita ed il mito é stato sfatato molte volte. nell'anno del Signore 2009 il bytecode Java parzialmente compilato just in time ha smesso giá da tempo di essere piu lento del codice nativo, anzi per tutta una serie di motivi esistono dei casi in cui il bytecode Java risulta addirittura piu veloce.


Quote:
E sempre in tema: come fa (tecnicamente) un OS come Win a visualizzare le finestre grafiche di una GUI?
a grandi linee nel subsystem grafico di Win32 tutto si riduce al disegno di rettangoli: tutto é finestra (non solo le finestre vere e proprie con le decorazioni* ma anche bottoni, caselle di testo, check boxes, combo boxes, ...) e quindi tutto é un rettangolo all'interno del quale l'applicazione disegna quello che vuole. la logica che permette la gestione ed il disegno in questi rettangoli ovviamente si trova nell'ambiente del kernel e si appoggia sul display driver stack. ok, é una spiegazione di m***a

*per decorazioni si intendono la barra di spostamento, il bordo, il menu di sistema e i tasti di ridimensionamento e chiusura. in gergo Win32 le finestre dotate di decorazioni si chiamano overlapped windows.


Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
poi swing non è l'unica, ho trovato più di un applicazione java scritta con le qt
dopo Swing la piu nota per Java é SWT piu che Qt.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 22:25   #13
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Il filesystem di JNode è scritto in Java.

Quel che manca a Java per fare programmazione, diciamo, "di sistema" è il compilatore. Non posso scrivere un sistema operativo con la piattaforma Java standard di Sun semplicemente perchè quella piattaforma richiede un sistema operativo preesistente.

Ma la lingua è neutra rispetto a questo impedimento pratico. E' turing completo, ergo quello che posso fare in C lo posso fare anche in Java - in modo diverso ovviamente.

La ragione per cui non si fa è che esistono già meravigliosi compilatori frutto di decenni di investimenti i quali generano ottimo codice macchina a partire da un linguaggio minimale com'è C.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2009, 22:27   #14
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Se realizzo un s.o. in Java, non sarà possibile scrivere driver in C.

In pratica la situazione sarebbe ribaltata rispetto ai s.o. attuali, che sono scritti in C.

Le "potenzialità" di un linguaggio dipendono dal contesto implementativo e dalla prospettiva adottata.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2009, 13:58   #15
anonimizzato
 
Messaggi: n/a
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Il filesystem di JNode è scritto in Java.

Quel che manca a Java per fare programmazione, diciamo, "di sistema" è il compilatore. Non posso scrivere un sistema operativo con la piattaforma Java standard di Sun semplicemente perchè quella piattaforma richiede un sistema operativo preesistente.

Ma la lingua è neutra rispetto a questo impedimento pratico. E' turing completo, ergo quello che posso fare in C lo posso fare anche in Java - in modo diverso ovviamente.

La ragione per cui non si fa è che esistono già meravigliosi compilatori frutto di decenni di investimenti i quali generano ottimo codice macchina a partire da un linguaggio minimale com'è C.
Capito.
  Rispondi citando il messaggio o parte di esso
 Rispondi


Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Nasce l'albo degli influencer 'rilevanti...
Il Digital Networks Act è stato r...
ASUS ROG ha lanciato due nuovi monitor d...
I nuovi iPhone 18 Pro potrebbero present...
Una parte dei Galaxy S26 avrà chi...
Amazon permetterà agli autori ind...
Il caso Zuckerberg a Palo Alto: una scuo...
Texas contro Roblox: il procuratore gene...
Offerte auto da urlo su Amazon: da CarPl...
Windows 11 26H1 in arrivo fra pochi mesi...
Un Black Friday continuo a rilascio lent...
Redmi Pad Pro da 12,1" 2560x2600 pi...
Tesla Roadster rinviata (di nuovo): ora ...
Il nuovo TV premium 2025 Samsung OLED 4K...
Ecco una TV QLED da 55'' che costa 303€:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:03.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v