/t/ - Tecnologia

Nome
Email
Messaggio
File
Password (Per rimozione del file)
Limiti: Caratteri: 7200
Numero massimo file: 10
Upload massimo supportato: 20MB
Lunghezza massima video: 5 minuti

Vai in fondo ] [ Torna ] [ Catalogo ]   [Archivio temporaneo] — 


File: 1712349520164.png (33.27 KB, 382x263, ClipboardImage.png)

 No.989

Boh, io lo chiedo…

Qualcuno qui ha mai sviluppato app GUI desktop? Se si quali librerie/framework usa?


Personalmente ho provato PyQt, Tkinter, SFML e quel merdaio di electron

I primi due li reputo abbastanza validi ma troppo lenti, in più non so a livello di licenze o di vendita del sw come funziona
>inb4 python
Eh lo so lo so, però è un modo per rilasciare app su più piattaforme, il problema è che lo vuoi o meno il codice non sarà mai closed source…

Ci sarebbe poi java, con swing ed FX ma lo reputo molto limitato sia per estetica, facilità di design che funzionalità

Insomma che cosa consigliate?

 No.990

no mai fatto, solo per test
cose tipo react flutter le hai considerate?
dipende molto cosa devi fare

 No.991

>>990
>cose tipo react flutter le hai considerate?
A che pro? È roba destinata al front end di siti web, quindi riguarda la ui di un sito…

A me serve fare un'app desktop che non giri su chroomium come fa electron consumando un triliardo di risorse hw

 No.992

>>991
magari cerca su google prima di parlare?

usa qt direi

 No.993

>>992
serve la licenza per distribuire con pagamento il sw…

 No.994

File: 1712359560020.png (34.9 KB, 400x400, tpIF2Q4H_400x400.png)

Wails.

https://wails.io/

In pratica è electron, ma con due differenze fondamentali:
- il back-end non è NodeJS (quindi javascript) ma Go, che oltre a essere molto meglio in generale compila nativo quindi niente runtime da includere
- il front-end è web ma al contrario di electron non ha bisogno di includere un browser al suo interno perché usa la webview preinstallata sul sistema

Questo lo rende molto più leggero.
Inoltre scrivi codice una volta sola e lo compili per win, mac e linux (supporta pure gli installer di windows) e dal momento che back-end e front-end sono separati se un giorno decidi di hostarlo sul web il 90% del lavoro è già fatto.

 No.995

electron sta alla merda come https://nwjs.io/ alla cioccolata.

 No.996

java e' per quelli dell' itis, i veri uomini usano ImGUI

 No.997

>>994
sembra buono
Sul sito dice che js lancia codice go e la webview su win è comunque chromium
Tranquillo adesso arriva op a scaricarci merda sopra

 No.998

>>989
Dipende dove vuoi farla funzionare: Windows? Linux? entrambi? Mac? crossaplattaforma?

E quanto prevedi ci sarà di businesslogic rispetto all'interfaccia utente? 90%? 10%? 3%?

L'industrystandard per il desktop è il Qt, tutte le altre versioni (Fluxbox, ecc.) sono pallide imitazioni.

Qt si presta bene quando l'interfaccia occupa il 90% del programma.
Usi QtCreator per disegnare l'interfaccia (main window, dialoghi) e associarvi dei signal/slot (signal: "quando viene premuto questo, esegui questo"; slot: "quando arriva 'sto signale, accettalo qua").

L'architettura signal/slot è una cagata pazzesca ma visto che da Qt1.0 è sempre stato tutto in C++, era una soluzione funzionante che hanno fatto durare fino a oggi.

Usare una merdata "web", come i vari React, ecc., ti fa consumare un botto di risorse in più, e inutilmente.

 No.999

>>998
React flutter sono anche nativi
Ciao

 No.1000

File: 1712402843818.png (5.14 KB, 299x168, ClipboardImage.png)

Innanzitutto, grazie a tutti per le reply , sono rimasto piacevolmente sorpreso di vedere anon che ne sanno a riguardo.

>>994
Allora, m'ero ritrovato na cosa simile, se non erro si chiama Tauri che è l'ennesimo electron ma come wails usa la webview dell'os, anzichè Go usa Rust. Al massimo li valuto in base alle performance, da quel poco che ho visto di tauri usa 1/3 di quello che usa electron. Poi mi restra da capire quale è il più semplice da apprendere tra ruggine e Vai (vengo da c++, java, c#, python)

>>996
>java e' per quelli dell' itis
LMAO ma è proprio vero!
>i veri uomini usano ImGUI
Mi informai tempo fa, ma da quel che ho capito è più utile fare dei tool-in-window, poi capirei meglio con degli esempi

>>997
>Tranquillo adesso arriva op a scaricarci merda sopra
Se non è scandaloso come electron che per una finestra vuota ti occuma 500MB, non c'è bisogno di lanciare merda. Per quel che mi riguarda bisogna dare a cesare quel che è di cesare non significa un cazzo

