Ekonomicznej jest firmom zatrudnić programistów znających języki wysokiego poziomu, którzy nie muszą się martwić o zarządzanie pamięcią czy tworzenie rozbudowanych typów zmiennych, tylko po prostu od razu używać tych narzędzi, pomimo tego, że przez swoją złożoność są nieco wolniejsze od języków niższego poziomu, a sam programista może być nieco mniej czujny (na przykład łatwiej debuguje się kod w Pythonie niż w C). Poza tym obawiam się, że napisanie rozbudowanego projektu w języku Assemblera zajęłoby zbyt wiele czasu. Ponadto wiele narzędzi jest świetnie zoptymalizowanych dzięki teoriom matematycznym, co raczej nie każdy programista byłby w stanie zaimplementować bez znajomości skomplikowanych algorytmów.
Używanie gotowców to lenistwo, czy jednak nie.
Nie. Wystarczy spojrzeć na Pythona i jego biblioteki. Ponieważ ten język oferuje ogromną ilość narzędzi, daje wiele gotowych rozwiązań, to budując to coraz większe projekty dostrzegasz nowe zależności i możliwości. I tu też trzeba włożyć sporo wysiłku, by to zrozumieć, więc lenistwo jest niewskazane.
Na przykład załóżmy, że masz w pudełku, pomieszane z różnych zestawów, klocki Lego. Musisz się wykazać kreatywnością, aby zbudować z nich samochód. Należy przecież zadbać o jednolity kolor pojazdu, jego kształt, design. To jest takie programowanie w języku Assemblera. Załóżmy teraz, że masz gotowy zestaw z Lego, na przykład budynek straży pożarnej wraz z pojazdami i śmigłowcem. Większość elementów jest czerwona, wszystko do siebie pasuje kolorystycznie i proporcjonalnie. Jednak wciąż musisz myśleć by je złożyć, zakładając że nie masz instrukcji. To jest taki odpowiednik programowania w C++/C#. Na sam koniec załóżmy, że masz do dyspozycji wiele złożonych, gotowych zestawów. Są tam budynki straży pożarnej, policji, zwykłe domki, drogi, lotnisko oraz przeróżne pojazdy. Składasz sobie z tego miasto. I tu też musisz pomyśleć jak ustawić te wszystkie elementy, np. warto by budynek straży pożarnej był gdzieś w centrum, aby szybko dotrzeć do każdego punktu w mieście, ale już na przykład lotnisko powinno być na obrzeżach miasta (ze względów bezpieczeństwa). Musisz wiedzieć, że pas startowy powinien pokrywać się ze średnim kierunkiem wiania wiatru (samoloty startują i lądują pod wiatr, by zmniejszyć szybkość podejścia). Widzisz więc nowe zależności, których nie dostrzegłbyś składając tylko jeden pojazd. To jest taki odpowiednik programowania w Pythonie. To też zmusza do myślenia i na pewno nie można tego nazwać lenistwem.
Żyjemy w takich czasach, że nie da się poznać dokładnie jednego języka programowania, a bierze się to stąd, że zwykle jest on tworzony przez dużą społeczność, a nie przez jednego człowieka. W zależności od potrzeb, należy wybrać sobie jeden język, w którym chce się zostać specjalistą i starać się do tego dążyć. Jeśli spojrzysz szerzej na ten przykład z Lego, to zrozumiesz że nie można licytować, który język jest lepszy. Dostrzeżesz wtedy, że "programista PHP" czy "programista HTML" to są faktycznie programiści (co niektórzy próbują podważyć ten fakt dziwnym argumentem, że są to języki niekompilowane, co niby oznaczałoby że są gorsze).