UFFICIALE Imparare a Programmare

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,556
12,946
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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
 

Andretti60

Utente Èlite
6,440
5,091
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.
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,556
12,946
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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 )
 

pabloski

Utente Èlite
2,868
916
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....
 

fabio93

Utente Attivo
609
173
CPU
AMD Ryzen 5 2400G
Dissipatore
Arctic Alpine64 Plus
Scheda Madre
Gigabyte GA-AX370-Gaming 3
HDD
Crucial MX500 250 GB, Crucial BX500 240 GB
RAM
G.Skill F4-3200C14D-16GFX FlareX 16 GB
Monitor
HP 2010i
PSU
Corsair TX550M
Case
Sharkoon M25-W
Periferiche
Magicforce 68, Logitech G203
OS
Windows 10 Pro, Fedora 31
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?
 

Andretti60

Utente Èlite
6,440
5,091
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.
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,556
12,946
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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?
 

pabloski

Utente Èlite
2,868
916
La cosa mi incuriosisce molto, per caso quanto descritto qui e qui è attinente?

si, nel primo link parlano proprio di questo
Post unito automaticamente:

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.

Post unito automaticamente:

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:

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,556
12,946
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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...
 

pabloski

Utente Èlite
2,868
916
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
Post unito automaticamente:

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:

corazon_an

Utente Èlite
4,493
1,866
CPU
Intel i7 9700k @4,9
Dissipatore
Thermaltake Water 3.0 360
Scheda Madre
Asus Z390 STRIX-F
HDD
850 evo 250gb + mx500 1tb
RAM
2x8 gb corsair vengeance 3000mhz
GPU
RX 6800
Monitor
AORUS FI27Q-X
PSU
corsair rm650x
Case
anidees AI Crystal
Periferiche
Ducky One SF + Razer Viper Ultimate
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?
 

Ibernato

Utente Èlite
4,330
2,047
OS
Windows 10 Pro / Ubuntu 22.04
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)
 

corazon_an

Utente Èlite
4,493
1,866
CPU
Intel i7 9700k @4,9
Dissipatore
Thermaltake Water 3.0 360
Scheda Madre
Asus Z390 STRIX-F
HDD
850 evo 250gb + mx500 1tb
RAM
2x8 gb corsair vengeance 3000mhz
GPU
RX 6800
Monitor
AORUS FI27Q-X
PSU
corsair rm650x
Case
anidees AI Crystal
Periferiche
Ducky One SF + Razer Viper Ultimate

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili