Ugrás a fő tartalomra

Miért érdemes Ocaml-t használni?

Ebben a kis bejegyzésben arról lesz szó, hogy miért is érdemes megismerkedni az Ocaml programozási nyelvvel. Azért írom ezt a bejegyzést, mivel sajnos Ocaml egyáltalán nem tartozik a jól ismert nyelvek sorában, annak ellenére hogy egy nagyon praktikus es érdekes programozási nyelvről van szó.

Multiparadigma veszélyei

  Általánosan elmondható, hogy nagyon kevés tisztán egy paradigmát megvalósító programozási nyelv van, mivel általában a praktikusság szempontjából nem biztos, hogy megéri csak egy paradigmát megvalósítani. Gondoljunk csak bele, hogy menyi ma is jól ismert programozási nyelv kezdett el funkcionális paradigmából származó eszközöket magukba pakolni.
  Az ilyen multiparadigmális nyelveknél azért észben kell tartani, hogy az adott nyelvnél mi a fő paradigma, amivel érdemes az adott nyelvet használni. Attól még hogy egy kicsit jobban van támogatva egy másik paradigma, az nem azt jelenti, hogy mostantól csak azt használja az ember, hanem azt hogy az ember megtalálja azt az arany utat, ahol a fő paradigmát az esetek nagy részében tudja használja(80%) es a többi kiegészítő paradigmát csak ott, ahol annak van értelme(20%).
  Ha az a előbb említett "szabályt" megszeged vagy maga a programozási nyelv nem tartja be az említett szabályt, akkor egy adott nyelven olyan kódbázis es kódolási stílus különbségekhez tudsz jutni, ami már komolyan képes megakadályozni, hogy mások a kód bázisodat könnyen megértse.          Nagyvilágban ez nagyjából az a helyzet mint, amikor a különböző akcentusú emberek próbálnak meg kommunikálni egymással. Általában megértik egymást, de azért néha vakarják a fejüket, hogy mit is akart a másik mondani nekik.

Ocaml stílusa

  Az első ok, amiért Ocaml nagyon érdekes és szerethető, hogy tisztán kijelöli, hogy milyen paradigmák építik fel. Az első a funkcionális paradigma, amit az esetek 80%-ba fogsz használni, mivel az esetek többségében minél egyszerűbb/tisztább kódot akarsz gyártani. Ezek után van az imperatív paradigma, amit az esetek 18%-ban használsz, mivel vannak olyan esetek, amikor a legegyszerűbb megoldást ebben a paradigmában lehet elérni. Végül az utolsó 2%-ban pedig objektum orientált paradigmát találhatod meg, mivel az esetek nagyobb százalékában nincs szükség a paradigma képességeire.
  Számomra az egyik legfontosabb tulajdonsága a nyelvnek, hogy elsődlegesen funkcionális. Ami azért jó, mert így a nyelv már lekorlátoz engem egy olyan paradigmára, ami híres arról, hogy könnyű benne tiszta kódot írni, mivel ösztönözz arra, hogy tiszta(pure) és egyszerű függvényeket használjunk komplex side effect-el teli függvények helyett.
  Persze nem mindig élhetünk ebben a szép funkcionális világban, mert vannak olyan problémák, amikor imperatív paradigma adja a jobb megoldást. A második ok amiért Ocaml szerethető az a nyelvnek a praktikussága, mivel a nyelv tervezői megadták azt a flexibilitás, hogy képesek vagyunk a nyelvben imperatívan programozni, de közben egyértelművé van téve a felhasználója számára, hogy általánosságban mégis próbálja a problémáit funkcionális programozás keretein belül megoldani.
  Sajnos a világban nagyon kevés programozási nyelv használ Ocaml-hez hasonló stílust, ami azért sajnálatos, mivel tényleg úgy érzem, hogy ez a fajta stílus egyfajta aranymetszete a mostanság népszerű paradigmáknak.

Típus biztonság

  A harmadik es utolsó fontos ok, amiért érdemes használni Ocaml-t, az a nyelvnek a típus biztonsága, ami azt jelenti, hogy a programozási nyelv gátolja a típus hibák létrejöttét a lefordított programban. Ami azt jelenti gyakorlatban, hogyha valami lefordul az le is fog tudni futni, habár itt megjegyezném, hogy attól, hogy valami típus biztos nem jelenti azt, hogy mentes a logikai hibáktól.
  Sajnálatos, hogy a világban nagyon kevés ilyen programozási nyelv van, ami azért is szomorú, mert rengeteg programozási hibát képesek kiszűrni. Példaként említenem a null pointer hibát, amit okkal neveznek az iparágban az egymilliárd dolláros hibának, mivel rengeteg programozási hibának a fő okozója.
  Ocaml úgy kerüli ki a null pointer hibát, hogy a nyelvben nincsen null és helyette az Optional monad van használva, amit már elég sok népszerű nyelv használ. Viszont sajnos ezekben a nyelvekben a null is megtalálható és ezért ezek a nyelvek Optional használata esetén sem lehetnek típus biztosak, mivel null az ami alapvetően lehetetlené teszi egy nyelv típus biztonságát.
  Egy másik ok azért, hogy a nyelv típus biztos tudjon lenni, hogy a nyelvben nincsenek cast-olások, mivel a használatukkal azt üzenjük a fordítónak, hogy ne aggódjon és bízzon meg bennünk, mint programozókban, mert mi tudjunk az adott objektum típusát. Általánosságba a típus biztonsági hibák ilyenkor következnek be, amikor programozónak okosabbnak kell lennie mint a fordító program.

Összességében ebben a bejegyzésben azt szeretem volna átadni, hogy azért érdemes Ocaml-t kipróbálni, mivel egy nagyon kiegyensúlyozott és praktikus programozási nyelv, ami azzal teszi számunkra a legnagyobb szívességet, hogy a típus biztonságágának köszönthetően nem enged meg olyan veszélyes dolgokat, amiket más nyelvek simán megengednek.

Most pedig egy kis future funk-kal búcsúzom el a bejegyzésem végén.

Megjegyzések

Népszerű bejegyzések ezen a blogon

Python kezdőknek

Itt a nyár és mivel lehetne ezt a legjobban megünnepelni, mint egy kígyóról elnevezett programozási nyelv bemutatásával. Következőkben tehát a Python programozási nyelvről lesz szó és annak lehetséges alkalmazásairól.

Miért tartsunk otthon Python-t? Python pályafutása 1991-ben kezdődött el egy Guido van Rossum nevű fejlesztőnek hála, aki egy olyan általános programozási nyelvet akart készíteni, amit nagyon könnyen el lehet sajátítani és használni. Az elmúlt év tizedek alatt a Python nyelv az egyik legjobb és legnépszerűbb általános programozási nyelvé nőtte ki magát, amit bizonyít, hogy számos operációs rendszeren(linux, mac os) alapból megtalálható a nyelv. De nézzük meg, hogy mitől ilyen népszerű: Egyszerűség: A nyelvnek az egyik legnagyobb előnye, hogy nagyon egyszerű és ezért például nagyon sok egyetemen a kezdő programozó legényeket Python segítségével vezetik be a programozás világába.Dinamikus: Mint minden dinamikus nyelvnek úgy Python-nak is van egy beépített REPL-je, ami nagyo…

HTML5 játék fejlesztés alapjai

Ahogy a cím is sugallja a HTML5 játék fejlesztés alapjairól lesz szó ,hogy mi is kell hozzá.
Az én tudásom ebben a témában még elég kicsi ,de egyre növekszik ,talán egyszer majd én is össze fogok szedni annyi tapasztalatot a témából ,hogy akár még könyvet is írhatnék róla. Na persze egy izgalmas könyvet. :D

Na akkor vágjunk is bele!
    Első kérdés ,hogy mi a legalapvetőbb dolog ,amit ehhez meg kell tanulni? Persze sokan mondhatják ,hogy html , javascript ,css ismerete ,ebben igazat is adnék ,de nekünk még van ennél sokkal alapibb tudás ,ami a magyar programozókra főként igaz ez pedig az angol tudás.
Ezt nagyon sokszor tapasztalja az ember ,hogyha nem elég jó az angolja ,akkor egyetlen mondat is megtudja akasztani ,ahol az író nagyon szakmai akart lenni.
Főleg emiatt szeretem azokat az írókat ,akik semmi köntörfalazás nélkül belevágnak a lecsóban és simán és egyszerűen elmagyarázzák a dolgokat.

   Ha az első szint megvan akkor jöhet a HTML tanulása ,ami elég gyorsan letudható ,hiszen c…

Javascript kezdő lépések

Ma kis bejegyzésem arról fog szólni ,hogy mit érdemes kezdő lépésenként megtanulni ,illetve ,hogyan érdemes haladni Javascripttel és néhány érdekesség is lesz node.js-sel kapcsolatban.

Tanulás
   Szerencsére olyan világba élünk már ,ahol a web és webes technológiák nagyon gyorsan fejlődnek és ezért ezeknek a tanulása is egy fajta fejlődésen ment keresztül. Már nem könyvből kell tanulni ,hanem vannak olyan oldalak ahol interaktív módon lehet egy nyelvet megtanulni ,ami tökéletes a tanulás szempontjából. Előző cikkemben raktam be anyagokat ahhoz ,hogy mit érdemes elolvasni ,ha a tanuló inkább olvasós fajta és volt bent 2 interaktív.  Én például codecademy segítségével tanultam meg Jquery-t használni. Javascripthez Eloquent és codeacademy-t használtam.

   Mivel a Javascript elég megengedő ezért nagyon sok fajta stílusban kódolnak hozzá és ezek a stílusok  néha teljesen eltérőék. Szóval aki tanult már Java ,c vagy c++-t annak is lehet újdonság ,mivel ezeknél a nyelveknél nagyon szépen megv…