Un consiglio riguardo lo sviluppo di interfacce grafiche.

di il
6 risposte

Un consiglio riguardo lo sviluppo di interfacce grafiche.

Ciao a tutti !!

Programmo in Mathematica, felice e contento per tutto quanto attiene al calcolo matematico, appunto.

Pero', a parte casi particolari, la creazione di interfacce utente e' un incubo, tant'e' che mi riduco a fare contorsionismi spietati, tipo scrivere i dati in Excel o in Access e poi importarli.

Vorrei imparare a realizzare le interfacce in un linguaggio che renda la cosa particolarmente agevole, magari mediante componenti gia' open source. Potreste, per favore, darmi qualche consiglio ? Grazie !!!

Specifiche:

(1) Ho fatto un esame di C, anni addietro conoscevo il Visual Basic 6, di tanto in tanto traffico con il Javascript, etc. Menziono questo, sapendo che non e' del tutto pertinente, solo per dire che i fondamenti della programmazione credo di averli.

(2) Vorrei stare lontano da Java (se e' possibile, ma se mi dite che puo' essere la strada piu' semplice mi adeguo …)

(3) Sono interessato esclusivamente alle applicazioni desktop, con Windows, ma occorre la retrocompatibilita' con Xp.

6 Risposte

  • Re: Un consiglio riguardo lo sviluppo di interfacce grafiche.

    Lazarus e free pascal che sono open source
  • Re: Un consiglio riguardo lo sviluppo di interfacce grafiche.

    C# l'hai mai usato ?
  • Re: Un consiglio riguardo lo sviluppo di interfacce grafiche.

    Non esiste un modo "semplice" per realizzare interfacce grafiche.

    I cosidetti RAD (Rapid Application Development) quali VB, Delphi, C++ Builder, hanno dimostrato immediatamente i loro limiti quando utilizzati da persone con una limitata esperienza in sviluppo software.

    Vanno benissimo per scrivere il classico Hello World, ma appena appena l'applicazione si complica, il non usare un modello MVC, MVVM o altre architetture, porta rapidamente all'incosistenza dell'interfaccia (parti che vengono aggiornate e parti no, errori negli aggironamenti, inconsistenze, non sapere come aggiornare piu' parti in modo consistente, ...)

    E' decisamente meglio che continui a studiare Mathematica, ed il modo di realizzare interfacce utente mediante le sue primitive.

    Tra l'altro possiede delle funzionalita' che nessuna altra libreria per realizzare GUI possiede!

    Nota: il punto (3) non ti da molta liberta'!

    Windows XP era a 32 bit
    Le nuove versioni di Windows sono a 32/64 bit

    Se vuoi essere compatibile con entrambe le piattaforme, escludere Java implica gia' cercare di farsi del male!
    C# non e' meglio o peggo di Java: e' la stessa identica cosa (lasciamo perdere la questione filosofica sulla sintassi del linguaggio, o sulle librerie fatte piu' o meno bene).
    E mentre per Java, puoi avere la stessa VM su entrambe le piattaforme (ed essere certo di usare proprio quella), con C# e .NET la cosa si complica alquanto.

    Un'alternativa potrebbe esser Python, probabilmente piu' consona per chi sa programmare solo in Mathematica: il linguaggio e' senza tipi (proprio come Mathematica), sintatticamente un po strano, ma ragionevolmente potente.
    Anche qui, comunque, creare interfacce grafiche non e' piu' o meno complicato di come lo faresti in Mathematica!
  • Re: Un consiglio riguardo lo sviluppo di interfacce grafiche.

    migliorabile ha scritto:


    Non esiste un modo "semplice" per realizzare interfacce grafiche.
    Certo che c'è
    I cosidetti RAD (Rapid Application Development) quali VB, Delphi, C++ Builder, hanno dimostrato immediatamente i loro limiti quando utilizzati da persone con una limitata esperienza in sviluppo software.

    Vanno benissimo per scrivere il classico Hello World, ma appena appena l'applicazione si complica, il non usare un modello MVC, MVVM o altre architetture, porta rapidamente all'incosistenza dell'interfaccia (parti che vengono aggiornate e parti no, errori negli aggironamenti, inconsistenze, non sapere come aggiornare piu' parti in modo consistente, ...)
    ??? Ma dove?
    E' decisamente meglio che continui a studiare Mathematica, ed il modo di realizzare interfacce utente mediante le sue primitive.
    maddaiiiii... mathematica ? se c'è qualcosa di inadatto è proprio quello.

    OK, tornando al punto, l'elemento-chiave è che tipologia di programmi vuoi fare.
    Se l'obiettivo sono eseguibili per Windows, allora Delphi & Lazarus sono di gran lunga (e da decenni) gli strumenti che consentono di scrivere programmi dotati di GUI in tempi ridottissimi, a seguire VB (ma è ormai stramorto), e nella incarnazione .NET richiede pensantissimi ed onerossissimi framework da portarsi dietro

    Quindi data la (3) voto alla stragrande Delphi o Lazarus.
    Quest'ultimo ha un numero minore di componenti (rispetto a Delphi), ma sono praticamente tutti gratuiti oppure opensource.
    Il tempo per un "hello world" (su Lazarus) è di circa 1,5 secondi.
    Per un'applicazione intera, anche con limitata esperienza di sviluppo software, giorni.

    I vari modelli MVC, MVVM o 'sticazzi' sono solo snake oil che cercano di "vendere" come dato di fatto (qui si aprirebbe un gigantesco flame su come si scrivono i programmi, e soprattutto i buoni programmi).

    Ad ogni modo => Lazarus è la versione breve della risposta.
    Tieni presente che puoi ottenere un programma composto da un singolo EXE.
    Sì, uno solo, senza java virtual-non-funziona-mai-machine, senza DLL-che-vanno-in-conflitto oppure NET-che-non-parte-mai.
    Un singolo EXE e l'applicazione funziona da Windows 98 a Windows 10, passando per tutte le versioni intermedie.
    E, con un po' di attenzione, perfino con WINE su Linux.

    Puoi anche compilare nativamente per MacOS, o addirittura Android o iPhone, ma servono le versioni a pagamento (Delphi)
  • Re: Un consiglio riguardo lo sviluppo di interfacce grafiche.

    Grazie per ler risposte !!

    Allora, come primo passo mi butto subito su Lazarus e vediamo che succede.

    (1) E' giusto questo piano di battaglia ?
    - scarico da http://www.freepascal.org il compilatore
    - scarico da http://www.lazarus-ide.org l'IDE
    - studio http://www.freepascal.org/docs-html/current/ref/ref.html

    (2) Una volta creata l'interfaccia come scambio i dati con Mathematica ?
    - mediante file di testo ( tipo XML, per dire... ) ()
    - in maniera piu' evoluta

    (3) Se volete la mia opinione sulle creazione di GUI in Mathematica: ci sono cose per le quali Mathematica e' GRANDIOSO, e con Manipulate permette di fare cose pazzesche, pero' nelle cose piu' semplici tracolla perche' 1. manca un editor visuale 2. bisogna ogni volta reinventuare la ruota 3. i tempi di sviluppo sono troppo lunghi anche per chi ha una buona esperienza .

    Ancora grazie mille !!!
  • Re: Un consiglio riguardo lo sviluppo di interfacce grafiche.

    gammaray ha scritto:


    Grazie per ler risposte !!

    Allora, come primo passo mi butto subito su Lazarus e vediamo che succede.

    (1) E' giusto questo piano di battaglia ?
    - scarico da http://www.freepascal.org il compilatore
    - scarico da http://www.lazarus-ide.org l'IDE
    - studio http://www.freepascal.org/docs-html/current/ref/ref.html
    Direi di no, compilatore e IDE sono una cosa sola (o meglio c'è quello di default)
    (2) Una volta creata l'interfaccia come scambio i dati con Mathematica ?
    - mediante file di testo ( tipo XML, per dire... ) ()
    - in maniera piu' evoluta
    In maniera più semplice, tipo un file di testo simil JSON (altro che XML...)
    (3) Se volete la mia opinione sulle creazione di GUI in Mathematica: ci sono cose per le quali Mathematica e' GRANDIOSO, e con Manipulate permette di fare cose pazzesche, pero' nelle cose piu' semplici tracolla perche' 1. manca un editor visuale 2. bisogna ogni volta reinventuare la ruota 3. i tempi di sviluppo sono troppo lunghi anche per chi ha una buona esperienza .

    Ancora grazie mille !!!
    Mathematica è un tool per l'analisi numerica (e simbolica), non c'entra nulla con le GUI e le applicazioni desktop

    EDIT: una precisazione: Lazarus non supporta più dall'1/1/2016 Win 98,quindi se scarichi la versione 1.6 del compilatore parti da NT, Win 2000 e XP.
Devi accedere o registrarti per scrivere nel forum
6 risposte