W Szanghaju trwa Open Source Summit, kolejna odsłona konferencji znanej wcześniej jako LinuxCon + CloudOpen + ContainerCon China. Jak informuje serwis DevOps.com, wśród prelegentów nie zabrakło Linusa Torvaldsa, który swoi zwyczajem podzielił się ze społecznością garścią nietuzinkowych spostrzeżeń, tym razem umiarkowanie optymistycznych. Według twórcy Linuksa rozwój oprogramowania będzie coraz trudniejszy.
Zobacz też: Linus Torvalds o porażce Linuksa na pulpitach: „zmartwieniem jest fragmentacja”
Wszystko za sprawą dwóch ograniczeń sprzętowych, z jakimi borykać muszą się już dziś programiści, a które w przyszłości będą się wyłącznie nasilać. Pierwszym z wyzwań, które utrudniać będą w przyszłości pracę nad oprogramowaniem, są kolejne podatności w mechanizmie spekulacyjnym procesorów x86 znane lepiej jako Meltdown/Spectre. Regularnie mamy do czynienia z kolejnymi ich iteracjami, czego przykładem może być w ostatnim czasie MDS/ZombieLoad.
Sprzętowych luk nie da się wyeliminować programowymi aktualizacjami, tkwią na poziomie architektury samych mikroprocesorów. Torvalds zauważa, że jedynym rozwiązaniem są aktualizacje mikrokodu i samego jądra Linux spowalniające maszyny lub całkowite wyłączenie wielowątkowości, co także stanowi spore spowolnienie. W rezultacie programiści mają do dyspozycji mniej zasobów i muszą się liczyć z tym, że będzie ich jeszcze mniej, gdy pojawią się kolejne warianty Meltdown/Spectre.
Zobacz też: Clever Cloud: przez luki w procesorach Intela straciliśmy 25% wydajności w 18 miesięcy
Drugim problemem utrudniającym rozwój oprogramowania jest oczywiście śmierć Prawa Moore’a. Przez całe dekady deweloperzy nie musieli się aż tak przejmować zasobożernością swoich programów, żyjąc w przeświadczeniu, że i tak liczba tranzystorów w mikroprocesorach rośnie wykładniczo, podwaja się co 18 miesięcy. Dziś jednak realia są zupełnie inne, model Tick-Tock Intela jest martwy, a skrócenie procesu o każdy nanometr okupione jest ogromnymi kosztami:
W miarę jak dostawcy procesorów dochodzą do granic Prawa Moore’a, wielu deweloperów będzie musiało reoptymalizować swój kod, by nadal uzyskiwać zwiększoną wydajność. W wielu przypadkach taki wymóg będzie szokiem dla wielu zespołów deweloperskich, które dotąd liczyły, że wzrosty wydajności [sprzętu – przyp. red.] będą rekompensować nieefektywne programowanie.
Można zatem pokusić się o wniosek, że to, co będzie trudnością dla programistów może stać się korzyścią dla końcowych użytkowników. Optymalizacja nie będzie mogła być dużej opcją, wydajności kodu nie będzie można dłużej traktować z przymrużeniem oka. Nie będzie można już liczyć, że wszelkie problemy rozwiąże kolejna generacja procesorów. W teorii na naszych pulpitach lądować powinno zatem wyższej jakości oprogramowanie. A jak będzie w praktyce?
Zobacz też: Linus Torvalds: anonimowość jest przereklamowana, a media społecznościowe to śmieci