eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingProlog, Lisp, czy ...?Re: Prolog, Lisp, czy ...?
  • Data: 2011-02-04 17:38:57
    Temat: Re: Prolog, Lisp, czy ...?
    Od: Paweł Lasek <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 3 Lut, 20:48, Grzegorz Krukowski <r...@o...pl> wrote:
    > Tak od pewnego czasu nachodzi mnie ch zapoznania si z jakim
    > j zykiem innym ni typowe imperatywne. Po prostu chc pozna inne
    > podej cie do programowania. Bardzo cz sto, w kontek cie "tych"
    > j zyk w, pojawiaj si te dwa wymienione w temacie. Maj one podobny
    > obszar zastosowa , lecz oparte s na zupe nie innej teorii
    > matematycznej. W zwi zku z tym mam pytanie, kt ry z nich, czy te inny
    > podobny j zyk wybra do czysto hobbistycznego zapoznania si z
    > programowaniem funkcyjnym? do kt rego z nich jest dost pna dobra
    > literatura, darmowy kompilator/interpretator?
    > Czy do tego typu j zyk w mo na podchodzi bez przygotowania
    > teoretycznego, czy warto przedtem zdoby jaki skrypt/ksi k
    > opisuj cy teori le c u podstaw j zyka (np. rachunek Lambda)?
    > --
    > Grzegorz Krukowski

    A tak aby uniknąć szerzącego się flejma....

    Najważniejsze jest spróbować. W przypadku Scheme znajdziesz sporo
    materiału nawiązującego do teorii, z racji genezy języka jako
    narzędzia akademickiego, choć nie aż tak dużo jak w przypadku
    Haskella. Hasłem Common Lisp jest praktyczne zastosowanie, nie teoria
    i akademia, i tu polecam "Practical Common Lisp" <http://
    www.gigamonkeys.com/book/> oraz w zależności od systemu, kompilator
    SBCL (linux x86/amd64) albo Clozure Common Lisp (mac/windows). Na
    temat kompilatorów Scheme się nie będę wypowiadał, bo nie znam
    wszystkich szczegółów, ale Racket (dawne PLT Scheme) jest popularne
    zwłaszcza do nauki, a osobiście polubiłem także Chicken Scheme.

    Haskell to zupełnie inna bestia - tu znajdziesz sporo cięższej
    matematyki i teorii, programowanie stricte funkcyjne i bardzo potężny
    system typów. Najlepszym (i w praktyce jedynym sensownym) kompilatorem
    jest tutaj GHC, który jest główną platformą na której ten język się
    rozwija.

    Wśród Lispów popularność zdobywa także Clojure, Lisp-1 zorientowany
    funkcyjnie działający na JVM i nie starający się być ani Scheme ani
    CL. Bardzo ciekawy język, ma wsparcie SLIME, bardzo ładnie korzysta
    się w nim takżę z bibliotek Javy.

    Erlang... och, Erlang. Język niemalże równie odmienny od normalności
    co Haskell, ale bardziej z powodów dla których powstał, a nie teorii
    matematycznych ;) - jest to język i platforma (bo trudno moim zdaniem
    rozdzielić je) opracowane pod kątem tworzenia niezawodnych,
    współbieżnych (ang. "concurrent") systemów rozproszonych. Nie mam w
    nim dużego doświadczenia, ale spotkanie z tym językiem na pewno dużo
    cię nauczy od strony praktycznego programowania takich systemów :)

    OCaml/F# - tu mam bardzo małe doświadczenie, ale oba to języki mocno
    zorientowane na programowanie funkcyjne, plus słyszałem, że nie ma
    sensu używać obiektowych rozszerzeń OCamla. F# to taki OCaml
    przystosowany do .NET, nie jest 100% kompatybilny ale jest bardzo
    podobny.

    Który z nich jest lepszy? Nie wiem, powiem tylko, że należy spróbować
    wszystkich i wybrać to, co najlepiej pasuje do zadania które się chcę
    w danym momencie zrealizować.

    A co do pracy, to powiem tak - Dla Javy znajdziesz dużo pracy, ale
    zaiste będzie w tym sporo tzw. "Code Monkey Job". Znajomość mniej
    "popularnych" języków się przydaje nawet jak będziesz pisał w Javie,
    bo nauczysz się rozwiązań których inaczej nie spotkasz.

    Co do pracy w konkretnych językach, to Scheme, OCaml i F# są popularne
    na Wall Street jeśli chodzi o programowanie analiz finansowych,
    popularność zdobywa tam też Haskell. Common Lisp zachowuje się jak
    SSBN (Submarine - Ballistic Missiles - Nuclear powered) i pojawia się
    głównie w mniej znanych miejscach, nieraz w różnych aplikacjach
    webowych robionych na zamówienie, a także w co niektórych większych
    systemach. Ze znanych publicznych systemów zbudowanych w oparciu o CL,
    jest QPX, silnik wyszukiwania połączeń lotniczych firmy ITA Software
    (ostatnio kupionej przez Google).

    Erlang z kolei to komunikacja, MMORPG (po stronie serwera) - jak to
    ktoś mi powiedział na #e...@i...freenode.net - "Jak znasz Erlanga i
    jesteś dobrym programistą, pracę znajdziesz bez problemu". Kolega
    TeMPOraL z resztą z tego co pamiętam pracuje (pracował?) w Krakowie
    pisząc programy w Erlangu dla jakieś globalnej firmy :)

    Najważniejsze to spróbować wszystkiego i wyciągnąć z tego wnioski -
    każdy jest inny, a w praktyce ważniejsza jest umiejętność szybkiego
    opanowania nowej technologii niż znajomość konkretnego języka.

    --
    Paweł Lasek

    P.S. comp.lang.lisp nie jest zalecanym forum, Współczynnik "Signal/
    Noise" jest bardzo niski ^_-

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: