Quo vadis?

Ostatni miesiąc przeznaczyłem głównie na rozmyślania nad swoimi celami. Tutaj podzielę się tym co wymyśliłem w sferze związanej z programowaniem. W trakcie mojej krótkiej aczkolwiek burzliwej kariery zapoznałem (mniej lub bardziej) pobieżnie się z wieloma językami i zastosowaniami programowania. Były to głównie:

  • HTML + CSS + JavaScript
  • PHP/Ruby on Rails
  • Python
  • C# i .NET oraz XNA
  • Java
  • C++ i SDL/Allegro/SFML/DirectX/OpenGL/Irrlicht/OGRE
  • PowersShell i Bash
  • Assembler
  • Delphi/Object Pascal

Jak widać rozrzut technologii dosyć spory ale sądzę, że dało mi to wystarczająco dużo doświadczeń aby móc zdecydować na czym się skupić (jak coś jest do wszystkiego to jest do niczego). Epizod związany z gamedev był chyba najdłuższy i najbardziej zaawansowany, ale ostatecznie wiem że nie chcę się tym zajmować. Technologie webowe również mnie nie pociągają.

Wybrałem sobie trzy które intensywnie będę zgłębiać dalej:

  1.  Assembler – tak wiem, że tego się już nie używa, że trudny, że błędogenny, że długo się w nim pisze a rezultaty nie są spektakularne. Ale assembler ma dla mnie jedną niezwykle istotną cechę: jest na bardzo niskim poziomie abstrakcji co pozwala mi zrozumieć jak wszystko dokładnie działa. Pisząc w C++ wiedziałem, że „argumenty wrzuca się na stos od końca”. Pisząc w assemblerze wiem, że „argumenty umieszczane są na stosie instrukcją push, która… […] …rejestr esp wskazuje na ostatni element stosu…”. Po co mi to wiedzieć? Prawdę powiedziawszy nie wiem, ale czuję się dużo bardziej komfortowo rozumiejąc co dzieje się za kulisami.
  2. C++ – w tym języku programuję w sumie najdłużej i najintensywniej. Podoba mi się w nim jego względna wysokopoziomowość programowania obiektowego jak względna niskopoziomowość (wstawki asm, wskaźniki ❤ ). Ponadto w tym języku zwykle widać co się tak naprawdę dzieje, można swobodnie kontrolować czy przekazać parametr przez wartość czy przez referencje oraz stosować magiczne szablony i makra 😉
  3.  Java – rozwiązanie wysokopoziomowe. W tej kategorii wygrała dzięki swojej przenośności. Javę mają prawie wszyscy, ile znacie osób które na Windows mają Pythona? .NET to z kolei w mojej opinii takie trochę niewiadomo-co. Ani to przenośne, ani przywiązane do Windows (do użycia natywnych funkcji trzeba użyć platform invocation). Kończąc wątek .NET szkoda mi C# w którym pisze mi się doprawdy sympatycznie (lambdy, LINQ). W zasadzie dopiero zaczynam poznawać Javę lecz sugerując się powszechną opinią odnośnie jej podobieństwa do C# jestem nastawiony optymistycznie.

Z niecierpliwością czekam na nowy PC (to będzie najdłuższy miesiąc w moim życiu 😉 ). Wtedy zacznę pisać super-pure-64-bit-mega-ultra OS który na wzór i podobieństwo Mac OS będzie kompatybilny tylko sam ze sobą 😉 .

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s