Linux E X P R E S

Facebook

Který programovací jazyk si vybrat?

Existují témata, která dokáží spolehlivě rozhádat prakticky kohokoli. Ve světě normálních lidí to je třeba politika, ve světě programátorů je to volba programovacího jazyka.


Linuxové distribuce jsou známé velice kvalitní podporou pro velkou spoustu jazyků, prostor máme omezený, takže si zde stručně představíme alespoň ty nejpoužívanější.

Rádi bychom vám připomněli seriál Lukáš Faltýnka, který se věnoval dvaceti populárním programovacím jazykům ve svém seriálu Programovací jazyky.

C

Jazyk, který k unixu patří naprosto neodmyslitelně. Vytvořili jej Ken Thompson a Dennis Ritchie (jejich verze se označuje jako K&R C) právě pro potřeby vývoje prvního unixu. C je jazyk podporující strukturované programování, umožňuje přímý přístup do paměti pomocí ukazatelů a aplikace v něm jsou velmi kompaktní. Hodí se na systémové i aplikační programování a navíc v něm bývají napsány interpretery vyšších jazyků, o kterých zde bude také zmínka. V C je napsán třeba MPlayer, Linux (=jádro), gcc a webový server Apache.

C je podivný, defektní a nesmírně úspěšný.
Dennis M. Ritchie

Java

Nazývaná také Cobolem 21. století. Pokud bych nebral statistiky z freshmeat.net, dost možná by se Java dostala na první místo. Jazyk vytvořil James Gosling. Jeho syntaxe vychází z jazyka C++, stejně jako on je objektově orientovaný, ovšem Java dále poskytuje virtuální stroj s automatickou správou paměti, velice silnou základní knihovnou a faktickou platformní nezávislost, protože překladač překládá do mezikódu (bytecode), který je teprve potom prováděn virtuálním strojem. Java je silná v programování pro web, v rozsáhlých systémech, nebo naopak v malých zařízeních (mobilní telefony) a trochu méně v psaní běžných aplikací. V Javě je napsán třeba jEdit, Apache Tomcat, Jboss nebo Azureus.

Java je C++ bez zbraní, nožů a obušků.
James Gosling

C++

Jazyk, který vytvořil Bjarne Stroustrup, který je mylně chápán jako verze C. C++ je odlišný jazyk s podobnou syntaxí a překladače C++ dokáží přeložit kód napsaný v C. Jeho schopnosti sahají od nízkoúrovňového programování (dědictví z C) až po vysokoúrovňové, což také znamená, že je to jeden z nejsložitějších jazyků vůbec. Podporuje jak objektově orientované, tak i procedurální programování a za pomoci šablon je možné jej použít i na exotičtější styly. Jeho použití je velice podobné použití jazyka C. Známé projekty v C++ jsou OpenOffice.org, KDE/Qt, Mozilla, Fluxbox.

V C++ je těžší střelit se do nohy (pozn. autora: než v C), ale pokud se vám to podaří, ustřelíte si celou nohu.
Bjarne Stroustrup

PHP

Jeden z pilířů LAMP, který se nemalou měrou zasloužil o počet linuxových serverů. Jazyk, který vytvořil Rasmus Lerdorf, je určený primárně na web a vyvinul se z několika cgi skriptů napsaných v jazyce C až do objektově orientovaného jazyka, kterým se stal ve verzi 5. Jeho překotný vývoj se bohužel podepsal na jeho vnitřní konzistenci, ale pořád je to rozumná volba, jak udělat snadno a rychle webový projekt. V PHP je napsán phpMyAdmin, IMP, MediaWiki nebo Mambo.

Perl

Jazyk, který vznikl jako kombinace mnoha jazyků (C, shell, awk, sed, Lisp). Jeho autorem je Larry Wall a datum jeho vzniku leží už v roce 1987. Přestože odporuje unixové filozofii práce, dlouho patřil mezi nejoblíbenější skriptovací jazyky vůbec. Ovšem jeho léta jsou znát na jeho vnitřní složitosti a jeho specifikace co do délky soupeří s jazykem C++. Jeho největší síla leží v oblasti zpracování textu a definoval de facto standard pro regulární výrazy, takže mnoho jazyků používá ty perlovské. Perl stál v počátku webového programování, kde jej docela nahradilo PHP. Jinak se hodí od jednoduchého skriptování po aplikační programy. V něm je napsán Webmin, Apache Spamassasin, dvd::rip, nebo Bugzilla.

Přestože moto Perlu zní „Existuje více než jeden způsob, jak to udělat“, zdráhám se vytvořit deset způsobů, jak něco udělat :-)
Larry Wall

Python

Jazyk, jehož autorem je Guido van Rossum a který se z podoby jednoduchého procedurálního skriptovacího jazyka vyvinul do podoby jednoho z nejpoužívanějších dynamických jazyků na světě. Obsahuje rozsáhlou standardní knihovnu, na níž je bohužel vidět, že její části vznikaly nezávisle na sobě. Jeho schopnosti sahají od tvorby jednoduchých skriptů a klasických aplikací až po webové programování. Velice populární je jako jazyk pro skriptování aplikací (GIMP, OpenOffice.org, Blender a jiné). Také se velice často používá jako experimentální jazyk. Je v něm napsán BitTorrent (originální klient), mailman, Trac, MoinMoin nebo Eric3.

Python je experiment, který se pokouší zjistit, kolik svobody programátoři potřebují. Příliš mnoho svobody – a nikdo nepřečte kód někoho jiného. Jenom trochu – a vyjadřovací schopnost jazyka je ohrožená.
Guido van Rossum

Otázky & odpovědi

Proč zde není Mono?

Tím důvodem je umístění C# na serveru freshmeat.net. Dalším důvodem jsou rozporuplné reakce na tento framework v samotné komunitě (například není součástí RHEL) a aplikace v něm napsané bývají terčem kritiky za přehnané softwarové nároky. Nicméně pro Mono platí v zásadě totéž co pro Javu. Populární aplikace je třeba Beagle.

Proč zde chybí Ruby?

Ruby se prakticky podobá Perlu a Pythonu, a tak další informace o tomto zajímavém jazyku jsou na okraji stránky.

Je Java pomalá?

Aplikace v Javě jsou překládány za běhu do nativního kódu procesoru. Díky optimalizacím za běhu a dlouhým rokům vývoje je kód v Javě prakticky stejně rychlý jako ten v C/C++. Odvrácenou stranou jsou potom paměťové nároky celého prostředí, které prodlužují dobu startu aplikace a rychlosti moc nepřidají. Dalším důvodem je Swing, který vykresluje grafické prostředí plně v režii virtuálního stroje, což je pomalejší než nativní toolkity. Přesto je možné říct, že je Java dost rychlá.

A který tedy?

Odpověď na otázku „Jaký programovací jazyk si mám vybrat“ není jednoduchá. Teorie programovacích jazyků říká, že všechny jazyky jsou stejně silné. Neexistuje problém, jehož řešení by se nedalo zapsat v některém programovacím jazyce. To, v čem se liší, je skutečnost, jak jednoduše/složitě v tom kterém lze daný problém zapsat. Takže jediná nejsprávnější odpověď bude: „To záleží na tom, jaký problém se řeší.“ Pro zpracování textu upřednostním Perl nad C, pro napsání jaderného modulu zase C.

Jazyk Ruby vychází z Perlu, ale je silně ovlivněn Smalltalkem, pročež je konzistentnější než Python. Jeho autor Yukihiro „Matz“ Matsumoto zveřejnil první verzi v roce 1995. Možnosti jazyka jsou prakticky stejné jako v případě Perlu a Pythonu, což jsou asi jeho dva největší konkurenti. Tento jazyk velice trpěl faktem, že většina dostupné dokumentace byla v japonštině, kde je ostatně tento jazyk populárnější než Python. Nejznámější aplikace je Ruby on Rails.

Diskuze (17) Nahoru