-
Data: 2020-06-07 21:46:34
Temat: Re: Embedded HTTP Server
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> Niby tak, ale już cooperative tak nie obskoczysz.
I naiwna abstrakcja wątków też by mi tego nie dała.
> Ponadto praktyka pozkauje że zmiana "jednej linijki" w biblitece nie
> jest prawidłową metodą dopasowania się do czegoś bo za chwile tej
> linijki nie będzie w wersji 0.9.3.
I tu płynnie przechodzimy do pytania o to, gdzie jest właściwy poziom abstrakcji. Bo
Ty chciałbyś, żeby w bibliotece HTTP była abstrakcja wątków na wypadek portowania na
inną platformę. A ja pytam, dlaczego cały serwer HTTP nie miałby być tą abstrakcją, z
różnymi implementacjami na różne platformy?
Cała ta biblioteka ma dokładnie 2 pliki .cpp. Słownie: dwa. Plus 2 headery do nich. I
działa na Lin/Mac/Win. Dołożenie do niej abstrakcji na okoliczność egzotycznych
platform wbudowanych z pół-wątkami i dziwacznymi stosami TCP spowodowałoby, że tych
plików byłoby 10. Albo 30.
I nawet nie wiem, jaka jest realna nisza rynkowa z takimi potrzebami i czy ona w
ogóle jest. Bo nisza na wersję 1.0 jest na pewno, bo w szczególności ja sam tego
użyję. Natomiast te abstrakcje rozwiązałyby problem ludzi o których nawet nie wiem,
czy istnieją.
A nie lepiej poczekać, aż ktoś *realnie* zgłosi taką potrzebę i wtedy zrobić port
tych dwóch plików z zachowaniem API całego serwera HTTP? I wtedy taki port też będzie
miał 2 pliki .cpp. I ani kawałka kodu więcej.
Tak, będzie parę linijek zduplikowanych. Ale przekonaj mnie teraz, że koszt tych
wszystkich abstrakcji jest mniejszy.
> To tylko łatwo w teorii, w normalnych systemach "podmienianie"
> std::whatever to jest *gruby* hacking...
Ale przecież nie pisałeś o normalnych systemach. :-)
Na normalnych to wszystko działa out-of-the-box i nie trzeba nic hacking.
> Niby tak, ale znowu: co dziwnego w tym że robisz własną abstrakcję do
> "ich" abstrakcji?
A co dziwnego w tym, że ich nie robię i zamiast tego proponuję minimalne rozwiązanie
dla 99.9% potencjalnych odbiorców?
> Piszesz rdzeń HTTP w oderwaniu kompletnym od tego jaki stos TCP używasz.
Przecież tak jest teraz. Dlatego są tam dwa pliki .cpp. Jeden to rdzeń HTTP a drugi
to IOStreams na "typowym" stosie TCP.
> *wszystkie* interfejsy GUI jakie istnieją w sensownym zastosowaniu są
> event-based czyli takie coroutines/cooperative.
To ciekawa uwaga. W tej bibliotece nie ma na wierzchu niczego podobnego do kolejki, a
co za tym idzie nie zmusza się użytkownika do kręcenia własną pętlą zdarzeń. Pod tym
względem ta biblioteka bardziej przypomina lekki framework komunikacyjny, niż typowy
framework GUI. Ale to dobry zbieg okoliczności, bo akurat HTTP jest protokołem
komunikacyjnym. A kolorowe jarmarki na display'u i tak zrobisz w JS.
Czyli zamiast odpowiadać na pytanie jak zrobić GUI, odpowiadamy na pytanie, jak
zrobić komunikację z tym czymś co robi GUI[*].
[*] I bez ograniczania się tylko do tego zastosowania (chociaż GUI było motywacją).
HTTP może służyć również do innych rzeczy, niż GUI. I dlatego też to się nazywa
"Embedded HTTP Server" a nie "GUI Framework".
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 07.06.20 23:21 heby
- 08.06.20 09:49 Maciej Sobczak
- 08.06.20 10:32 Mateusz Viste
- 08.06.20 11:39 Wojciech Muła
- 08.06.20 11:52 heby
- 08.06.20 12:25 Wojciech Muła
- 08.06.20 20:33 Maciej Sobczak
- 08.06.20 21:20 Maciej Sobczak
- 08.06.20 21:32 heby
- 08.06.20 22:43 Maciej Sobczak
- 08.06.20 23:24 heby
- 08.06.20 23:44 Maciej Sobczak
- 08.06.20 23:52 Maciej Sobczak
- 09.06.20 00:08 heby
- 09.06.20 00:22 heby
Najnowsze wątki z tej grupy
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
Najnowsze wątki
- 2025-05-15 Nowy rodzaj zagrożenie ze strony elektryków :)
- 2025-05-15 Bus inpostu, przemycający ludzi, walnął w nocy w tira zaparkowanego na autostradzie 5 ofiar
- 2025-05-15 Alert RCB w sprawie dziewczynki
- 2025-05-15 Kurierski bus przemycał ludzi i zasnął nad ranem za kierownicą.
- 2025-05-15 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-05-14 Tsue i smsy
- 2025-05-14 Biedna kobieta jechała samochodem na targ aby sprzedać klamoty i dostała 300 zł mandatu
- 2025-05-14 hot spot traci connected device
- 2025-05-14 John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- 2025-05-14 John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- 2025-05-14 Wariant rumuński
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Niemcy: Przychody ze sprzedaży produktów Fairtrade w 2024r. wzrosły o rekordowe 13% do 2,9GEUR