>>998
Crossplatform sarebbe quasi un must per me, pela la logica di business idealmente dovresi stare su un buon 25% stimato, sperando che la situazione non si evolva più del dovuto.

Come avevo già detto in precedenti post, Qt sarebbe una valida opzione (pure per quello che ho potuto provare in python), il problema è che per c++ è difficile creare un'ambiente di lavoro, specialmente in windows, oltretutto il prodotto "finale" non è commercializzabile se non pagando le licenze.

>Usare una merdata "web", come i vari React, ecc., ti fa consumare un botto di risorse in più, e inutilmente.

Vero, ma è un ottimo tradeoff se la cosa viene gestita bene e decentemente. Il paragone lo faccio con una finsetra vuota Win32 e vedo quando consuma e quali risorse usa…

 No.1001 RABBIA!

>>1000
Perdonatemi i typo

 No.1002

>>1000
E' il 2024 e ormai non esiste quasi nessun computer che faccia fatica a far girare una app electron, figuriamoci wails o tauri.
Quello della memoria utilizzata è un non-problema in un mondo in cui la RAM sui PC è sempre di più (e rimane quasi tutta inutilizzata per il 90% del tempo).
Concezioni che appartengono al passato, come la stupidaggine del "java è lento".
Poi se non ti piace programmare con tecnologie web allora è un'altra storia.

In ogni caso, mi sembra che negli ultimi anni ci sia stato un incremento nell'utilizzo di interfacce fatte in Qt come per esempio gli emulatori (duckstation, pcsx2, rpcs3 ecc.).

 No.1003

>>1002
Per quel che mi riguarda, nel 2024 il tuo discorso è sacrosanto: le macchine si fanno sempre più capienti e più veloci e performanti. Avere 32GB di RAM per molti gaymer è diventato uno standard a momenti e sti stronzi sono una parte di quello che è il mercato in se. Ci sono poi aziende che per risparmiare sui costi di corrente e di attrezzatura prendono in considerazione i classici pc da ufficio abbastanza efficienti, vedi gli optiplex che bene o male nel corso delle mie esperienze ho trovato anche in alcune aziende (non del settore informatico). Alla fine la maggior parte di questi pc da ufficio hanno solo il necessario per il pacchetto office. Per cose più importanti ho visto CEOs che usano l'ultimo modello di macbook per le email e per i porno (sappiate che è una realtà). Nella scorsa azienda dove ho fatto "tirocinio" ho visto sto figlio di puttana, che entrava in azienda per aggiornare il suo gestionale.

Parlandogli ho scoperto che tale gestionale è scritto, TUTT'OGGI, in COBOL!
Motivo principale che mi è stato detto da sto tipo, è che molti imprenditori risparmiano spesso e volentieri sulle macchine (e vedendo i pc aziendali ha proprio ragione, il max di ram che ho visto era di 6GB con un merdosissimo intel del 2016 e con memorie di massa che non superavano i 250GB di storage, ma rimaniamo comunque che sono macchine per il sopracitato pacchetto office).

Secondo me sto tipo ha ragione per metà, dato che continuano a segarsi con COBOL per un problema di costi per rimodernare il sw con liguaggi moderni (stesso motivo del perchè molte banche non passano da COBOL ad altro)…

Ma comunque dal mio punto di vista, scrivere programmi per sistemi legacy ti porta anche a quella piccola e minuscola fetta di mercato che schifo non fa se ti paga.
>inb4 branch per macchine 32bit lmaoo

Personalmente, non per progettini da mettere nel portfolio, non per farmi bellino, ma ho come obiettivo di completare al 100% un progetto, che può essere a pagamento o meno ma deve garantire:

-crossplatform
-zero licenze per la distribuzione
-compatibilità per sistemi legacy

 No.1004

>>1003
Ti prego rifai il gesionale e truffali chiedendo decine di migliaia di euro

 No.1005

>>1000
Apprezzo molto Rust, anzi, ne sono entusiasta, anzi, è il mio idolo.

Però le interfacce grafiche sono una merda secca.

Quello che tu veramente vuoi è:

- disegnare l'interfaccia dinamicamente (come fa QtCreator senza dover conteggiare i pixels e aggiustare continuamente i font)

- associare agli eventi una chiamata di funzione ("tasto Settings premuto: chiama puzzone() ")

- poter abilitare/disabilitare/riconfigurare qualcosa anche dall'interno degli eventi ("dropdown aperto, dunque disabilitare menu Configura")

- avere un main che suona così:
inizializza_malloppo();
loop {
if nessun_evento() {
pausa_di_cortesia();
}
if miafunzione_ha_flaggato_quit() {
break; }
}

 No.1006

>>1003
"Azienda"? Solo le banche usano il Cobol.
Per due motivi:
1) sono piuttosto allergici a riscrivere qualcosa che è collaudato da interi decenni di utilizzo
2) il Cobol non è astruso come i vari C++ Go Python Rust VisualBasic eccetera; se un programmatore Cobol fa una porcata, la porcata risulta visibile anche a un programmatore che non conosce il Cobol

