Wszytko to źle poszło...

Lekkie oprogramowanie Kris 25-01-2017 8531 30
25-01-2017 20:15
Nie uważacie, że rozwój oprogramowania i usług w internecie trochę nie poszedł we właściwym kierunku? Myślę o tym, że właściwie zaprzestano optymalizacji oprogramowania. Przecież cóż jest niezwykłego w czymś takim jak strona sieci web? Kilka kilobajtów tekstu + kilkadziesiąt/kilkaset kb grafiki. Spokojnie by sobie z tym radziły komputery typu 486 / 4 MB RAM, gdyby to było dobrze zaprojektowane. A jednak, obecne technologie www przerzucają większość obowiązków na client side, co powoduje efekt, że facebook czy inne strony potrafią zamulać na nowoczesnym sprzęcie.....
26-01-2017 15:26
Pieniążki Panie, pieniążki wszystkiemu winne.
Jak by korpo sobie wyobrażały że co, że nie będzie klientów na nowy towar bo stary działa dobrze? To nie nasza wina że gry nowe nie działają pod Riva TNT2/MX440/GT 710. :)
To nie tyczy się tylko komputerów. Masz płacić i korzystać, a jak się nie podoba, to płać więcej. Optymalizacja to jest w matematyce na sprawdzianach. :)
26-01-2017 18:47
Coś w tym niewątpliwie jest, ale:
- przeciętne dzisiejsze procesory i tak są tańsze niż w swoim czasie 486, tak więc ponoszenie kosztów optymalizacji jest w zasadzie bez sensu
- najbardziej wartościowe strony wciąż są dostępne dla Lynx'a działającego nawet na 386
27-01-2017 08:09
Nie do końca zgodzę się, że zaprzestano optymalizacji oprogramowania w ogóle. Wszystko zależy od branży/technologii i zastosowania danej aplikacji.

Same kompilatory wielu języków, bez względu na to czy to C, C++ czy Java są dzisiaj na tyle rozwinięte, że dokonują olbrzymich optymalizacji automatycznie. Oczywiście, nigdy nie będą one "skrojone na miarę" procesora/maszyny wirtualnej, jednak robią co w ich mocy by wyjściowy program wykonywał się możliwie szybko. Optymalizacje dokonywane manualnie na poziomie assemblera rzadko mają duży wpływ na wydajność.

Jednocześnie na problem należy spojrzeć z innej strony - dzisiejszym podejściem do tworzenia oprogramowania jest tworzenie go tak, aby był przenośny między platformami i możliwy do późniejszego rozwijania. Czysto napisany kod często obniża wydajność aplikacji (poprzez np. dodanie dziesiątek warstw abstrakcji, które zdecydowanie "zmulają" wykonanie programu), jednak pozwala on na to, by kolejny programista przyszedł, spojrzał na kod, wiedział gdzie co się znajduje i jak mniej więcej działa. Bez zbędnego przekopywania się przez dżunglę optymalizacji, uproszczeń, hacków i tak dalej...

Jeżeli chodzi o Facebooka to tak, strona (a raczej aplikacja webowa) jest niesamowicie ociężała. Składają się na to dwa czynniki: olbrzymia ilość elementów na stronie, również tych których nie zawsze widać i przede wszystkim to, że strona jest dynamicznie budowana przez ReactJS (częściowo) po stronie przeglądarki. Taki model aplikacji pozwala na oddelegowanie zadań do klienta, odciążając serwery usługi. Co więcej, użycie takiego frameworka sprawia, że aplikacja jest łatwo rozbudowywalna i zmniejsza ryzyko występywania "bugów". Do tego staje się ona łatwo skalowalna.

Kolejna rzecz, która umożliwia pominięcie dużych optymalizacji w kodzie, przynajmniej w branży webowej to niska cena hostowania i utrzymania programu. Żyjemy w czasach, gdzie hostowanie serwera VPS przez miesiąc, zdolnego do udźwignięcia niemałych aplikacji, kosztuje nierzadko mniej niż obiad w barze mlecznym. Utrzymanie serwera pod Starepro kosztuje mnie tyle co nic ;)

Tak jak napisałem na samym początku, wszystko zależy od branży/technologii i zastosowania aplikacji. W systemach wbudowanych, gdzie mamy ograniczone zasoby, skupienie się na optymalizacjach będzie konieczne, natomiast w aplikacjach webowych nie ma takiego wymogu - wystarczy dołożyć kolejny serwer w razie potrzeby by ją skalować (stąd też założenie, że powinno się utrzymywać dobrą jakość kodu). Optymalizacje częściej dotyczą środowiska wykonania programu, niż samego programu.

A w silnikach graficznych/fizycznych (np. w grach), czy w przypadku aplikacji do obróbki multimediów - i tak liczy się moc karty graficznej i sprzętowa akceleracja zadań, bo procesor i tak często nie wyrobi ze względu na swoją uniwersalność :)
Trochę pfcode'a i technika się gubi.. ~ Aveo, 2015
28-01-2017 19:43
Well, tutaj miała być piękna, rozbudowana wypowiedź o tym jak można odpalać różne softy nawet na starych pecetach.. ale mi sie strona odświeżyła..
Ogranicze się do napisania, iż jeśli programistom by za to płacili, to by optymalizowali swój soft. Warto spojrzeć na przykład konsol do gier - uważana już za retro PlayStation 2 otrzymywała nowe gry przez wiele, wiele lat - pod koniec życia konsoli programiści wyprówali sobie przysłowiowe flaki, żeby tylko gra chodziła płynnie na tym starym sprzęcie. To pokazuje że tak - istotnie się da, ale w przypadku PC średnio ma to sens, bo są większe szanse że typowy kowalski będzie używał MacBooka niż że będzie on miał gdziekolwiek w piwnicy starą płytę z 486
i like trains
22-04-2017 20:42
W większości przypadków liczy się koszt stworzenia oprogramowania, a więc realny czas pracy programistów. A że firmy idą po kosztach, to zatrudniają mniej doświadczonych, którzy nie mają odpowiednich nawyków i wiedzy - w efekcie wychodzą programy które "działają", ale to, że wolno lub są pamięciożerne, to już nikogo nie obchodzi - no i wychodzi się z założenia, że jeśli soft będzie utrzymywany to może ktoś kiedyś go zoptymalizuje... Problem w tym, że to "kiedyś" rzadko kiedy się ziszcza. No i tak rodzą się kolejne pokolenia coraz bardziej skretyniałych programistów, którzy już teraz nie potrafią nawet poprawnie zmierzyć ile zasobów zużywa ich program, a co dopiero znaleźć właściwe wąskie gardło tak, by wkładając minimum wysiłku osiągnąć duży zysk.
23-04-2017 20:21
Pare dni temu odkryłem pewien ciekawy błąd występujący w wieeelu popularnych aplikacjach. Otóż siedze sobie na Windowsie 2000, staram się odpalić - dajmy na to mpv. Najpierw wywala się przez brak dll'ki, ok - rozumiem. Po dostarczeniu tej dll'ki program wywala okienko informujące o błędzie inicjalizacji(które pewnie pochodzi od kernela). Taka sama sytuacja zaistniała kiedy próbowałem odpalić kritę oraz pare innych popularnych aplikacji.
Moge tylko domyślać się czemu tak się dzieje, ale moją teorią jest zły kod, który działa w nowszych windowsach, bo ich kernel puszcza ten błąd inicjalizacji płazem.
(ach, i wątpie, żeby był to błąd spowodowany przez stary kernel, bo mam zainstalowane całkiem dużą ilość update'ów, oraz rozszerzenia do kernela od BlackWingCat'a)
i like trains
24-04-2017 09:32
>zły kod
wut o.O

Userland Windowsa trochę ewoluował od czasu Win2k i zwyczajnie nowsze kompilatory celują w nowsze wersje userlandu :P
GG: 6860269
24-04-2017 20:23
Ano właśnie, żadna ilość updatów nie zmieni Windows 2000 w nowoczesną wersję.
24-05-2017 11:33
- najbardziej wartościowe strony wciąż są dostępne dla Lynx'a działającego nawet na 386


Najbardziej wartościowe strony znikają, są zastępowane kolejnymi reklamami. "Użytkownik" zaś jest jak ta kura, której dobrze, ciepło, oby tylko żreć ziarno z jednej strony i wywalać jajka z drugiej. Ziarno w postaci zidiociałych "memów", a jajka w postaci profili dla reklamodawców. Tak działa większość dzisiejszych tzw. sieci społecznościowych, które mają ze społecznościami wspólnego tyle samo co demokracja ludowa i demokracja.
Widać już to zidiocenie po próbie walki z tzw. fake newsami czyli propagandą niezgodną z linią partii (bo fake-newsy dotyczące bieżącej linii partii już nie są tak wytykane). Oczywiście jest na to metoda: Uświadamiać, by ludzie podążali przez źródła,weryfikowali informacje i odrzucali gdy źródłem 50 artykułów w prasie okaże się pyskówka dwóch anonów na 4chanie :). Tyle, że lepiej karać bo obywatel myślący się nikomu nie opłaca.
Dodatkowym problemem jest to, że mamy coraz mniej komputera dla siebie. Mam jako "firewalla" NoScript z białą listą. I weźmy sobie takie Stare Programy. Mamy tu mnóstwo obsufkowanego JS, plus jakieś dodatki firmowe z niemieckiej domeny. O ile przeglądając ogólnie GitHuba można znaleźć kod większości bibliotek, o tyle nie sposób tutaj jasno sprawdzić czy np. twórca silnika do optymalizacji nie dorzuca tam "czegoś od siebie", czyli webowa wersja standardowej próby z kompilacją z tych samych źródeł.
To jest jednak przypadek bardzo pozytywny, bowiem serwisy informacyjne nie chcą w ogóle działać bez wykonania requesta do Google czy im podobnych by pobrać skrypty a więc "zarejestrowania" wejścia w ich rejestrze metadanych.
Co do oprogramowania, to niestety prawo Wirtha działa zawsze. Widać to zarówno w świecie Windowsów jak i Linuksa, gdzie pojawia się narzut pamięciowy ze względu na architekturę systemu. Powiedzmy szczerze, dzisiejsi programiści nie nadają się do optymalizowania kodu bo nie wiedzą jak on działa. Na kierunku informatycznym student ma na raz algorytmy i programowanie obiektowe. Podstawy programowania robi przy okazji. W wyniku tego postrzega kod jako zestaw czarnych skrzynek.
25-05-2017 13:52   (Edytowano: 25-05-2017 13:53 )
MCbx wieczna legenda, witamy serdecznie!
Winne są też Indie. Tam sama padaka programistów.
25-05-2017 16:16
Niestety, to wszystko jest ceną "darmowości" usług internetowych.
Ktoś za to wszystko przecież jednak musi zapłacić, w praktyce zazwyczaj płaci reklamodawca, tak więc wszystko jest projektowane tak aby to właśnie reklamodawcy byli zadowoleni.
Nie opłaca się dostarczać wartościowego kontentu, zysk jest wtedy gdy wciska się targetowane reklamy, pozycjonowanie produktu, propagandę rozmaitych lobbystów, przedwyborcze manipulacje, itd.

Powtarzam, wysokie wymagania sprzętowe dzisiejszego WWW to nie jest istotny problem, sprzęt komputerowy jest teraz tani, a twórcy stron muszą jednak trochę się ograniczać - przyjęło się korzystanie z sieci na telefonach itp., a to przecież nie są jakieś demony szybkości.

Ale co poradzić na zalew śmieciowego kontentu?
Ano jedynym rozwiązaniem jest to, żeby jednak zgodzić się na opłaty za korzystanie z tych usług, przy czym sensowna realizacja takiego systemu wymagałaby zaprojektowania internetu praktycznie od nowa.
Nie chodzi bowiem o to żeby każdy użytkownik rejestrował się na każdej stronie i za każdym razem dokonywał osobnego przelewu - takie paywalle są już od dawna i niewiele dają.
Chodzi o to żeby użytkownik opłatę dla dostawców kontentu miał wliczoną w abonament dla ISP, być może jako jedną z opcji - albo tańszy abonament, ale z reklamami i bez dostępu do niektórych zasobów, albo droższy abonament, ale bez reklam i z pełnym dostępem do wszystkiego.
Dalej to już ISP przekazywali by te pieniądze operatorom tych serwisów, które użytkownicy odwiedzają i wysoko oceniają - system oceny przez użytkowników jest tu bardzo ważny, bez tego środki wciąż trafiały by do głupich clickbaitów.

