Programowanie to coś czym od zawsze bardzo chciałem się zajmować. Plan był nieco inny niż obecny efekt – jednak tak czy inaczej robię to co lubię :)

Swoją przygodę związaną z kodzeniem czegokolwiek zacząłem dawno (jak na swój wiek) – bo praktycznie w momencie w którym dostałem swój pierwszy komputer. Wtedy to dość popularnym językiem był Delphi, dzisiaj już niewiele pamiętam z tamtych czasów, wiem tylko tyle że praktycznie wszystko można było dosłownie wyklikać. Być może kiedyś napiszę coś więcej o tych ciekawych czasach.

Gdy oficjalnie w moim domu zawitało stałe łącze internetowe (o zawrotnej prędkości 128 Kbit/s :)), a dźwięk modemu odszedł w niepamięć, zainteresowałem się tym jak powstają strony internetowe. Na początku był to najzwyklejszy HTML z odrobinką CSS (pamiętam jak pisałem quiz w czystym htmlu…całość opierała się na dziesiątkach plików połączonych hiperlinkami…). Ze względu na problemy jakie powstawały przy próbie zrobienia czegokolwiek bardziej dynamicznego niż stronki z kilkoma podstronami dotarło do mnie że trzeba czegoś więcej…

I w tym właśnie miejscu zawitały haniebne czasy PHP – prostych stronek opartych na milionach „ifów”, na których dzielnie uczyłem się poprawnego używania „include”. Jak większość z ludzi którzy dotknęli kiedykolwiek PHP – napisałem swój prosty CMS :) Był to też czas gdy moje pierwsze wypociny oficjalnie zawitały w sieci, a ja sam zacząłem poważnie myśleć o przyszłości z tym związanej.

Praca z PHP jednak coraz bardziej irytowała, po sieci chodziły słuchy o innych językach, które brzmiały dla mnie jak „życiowa szansa”. Jednak pierwsze kroki miałem bardzo trudne. Zainstalowałem sobie railsy – jednak jako typowy „gimborosły pehapowiec” nie miałem bladego pojęcia o jakichkolwiek patternach, a skóty typu MVC czy ORM obiły się jedynie o uszy. Po przejściu przez parę tutoriali nie nadążałem za tym całym „rails magic” w efekcie – railsy dostały ode mnie kosza.

Wtedy zainteresowałem się „konkurecją” czyli Django. Spora baza wiedzy, mniej „magicznych” rozwiązań sprawiły że szybko się zaprzyjaźniłem z frameworkiem. A przy okazji strasznie polubiłem Pythona, który wygodą pisania i możliwościami w moich oczach przerastał PHP tysiąckrotnie. Przy okazji Django, udało mi się złapać swoją pierwszą poważną pracę (wcześniej dłubałem coś w PHP, ale zwykle bardzo krótkoterminowo), dopiero wtedy zobaczyłem „z czym się to wszystko je”. Czym jest deployment aplikacji, jak może bywać czasem nerwowo przez drobną literówkę…i inne problem szarej programistycznej codzienności 😉

Po ponad półrocznej zabawie z Django…pojawiło się to samo uczucie które nękało mnie podczas pracy w PHP – irytacja – głównie faktem jak czasem prozaiczne kwestie trzeba było gdzieś „na około” rozwiązywać (co pewnie wynikało z mojej niewiedzy ;)). Spotkałem wtedy na swoje drodze ludzi z którymi do dzisiaj tworzę różne projekty po godzinach i właśnie z racji tych projektów doszedłem do wniosku że może warto dać railsom drugą szansę.

Gdy zabierałem się za rubiego i railsy po raz drugi, pojęcia których wcześniej nie rozumiałem były mi już bardzo dobrze znane. Miałem też na uwadze mankamenty poprzednich technologii w których pracowałem. Znowu przebrnąłem przez te same tutoriale, jednak tym razem „magia” okazała się być zbawienna. Bo sporo tego co początkujący nazywają „magią” było lekarstwem na rzeczy które irytowały mnie w Django – jasne deklaracje routingu, migracje bazy danych (chociaż o ile dobrze widziałem Django to już teraz też posiada), gigantyczne community, dziesiątki gotowych rozwiązań jak też utartych patternów. No i przede wszystkim Ruby – język idealnie pasujący do webowych zastosowań. W momencie pisania tego tekstu używam Rubiego już od ponad 3 lat i mimo iż znam wady i problemy tego kawałka technologii, każdego chętnie „zarażam” i zachęcam do nauki. Szczerze powiedziawszy jak dotychczas nie znalazłem żadnej lepszej alternatywy – ale to oczywiście moje odczucie :) Pewnie jeszcze kiedyś rozwinę temat.

Tak, czy inaczej jeśli „tworzysz internety”, ale technologia w której aktualnie pracujesz drażni cię i nie masz możliwości zmiany na inną…może to właśnie pora by dać Rubiemu szansę? :) A jeśli już coś wiesz na ten temat a chcesz poszerzyć swoją wiedzę, zawsze możesz wpaść na workshopy które organizuje praktycznie co miesiąc Netguru

Photo from: www.flickr.com/photos/yukop/8004883826