E comunque se usano il Cobol è perché come user interface si accontentano di una schermata text-only, come negli anni '80 e primissimi anni '90.

Praticamente qualsiasi gestionale può essere riscritto senza usare le interfacce grafiche e il mouse.

E per le funzioni intermedie si possono usare i vari F3-F12, presenti ormai su tutte le tastiere, avendo cura di usare F1 per un help contestuale e F2 per salvare le modifiche.
E infatti fino a fine anni '90 così si faceva, perché le boomer degli uffici avevano imparato a memoria "pigia F2 per salvare".

Poi purtroppo tutti i PC sono usciti equipaggiati con Windows e quindi a poco a poco i gestionali si sono tutti convertiti a inutili interfacce grafiche. Ed è ricominciato il boomerismo del "non so come cazzo si salva la configurazione" "devi andare nel menu dei settaggi poi cliccare sul tasto configurazioni e quindi aprire il menu a tendina…"

 No.1007

Comunque per Rust ci sono vari siti web riassuntivi dei pacchetti disponibili.

GUI: https://areweguiyet.com

gaming: https://arewegameyet.rs

web: https://www.arewewebyet.org

machine learning: https://www.arewelearningyet.com

 No.1008

>>1004
Era tra le mie idee dato che la logica manageriale l'ho assimilata al 100%. Il problema è come riproporre la formula senza dover presentare una UI banalmente più intuitiva, quindi venendo in contro alle sopracitate macchine semi obsolete
comunque dato che è un sw che faceva DDT ci sarebbe da valutare un'aspetto legale e non saprei come cavarmela:/

>>1005
Rust l'ho cominciato oggi stesso. Adoro che possa essere fortemente tipizzato e mi sembra di aver controllo di ogni cosa sebbene il tutto sia quasi ad alto livello

In ogni caso SI! Quello che hai elencato è ciò che mi serve e paradossalmente è un sistema che ho usato con android studio + java mi scocciava imparare kotlin e son andato di java che già conoscevo

Se ho conferma che con Qt posso vendere liberamente il sw e se trovo un modo decente per crearmi l'ambiente di lavoro su winzozz tra librerie, linker e senza dover necessariamente usare visual studio (quello con l'icona viola), allora giuro che rispolvero il manualone di C/C++ e mi ci metto sotto, ma per il momento preferisco cimentarmi con Rust e Tauri

>>1006
>"Azienda"?
Si e non solo una! Una fabbrica di cui non dico nemmeno di che si occupa perchè ce ne son poche di sto tipo e vorrei evitare di essere spottato e un B&B con cui ho lavorato usavano gestionali totalmente scritti in COBOL. Uno testuale, l'altro con una UI uscita da win95 (e spoiler girava alla grande su windows 10 e 4GB di ram, credo sia stata sviluppata apposta per quell'HW dato che non occupava mai più di 2GB di ram). Comunque si, descrivi la verità per quel che ne so io

>>1007
Ti abbraccerei, domani mattina mi spulcio meglio tutto


In conclusione? Non so quanti IP diversi ci sono in questo filo, ma sappiate che vi ringrazio tutti!

 No.1012

Allora, ho spulciato un pelino i link ma ho preferito prima apprendere un pochino le basi del linguaggio attraverso l'esercizio in pic relata.

Ho avuto un po' di rogne con la gestione dell'input:

-il fatto che l'input deve essere necessariamente trattato come stringa mi ha colto leggermente di sorpresa, abiutato a robe del tipo:

int a = 0;
std::cin>>a;
cout<<a<<endl;

Ma a quanto pare rust tratta l'input come uno stream testuale che poi dopo deve essere convertito secondo le esigenze. Tutto questo per sicurezza a quanto pare…

-il fatto che la variabile input deve essere "resettata", perchè a quanto pare quando do il primo numero, input = "5\n" ad esempio e poi effettua il casting. Se dopo uso input per mettergli un valore "nuovo" avrò una roba del tipo input = "5\n6\n" e giustamente dopo mi da l'errore di casting. Anche questo se ho capito bene è per la sicurezza…

Non so se ha senso abituarsi a questo genere di approccio, anche perchè attualmente mi sa di robe per ritardati…
>inb4 Rust è pensato per essere sicuri su tutto
Eh lo capisco, spesso e volentieri in C e C++ mi capita di scrivere codice unsafe, ma in fase di debug/testing i nodi vengono al pettine in un modo o nell'altro

 No.1013 RABBIA!

File: 1712505402745.png (105.15 KB, 1177x1040, ClipboardImage.png)

>>1012
Negrai la pic

 No.1014

File: 1712505988609.png (28.62 KB, 928x397, ClipboardImage.png)

>>1013
Questo è lo stesso programma ma scritto in C++

Di sicuro è meno sicuro perchè non ci sono controlli sullo user input, cosa che su rust sei obbligato a fare…

È però innegabile che il linguaggio più scorrevole e comprensibile da leggere è quello scritto in C++

 No.1015

Bisogna dire che ormai con gli ultimi LLM il codice java/python/js generato e' abbastanza utilizzabile. Immagino che rust lo parlino peggio.. ed invece far girare codice C scritto da un LLM sarebbe da folli. Questo per dire che scrivere gestionali in rust mi sembra poco competitivo, ti ritrovi a competere con gente che si fa scrivere il codice da macchine sicuramente piu' veloci di te. Fossero driver pure pure.. gestionali no. Per ricollegarsi all' eterna disputa open vs closed source (che non c'entra un cazzo pero' sto aspettando che cuociano gli spaghi): gli LLM non potranno che favorire le API piu' documentate ed i codici piu' accessibili, quindi direi che favorira' di piu' l' open source.

 No.1016

>>1015
Si finisce col tirare sempre in mezze l'IA T.T

non bastava il filo >>954

 No.1017

>>1012

cin e cout sono lammerda™ perché furono progettate da uno che non capiva niente di Unix e con la ridicola pastrocchiata degli overload, di "endl", ecc.

Il C++ è stato buono solo per realizzare librerie grafiche come Qt, e poco altro. In ambiente di lavoro lo si usa praticamente come un'estensione del C che consente di inizializzare e distruggere delle struct senza dover fare una caciara di allocazioni ogni volta che vai istanziando qualcosa o chiudendo un blocco.

L'I/O in Rust pure ha le sue bizzarrie e idiosincrasie.

Se proprio devi lavorare coi files ti conviene comicamente Ruby.

``` a = gets.to_i
a.times do
puts "cagotto!"
end
```

 No.1018

>>1016
Arrenditi, le IA hanno già preso il tuo posto, e un domani sarà tutto inutile tra rust c++ e così via


Arrenditi

 No.1019

File: 1712520377256.jpg (123.46 KB, 634x788, 1712156057560995.jpg)

>>1017
lol ma tu sei specializzato in opinioni difficili da difendere?

 No.1021

>>1015
>>1018
Si però che palle ste reply, ma posso ritrovarmi sempre su delle cazzo di montagne russe dove il mio umore giornaliero è dettato dalla paura delle IA? Cioè porca puttana, uno scoraggiamento e una demoralizzazione continua ed ho anche esaurito le fonti di conforto su quewst'argomento (prima /g/ di rete4, poi plebbit) e mi sento anche di merda a bumpare questo filo.

Nella vita che cazzo mi resta più?

 No.1028

File: 1712656893580.jpg (29.02 KB, 400x327, gen Y.jpg)

>>1018

>"AI fammi un gestionale che mi mantenga un bilancio legale e uno in nero"


>"AI fammi un software per lanciare un'astronave sulla Luna passando per Marte"


>"AI scrivi un software per questo problema NP-completo del commesso viaggiatore, ma risolvilo in tempo polinomiale, anzi, lineare"


Quando l'AI imparerà a mandarti a fanculo, sarà un giorno da festeggiare sul calendario.

 No.1029 RABBIA!

>>1021
Puoi sempre ammazzarti come il fallito che sei

 No.1030

>>1029
È istigazione al suicidio ciaooo

 No.1035

File: 1712741434198-0.png (171.04 KB, 1322x604, ClipboardImage.png)

File: 1712741434198-1.png (300.2 KB, 1340x797, ClipboardImage.png)

Comunque in questi giorni, IA o meno, ho messo le mani su Tauri, e lo amo alla follia.

Innanzitutto, già il fatto che mi consente di non usare framework del cazzo e della merda come react, angular e altre cose da zoomer handicappate, per è un più anche perchè amo fare il tutto da zero con HTML/CSS/JS puro, e sotto certi aspetti il tutto è più leggero (con le dovute attenzioni e ottimizzazioni).

C'è comunque un 'ma' dovuto al mio autismo credo, cioè che non è un app "compilata" bensì una maledetta webview. Certo, sempre meglio di un sito web col backend scritto in php con le limitazioni del browser classico, ma per app di medie/piccole dimensioni non ne vale molto la pena a mio dire, tanto vale mettere su un web server locale con tomcat (pure a livelli di gestionale)…

A tal proposito ripropongo la stessa storiella che ho postato in >>1003 nel discord ufficiale di Tauri dove bene ho male ho detto "si sarebbe figo considerare il supporto per sistemi legacy" messo un po il mezzo la mia indole di voler far soldi e arriva il co founder dell'associazione che mette in mezzo il comunismo e poi per qualche strano motivo mi linka cose a caso (pic relate)

 No.1038

>>1035
>mi consente di non usare framework del cazzo e della merda come react, angular e altre cose da zoomer handicappate, per è un più anche perchè amo fare il tutto da zero con HTML/CSS/JS puro, e sotto certi aspetti il tutto è più leggero (con le dovute attenzioni e ottimizzazioni).
guarda che esistono framework/librerie minimali e leggere.
Vedi preact per esempio.

 No.1039

>>1038
>guarda che esistono framework/librerie minimali e leggere.
>Vedi preact per esempio.

Guardato, ma comunque immaginavo ne esistessero di tutti i tipi ed esigenze. Ammatto che il "negro" qui sono io per due motivi:

1-Mi piace avere il controllo totale su quello che voglio realizzare, da quel poco che ne so, molti framework tendono a ipersemplificare il tutto, paradossalmente complicandolo e qui posso menzionarti la mia esperienza con Nuxt.js dove tra layout, nuxt pages e altri cazzi non ci capivo una mazza nemmeno coi tutorial

2-Se non sono framework lineari e intuitivi, non mi va di impararli

 No.1040

File: 1712756723598.png (37.42 KB, 1395x345, ClipboardImage.png)

>>1039
Noto solo ora che nel campo nome ho mimmo… Non name faggo da parecchio sono Mona e il tizio sopra >>1038
pure si chiama in quel modo

 No.1041

File: 1712758681579-0.png (4.84 KB, 498x58, ClipboardImage.png)

File: 1712758681579-1.png (31.56 KB, 698x392, ClipboardImage.png)

Metto il nome per capire che cazzo sta succedendo…
Btw, ho buttato il sangue per installare GTK4 su windows con le varie toolchain del cazzo e della merda. Insomma provo relm4 che è quello che trovavo più convincente per scrivere app GUI native.
Nonostante il tutto venga compilato alla perfezione su winzozz, il risultato finale mi perplime non poco dato che:

-la finesta non mi sembra poi così tanto nativa e responsiva (a cominciare dalla title bar)
-l'eseguibile compilato pesa solo 2MB in meno su disco rispetto all'app tauri ma in ram occupa più del doppio dell'app tauri
-la montagnella di codice scritto non mi convince molto

Il tempo di capire come ripulire winzozz da GTK4 e poi mi vado a rivedere qualche altro kit

 No.1044

>>1041
Alla fine mi so messo con wxWidgets. Vedo il grado di personalizzazione per paparlo come definitivo, nel mentre devo dire che è stato iper semplice da settare l'ambiente di lavoro e che il tutto è comprensibile pure da un 15enne

 No.1045

>>1040
lol che bello vedere che tutti i vecchiofroci (me incluso) che avevano giurato di andarsene per sempre in realtà sono ancora qui

 No.1046

>>1045
>vedere che tutti i vecchiofroci (me incluso) che avevano giurato di andarsene per sempre in realtà sono ancora qui

Ma quando cazzo mai ho detto che me ne sarei andato da VC? Al massimo me ne so andato via dalla fogna

 No.1054

Il meme delle gui multipiattaforma è morto da tempo perché de facto le single page web application + backend hanno conquistato quella posizione, altrimenti si va di nativo mantenendo tre versioni dello stesso applicazione (WPF, Cocoa e Qt).
Flutter Desktop è valido ma è ancora acerbo.
Hai ragione su Electron che è merda ma preoccuparsi delle prestazioni per un gestionale è un po' "cringe", passami il termine, non è che stai scrivendo un driver o un pezzo dell'OS.
Io andrei di Go + react/angular (oppure svelte/preact per hipsteria), tanto i browser consumano RAM a prescindere e l'utente finale preferisce vedere una bella UI con animazioni al minimalismo

 No.1055

>>1054
Finalmente una reply seria, la attendevo da parecchio in questo filo! Quindi un grande grazie e un abbraccio!

In ogni caso, smanettando con wxWidgets mi sto rendendo conto che scrivere ad un livello più "raw", concedetemi il termine, è tutt'altra storia rispetto alla scrittura di webapp desktop e fai conto che sto usando wxWidgets, altrimenti mi sarei trovato incastrato a scrivere codice con le WIN32 API che a quanto pare sono difficili da apprendere quanto le api vulkan (so che son due cose diverse, ma è per farvi capire il paragone)…

In ogni caso, è un'enorme soddisfazione vedere un programma scritto nativo occupare in termini di risorse 0% di CPU e 2.0MB di RAM, al contrario di tauri che di base a finestra vuota ne occupa dai 50 ai 180MB

inb4 in >>1041 un app scritta nativa occupava più di tauri!

Si ma li ho usato quella gran merda di GTK4(relm4)+rust, che ho scoperto non essere proprio il massimo.

Con wxWidgets posso anche scrivere app per sistemi con architetture a 32bit e si, con un po di fatica son riuscito a portare una semplice app su winxp con gli stessi consumi di risorse.

Quindi mi ritrovo sempre in stallo, perchè con wxWidgets, non c'è bisogno di dirlo, la customizzazione della finestra è pittosto limitata (specialmente se si considera di cross portare su altre piattaforme) ma in termini di performance ehi, fa paura! Per quanto riguarda le soluzioni web è il totale opposto…