Czy takie coś kiedyś powstanie? Nie wiem, ja jestem raczej pesymistą.
Taki system byłby bardzo skomplikowany, a to oznacza problemy z niezawodnością, pole do nadużyć, itd.
W dodatku nie widać nikogo kto by mógł i chciał to wprowadzać, dzisiejsi potentaci usług internetowych - Google, Facebook, itp. czerpią z obecnego śmietnika ogromne zyski i z całą pewnością nie chcą tu niczego zmieniać.

Ale pomarzyć sobie można, nie?
26-05-2017 23:35
Przestań czytać Korwina na LSD. Proszę.
27-05-2017 16:38
Ale o co chodzi?
Gdzie niby Korwin pisał na ten temat?
Poproszę linka.
28-05-2017 16:49
Proszę bardzo:
28-05-2017 16:49   (Edytowano: 28-05-2017 16:53 )
ewentualnie takiego linka
28-05-2017 16:57
Czuje, że mogę pomóc..
link
i like trains
28-05-2017 19:15   (Edytowano: 28-05-2017 19:26 )
Chodzi o to żeby użytkownik opłatę dla dostawców kontentu miał wliczoną w abonament dla ISP, być może jako jedną z opcji - albo tańszy abonament, ale z reklamami i bez dostępu do niektórych zasobów, albo droższy abonament, ale bez reklam i z pełnym dostępem do wszystkiego.

Wyjaśnij mi wobec tego, na jakiej podstawie nie mam mieć dostępu do niektórych zasobów? Zasoby powinny być normalnie dostępne, niezależnie od tego czy wybierzesz tańszy abonament czy też jego droższy odpowiednik.
Kolekcja ( ͡° ͜ʖ ͡°)
28-05-2017 21:44
Wyjaśnij mi wobec tego, na jakiej podstawie nie mam mieć dostępu do niektórych zasobów? Zasoby powinny być normalnie dostępne, niezależnie od tego czy wybierzesz tańszy abonament czy też jego droższy odpowiednik.

Na dokładnie takiej samej podstawie na jakiej w tej chwili nie masz do nich dostępu.
Patrz np. następujący artykuł:
http://wyborcza.pl/duzyformat/7,127290,21856995,co-zabilo-bajtka-rozmowa-z-marcinem-borkowskim-redaktorem.html
Ktoś kto płaci tylko abonament dla ISP nie może go przeczytać, trzeba dokupić dodatkową prenumeratę, czyli gdzieś tam się zarejestrować, zrobić osobny przelew, tym samym udostępniając swoje dane osobowe potencjalnemu spamerowi, a to przecież tylko jeden z wielu takich serwisów.
Czy nie wygodniej by było załatwić to wszystko w ramach abonamentu dla ISP?
28-05-2017 21:50   (Edytowano: 28-05-2017 21:53 )
Chodzi o to żeby użytkownik opłatę dla dostawców kontentu miał wliczoną w abonament dla ISP, być może jako jedną z opcji - albo tańszy abonament, ale z reklamami i bez dostępu do niektórych zasobów, albo droższy abonament, ale bez reklam i z pełnym dostępem do wszystkiego.


Lepiej ISP nie mieszać do takich rzeczy, bo będzie potem patologia jak z dostępem do Netflixa w USA.
Zamiast tego lepszym rozwiązaniem będzie ustanowienie jednolitego standardu bezpośredniego płacenia za treści w zastępstwie reklam. Twórcy przeglądarki Brave mają już coś takiego: https://github.com/brave/ledger
GG: 6860269

Aby móc odpowiedzieć w tym wątku, zaloguj się.