eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
Ilość wypowiedzi w tym wątku: 160

  • 141. Data: 2019-01-16 12:28:09
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: Maciej Sobczak <s...@g...com>

    > Nie wiem. Być może pod jakimiś względami jest lepsze.
    > Choćby pod takim, że jeżeli funkcja może potencjalnie mieć efekt uboczny, to
    informacja o tym musi być zawarta w jej typie.

    To jest pomysł z dobrymi intencjami, ale bardzo trudno się go praktykuje w większej
    skali. W SPARKu jest tak:

    http://docs.adacore.com/spark2014-docs/html/lrm/subp
    rograms.html#global-aspects

    Dalej dokładamy do tego komplikację z kierunkami (czy coś jest czytane czy pisane a
    może oba, itd.) i zanim się orientujemy mamy tego więcej, niż właściwego kodu
    aplikacji - czyli skupiamy się na młotku.
    Jest to bardzo wysoka cena za niejasną wartość dodaną.
    Dlatego rozwiązaniem może być automatyczna inferencja takich zależności.

    > Albo pod takim, że stosunkowo łatwo wyabstrahować od konkretnego świata i
    dostarczyć mockową implementację zachowania skutków ubocznych na potrzeby testów.

    To też dobry pomysł. Ale bez przesady z tym abstrahowaniem - przecież nie jest tak,
    że progam fizycznie czymś macha albo kręci. Program w najlepszym razie modyfikuje
    jakieś zmienne - a to, czy te zmienne są do czegoś przyczepione (np. do rejestrów
    I/O) to już jest inna warstwa, i to właśnie w tej innej warstwie można sobie dowolnie
    abstrahować. Czyli cudowanie z osobnymi typami I/O nie jest potrzebne do tego, żeby
    skutecznie zrobić mocka do testów.

    > Albo pod takim, że owe "inne reguły" są mimo wszystko podporządkowane pewnemu
    prostemu matematycznemu rygorowi.

    Żadna pociecha. To tak, jakbyś się cieszył, że coś się równo podarło. Nadal jest
    słabo.

    > Chciałem jedynie zwrócić uwagę, że zarówno Haskell jak i Ada uważa ten podział za
    istotny i oferuje jakieś środki do wyrażania go.

    Tak. Programistom C/C++ pozostaje jedynie przyjąc konwencję, że jak coś ma skutki
    uboczne, to jest to "funkcja" zwracająca void, w przeciwnym razie jest to czysta
    funkcja zwracająca cośtam. Próbowałem tą konwencję stosować, nawet się sprawdza.

    > (Tym niemniej, spotykam czasem ludzi, którzy uważają, że imperatywny program
    napisany w Haskellu jest lepszy, bo... no bo tak)

    A ja potem spotykam ich twórczość w postaci np. implementacji MD5...

    > Pytam dlaczego podział na czyste funkcje i dokonujące efektów procedury jest dobry.

    Bo, jak każda inna konwencja, również ta jest dodatkowym kanałem komunikacji między
    autorem a czytelnikiem kodu. Co więcej, w odróżnieniu od komentarzy, taka konwencja
    może być też zrozumiała dla automatów analizujących kod.

    --
    Maciej Sobczak * http://www.inspirel.com


  • 142. Data: 2019-01-16 13:06:25
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: AK <n...@n...net>

    On 2019-01-16 11:13, Maciej Sobczak wrote:
    >> Naucz sie wreszcie normalnej/prawidlowej nomenklatury,
    >> bo troche wstyd...
    >> Jak juz to _funkcyjnosc_, a nie funcjonalnosc.
    >
    > Ale o analizie funkcjonalnej pewnie słyszałeś, co?
    >
    > Functional Analysis == Analiza funkcjonalna

    Tak. Tu się przyjela w matematyce ta terminilogia

    > Functional Programming == Programowanie funkcjonalne

    Tu nie. Nie błaźnij się.
    PS: Moze jeszcze "ucze się Algol-a czy Fortra-na" ?

    > I tak żadne z tych słów nie jest polskie, ale przynajmniej jest konsekwentnie.

    Tak, ale poprawne tłumaczenie to: funkcyjne
    Funkcjonalny (spełniający swą funkcję, przydatny) to może być jakiś
    przyrząd, a jezyk programowaia równiez ale w zupełnie inym znaczeniu
    - spełniający pokładane nadzieje, użyteczny.

    PS: C++ może byc funkcjonalny, ale funkcyjny juz na pewno nie :).

    AK


  • 143. Data: 2019-01-16 13:08:18
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: AK <n...@n...net>

    On 2019-01-16 12:01, g...@g...com wrote:
    > Prawdopodobnie, od słowa "funkcjonał" pochodzi nazwa "analiza funkcjonalna"[...].

    Dokladnie tak!

    AK


  • 144. Data: 2019-01-16 13:13:48
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: AK <n...@n...net>

    On 2019-01-16 12:01, g...@g...com wrote:
    > Bardziej interesuje mnie, dlaczego według Ciebie podział na czyste funkcje i
    dokonujące efektów procedury jest dobry.

    Sprawa jest prosta. Takie funcje to moga byc "czyste funkcje" (dla tych
    samych argumentow daja te same wyniki). Szerokie pole do optymalizacji.
    I to nei tylko narzedziami jezykow funkcyjnych (chociaz tez: jestem jak
    najbardzie za!) ale tez innych/zwyklych typu cachowanie wynikow, lazy
    itp). Czyli jest tojak najbardzie cenne i wcale nei psuje
    "imperatwnosci" jezyka.

    AK


  • 145. Data: 2019-01-16 13:15:52
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: Maciej Sobczak <s...@g...com>

    > > Functional Analysis == Analiza funkcjonalna
    >
    > Słowo funkcjonał pochodzi z rachunku wariacyjnego, gdzie oznacza funkcję, której
    argument jest funkcją

    Czyli mamy funkcje wyższego rzędu.

    > > Functional Programming == Programowanie funkcjonalne
    >
    > Programowanie funkcyjne - filozofia i metodyka programowania będąca odmianą
    programowania deklaratywnego, w której funkcje należą do wartości podstawowych

    Czyli mamy funkcje wyższego rzędu.

    To jest ten wspólny mianownik.

    > Raczej nie posiłkowałbym się w tych sprawach terminologią angielską,

    W ogóle tego nie robię. Wskazuję tylko, że wygodnie mieć podobne relacje
    terminologiczne. Może powinienem przedstawić je inaczej:

    Functional Analysis -> Functional Programming
    Analiza funkcjonalna -> Programowanie funkcjonalne

    Nie widzę powodu, żeby tą wygodną analogię burzyć, ale nie narzucam nikomu tego
    rozumowania.

    > zważywszy na wkład, jaki Polacy mieli w rozwój analizy funkcjonalnej.

    Zgadza się.

    > Jak byłem mały, to kiedyś tata zabrał mnie do Warszawy, gdzie kupił mi hot-doga w
    budzie o nazwie "Dania Fast Food".
    > Przez długi czas naprawdę myślałem, że to był duński hot-dog.

    Racjonalnie.

    --
    Maciej Sobczak * http://www.inspirel.com


  • 146. Data: 2019-01-16 13:27:20
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: Maciej Sobczak <s...@g...com>

    > PS: Moze jeszcze "ucze się Algol-a czy Fortra-na" ?

    Ja nie wnikam, czego się uczysz. :-)

    > Tak, ale poprawne tłumaczenie to: funkcyjne

    Poprawne według kogo?

    > Funkcjonalny (spełniający swą funkcję, przydatny) to może być jakiś
    > przyrząd

    Masz rację - w języku angielskim tak właśnie jest. Np. it's a very functional device.
    Z jakiegoś powodu postanowili jednak nie ograniczać użycia tego słowa tylko w tym
    znaczeniu i postanowili mieć tez functional programming.
    Nie rozumiem, dlaczego my musimy mieć "lepiej".

    > PS: C++ może byc funkcjonalny,

    Łomatko! AK napisał coś dobrego o C++. Ten post przejdzie do historii. :-D

    --
    Maciej Sobczak * http://www.inspirel.com


  • 147. Data: 2019-01-16 13:37:22
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: g...@g...com

    W dniu środa, 16 stycznia 2019 13:15:53 UTC+1 użytkownik Maciej Sobczak napisał:
    > > > Functional Analysis == Analiza funkcjonalna
    > >
    > > Słowo funkcjonał pochodzi z rachunku wariacyjnego, gdzie oznacza funkcję, której
    argument jest funkcją
    >
    > Czyli mamy funkcje wyższego rzędu.

    Pewien rodzaj funkcji wyższego rzędu, których dziedziną są funkcje rzeczywiste, a
    przeciwdziedziną - liczby rzeczywiste. Na przykład całka oznaczona.

    > > > Functional Programming == Programowanie funkcjonalne
    > >
    > > Programowanie funkcyjne - filozofia i metodyka programowania będąca odmianą
    programowania deklaratywnego, w której funkcje należą do wartości podstawowych
    >
    > Czyli mamy funkcje wyższego rzędu.

    Dowolne (obliczalne) funkcje wyższego rzędu.

    > To jest ten wspólny mianownik.

    Gdyby to był "wspólny mianownik", należałoby mówić "analiza funkcyjna".
    Ale nie. Analiza funkcjonalna dotyczy funkcjonałów. Programowanie funkcyjne dotyczy
    funkcji.

    > > Raczej nie posiłkowałbym się w tych sprawach terminologią angielską,
    >
    > W ogóle tego nie robię. Wskazuję tylko, że wygodnie mieć podobne relacje
    terminologiczne. Może powinienem przedstawić je inaczej:
    >
    > Functional Analysis -> Functional Programming
    > Analiza funkcjonalna -> Programowanie funkcjonalne

    Problem z językiem angielskim (i z tego co sprawdziłem, również francuskim), jest
    taki, że słowo "functional" jest homonimem, który może funkcjonować (!) jako
    przymiotnik (funkcyjny/funkcjonalny) oraz jako rzeczownik (funkcjonał).

    W języku polskim nie ma tego problemu.

    Nie upieram się przy tej interpretacji, bo rzeczywiście ktoś mógłby chcieć uzasadnić,
    że gdyby anglosasi chcieli powiedzeć "funkcyjny", to zrobiliby sobie słowo "functive"
    (choć wtedy my moglibyśmy to sobie tłumaczyć jako "funktywny". I bądź tu mądry)

    Wydaje się, że "programowanie funkcyjne" powoli bardziej się uciera w języku (o czym
    świadczy np. istnienie artykułu na Wikipedii), i bardziej nadaje się do tłumaczenia
    złośliwych gierek słownych (disfunctional -> dysfunkcyjny), ale to raczej kwestia
    historycznego przypadku, niż jakiejś głębokiej prawdy o świecie.

    Dlatego nie zamierzam poświęcać temu zagadnieniu ani jednego słowa więcej.


  • 148. Data: 2019-01-16 14:57:24
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: AK <n...@n...net>

    On 2019-01-16 13:27, Maciej Sobczak wrote:
    >> PS: C++ może byc funkcjonalny,
    > Łomatko! AK napisał coś dobrego o C++. Ten post przejdzie do historii.:-D

    ..."może byc". - to nie znaczy, że jest ! :)

    AK


  • 149. Data: 2019-01-16 15:06:56
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: AK <n...@n...net>

    On 2019-01-16 13:27, Maciej Sobczak wrote:
    >> PS: Moze jeszcze "ucze się Algol-a czy Fortra-na" ?
    >
    > Ja nie wnikam, czego się uczysz. :-)
    >
    >> Tak, ale poprawne tłumaczenie to: funkcyjne
    >
    > Poprawne według kogo?

    W/g slownika jezyka polskiego i w/g polonistow.

    >> Funkcjonalny (spełniający swą funkcję, przydatny) to może być jakiś
    >> przyrząd
    >
    > Masz rację - w języku angielskim tak właśnie jest.

    Niewazne jak, jest w angielskim!.
    Wazne, ze w jezyku polskim "funkcjonalny/ne" _jest juz zarezerowane
    dla zgola innego znaczenia_ (i to dlugo przed jezykami programowania).

    "funkcjonalny
    1. <<dobrze spełniający swoją funkcję>>
    "

    Dlatego (dla odroznienia) nalezy uzywac "jezyk funkcyjny" (i tak bylo
    od lat 50tych i powinno byc dalej):

    - "Assembler jest jezykiem funkcjonalnym" (prawda - np. do pisania
    driverow).
    - "Assembler jest jezykiem funkcyjnym" (nieprawda).

    AK


  • 150. Data: 2019-01-16 15:12:01
    Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
    Od: AK <n...@n...net>

    On 2019-01-16 13:37, g...@g...com wrote:
    > W dniu środa, 16 stycznia 2019 13:15:53 UTC+1 użytkownik Maciej Sobczak napisał:
    >> Czyli mamy funkcje wyższego rzędu.
    >
    > Pewien rodzaj funkcji wyższego rzędu, których dziedziną są funkcje rzeczywiste,
    a przeciwdziedziną - liczby rzeczywiste. Na przykład całka oznaczona.

    A nie jest tak, że przeciwdziedziną, też są funkcje?
    Pytam bo nie pamietam, ale np. splot funkcji (np. w analizie Fouriera)
    to funkcjonał, którego wynikiem jest funkcja/je właśnie.

    AK

strony : 1 ... 10 ... 14 . [ 15 ] . 16


Szukaj w grupach

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: