sobota 12. ledna 2008

Linux pro javistu

Na svých oblíbených weblozích jsem našel několik příspěvků, které se věnovali linuxu, coby hlavnímu operačnímu systému pro programátora. Psal o tom dagi či ronnie. Jeden je v navážkách, druhý utekl zpět k windows.

Abych nebyl výjimkou, rozhodl jsem se, že ho teda také vyzkouším. Linux jako systém považuji za velice úspěšný na serveru, co se týče osobního desktopu, vždy jsem našel něco, co mě přinutilo vrátit se k windows. Dnes již tomu tak není a já se pokusím sepsat vše, co mě monentálně k tomuto tématu napadá.

Proč práve linux?
Není v tom nic speciálního. Na serveru nám běží bez problémů a já si chtěl vyzkoušet, zda by můj notebook nebyl s tímto systémem "rychlejší" a "efektivnější". Nehledám v tom nic převratného, a ani nechci zkoušet něco, abych jen vybočoval z "řady windowsáků".
Linux tedy zkouším čistě ze zvědavosti s nadějí, že objevím něco "užitečného".

Výběr distribuce a HW
Výběr distribucí linuxu je ohromný. Má volba padla na SuSE, jednak s touto distribucí mám trochu zkušenností a jednak ji mám instalovanou i na domácím PC, který funguje jako server.
Samozřejmě, že v "módě" je dnes Ubuntu, ale abych byl upřímný, samotná komunita, alespoň v ČR, mi tak leze na nervy, že jsem zde zaujal šovinistické stanovisko :)
Distribucí je tedy SuSE 10.3 s GNOME.
Co se týče hardwaru, instaloval jsem jej na notebook Toshiba A100-847. Jedná se o 2 jádrový Core 2 Duo, kde jsem pouze rozšířil RAM z 512MB na 2GB.

Instalace
Po rozdělení disku jsem na menší oddíl (cca asi 36GB) nainstaloval SuSE. Samotná instalace proběhla v pořádku a já si mnul ruce, jak vše dopadlo hladce. Jenže, to byl nebyl linux, aby v něm nebyl zádrhel... :)

První setkání
Při prvním pohledu se zdálo, že je vše v pořádku. Bohužel mi nefungovala WiFi a připojení druhého LCD monitoru. Po jistém vyladění ostatních věcí se mi asi po 6 hodinách povedlo rozchodit bezdrátové připojení. Bohužel u monitoru jsem nepochodil. Ani ruční konfigurace xorg.conf nepomohla a já prozatím musel monitor nahradit dalšími plochami.
Při zpětném porovnání mohu tvrdit, že kromě připojení druhého LCD je vše funkční. Samozřejmě se nevzdávám a až bude více času, pokusím se dořešit i to. Většinou vše má své řešení :)

Práce
Jelikož nepobírám mzdu za hraní si s linuxem, ale za vývoj aplikací, tak jsem se pustil do konečného nastavení. Tedy instalace JDK 1.6, Netbeans a Glassfish.
A zde to přišlo. Důvod, proč mě k windows již nikdo nedostane!
Samotný běh NetBeans je rychlejší, super. Ale co je naprosto nepochopitelné, že build&deploy projektu, který ve windows (se stejným nastavením) trvá minutu - minutu a půl, zde trvá asi 14-16 vteřin. Nevěřil jsem vlastním očím. Říkám si, asi bude někde problém v nastavení na windows. Nikoli. I samotný build projektů je prostě rychlejší a to výrazně. Sice jsem neprováděl žádné měření, ale poznal jsem na vlastní kůži, jak je to s rychlostí.

Alternativy k programům
Zde jsem nemusel nic moc řešit. Za prvé používám Javu, která je multiplatformní a za druhé programy, které jsou i pro linux. Zde jsem udělal jejich částečný výčet:

  • thunderbird - thunderbird

  • opera - opera

  • netbeans - netbeans

  • pidgin - pidgin

  • total commander - midnight commander, gnome commander, muCommander

  • launchy - deskbar applet

  • putty - ssh


Nic víc ke své práci nepotřebuji. Jediný problém je s tím Total Commanderem. Skutečná alternativa neexistuje. Jediné, co mě čeká je, najít si nejpříjemnější alternativu, kterou zatím nemám.



Závěr
Pokud se nevyskytne skutečný problém, tak mě asi od linuxu již nic neodtáhne. Nemíním tvrdit, že windows je špatný, pouze nevyhovující pro určité typy lidí. Stejné je to i naopak. Ve chvíli, kdy jsem si nakonfiguroval klávesové zkratky, přidal přepínání ploch, zjistil jsem, že jsem shopen i efektivněji pracovat. Windows se spíše drží filozofie myš-akce, já mám raději klávesnici, protože je mnohonásobně rychlejší.
Nakonec nabízím pár screenshotů z mého nového systému:









obrazovka-small.pngobrazovka-small.png
obrazovka-small.pngobrazovka-small.png

obrazovka-3-small.png

obrazovka-3.png

obrazovka-2-small.png

obrazovka-2.png

obrazovka-1-small.png

obrazovka-1.png

obrazovka-small.png

obrazovka.png