Strona główna » Blog » Programowanie a oderwanie od podstaw

Programowanie a oderwanie od podstaw

Niedawno czytałem wątek na Facebooku, w którym ktoś zapytał specjalistów od informatyki czy byliby w stanie sami zbudować od podstaw te różne urządzenia, z którymi pracują. Odpowiedzi były różne. Poczyniliśmy tak duży postęp techniczny, że niektórym się wydaje, że owszem, zrobią hurtownię danych, ale już pojedynczy tranzystor to kosmiczna technologia. Innymi słowy, specjalizacja, abstrakcja i miniaturyzacja oderwały niektórych profesjonalistów od źródeł ich zawodów. I nie ma w tym nic dziwnego, taki jest porządek rzeczy.

W programowaniu też widać zjawisko pewnego oderwania od podstaw, ale ma ono związek z dopasowaniem narzędzi pracy do umysłu pracującego. Weźmy na przykład kolorowanie składni. Jest tak powszechne i tak pomocne, że jej wyłączenie wprawić niektórych może w zakłopotanie, może wywołać poczucie zagubienia. Tymczasem dawniej często tak się pisało kod. I w dalszym ciągu w wielu przypadkach kod przychodzi pisać po dawnemu, gdy trzeba coś na szybko zmienić na serwerze z linii poleceń a tam czeka nas niedokonfigurowany edytor vi o niecodziennych skrótach klawiszowych.

Warto chyba przypomnieć, że programowanie nie tylko jest możliwe, ale jest całkiem wydajne w takich warunkach jak zwykły notepad. Czarno-białe litery, brak obsługi tabulatorów, brak podpowiedzi, brak podręcznego drzewa plików. To tylko przyzwyczajenia się zmieniły.

Jest to ważne także i dlatego, że wiele osób bardzo poważnie taktuje dzisiaj temat doboru narzędzi. Preferują pewne określone IDE czy określony program do administracji bazą danych oraz mają wyobrażenie takie, że te programy są niebywale złożone i koniecznie trzeba stosować te szczególnie wybrane.

Tymczasem ani nie ma takiej konieczności, ani te programy nie są szczytem złożoności. Wiele z nich można napisać samemu i w życiu programisty przychodzi taki moment, że zmuszony okolicznościami tworzy on np.:

  • Własne IDE
  • Własne webowe IDE
  • Własnego klienta SQL do administacji bazą
  • Własnego klienta GIT
  • Własnego klienta SSH, SCP, FTP
  • Własnego shella

Ze zdumieniem można wówczas odkryć, że podstawowe funkcjonalności tego oprogramowania da się wykonać w zaskakująco małych ilościach linii kodu. Te zaś przyrastają dopiero wtedy, gdy chce się wygładzić i wyspecjalizować określone obszary.

(W dawniejszych czasach nie było to rzadkością chcieć pisać własny system operacyjny, bo ludzie dzięki powszechności dyskietek i możliwości podglądu kodu BIOS-u mieli wiedzę o bootsectorach, systemach plików, zarządzaniu pamięcią. Dzisiaj to już jest wiedza nieco zapomniana.)