UFFICIALE Imparare a Programmare

Pubblicità
E' un pò forzata come affermazione secondo me...
Sembra non ci sia scelta che iniziare dal C per imparare, in realtà il linguaggio è solo uno strumento; la parte importante è entrare nella logica, nella giusta mentalità. Poi concordo che passare da C possa portare ad acquisire altre competenze, ma può avvenire anche in un secondo momento.



Che vuol dire la distinzione Web, da quella Server? Front-end e back-end, semmai.
Ad ogni modo HTML, JS, CSS per lo sviluppo desktop... meh. PHP forse è ancora una tappa obbligata, almeno conoscerlo un minimo (poi se lo si utilizza poco, meglio).



Non si è espresso benissimo, ma MinGw è il porting di GCC per Windows.
Perchè meh? Scusa, visual studio code è fatto così, discord idem, gitkraken uguale, mongodb compass,postman, ATOM,twitch e così via..
E sono fatti con electronjs + html + css + js
 
Perche' "Desktop Application" e' una definizione molto vaga, significa una applicazione (standalone) che "gira" su un desktop (al contrario per esempio di una che gira su un server, su un a pagina web, su un cellulare). Ma non tutte le applicazioni desktop per esempio hanno una interfaccia grafica. I linguaggi usati variano quindi molto dal tipo di applicazione. Per esempio, css e html ti servono zero se vuoi scrivere un driver, un servizio, un daemon o una libreria generica.
 
Perche' "Desktop Application" e' una definizione molto vaga, significa una applicazione (standalone) che "gira" su un desktop (al contrario per esempio di una che gira su un server, su un a pagina web, su un cellulare). Ma non tutte le applicazioni desktop per esempio hanno una interfaccia grafica. I linguaggi usati variano quindi molto dal tipo di applicazione. Per esempio, css e html ti servono zero se vuoi scrivere un driver, un servizio, un daemon o una libreria generica.
Certamente, dipende sempre cosa deve farci qualcuno ( e per un deamon che gira, js va bene sia server-side che desktop )
 
Perchè meh? Scusa, visual studio code è fatto così, discord idem, gitkraken uguale, mongodb compass,postman, ATOM,twitch e così via..
E sono fatti con electronjs + html + css + js

A parte VS Code, gli altri girano da schifo. Altissimo consumo di ram, lag e prestazioni non proprio stellari.

Incuriosito, tempo fa, andai a spulciare nel codice di VS Code ( pensando ci fosse qualcosa di C o C++ ). Trovai un barbatrucco che francamente non avrei mai immaginato. VS Code è scritto senza minimamente usare il DOM, ma disegnando direttamente sulla canvas.

