Thread obsoleto Programmazione a livello professionale...

gedamial

Utente Senior
Autore del topic
9 Giugno 2010
1.937
69
Miglior risposta
0
Salve.

Volevo chiedervi una cosa: secondo voi, quali sono i linguaggi di programmazione usati maggiormente in aspetto professionale?

Non parlo di HTML,PHP,JS,CSS perché sappiamo che per un buon sito occorre un po di tutti quanti.

Io mi riferisco a software applicativi. Esempio: Photoshop, After Effects, Skype, AVG, Google Chrome, Paint.

Secondo voi, in quale linguaggio sono sviluppati i programmi sopra elencati? Io penso che ci ritroviamo fra le mani C/C++.

Seconda domanda: su Dev-C++ le istruzioni cambiano rispetto a Visual C++. Come mai? Il linguaggio non dovrebbe essere uguale per tutti?

Terza domanda: lei GUI dei grandi programmi come quelli sopra elencati, secondo voi, sono state realizzate con la scrittura a mano o con un efficiente DRAG-AND-DROP?

Grazie in anticipo!
 
Salve.

Volevo chiedervi una cosa: secondo voi, quali sono i linguaggi di programmazione usati maggiormente in aspetto professionale?

Non parlo di HTML,PHP,JS,CSS perché sappiamo che per un buon sito occorre un po di tutti quanti.

Io mi riferisco a software applicativi. Esempio: Photoshop, After Effects, Skype, AVG, Google Chrome, Paint.

Secondo voi, in quale linguaggio sono sviluppati i programmi sopra elencati? Io penso che ci ritroviamo fra le mani C/C++.

Seconda domanda: su Dev-C++ le istruzioni cambiano rispetto a Visual C++. Come mai? Il linguaggio non dovrebbe essere uguale per tutti?

Terza domanda: lei GUI dei grandi programmi come quelli sopra elencati, secondo voi, sono state realizzate con la scrittura a mano o con un efficiente DRAG-AND-DROP?

Grazie in anticipo!

1) Con buona probabilità è stato usato il C/C++ per quei software , ma non sono costituiti interamente solo da C o C++. Basta pensare che skype per esempio sfrutta Skype4ComLib scritta in buona parte in assembly.

2) se scrivi in C/C++ su M. Visual C++ non cambia assolutamente niente a livello di codice (se non consideri che su visual c++ sei obbligato ad usare il Net Framework ). L'istruzioni potrebbero cambiare solo se selezioni un progetto CLR Console Application , in quel caso oltre allo standard cout e printf /cin e scanf ti troveresti un simpatico Console::WriteLine("..."); -Console::ReadLine().Versione identica a tutti i linguaggi basati sul net framework (vb.net per esempio : Console.WriteLine e Console.ReadLine).

3) il Drag&Drop semplifica di sicuro la vita spesso gli stessi programmatori scrivono plug-in per evitare di scrivere codice inutile e ripetitivo. sicuramente per realizzare GUI complesse il drag&drop viene utilizzato.
 
@TBH ma software come AVG devono anche collegarsi a internet. Infatti, AVG costantemente si collega al sito per verificare se ci sono aggiornamenti. Altro esempio, Skype permette la comunicazione con tutti e, difatti, anch'esso è collegato a internet. Mica sai in che modo? Mica sai come E SE il C/C++ può collegarsi a internet?

Altra domanda: cos'è sto Assembly? A che serve? Su internet non ho trovato una definizione molto chiara... (so solo che è un linguaggio di programmazione)

Grazie!
 
@TBH ma software come AVG devono anche collegarsi a internet. Infatti, AVG costantemente si collega al sito per verificare se ci sono aggiornamenti. Altro esempio, Skype permette la comunicazione con tutti e, difatti, anch'esso è collegato a internet. Mica sai in che modo? Mica sai come E SE il C/C++ può collegarsi a internet?

Altra domanda: cos'è sto Assembly? A che serve? Su internet non ho trovato una definizione molto chiara... (so solo che è un linguaggio di programmazione)

Grazie!

esistono i socket per la comunicazione via internet. Quindi connessione TCP/IP - udp etc...
<sys/socket.h> libreria socket
<winsock.h> libreria socket (sotto windows)

l'assembly è un linguaggio a basso livello che comunica direttamente con l'hardware , i vantaggi sono molti in quanto si ha un numero illimitato di operazioni che si possono eseguire , i svantaggi che per scrivere un operazione banale come ad esempio leggere un numero composto da 2 cifre ci vogliono una ventina di righe. L'assembly così detto è generalizzato esistono vari "tipi" (sono stato molto generico a riguardo ma è per farmi capire rapidamente) comunque sono : TASM , NASM e MASM (i principali) . TASM e MASM (hanno una sintassi adatta unicamente per windows).
 
esistono i socket per la comunicazione via internet. Quindi connessione TCP/IP - udp etc...
<sys/socket.h> libreria socket
<winsock.h> libreria socket (sotto windows)

l'assembly è un linguaggio a basso livello che comunica direttamente con l'hardware , i vantaggi sono molti in quanto si ha un numero illimitato di operazioni che si possono eseguire , i svantaggi che per scrivere un operazione banale come ad esempio leggere un numero composto da 2 cifre ci vogliono una ventina di righe. L'assembly così detto è generalizzato esistono vari "tipi" (sono stato molto generico a riguardo ma è per farmi capire rapidamente) comunque sono : TASM , NASM e MASM (i principali) . TASM e MASM (hanno una sintassi adatta unicamente per windows).

Parlavamo di console application e tutti erano felici e contenti, parliamo di windows form e tutto il mondo diventa nero.

L'assembly è fondamentale? :emoji_relieved:

Poi tu dici "sotto windows". Un programma, a priori, dovrebbe funzionare su tutti i sistemi operativi... no?
 
Parlavamo di console application e tutti erano felici e contenti, parliamo di windows form e tutto il mondo diventa nero.

L'assembly è fondamentale? :emoji_relieved:

Poi tu dici "sotto windows". Un programma, a priori, dovrebbe funzionare su tutti i sistemi operativi... no?

ma la domanda iniziale non era sulle windows form ... comunque vedi che puoi usare la lib socket anche su app. console.
L'assembly è fondamentale ? No , non lo è.
Un programma, a priori, non funziona su tutte le piattaforme , eccetto se scritto in Java.
Ad esempio puoi usare il net framework esclusivamente su windows.
se importi librerie utilizzate da windows in un progetto C logico che non funziona su linux. Oppure se scrivi la gui con le api di windows , non funziona su linux o mac

La Logica di mercato per i software tradizionali è così :

Scrivere il software esclusivamente per windows - se è redditizio per mac e linux altrimenti niente.
Invece i giochi sono esclusivamente scritti per windows.
 
ma la domanda iniziale non era sulle windows form ... comunque vedi che puoi usare la lib socket anche su app. console.
L'assembly è fondamentale ? No , non lo è.
Un programma, a priori, non funziona su tutte le piattaforme , eccetto se scritto in Java.
Ad esempio puoi usare il net framework esclusivamente su windows.
se importi librerie utilizzate da windows in un progetto C logico che non funziona su linux. Oppure se scrivi la gui con le api di windows , non funziona su linux o mac

La Logica di mercato per i software tradizionali è così :

Scrivere il software esclusivamente per windows - se è redditizio per mac e linux altrimenti niente.
Invece i giochi sono esclusivamente scritti per windows.

Grazie per le risposte, ma mi rimangono alcune lacune.

Le API... ne ho sentito parlare in giro... ma cosa fanno principalmente?
 
Grazie per le risposte, ma mi rimangono alcune lacune.

Le API... ne ho sentito parlare in giro... ma cosa fanno principalmente?

allora ... le api sono implementate all'interno di un programma in modo dinamico (vuol dire che vengono allocate durante la compilazione del programma, non a caso l'abbreviazione inglese Dynamic Link Library ). Principalmente sono scritte in C e assembly . Ci sono 3 sottocategorie di api che sono : Api Kernel - Api Gdi - Api User. Ognuna delle quali comunica con il kernel/sistema operativo in modo da gestire facilmente la comunicazione a "livello macchina".

per esempio devo interagire con una webcam , la soluzione più complessa consiste nell'usare l'assembly per interfacciarsi con quest'ultima cosa poco conveniente, la seconda opzione è usare le api di windows in modo che ci fanno da tramite tra il nostro software e la webcam.
 
allora ... le api sono implementate all'interno di un programma in modo dinamico (vuol dire che vengono allocate durante la compilazione del programma, non a caso l'abbreviazione inglese Dynamic Link Library ). Principalmente sono scritte in C e assembly . Ci sono 3 sottocategorie di api che sono : Api Kernel - Api Gdi - Api User. Ognuna delle quali comunica con il kernel/sistema operativo in modo da gestire facilmente la comunicazione a "livello macchina".

per esempio devo interagire con una webcam , la soluzione più complessa consiste nell'usare l'assembly per interfacciarsi con quest'ultima cosa poco conveniente, la seconda opzione è usare le api di windows in modo che ci fanno da tramite tra il nostro software e la webcam.

Capisco, in sostanza sono dei sistemi di comunicazione con la macchina.

Ma queste API come si importano? Sono librerie?