Morale della favola? Bisogna scegliere l'approccio in base alle necessità, ma è un pelino una cazzata perchè nel mondo di oggi, chi cazzo vuoi che abbia macchine effettivamente datate? Forse avrebbe senso su sistemi embedded anche se li si parla di architetture arm il più delle volte e li non credo ci siano api mainstream per lo sviluppo di GUI

 No.1056

Gentile promemoria che l' unico framework per GUI che dovrebbe esistere é ncurses e le interfacce utente touch o con mouse sono roba da invertiti californiani

 No.1063

>>1056
Se così fosse i CALCOLATORI non avrebbero mai scalato il mercato, non avrebbero mai ricevuto triliardi di finanziamenti probabilmente saremmo ancora a potenze di calcolo di un pentium

 No.1064

>>1056
ncurses lo usai anni fa con python, giusto per giocare con quel tipo di estetica li

>>1063
Oddio, le necessità di calcolo son più importanti di una GUI, non credo che lo sviluppo di processori sempre più potenti sia dovuto solo alle GUI. Certo un interfaccia grafica è uno strumento potentissimo che di sicuro ha fatto interfacciare il pubblico più mainstream dell'epoca ai calcolatori e avrà attirato investitori, ma esigenze di calcolo a scopo bellico/mercato/sviluppo tecnologico e di semplice concorrenza erano e sono inevitabili. Concludo dicendo che alla fine l'avvento delle GUI sarebbe stato inevitabile come l'evoluzione del genere umano

 No.1065

>>1064
Non puoi produrre in scala senza mercato consumer

 No.1066

>>1065
Logico. C'è un motivo se oggi la maggior parte dei gestionali e non, non usano una CLI. Ha di sicuro un suo fascino e un suo caso d'uso ma le GUI vincono a mani basse

 No.1067

>>1054
Per scrivere desktop app Flutter sembra molto promettente; l'ho appena installato, ma, forse per i 4gb di ram del mio pc, è lentissimo: 4min per compilare uno stuipido programma ciao mondo (copiato paro paro dal tutorial) che alla fine non mi ha nemmeno stampato la famosa scritta in output…

Se devo avere 8gb di ram come suggeriscono, il range di dispositivi in cui possano girare le app prodotte con Flutter si restringe.

Morale: mi piace ma sono un po' deluso

 No.1068

File: 1713389127693.png (823.62 KB, 1409x1057, ClipboardImage.png)

quanto rimpiango le interfacce text-mode dove dovevi far stare tutto in 25x80 caratteri e chi s'è visto s'è visto

 No.1069

>>1067
Spiegatemi la Licenza BSD modificata/Nuova licenza BSD (3 clausole)

Se posso vendere senza dover dare nulla a jewgoogle la provo

 No.1070

>>1069
Ho letto il testo riportato su wikipedia, ma comunque non ci ho capito una mazza…

Le mie domando son queste:
1-posso vendere un'app scritta in flutter?
2-devo mettere roba dicopyright legata a google?
3-devo pagare qualcuno per distribuire il sw?
4-devo necessariamente rendere pubblici i sorgenti?

 No.1071

>>1070
Incredibile come ogni volta in questo thread dimostri sempre di più di voler fare 500 passi senza farne nemmeno uno… L'hai fatta l'app? Non credo, quindi nel mentre falla, e se è ragionevole farlo ti informi sulla licenza

 No.1072

File: 1713461034403.png (57.56 KB, 1195x347, ClipboardImage.png)

Ma è una presa per il culo? Sta finestra di merda occupa più di Tauri? Per il momento solo wxWidgets non occupa un cazzo di nulla, provo a smanettare un pochino co sto flutter, poi si vede

>>1071
Si, hai ragione, ma che ci posso fare?

 No.1073

>>1070
La licenza GPLv2 consente di incorporare in un prodotto commerciale a condizione che rilasci i sorgenti della parte che era GPLv2.

Ma tanto se durante l'esecuzione non escono scritte "FLUTTER" da nessuna parte, nessuno ti cagherà.

 No.1075

>>1072
Compila per release invece di debug e dovrebbe migliorare come prestazioni.
Non è minimale, overhead ne ha, oltre al suo runtime ha anche il proprio engine di rendering.
Io ci ho lavorato per app furbofonino dove è più maturo, la performance non è quella nativa ma il framework è semplice e immediato.
Hai considerato che il 90% o più della tua utenza potrebbe avere Windows e basterebbe un'applicazione scritta con WPF e per gli altri Wine?

 No.1076

>>1075
Sapessi come proverei anche a vedere la build di release, ma comunque non credo cambi molto. Da quel che ho capito comunque usa un'engine separato per la ui, e l'esperienza fatta in queste settimane mi dice che non è un'ottimo modo per risparmiare risorse…

Tirando le somme…

>Tauri:

>>>>webview + rust ~150MB di ram e 1%CPU in idle

>Flutter:

