Już wcześniej rozmawialiśmy sobie o spowalniających komputerach. Dzisiaj opowiemy o Prawie (Nikolasa) Wirtha, który prawie 25 lat temu zauważył problem rozwoju oprogramowania.
Podstawowe prawo brzmi - Oprogramowanie zwalnia szybciej niż komputer przyspiesza. I będziemy się tym zajmować :)
Prawo Moore
Procesor składa się z tranzystorów. Gordon Moore zauważył (i stworzył odpowiednie prawo), według którego liczba tranzystorów w procesorach podwaja się o 18 miesięcy (potem zmienił na 24 miesiące). Prawo to zresztą do dzisiaj jest uznawane (niektórzy próbują je złamać (przyspieszyć), ale różnie z tym bywa). Tak więc w zasadzie komputery przyspieszają od strony sprzętowej "z każdym rokiem".
I lecimy
I jest to prawda, ale zarazem (zgodnie z prawem Nikolasa) - oprogramowanie staje się coraz cięższe, często nie oferując większej liczby funkcji niż np. 20 lat temu. Technicznie ludzie mogliby dalej używać Microsoft Office XP czy nawet 2007. Funkcjonalność tych programów często nie podniosła się za bardzo. Za to wymagania i owszem.
Czemu tak się dzieje? Powodów jest parę:
Backendowe działanie - oprogramowanie musi być bezpieczne, więc stosuje się różne zabiegi dodatkowe, które mają uniemożliwić "atak na system" - dla przykładu tzw. "piaskownicę" (izolację od systemu). Nie zawsze to jednak działa ...
Technologie do szybkiego tworzenia aplikacji - czas to pieniądz. Niewiele firm może sobie pozwolić na porządne rozwijanie programów, dlatego rozwija się je najczęściej szybko, by móc pracować nad nową wersją lub zająć się innymi projektami. Dla przykładu Electron. Electron to narzędzie (w sumie przeglądarka internetowa), która jest zbudowana tak, by uruchamiać strony internetowe, ale bez pasków (i innych zbędnych rzeczy). Przeglądarki nie są programami lekkimi, wręcz przeciwnie.
Możliwe jest stworzenie kalkulatora (i są takie), które wymagają setki razy więcej "mocy" od komputera niż wbudowany kalkulator w system. Czemu? Bo mogą ;)
- Nowe funkcje, zdarzają się ;) Jasne, nie zawsze są one potrzebne, ale nowe funkcje to także dodatkowy nakład prac, które musi komputer wykonać. Nie zawsze te funkcje są trafione.
Czy komputery przyspieszają?
Bardzo ciekawe pytanie. Pewnie odpowiedź brzmi tak, ale zauważmy, że komputery są z nami od dziesiątek lat, ale mimo lepszych podzespołów często nie ma wielkich różnic w wydajności. Są procesory setki razy wydajniejsze od np. Pentiuma, a jednak komputer nie działa 100 razy lepiej. Dalej te skrzynki długo się włączają ...
Może kiedyś jak prawo Moore przestanie działać zupełnie to zajmiemy się optymalizacją, kto wie? Na razie prawo Nikolasa Wirtha jest prawdziwe ...
PS. Nikolas Wirth stworzył Pascala, więc jeśli mieliście Turbo Pascala w szkole, to wiecie komu go zawdzięczacie ;)
Najwolniejsza w komputerze jest interakcja z użytkownikiem. Jeśli komputer wykonuje swoją pracę w 5 sekund, a człowiek potrzebuje 60 sekund żeby ją zlecić, przyspieszenie stukrotne oznaczałoby że całość zajmie 60,05 sekundy.
Skalę przyspieszenia widać dopiero w zadaniach intensywnych obliczeniowo i zautomatyzowanych, z ograniczoną interakcją z użytkownikiem.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Co swoją drogą daje ciekawe przemyślenie, że z punktu widzenia Kowalskiego czasami usability aplikacji może być równie istotne co wydajność komputera, jeśli chodzi o ogólnie pojętą "szybkość wykonania na komputerze pracy którą trzeba wykonać".
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
!tipuvote 0.4
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dziękuję :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This post is supported by $0.21 @tipU upvote funded by @grecki-bazar-ewy :)
@tipU voting service instant upvotes | For investors.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit