Electron - czyli kolejna rzecz która mi się nie podoba

Data: 2018-03-11, autor: Michał Misztal

Nie wiem czemu ale jakoś nie potrafię się przekonać do JS. W tym języku nie podoba mi się ani jedna rzecz. Nie podoba mi się nawet jak NetBeans podświetla składnię plików JS.

Niby jakaś obiektowość występuje ale jakieś to wszystko toporne i nieintuicyjne. Jakiś czas temu czytałem o Electronie czyli środowisku do budowy desktopowych aplikacji na silniku Chromium. Wszystko ładnie i pięknie wygląda na papierze. Rzeczywistość jest nieco bardziej przerażająca.

Po pierwsze co komu przyświecało tworząc taką składnię



const {app, BrowserWindow, Menu} = require('electron');
const path = require('path');
const url = require('url');

Ok, powiedzmy, że każdy język ma swoje potworki. Python ma swoje "from * import" i klasy, mamy include'y, import'y i require'y, ale to wygląda na delikatne przekombinowanie. Ja wiem, że jeśli kod będzie wyglądał skomplikowanie to podziw dla autora kodu wzrośnie. Ale po co komplikować proste rzeczy?

Kolejna rzecz



let mainWindow = {
	createWindow: () => {
		win = new BrowserWindow({width:800, height:400});

		win.loadURL(url.format({
			pathname: path.join(__dirname, 'index.html'),
			protocol: 'file:',
			slashes: true
		}));

		win.on('closed', () => {
			win = null;
		})

		const mainMenu = Menu.buildFromTemplate(menu.glowne);
		Menu.setApplicationMenu(mainMenu);
	}
}

Idea tworzenia nowych okien w Electronie nawet przypadła mi do gustu. Nawet próbowałem ubrać to w obiektowy pseudokod. Prawie się udało. Co prawda takie obiekty nie potrafią niczego utrzymać w środku. Bez przerwy coś wylatuje na zewnątrz. Niczego nie można być pewnym. Przykład choćby menu dla podokien. Obiekt Menu jest importowany żywcem (zamiast klasy) i tworzony globalnie.

A całkowicie się poddałem gdy po dodaniu obsługi sqlite3 całość pięknie się posypała. Instalacja sqlite3 poszła przez npm. W folderze biblioteki wystąpiła jakaś dziwna rekurencja, tzn w npm_modules/sqlite3 był folder npm_modules z zawartością. Tak jakby npm zainstalował moduły wewnątrz modułu.

Pomysł aplikacji na Chromium jest dość ciekawy. Aby zbudować GUI wystarczy znajomość HTML i CSS. No i apka całkiem ładnie wygląda. Ale jak już się doładuje np Materilizecss + fonty Google to czuć drobne spowolnienie.

Ryc. 1. Na razie takie coś wyskrobałem. Bo przy sqlite się wypieprzyło...

Do zalet Electrona należą bezsprzecznie wieloplatformowość, możliwość kompilacji do pliku wykonywalnego dowolnej platformy, dostępność w sklepie Windows (jest to jakieś zabezpieczenie na wypadek likwidacji win32). Główną wadą jest problem z czytelnością kodu. To tak jakby kazać komuś sprzątać izolatkę w której zamykane są osoby z ostrą biegunką. Sama dokumentacja jest też dziwnie napisana, trochę po polsku, trochę po angielsku. Trochę jest a trochę jej nie ma. Na Electronie działa Atom i MS Visual Studio 2017. Projekt jest dość młody i mam nadzieję, że się rozwinie. Ale niech coś zrobią z tą składnią.

Komentarze (3)

[2018-03-11 22:01:05] Wizir pisze: Cryptojacking
Do tego JS nadaje się świetnie.
[2018-03-12 06:58:45] csk(admin) pisze: Re: Cryptojacking
Na taki właśnie wypadek mam monitor stanu procesora przypięty do panela na wieki wieków.
[2018-03-12 22:45:15] Wizir pisze: Monitor...
... który nie musi pokazywać tego co powinien.

Skomentuj lub zgłoś błąd

© Michał Misztal 2018

Czytasz właśnie

Electron - czyli kolejna rzecz która mi się nie podoba
Autor: Michał Misztal
Data: 2018-03-11

Tagi

Podobne wpisy