Programování

Jazyk C

Jedná se o můj oblíbený nízkoúrovňový jazyk, který však již narozdíl od assemblerů přináší možnost psát poměrně pěkně díky jasně daným abstrakčním bariérám, jako jsou například struktury, funkce apod. Osobně preferuji standard C99 a výhledově C1x, protože přinášejí moderní prvky do tohoto jazyka, který už má za sebou jinak veleúspěšnou minulost. Vznikl totiž již v roce 1972 a jeho překladač byl napsán Dennisem Ritchiem, který zemřel v roce 2011, čest tomuto velkému muži informatiky. Jazyk C nepovažuji za zcela vhodný pro rychlý vývoj velkých aplikací, v takovém případě upřednostňuji model, kdy kritická místa jsou napsána v C a zbytek v nějakém vyšším programovacím jazyce (Common Lisp, Lua, Vala). V jazyce C jsem napsal několik větších projektů:


Funkcionální programování

Funkcionální programování dává programátorovi do rukou velkou moc nad programem, což je přesný opak tradičního objektového programování známého třeba z jazyka C++ nebo Java. Kód tak může být mnohem elegantnější a kratší, někdy však na úkor přehlednosti. Mezi funkcionální jazyky patří Scheme, Common Lisp a třeba Haskell. Mou oblíbenou ukázkou krásy funkcionálního programování je y-kombinátor použitý na výpočet faktoriálu.

((lambda (y x)(y y x)) (lambda (y x) (if (<= x 1) 1 (* x (y y (- x 1))))) 5) => 120


Další zkušenosti s programováním

Během svého studia jsem narazil na bezpočet jazyků, docela dobře ovládám C++, C#, Javu, Matlab, R. Přehledově znám jazyky Bash, Lua, Ruby, Python, Vala. Dále slušně ovládám webové technologie na straně serveru LAMP a na straně klienta JavaScript, HTML, CSS. Jeden čas jsem se také docela intenzivně zabýval projektem Wine a byl jsem první člověk na světě, který rozjel GTA 1 pod linuxem, díky několika patchům knihovny DirecDraw:)


Operační systémy

Již řadu let používám systémy založené na jádře GNU/Linux. V posledních létech je to stabilně Ubuntu, se kterým jsem čím dál více spokojen a velmi mě těší neotřelé rozhraní Unity a celková spolehlivost. Otevřený software patří obecně k mým zájmům. Z operačních systémů taky solidně ovládám Windows, a to i po programátorské stránce (WinAPI, COM) a zabývám se přenositelností na Windows (mingw).


Mé stroje

Za svého raného mládí jsem přišel do styku s několika v té době již obstarožními stroji, za což jsem zpětně vděčný, protože jsem se na nich spoustu nových věcí naučil i díky jejich časté poruchovosti:). Chrononologicky to tedy jde asi takto.

  1. 1998-2000 Intel 80286 12MHz, 1MB RAM, 0.5MB VRAM.
  2. 2000-2002 AMD Am486 DX4-100, 16MB RAM, 1MB VRAM (S3?)
  3. 2002-2004 Cyrix 6x86MX-PR266 (posléze vyměněn za AMD K6 300Mhz kvůli neskutečným chybám), 32MB (posléze 64MB, 256MB, 384MB) RAM, S3 Virge 2MB (vyměněna za Riva TNT2 PCI 32MB VRAM).
  4. 2004 Intel Celeron 600Mhz@780Mhz, 128MB RAM, NVIDIA GeForce 2MX 400 32MB VRAM
  5. 2005 - 2007 AMD Sempron 2800+, 512MB RAM, GeForce FX5500 128MB VRAM
  6. 2008 - * Notebook HP 550 Celeron 2.0Ghz, 3072MB RAM, X3100 Intel graphics
  7. 2007 - * AMD Athlon X2 4200+, 3072MB RAM, NVIDIA GeForce 9500 GT OC 512MB DDR3 VRAM
  8. 2012 - * AMD Athlon X3 (odemčeno na Phenom X4 B55 3.3GHz), 4096MB RAM DD3, NVIDIA GeForce 650GT 1024MB VRAM DDR3