/ We know how

Absurdy języków programowania – czyli logiczna patologia

Języki programowania, to zdało by się obszar, niezwykle logiczny, w którym nie może być miejsca na żadne nielogiczne i absurdalne rozwiązania. Nic bardziej mylnego. Rozwój branży IT owocuje nie tyle powstaniem specyficznych technologii, co absurdów, które na co dzień spotykamy, pisząc kod. Jakich absurdów doświadczamy, pisząc kod i które wiodą prym w tym niechlubnym rankingu?

 

 

Jakie absurdalne sytuacje możemy spotkać pisząc kod?

 

Setki języków programowania dostępnych do wyboru programistów zapewnia możliwość stworzenia dowolnego kodu. Ten szeroki wybór technologii stanowi jednak największą bolączkę branży IT. W wielu przypadkach specjaliści sami tworzą kod niechlujny, absurdalnie wyglądający, który jakimś cudem, mimo wszystko działa.

W innych przypadkach sama metodologia języka wymusza na programistach stosowanie przedziwnych konstrukcji, bez których konkretna funkcja nie będzie w stanie poprawnie działać. Nawet w przypadku stosowania wszelkich zasad czystego kodu, wiele technologii zostało zaprojektowanych tak, że ciężko w ogóle zrozumieć, za co tak naprawdę odpowiadają te linijki kodu. Przykłady? Języki ezoteryczne, które po prawdzie stanowią nic więcej, jak tylko ciekawostkę. Kod maszynowy, czy kod assemblera również można zaliczyć jako zupełnie niezrozumiałe dla osób trzecich technologie programistyczne.

Praktycznie każdy język programowania ma w swoim repozytorium pewne słabości i wady, które mogą być uznane za świetny argument dla przeciwników konkretnej technologii. Nie ma jednak wątpliwości, że liderem języków stanowiących pojemną skarbnicę absurdów jest JavaScript, będący notabene najpopularniejszym językiem programowania na świecie.

 

 

Król absurdów – JavaScript

 

Choć kandydatów na najbardziej absurdalny język programowania świata jest wielu, to jednak zdaniem wielu ekspertów to właśnie JavaScript dzielnie dzierży to miano. Jest to jednak rozwiązanie, bez którego żadna strona internetowa czy aplikacja webowa nie miałaby prawa działać, dlatego po prostu musimy się do niego przyzwyczaić.

Przykład absurdów w JavaScript? Kojarzycie podstawowy typ danych, jakim jest integer? W JS próżno go szukać. Jedyny liczbowy typ danych to typ, który obsługuje liczby zmiennoprzecinkowe, co może stanowić problem, gdy przyjdzie nam korzystać z 64-bitowych liczb całkowitych.

Warto przy okazji wspomnieć o semantyce JavaScript, która przez wielu programistów jest…niezrozumiała. Ale jeśli coś działa, to czemu to zmieniać? Równie dobrze możemy wymienić automatyczne dodawanie średników, ogromną zależność od globalnych zmiennych (szybki sposób na absurdalne skomplikowanie kodu), czy niemożność zidentyfikowania błędów składniowych w kodzie, które prowadzą do zawieszenia kodu.

 

 

Jak dochodzi do takich sytuacji?

 

Istnieje wiele powodów, dla których JavaScript traktowany jest przez wielu jako niesamowicie dziwny i zagmatwany język programowania. Jednym z istotniejszych źródeł wielu niezrozumiałych sytuacji w kodzie jest ogólna niestabilność języka.

Jak dobrze wiemy, JavaScript to język, którego trendy wyznaczane są przez frameworki – dużo frameworków. To właśnie te zależne od języka technologie stanowią silnik napędowy JSa, ale powodują także wiele problemów z tworzeniem czystego i logicznego kodu. AngularJS, ReactJS, Vue.js, Meteor, Polymer – można tak wymieniać w nieskończoność. Co jakiś czas jeden framework wykorzystywany jest przez całą branżę, by po kilku chwilach poszedł w niepamięć i został zastąpiony przez inne środowisko. To sprawia, że na dobrą sprawę nikt nie inwestuje w rozwój i szkolenia w zakresie jednej konkretnej struktury – w końcu za kilka chwil może być zupełnie nieprzydatna. Takie sytuacje stanowią źródło ogromnej niestabilności całego języka, który jest traktowany przez wielu jak zlepek niezrozumiałych zasad i mechanizmów.

 

 

Czy da się jakoś obejść te absurdy?

 

Czy będąc skazanym na programowanie w JavaScript, jesteśmy w stanie jakkolwiek zredukować ryzyko bezpośredniego uczestnictwa w takich absurdach? Istnieje kilka rozwiązań, które możemy stosować w zależności od naszych potrzeb, lub specyfiki realizowanych zadań.

Po pierwsze JSLint. To narzędzie, którego celem jest analiza statyczna kodu JS. JSLint sprawdza, czy kod jest napisany poprawnie i zgodnie z ustalonymi dobrymi praktykami. Kolejne, podobne narzędzie to JSHint, który zapewnia spore wsparcie w tworzeniu jakościowego kodu. Oba te narzędzia w pewnym stopniu ułatwiają tworzenie projektów w JavaScript i zapewniają spory potencjał do dalszego rozbudowywania naszej aplikacji. Jedyne problemy, na które możemy trafić przy użytkowaniu, a raczej konfigurowaniu JSLint i JSHint to trudności z zaimplementowaniem go w projektach żywych, które są realizowane już od jakiegoś czasu.

Istnieje jednak inne wyjście z tej patowej sytuacji, którą gwarantuje nam JavaScript i absurdy związane z tą technologią. Mowa tu o jQuery – lekkiej bibliotece, która została stworzona właśnie z myślą o ułatwieniu programowania w JS. Istnieje wiele zalet korzystania z tej biblioteki – znaczne przyspieszenie procesu tworzenia dobrego kodu, znaczne ułatwienie pracy poprzez wykorzystanie gotowych szkiców całych funkcji w JS, a także intuicyjność pracy środowiska, w którym będziemy czuć się pewnie już po kilkudziesięciu minutach od pierwszego uruchomienia. Jak więc widać, nie wszystko stracone. JavaScript to język, który był, jest i prawdopodobnie będzie najpopularniejszy na świecie. Szkoda jednak tracić zdrowie na walkę z jego ułomnościami – lepiej wykorzystać gotowe rozwiązania, które sprawiają, że programowanie w tym języku może być nawet przyjemne.

Porozmawiajmy!

    Wypełnij formularz,
    a my pomożemy Ci wdrożyć najnowsze rozwiązania!