>>>>engine custom + dart ~100MB di ram e 0.2%CPU in idle

>GTK4:

>>>>C++ ~100MB di ram e 0%CPU in idle

>wxWidget:

>>>>C++ ~2MB di ram e 0%CPU in idle

A questo punto, se conoscete altri framework/librerie ditemeli pure che li provo, anche se eviterei quelli con il doppio engine dato che oramai sappiamo che consumano troppo per il minimo sforzo

 No.1077

File: 1713525024453.png (68.19 KB, 1134x432, ClipboardImage.png)

>>1076
>>1075
>Compila per release invece di debug e dovrebbe migliorare come prestazioni.
Rettifica:
Ho compilato in release ed un significativo miglioramento, c'è e si nota, siamo sui 30MB circa, che però, per una finestra """semplice""" è un pelino troppo… Credo che questo sia dovuto alle animazioni e alla questione tema tipica dei dispositivi mobili con material design… Se trovo un modo per ralizare dei controlli raw ripeterò il test

 No.1078

>>1075
>WPF
>WPF fa parte di .NET
>.NET Framework è l'ambiente di esecuzione runtime della piattaforma tecnologica .NET in cui vengono gestite le applicazioni destinate allo stesso

Se non erro, ricordo che il mio professore di Sistemi Operativi all'uni, mi disse che l'ambiente .NET fu la risposta di microsoft sia a java|Oracle (come competitor) sia al problema di passare dai 32 ai 64 bit. A detta sua, fu un bagno di sangue per microsoft realizzare un vero sistema operativo capace di girare su architetture a 64 bit, e menzionò win vista che sappiamo fu un fallimento. Nel mentre gli sviluppatori sw avevano come unica spiaggia Java, e in risposta proposero .NET. Allo sviluppatore doveva interessare solo creare l'app, senza preoccuparsi del numero dei bit del calcolatore, dato che a quello c'avrebbe pensato direttamente .NET…

Ora onestamente, se devo avere a che fare con un clone di Java, quale C# su cui ci ho buttato i peggio anni in unity3D all'epoca, preferisco rimanere con wxWidgets che usa C++ e non viene eseguito in una "VM
"
>inb4 se vi condivido uno spezzone in C++ della mia app attuale, molto probabilmente vi mettereste le mani nei capelli

Questo perchè SICURAMENTE avrò qualche leak di memoria da qualche parte sebbene l'app rimanga sempre fissa a 2MB, ma che ci vuoi fare, C++ non è sicuro quanto C, pure se sai dove mettere le manine…

In ogni caso, ho provato ad installare ImGui ed è stato un mezzo disastro causa wiki non molto chiara… Credo passerò la giornata a vedere qualche altra libreria che potrebbe fare al caso mio
>ma come, wxWidget sembra perfetto da come ne parli
Si è vero, ma più passa il tempo, più mi sembra di scrivere codice come un ritardato e la gestione degli eventi si complica ad ogni nuova aggiunta e con tutti i commenti che metto, non riesco a tenere traccia di cosa faccio e come. Non so se questo è dovuto alla libreria in se o alle mie scarse capacità d'organizzazione di un progetto in C++

 No.1081

>>1078
Io ho nominato WPF perché è lo "standard" per applicazioni Windows (anche WinForms, livello più basso ma comunque gira sopra .NET).
Non possono essere tutti scemi quelli che hanno scritto applicazioni "professionali" su Windows, non credi?
Capisco perfettamente ciò che intendi, per carità, ma al di fuori dell'open source e degli utenti programmatori il minimalismo ormai non ha molto senso di esistere. Magari fai l'applicazione che consuma pochissima RAM e ottimizzata ma se all'utente sembrerà un'applicazione "da 2009" gliene frega poco.

Comunque se ritieni che wxWidgets ti fornisca tutto quello di cui hai bisogno continua con quello.
>leak
Valgrind
>organizzare progetto GUI
Pattern MVC

 No.1082

>>1081
Chiedo venia per la rabbia ma non ho voglia citazione necessaria di cancellare e riscrivere

 No.1083

>>1076

Ma pensa te che l'azienda per cui lavoravo doveva creare un'apps per l'autista del bus e installarono una Debian che lanciava Chrome(Chromium) browser su una directory con l'apps fatta in modalità web.

Mi chiesero il parere perché si resero conto che Chromium era un po' troppo pesantuccio come caricamento e la sua modalità kiosk a volte lasciava intravedere per un attimo un menu cliccabile.
Dissi loro che invece era una soluzione elegante che facilitava l'upgrade dell'app.
Non capirono il sarcasmo e andarono avanti (e non mi coinvolsero perché non ero webdeveloper), e al momento del rinnovo del contratto chiesi più soldi e… ottenni solo promesse, e li mandai a cagare.

Successivamente sviluppai un'app simile. Aveva bisogno di pochissime maschere e pochi tasti di input, praticamente la business logic la faceva da padrona.
Non installai neppure le librerie grafiche: andai a scrivere direttamente sulla RAM video e a leggere /dev/event per le ditate sul touchscreen e ciaone.
Caricamento superturbovelocissimo, attack surface ultraridottissima.

 No.1084

>>1081
>Non possono essere tutti scemi quelli che hanno scritto applicazioni "professionali" su Windows, non credi?
Per carità, quando avevo 12 anni cazzeggiavo anche io con visual basic da autodidatta che se non erro dovrebbe comunque sfruttare .NET…
Il problema sorge con la questione delle licenze di distribuzione, che da quel che ricordo si pagano sotto winzozz…

>il minimalismo ormai non ha molto senso di esistere

Si e no, io personalmente ne faccio una questione di principio. Se devo scrivere un'app che:
>apre un file -> prende degli input-> li elabora -> scrive i risultati su file
Voglio che le risorse vengano allocate ad un buon 80/90% alla logica di business (la parte contol di mvc per capirci) e il restante alla parte UI (view) a prescindere delle dimensioni dell'applicativo, anche perchè se non fosse così sarebbe totalmente controproducente (vedi i programmi della suite adobe come girano di merda). A questo punto, preferirei soluzioni in grado di allocare la logica di business alla CPU/RAM/DISCHI e la logica di presentazione alla GPU/RAM… Se non erro imgui dovrebbe funzionare proprio così, ma usare opengl/vulkan/dx9 per una semplice app gui mi sa di contraddizione con ciò che ho detto prima sulle risorse…

>Comunque se ritieni che wxWidgets ti fornisca tutto quello di cui hai bisogno continua con quello.

Buona parte di ciò che mi interessa c'è, salvo qualche parte di customizzazione, ma reputo sia un'ottimo tradeoff, ciò che mi da rogne è il fatto che non ritengo di essere in grado di scrivere codice sicuro in C++

>Valgrind

Cerco di trovare qualche tutorial a riguardo

>Pattern MVC

LMAO, lo usai per i progetti di TSW e Ingegneria del SW. Li intuitivamente lo applicai al progetto, le servlet in control, i beans e le classi che inviavano le query al db in model e le jsp+html in view… Qui non saprei proprio come strutturarlo con i file .hpp e .cpp

>>1082
Rabbia? Tanto che non se li merita sto filo questo tipo di bump?

>>1083
Mamma mia che incubo

 No.1089

>>1084
>Il problema sorge con la questione delle licenze di distribuzione, che da quel che ricordo si pagano sotto winzozz…

Ma anon, non ci sono licenze per la distribuzione di app scritte in .net

 No.1090

File: 1713790469913.png (74.2 KB, 654x697, ClipboardImage.png)

>>1089
Accipicchia, hai ragione…

Ma mi rode il culo sviluppare in visual basic e C#

>inb4 hai scritto codice in java per l'uni


Ummmm

 No.1091

>>989
>preoccuparsi di licenze e vendita per il tuo primo programma con interfaccia grafica
OP, non farti troppe seghe mentali e prova un pò di cose varie.
Prova le librerie di GUI ufficiali di un linguaggio che usi già, prova le librerie di un gioco che ti piace, prova le librerie che trovi su una guida online…
La cosa importante è provare provare e provare, nessuno nasce imparato e nella programmazione è importantissimo prendere la mano.
Quando avrai esperienza avrà senso pensare a ridistribuire o persino vendere i tuoi programmi, una cosa alla volta.

 No.1095

>>1084
Avevo già la rabbia nel campo email e non l'ho pulito prima di postare.
Comunque MVC è un po' diverso su servizi web, avevo trovato questo esempio per wx ma è davvero troppo semplice e banale
https://github.com/zoddDev/wx-mvc

L'idea di base è che una view (frame nell'esempio) abbia una classe associata con i metodini che si occupano solo di UI (showLoading, resetFields, hideSalcazzo, etc), poi c'è il controller, il cui scopo è creare la view (nota come la view venga allocata e distrutta nel costruttore e distruttore del controller) e inizializzare gli handler degli eventi (bind tra eventi e i metodi del controller, che a loro volta richiameranno i metodi della view).
Nel caso di recupero dati (chiamata http o lettura da db) ti fai altri classi che poi passi al controller nel costruttore
Con una classe base per i controller e qualche metodo astratto puoi definire dei metodi che ti eseguiranno codice post allocazione o pre deallocazione della view
L'esempio su GitHub è veramente triviale, come esercizio potresti scrivere qualche controller per qualche tipo di componente che usi spesso (una lista, una tabella etc) oppure per qualche componente di layout (cioè un gruppo di view) e puoi inventarti qualcosa che ti coordini il tutto.
MVC era più o meno lo standard ma ti porta ad avere controller abbastanza complicati, MVP migliora un po' se hai voglia di approfondire



[Post a Reply]
Elimina post [ ]

[Nuova risposta]
Vai in cima ] [ Torna ] [ Catalogo ]