DOMANDA Come creare un software ad alto livello

Stato
Discussione chiusa ad ulteriori risposte.

olegfresi

Nuovo Utente
102
2
Salve a tutti. Mi piacerebbe sapere come posso creare un software simile a photoshop oppure a quelli della autodesk come autocad o 3D studio max.

Che linguaggio è opportuno nusare? Che software si usa per fare l'interfaccia grafica e aasegnare ad ogni elemento dell'interfaccia una funzione da far svolgere al programma?

Inoltre vorrei sapere una cosa: cosa si intende quandi si parla di programmazione orientata agli oggetti
 

BAT

Moderatore
Staff Forum
Utente Èlite
23,038
11,637
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Ho letto gran parte delle domande che hai postato negli ultimi tempi (per es. quelle legate alle problematiche sui videogame);
a mio avviso tutte le questioni che hai sollevato sono molto premature: la PRIORITA' ASSOLUTA è che devi imparare a programmare.
Se fai una domanda come "cosa si intende quandi si parla di programmazione orientata agli oggetti" sei lontanissimo dal poter anche pensare di realizzare una cosa del genere. E non dico scrivere 4 righe di codice che abbiano senso, ma metter mano alla progettazione dell'applicazione.

I SW che hai citato si possono realizzare in qualunque linguaggio, anche se tipicamente si useranno C# oppure Java oppure C++ (tutto dipende dalle competenze del programmatore che scrive il sw), mentre per "disegnare" la GUI ci sono IDE avanzati che ti semplificano il lavoro, ma devi anche sapere cosa succede dietro le quinte: non serve a niente fare una bella GUI se poi non sai come eseguire le azioni che devono succedere, ad esempio, se premi un pulsante della stessa.

Tuttavia ci deve essere alla base la capacità di progettare le componenti che compongono l'applicazione.
In parole molto povere, la programmazione ad oggetti è una metodologia che cerca di definire dei tipi di dato (le classi) che siano una rappresentazione di "oggetti" del mondo reale e le operazioni (metodi) che si possono fare su di essi (ossia sulle istanze di classe, chiamti appunto "oggetti").
Prima di fare ciò bisogna
- avere basi solide di programmazione di base (programmazione imperativa o procedurale)
- saper ragionare da informatico, ossia essere allenato a risolvere problemi progettando una procedura (algoritmo) per risolverli
- avere almeno le nozioni di base per progettare tipi di dato
- conoscere almeno le strutture dati fondamentali (liste, pile, code, alberi, tabelle hash)

Tutti i linguaggi moderni includano le API per manipolare tali tipi di dato, ma devi sapere quello che stai facendo.
Comincia a scrivere codice e a fare esercizi, saranno necessari parecchi mesi solo per avere un grado di competenza appena decente (e sottolineo "appena decente").
E' perfettamente inutile che ti aspetti una risposta in stile "bacchetta magica", cioè che esista il linguaggio migliore per fare nel modo più facile possibile una certa cosa e senza fare fatica.

Se davvero vuoi programmare in modo serio devi faticare, studiare e ristudiare, esercitarti, scrivere codice, testarlo, correggere gli errori, provare a realizzare qualcosa di tuo. E procedendo nello studio ed acquistando esperienza ti accorgerai che, in questo ambito, di studiare non si finisce mai, Java di ieri è diverso da Java di oggi che è diverso da quello di domani (anche se le basi fondamentali rimangono le stesse), così per il C++, così il C#, così per gli IDE che oggi sono il top del top e domani saranno diversissimi da oggi.
L'unico buon consiglio che ti posso dare è: studia studia e studia, SCRIVI codice, compila, esegui, correggi, riprova...
chi ben comincia è a metà dell'opera.
 
Ultima modifica:
  • Mi piace
Reazioni: Mursey
U

Utente 16812

Ospite
Salve a tutti. Mi piacerebbe sapere come posso creare un software simile a photoshop oppure a quelli della autodesk come autocad o 3D studio max.

Che linguaggio è opportuno nusare? Che software si usa per fare l'interfaccia grafica e aasegnare ad ogni elemento dell'interfaccia una funzione da far svolgere al programma?

Inoltre vorrei sapere una cosa: cosa si intende quandi si parla di programmazione orientata agli oggetti

Nella metodologia della programmazione strutturata il ruolo principale è ricoperto dall'algoritmo, si crea un modello col quale si descrivono le procedure, eseguite una di seguito all'altra, per poter giungere alla soluzione di un problema; in questo tipo di modello il concetto di "oggetto" ha scarsa rilevanza.
Il passaggio verso la metodologia della programmazione ad oggetti si è avuto nel momento in cui si è data più importanza agli oggetti rispetto alle procedure (anche il concetto di "astrazione" dei dati ha svolto un ruolo importante in questo processo).
L'oggetto è una "entità" che ha un suo stato e che può eseguire determinate operazioni, in questo contesto l'algoritmo perde importanza a favore del concetto di "sistema".
Un sistema è una "porzione" del mondo che una persona, per qualche motivo, considera come un ente unico, composto da diverse componenti, ciascuna delle quali è caratterizzata da proprietà, azioni e correlazioni.
Pensa, ad esempio, alle interfacce grafiche (GUI), composte da alcune componenti (finestre, icone, ecc.) e da azioni che creano correlazioni (ad es. premendo un bottone si apre una finestra).
Ecco, gli oggetti costituiscono le componenti del sistema, le proprietà del sistema corrispondono all'insieme degli stati degli oggetti, gli oggetti comunicano tra loro scambiandosi messaggi (correlazioni del sistema).
Di rilevante importanza è il fatto che gli oggetti sono indipendenti, ciascuno conserva l'informazione al suo interno e il suo contenuto è "nascosto" agli altri, in questo modo vengono introdotti i concetti di "classe" e di "incapsulamento".
Inoltre di particolare importanza è anche il meccanismo di "ereditarietà", grazie al quale il codice può essere riutilizzato, magari "estendendo" moduli già esistenti, il che si traduce in una riduzione dei tempi e dei costi di sviluppo del software.
Infine è bene ricordare che con la programmazione ad oggetti non si "cancellano" i principi della programmazione strutturata, ciò che cambia è la "visione" del problema: l'algoritmo "acquista" un'importanza secondaria rispetto all'individuazione delle entità del problema e delle modalità attraverso le quali tali entità possono interagire tra loro al fine della risoluzione del problema stesso.
Capisco perfettamente che tutto ciò che ho scritto è molto "teorico" ma se vuoi imparare la programmazione ad oggetti è importante partire da esempi semplici, all'inizio apparirà tutto complicato ma col tempo e con l'esperienza si apprezzeranno i concetti dell'OOP, soprattutto quando si avrà a che fare con problemi più complessi ;)

P.S. Per il resto fai riferimento a quanto detto dal bravo @BAT00cent ;)

- - - Updated - - -

Salve a tutti. Mi piacerebbe sapere come posso creare un software simile a photoshop oppure a quelli della autodesk come autocad o 3D studio max.

Che linguaggio è opportuno nusare? Che software si usa per fare l'interfaccia grafica e aasegnare ad ogni elemento dell'interfaccia una funzione da far svolgere al programma?

Inoltre vorrei sapere una cosa: cosa si intende quandi si parla di programmazione orientata agli oggetti
P.S. Per il resto fai riferimento a quanto detto dal bravo @BAT00cent ;)
 
Ultima modifica da un moderatore:
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili