přejít na obsah přejít na navigaci

Linux E X P R E S, Který programovací jazyk si vybrat?

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.


reklama

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.

Nahoru

(Jako ve škole)
Průměr: 1,62 | Hodnotilo: 8
 

Top články z OpenOffice.cz

Příspěvky

Který programovací jazyk si vybrat?
Let_Me_Be 19. 02. 2008, 10:48:55
Odpovědět  Odkaz 
Achjo:
> 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++.

Ano, optimalizovana Java je pribilizne stejne rychla, jako neoptimalizovane C/C++.
Který programovací jazyk si vybrat?
Botanicus 19. 02. 2008, 11:56:02
Odpovědět  Odkaz 
"Ruby se prakticky podobá Perlu a Pythonu, a tak další informace o tomto zajímavém jazyku jsou na okraji stránky."

S tim bych jako Ruby-patriot prilis nesouhlasil. Ruby si skutecne pujcuje spoustu veci z Perlu a v Pythonu take nalezlo trochu inspirace, ale nejsou to moc podobne jazyky, zejmena svou striktni objektovosti (x Perlu), dynamicnosti a podporou funkcionalnich prvku a metaprogramovani (closures, method_missing, instance_eval). Navic v Pythonu ani v Perlu neni ekvivalent Rails ;)
Re:Který programovací jazyk si vybrat?
miro 19. 02. 2008, 15:05:06
Odpovědět  Odkaz 
Muzete zminit co je rails? Ruby on rails? Znam vcelku perl, pouzivam ho i s jeho objekty a nestezuji si. Presto me zajima co je na tom ruby....
Re:Re:Který programovací jazyk si vybrat?
ares 20. 02. 2008, 11:13:42
Odpovědět  Odkaz 
Samozrejme myslel Ruby on Rails, framework na delani webovych aplikaci (alternativa napr. Django, PHP Cake). Dovolim si tvrdit, ze RoR je nejlepsi :)
Který programovací jazyk si vybrat?
Miras 19. 02. 2008, 17:46:03
Odpovědět  Odkaz 
Neškodilo by příště rozlišovat mezi programovacími a skriptovacími jazyky ;-)
Vlastimil Ott Re:Který programovací jazyk si vybrat?
Vlastimil Ott 19. 02. 2008, 18:05:28
Odpovědět  Odkaz 
Pokud víte, jaký je mezi nimi rozdíl, potom zřejmě určitě oceníte jiné články na našem portálu... ;-) Tohle bylo zadáno pro "potěr", kluky a holky, kteří třeba chtějí začít programovat, "něco dělat", ale neví, jak začít. Je to velmi lehounký úvod - a je to záměr. Staří kozáci nad tématem odfrknou... :-)
Josef Vanžura Který programovací jazyk si vybrat?
gindar 20. 02. 2008, 08:35:19
Odpovědět  Odkaz 
Cože?!?! To, že tu nevidím můj milovaný JavaScript (ECMAScript), je samozřejmě jen přehmat a dočasné zmámení smyslů. Dávám Vám 10 minut na opravení této hrubé chyby :D
Který programovací jazyk si vybrat?
jonson 30. 05. 2008, 20:59:53
Odpovědět  Odkaz 
Jen bych chtel poupravit co se tyce jazyka C, domnival jsem se, ze zkratka K&R je spis podle B. Kernighan a D. Ritchie, coz byli IMHO jeho tvurci.

http://en.wikipedia.org/wiki/The_C_Programming_Language_(book)
Který programovací jazyk si vybrat?
jonson 30. 05. 2008, 21:01:53
Odpovědět  Odkaz 
...ale mozna se mylim, jen si tak pamatuji z nejake knihy puvod zkratky K&R.
Který programovací jazyk si vybrat?
Matěj Andrle 19. 08. 2013, 08:17:34
Odpovědět  Odkaz 
Proč zde není en.wikipedia.org/wiki/List_of_programming_languages alespoň o něco větší výčet jazyků? Proč nerozebíráte paradigmata? Proč nerozebíráte platformy, druhy programování atd.? Tohle je akorát zhodnocení programovacích jazyků pro platformy PC pro lidi, co nebudou programovat vážně. Protože s těmito jazyky se nedá dojít moc daleko... K čemu mi asi bude, že je dobrý jazyk Java, že je multilatformní, když moje logika bude odpovídat funkcionálnímu, nebo jinému paradigmatu? K čemu mi bude obecný jazyk, když budu chtít dělat v konrétní oblasti? Je hezké, že se Vám líbí tyto jazyky, ale tento článěk má méně, než nulovou hodnotu...
Který programovací jazyk si vybrat?
Jiří Švabík 7. 08. 2015, 08:01:10
Odpovědět  Odkaz 
Dobrý den. Poradí někdo v čem rychle tvořit "klikačky" pro Linux? Něco jako byl od Borlandu pro Wokna C++ Builder. Lazarus je mi znám. Pascal problém nečinní, ale přeci jen bych chtěl něco "C"éčkového, aby můj lenivý mozek nemusel přepínat pascal/c syntaxi. Za podněty předem děkuji. JS

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Michal Vyskočil

Vystudoval FIT VUT v Brně. V současné době pracuje jako engineering manager v pražském SUSE. Nadšený uživatel Linuxu a open-source technologií. Autor mnoha článků na českých linuxových webech.


  • Distribuce: openSUSE
  • Hodnocení autora: *



Public Relations

QNAP uvedl novou modelovou řadu NAS TVS-x82T

Společnost QNAP uvedla na trh novou modelovou řadu NAS TVS-x82T, kterou tvoří tři různé modely (TVS-1282T, TVS-882T a TVS-682T). Nová řada je založena na vícejádrových procesorech Intel Core aktuální generace se 14nm výrobním procesem. Díky nim mohou nové NASy nabídnout dostatek výkonu i pro aplikace náročné na CPU.

Pokračování ...


CIO Agenda 2016