Il punto è che così perdi tutto quello che HTML e CSS ti offrono. Se tutti i controlli ( in realtà non proprio tutti, ma comunque tutta la parte dell'editor è disegnata su canvas ) sono immagini su canvas, di fatto devi implementare un'ui toolkit in javascript. Cioè non puoi usare <input>, <label>, <textarea>, <select>, ecc....
 
Incuriosito, tempo fa, andai a spulciare nel codice di VS Code ( pensando ci fosse qualcosa di C o C++ ). Trovai un barbatrucco che francamente non avrei mai immaginato. VS Code è scritto senza minimamente usare il DOM, ma disegnando direttamente sulla canvas.
La cosa mi incuriosisce molto, per caso quanto descritto qui e qui è attinente?
 
Incuriosito, tempo fa, andai a spulciare nel codice di VS Code ( pensando ci fosse qualcosa di C o C++ ). Trovai un barbatrucco che francamente non avrei mai immaginato. VS Code è scritto senza minimamente usare il DOM, ma disegnando direttamente sulla canvas.
VS Code si basa su Electron, lo stesso usato da Atom.
Disegnare direttamente su Canvas e' quasi d'obbligo per una applicazione pensata di potere essere compilata per piattaforme diverse, se scritta bene non diminuisce per nulla le prestazioni, anzi. Guarda quanto una GUI scritta in WPF e' enormemente piu' efficiente che scritta in WinForms, non dovendo usare gli obsoleti componenti standard di Windows.
 
A parte VS Code, gli altri girano da schifo. Altissimo consumo di ram, lag e prestazioni non proprio stellari.

Incuriosito, tempo fa, andai a spulciare nel codice di VS Code ( pensando ci fosse qualcosa di C o C++ ). Trovai un barbatrucco che francamente non avrei mai immaginato. VS Code è scritto senza minimamente usare il DOM, ma disegnando direttamente sulla canvas.

Il punto è che così perdi tutto quello che HTML e CSS ti offrono. Se tutti i controlli ( in realtà non proprio tutti, ma comunque tutta la parte dell'editor è disegnata su canvas ) sono immagini su canvas, di fatto devi implementare un'ui toolkit in javascript. Cioè non puoi usare <input>, <label>, <textarea>, <select>, ecc....
gitkraken gira male?
ma sei serio?
 
La cosa mi incuriosisce molto, per caso quanto descritto qui e qui è attinente?

si, nel primo link parlano proprio di questo
--- i due messaggi sono stati uniti ---
VS Code si basa su Electron, lo stesso usato da Atom.
Disegnare direttamente su Canvas e' quasi d'obbligo per una applicazione pensata di potere essere compilata per piattaforme diverse, se scritta bene non diminuisce per nulla le prestazioni, anzi. Guarda quanto una GUI scritta in WPF e' enormemente piu' efficiente che scritta in WinForms, non dovendo usare gli obsoleti componenti standard di Windows.

Si ok, ma usando Electron viene naturale usare il DOM. Altrimenti qual è il senso di usare Electron, se non puoi usare HTML e CSS? Cioè voglio dire, HTML ti offre una serie di controlli prefabbricati, col look&feel dell'OS sottostante. CSS ti offre un sistema per gestire la presentazione dei dati e credo non ci sia di meglio in giro. Usando Canvas perdi entrambe le cose. Ritorni a giocare coi pixel.

Invece proprio il DOM è il collo di bottiglia.

Il caso di WPF è molto diverso, perchè WPF è stato pensato per essere efficiente. Già il codice XAML viene compilato in bytecode. Poi tutta la logica dei controlli è scritta in C#.

Non so perchè il DOM sia così inefficiente. O forse è Chromium ad essere inefficiente.

Che poi stona ancora di più, se si pensi a quanto efficiente è invece Sciter, che pure usa HTML, CSS e un linguaggio proprietario derivato da EcmaScript. Tempo fa lessi che non sfrutta una struttura dati simile al DOM per rappresentare i nodi del documento. Evidentemente usa qualcosa di migliore.

--- i due messaggi sono stati uniti ---
gitkraken gira male?
ma sei serio?

Mai provato. Ma in compenso ho usato Atom, Slack, Whatsapp e Discord. E francamente non ne sono rimasto minimamente impressionato.
 
Ultima modifica:
a parte che con electronjs puoi accedere benissimo al DOM...
Il fatto che non sia nel modo "convenzionale" questo non vuol dire che non puoi accederci...
Mai usato canvas con electronjs, fatto sempre con bootstrap4 o con onsenui o css puro creato da me...
Che poi vscode o altri simili siano studiati così ( senza usare il dom ), questo è un altro fatto ed una loro metodologia...
Ma per creare un gestionale, un software sia semplice che complicato, è ottimo..
Ed il fatto che sempre più progetti sono portati ad usare quel framework ne è la dimostrazione.
Non lo sta andando ad usare alibabà o gigino di castellammaredistabbbbia, lo vanno ad usare Amazon, Mongo, Microsoft, Wordpress, Facebook, ed altri...

Puoi vuoi mettere le seguenti comodità per le aziende:
1. con un solo tipo di sviluppatore copri tutti i sistemi operativi senza dover installare altro ( possiamo stare qui tutto il giorno a dire che java è portable, ma senza jvm, un file jar è un archivio e basta! )
2. con lo stesso codice hai già bello che fatto una web app riducendo i costi di un progetto..

Quindi ripeto, boh... Magari non hai capito bene come funziona e per questo lo stai "marchiando" così male...
 
Scusa, cosa intendi per "logica dei controlli"?

gestione degli eventi, disegno del controllo, bindings, ecc... per quanto innestati possano essere, alla fine si arriva sempre ad un metodo onRender

e poi il visual tree di WPF è evidentemente molto più efficiente del DOM
--- i due messaggi sono stati uniti ---
a parte che con electronjs puoi accedere benissimo al DOM...
ed infatti è questo il problema

se usi Il DOM paghi un prezzo altissimo...l'unico metodo per scrivere applicazioni performanti è non usare il DOM e disegnare direttamente su canvas

Che poi vscode o altri simili siano studiati così ( senza usare il dom ), questo è un altro fatto ed una loro metodologia...

Una necessità per non fare la fine di Atom, Slack e compagnia.

Ma per creare un gestionale, un software sia semplice che complicato, è ottimo..

Ma anche Python è ottimo. Però le prestazioni sono quelle che sono.

Ed il fatto che sempre più progetti sono portati ad usare quel framework ne è la dimostrazione.

In realtà è la dimostrazione che i programmatori non hanno idea di cosa significhi il termine efficienza. I forum di programmazione sono pieni di lamentele sulle scarse prestazioni, lag, ecc... dei programmi che usano Electron.

Purtroppo molti programmatori vengono dal web e non spendono tempo per studiare tecnologie più adeguate al desktop ( non si può certo dire che Electron è alla pari di Qt!! ). Usano quello che già conoscono. Ma cadono nella trappola del carpentiere, ovvero vedere chiodi ovunque e, di conseguenza, usare sempre il martello.

Non lo sta andando ad usare alibabà o gigino di castellammaredistabbbbia, lo vanno ad usare Amazon, Mongo, Microsoft, Wordpress, Facebook, ed altri...

Electron o Nodejs? Perchè parliamo di due cose molto diverse. Nodejs non si porta dietro Chromium, il DOM e tutto il resto.

Facebook è tanto convinto di Electron che s'è creato React Native!

Puoi vuoi mettere le seguenti comodità per le aziende:
1. con un solo tipo di sviluppatore copri tutti i sistemi operativi senza dover installare altro ( possiamo stare qui tutto il giorno a dire che java è portable, ma senza jvm, un file jar è un archivio e basta! )
2. con lo stesso codice hai già bello che fatto una web app riducendo i costi di un progetto..

Quindi ripeto, boh... Magari non hai capito bene come funziona e per questo lo stai "marchiando" così male...

Tutto quello che vuoi. Ma resta il nodo prestazioni. Se ti serve un software prestante, che consumi poca ram, che sia efficiente, che non ciucci batteria ( come fa Slack ), che non perda 20 secondi per fare un search su qualche centinaia di migliaia di righe di codice ( come fa Atom ), allora non puoi usare Electron.

E' questo che sto dicendo.

p.s. Java supporta la compilazione AOT da un paio di release...il problema di portarsi dietro la JVM è fortunatamente risolto...che poi pure le app Electron si portano dietro il loro runtime, consistente in una VM Javascript e un browser completo ( Chromium )[/QUOTE]
 
Ultima modifica:
Salve a tutti, nella vita faccio altro ma sono stato da sempre un appasionato di informatica e mi piacerebbe imparare un linguaggio.

Avevo pensato a javascript per la sua facilita (in teoria, da quello che ho letto)

Premetto che parto da 0, sono un prinicpiante. Esiste un libro fatto bene che mi permetta di imparare da zero?
 
Salve a tutti, nella vita faccio altro ma sono stato da sempre un appasionato di informatica e mi piacerebbe imparare un linguaggio.

Avevo pensato a javascript per la sua facilita (in teoria, da quello che ho letto)

Premetto che parto da 0, sono un prinicpiante. Esiste un libro fatto bene che mi permetta di imparare da zero?
Dovresti imparare anche HTML se vuoi capire JavaScropt (lato client)
 
Pubblicità
Pubblicità
Indietro
Top