Ktoś skomentował, że „Klienci uwielbiają oprogramowanie, które spełnia wymagania i mieści się w ramach budżetu”. Cóż, to prawda - ale ma to duży wpływ na wolne oprogramowanie, i to prawie z definicji oznacza wolniejsze języki programowania (i frameworki) oraz algorytmy i konfigurację. Powolny język programowania jest prawdopodobnie najważniejszą częścią tego wszystkiego po prostu dlatego, że jest to podstawa, z której najtrudniej będzie go zmienić. Jeśli używasz bazy danych Oracle i potrzebujesz większej wydajności, możesz zoptymalizować tabele / indeks / itp. Łatwo. Jeśli masz słaby algorytm w kodzie, możesz napisać inny kod. Jeśli twój framework jest powolny, możesz go wymienić - to nie jest takie proste, ale można to zrobić bez przepisywania wszystkiego. Jeśli twój język jest zbyt wolny, musisz praktycznie zacząć od nowa.
Zajrzyj na Facebooka, aby dowiedzieć się, na czym polega problem, aby PHP działało wystarczająco szybko, gdy trzeba było skalować.
Dla reszty z nas „niefunkcjonalne wymagania dotyczące wydajności” są często zapisywane w specyfikacjach, szczególnie w przypadku skalowalnych aplikacji internetowych. Niespełnienie strony „musi zostać wyświetlone użytkownikowi w ciągu 2 sekund od żądania”, a użytkownik traci umowę (lub płaci kary). Tak, tak, klienci uwielbiają oprogramowanie spełniające wymagania - a wymagania te mówią, że musi być szybki (może nie obchodzi Cię, jak długo użytkownicy spędzają wpatrywać się w klepsydrę, ale klient na pewno to robi - to ogromny koszt).
Na przykład w dużym call center powiedziano mi, że ustalili, że na każdą sekundę, którą można zaoszczędzić na procesie odbierania połączeń, 1 rozmówca może zostać „zredukowany”. To nagle prawdziwe pieniądze i ogromna zachęta dla szefów, aby uzyskać szybsze, wydajniejsze i bardziej użyteczne oprogramowanie.
Dużo czasu poświęca się martwiąc się, że programiści wypuszczają kod tak szybko, jak to możliwe (a następnie cały czas testują i refaktoryzują jednostki, lol). Przekonałem się, że nie jest to tak ważny czynnik, jak ludzie myślą - jeśli jesteś ekspertem w swoim języku, możesz go kodować znacznie szybciej niż niedoświadczony. Dlatego ekspert C ++ może pisać kod szybciej i dokładniej niż początkujący programista PHP. Myślę więc, że bycie ekspertem jest ważniejsze niż wybranie „łatwego” języka i dlatego nie lubię kultu „przepisywania w fajne, nowe rzeczy”, które wydają się być wszędzie dzisiaj.