eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingStara szkoła w XXI wieku
Ilość wypowiedzi w tym wątku: 12

  • 1. Data: 2013-05-03 08:13:52
    Temat: Stara szkoła w XXI wieku
    Od: Edek <e...@g...com>

    Ktoś wspominał Mandelbrota:

    http://julialang.org
    http://julialang.org/blog/2012/02/why-we-created-jul
    ia/

    Na stronie jest benchmark. Typy używane tam gdzie chce się ich
    użyć, lispowate makra, JIT, przyjemna składnia, zrównoleglanie
    jedną linijką, repl...

    --
    Edek


  • 2. Data: 2013-05-03 13:02:49
    Temat: Re: Stara szkoła w XXI wieku
    Od: firr kenobi <p...@g...com>

    W dniu piątek, 3 maja 2013 08:13:52 UTC+2 użytkownik Edek napisał:
    > Ktoś wspominał Mandelbrota:
    >
    >
    >
    > http://julialang.org
    >
    > http://julialang.org/blog/2012/02/why-we-created-jul
    ia/
    >
    >
    >
    > Na stronie jest benchmark. Typy używane tam gdzie chce się ich
    >
    > użyć, lispowate makra, JIT, przyjemna składnia, zrównoleglanie
    >
    > jedną linijką, repl...
    >

    zalozenia dosyc sensowne mz,

    z tego co tam przejrzalem najciekawsze dla mnie zdanie

    "We never want to mention types when we don't feel like it. But when we need
    polymorphic functions, we want to use generic programming to write an algorithm just
    once and apply it to an infinite lattice of types; "

    (dla mnie ciekawe bo do tej pory nie
    rozwazalem tego w ten sposob, i np sluszna
    uwaga ze jak na wejsciu funkcji zbioru
    mandelbrota pojawi sie rzeczywista nie complex
    to rzeczywista wersja tez zadziala, a jak int
    to wersja int tez akurat zadziala - i mozliwosc
    ie pisania typu tez jest czasem dobra - wiec jest
    to ciekawe mimo ze z drugiej strony jest szereg
    watpliowsci w druga strone itp, ale ciekawe)


    drugie dla mnie najciekawze zdanie

    "Systems programming is definitely in no way a goal. If that's the target, C is still
    the language of choice, of course. However, C is still the golden standard for
    general performance -- although, of course, Fortran beats it in some cases."

    jest to tajemnica ktora sie przejawia od jakiegos
    czasu w moim zyciu - w jakich to cases fortran
    beats c ??? (mozliwe ze tak jest ale to raczej
    z jakichs 'pzypadkowych' powodow typu pewnie
    cos ze zmiennymi lokalnymi albo conwencja
    wywolan funkcji w c albo cos takiego - pozatym
    raczej chyba nie ma powodu wiec nie powinno tak
    byc ale chetnie bym sie dowiedzial)

    z innych ciekawostek: CO TO ROBI ?

    function randmatstat(t)
    n = 5
    v = zeros(t)
    w = zeros(t)
    for i = 1:t
    a = randn(n,n)
    b = randn(n,n)
    c = randn(n,n)
    d = randn(n,n)
    P = [a b c d]
    Q = [a b; c d]
    v[i] = trace((P.'*P)^4)
    w[i] = trace((Q.'*Q)^4)
    end
    std(v)/mean(v), std(w)/mean(w)
    end


    wogole widze odwrot od klamer i wrocenie do
    'połowy pascale' tj end bez begin (zgadza sie
    ze klamry w ce to nieco kontrowersyjna :/ sprawa)


  • 3. Data: 2013-05-03 14:04:50
    Temat: Re: Stara szkoła w XXI wieku
    Od: "M.M." <m...@g...com>

    W dniu piątek, 3 maja 2013 13:02:49 UTC+2 użytkownik firr kenobi napisał:

    > wogole widze odwrot od klamer i wrocenie do
    > 'połowy pascale' tj end bez begin (zgadza sie
    > ze klamry w ce to nieco kontrowersyjna :/ sprawa)
    Wydawało się, że java ugruntowała pozycję, a nawet
    znaczenie klamerek w językach programowania,a tu
    taki python je olał :)
    Pozdrawiam


  • 4. Data: 2013-05-03 14:08:51
    Temat: Re: Stara szkoła w XXI wieku
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2013-05-03, M.M. <m...@g...com> wrote:
    > W dniu piątek, 3 maja 2013 13:02:49 UTC+2 użytkownik firr kenobi napisał:
    >
    >> wogole widze odwrot od klamer i wrocenie do
    >> 'połowy pascale' tj end bez begin (zgadza sie
    >> ze klamry w ce to nieco kontrowersyjna :/ sprawa)
    > Wydawało się, że java ugruntowała pozycję, a nawet
    > znaczenie klamerek w językach programowania,

    Eee... Że co? Niby jak? To raczej C ugruntowało. Java nic nie wniosła
    nowego do języków programowania, ani paradygmatu, ani środowiska
    uruchomieniowego, ani sposobów postępowania z kodem.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 5. Data: 2013-05-03 14:13:28
    Temat: Re: Stara szkoła w XXI wieku
    Od: Edek <e...@g...com>

    Dnia Fri, 03 May 2013 04:02:49 -0700 po głębokim namyśle firr kenobi
    rzekł:

    > drugie dla mnie najciekawze zdanie
    >
    > "Systems programming is definitely in no way a goal. If that's the
    > target, C is still the language of choice, of course. However, C is
    > still the golden standard for general performance -- although, of
    > course, Fortran beats it in some cases."
    >
    > jest to tajemnica ktora sie przejawia od jakiegos czasu w moim zyciu - w
    > jakich to cases fortran beats c ??? (mozliwe ze tak jest ale to raczej z
    > jakichs 'pzypadkowych' powodow typu pewnie cos ze zmiennymi lokalnymi
    > albo conwencja wywolan funkcji w c albo cos takiego - pozatym raczej
    > chyba nie ma powodu wiec nie powinno tak byc ale chetnie bym sie
    > dowiedzial)

    Fortran przez lata królował w obliczeniach numerycznych, teraz już
    bardziej używane jest C++.

    Na pytanie 'dlaczego' nie ma trywialnej odpowiedzi: Fortran numerycznie
    jest szybszy od C dość często, Python jest wolniejszy tak ze 20x minimum
    praktycznie zawsze - tak po prostu jest, zaakceptuj to jak pogodę.

    > z innych ciekawostek: CO TO ROBI ?
    >
    > function randmatstat(t)
    > n = 5 v = zeros(t)
    > w = zeros(t)
    > for i = 1:t
    > a = randn(n,n)
    > b = randn(n,n)
    > c = randn(n,n)
    > d = randn(n,n)
    > P = [a b c d]
    > Q = [a b; c d]
    > v[i] = trace((P.'*P)^4)
    > w[i] = trace((Q.'*Q)^4)
    > end std(v)/mean(v), std(w)/mean(w)
    > end

    Wklejam wersję c. Od "co" ważniejsze dla mnie jest "jak".

    Edek

    PS. Kod w c:

    struct double_pair randmatstat(int t) {
    int n = 5;
    struct double_pair r;
    double *v = (double*)calloc(t,sizeof(double));
    double *w = (double*)calloc(t,sizeof(double));
    double *a = (double*)malloc((n)*(n)*sizeof(double));
    double *b = (double*)malloc((n)*(n)*sizeof(double));
    double *c = (double*)malloc((n)*(n)*sizeof(double));
    double *d = (double*)malloc((n)*(n)*sizeof(double));
    double *P = (double*)malloc((n)*(4*n)*sizeof(double));
    double *Q = (double*)malloc((2*n)*(2*n)*sizeof(double));
    double *PtP1 = (double*)malloc((4*n)*(4*n)*sizeof(double));
    double *PtP2 = (double*)malloc((4*n)*(4*n)*sizeof(double));
    double *QtQ1 = (double*)malloc((2*n)*(2*n)*sizeof(double));
    double *QtQ2 = (double*)malloc((2*n)*(2*n)*sizeof(double));
    for (int i=0; i < t; i++) {
    randmtzig_fill_randn(a, n*n);
    randmtzig_fill_randn(b, n*n);
    randmtzig_fill_randn(c, n*n);
    randmtzig_fill_randn(d, n*n);
    memcpy(P+0*n*n, a, n*n*sizeof(double));
    memcpy(P+1*n*n, b, n*n*sizeof(double));
    memcpy(P+2*n*n, c, n*n*sizeof(double));
    memcpy(P+3*n*n, d, n*n*sizeof(double));
    for (int j=0; j < n; j++) {
    for (int k=0; k < n; k++) {
    Q[2*n*j+k] = a[k];
    Q[2*n*j+n+k] = b[k];
    Q[2*n*(n+j)+k] = c[k];
    Q[2*n*(n+j)+n+k] = d[k];
    }
    }
    cblas_dgemm(CblasColMajor, CblasTrans, CblasNoTrans,
    n, n, 4*n, 1.0, P, 4*n, P, 4*n, 0.0, PtP1, 4*n);
    cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans,
    4*n, 4*n, 4*n, 1.0, PtP1, 4*n, PtP1, 4*n, 0.0, PtP2,
    4*n);
    cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans,
    4*n, 4*n, 4*n, 1.0, PtP2, 4*n, PtP2, 4*n, 0.0, PtP1,
    4*n);
    for (int j=0; j < n; j++) {
    v[i] += PtP1[(n+1)*j];
    }
    cblas_dgemm(CblasColMajor, CblasTrans, CblasNoTrans,
    2*n, 2*n, 2*n, 1.0, Q, 2*n, Q, 2*n, 0.0, QtQ1, 2*n);
    cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans,
    2*n, 2*n, 2*n, 1.0, QtQ1, 2*n, QtQ1, 2*n, 0.0, QtQ2,
    2*n);
    cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans,
    2*n, 2*n, 2*n, 1.0, QtQ2, 2*n, QtQ2, 2*n, 0.0, QtQ1,
    2*n);
    for (int j=0; j < 2*n; j++) {
    w[i] += QtQ1[(2*n+1)*j];
    }
    }
    free(PtP1);
    free(PtP2);
    free(QtQ1);
    free(QtQ2);
    free(P);
    free(Q);
    free(a);
    free(b);
    free(c);
    free(d);
    double v1=0.0, v2=0.0, w1=0.0, w2=0.0;
    for (int i=0; i < t; i++) {
    v1 += v[i]; v2 += v[i]*v[i];
    w1 += w[i]; w2 += w[i]*w[i];
    }
    free(v);
    free(w);
    r.s1 = sqrt((t*(t*v2-v1*v1))/((t-1)*v1*v1));
    r.s2 = sqrt((t*(t*w2-w1*w1))/((t-1)*w1*w1));
    return r;
    }


  • 6. Data: 2013-05-03 14:53:51
    Temat: Re: Stara szkoła w XXI wieku
    Od: "M.M." <m...@g...com>

    W dniu piątek, 3 maja 2013 14:08:51 UTC+2 użytkownik Stachu 'Dozzie' K. napisał:

    > Eee... Że co? Niby jak? To raczej C ugruntowało. Java nic nie wniosła
    > nowego do języków programowania, ani paradygmatu, ani środowiska
    > uruchomieniowego, ani sposobów postępowania z kodem.
    Ważna jest jeszcze popularność. C był pierwszym językiem który
    stał się popularny i miał klamerki (w takim znaczeniu). Można powiedzieć
    więc, że C wniósł, a Java ugruntowała. O ile się nie mylę, podstawy Pythona
    powstały wcześniej od Javy, ale popularność (przynajmniej tam gdzie zdołałem
    zaobserwować) zdecydowanie najpierw zdobyła Java a długo potem Python. Na
    podstawie składni tak popularnych języków jak Javy i C, dużo ludzi wypowiadało
    się, że składnia C-podobna albo Javo-podobna będzie dominowała w językach
    programowania. Tymczasem w Pythonie, który cały czas zdobywa zwolenników,
    zamiast klamerek jest takie dziwo jak głębokość wcięć.

    Jakby wziąć kolejność powstawania języków a nie zdobywania popularności, to
    wyglądałoby inaczej.

    Pozdrawiam


  • 7. Data: 2013-05-03 15:23:10
    Temat: Re: Stara szkoła w XXI wieku
    Od: Kosu <K...@n...com>

    On 2013-05-03, M.M. <m...@g...com> wrote:
    > zaobserwować) zdecydowanie najpierw zdobyła Java a długo potem Python. Na
    > podstawie składni tak popularnych języków jak Javy i C, dużo ludzi wypowiadało
    > się, że składnia C-podobna albo Javo-podobna będzie dominowała w językach
    > programowania. Tymczasem w Pythonie, który cały czas zdobywa zwolenników,
    > zamiast klamerek jest takie dziwo jak głębokość wcięć.

    Python cały czas zdobywa zwolenników, bo robi się na nim taka typowa
    "bańka" (jak w finansach). Wszyscy się uczą, wszyscy polecają, wszędzie
    się go wykorzystuje (często na siłę, bo modny i fajny). Trudno
    powiedzieć, co zostanie z dzisiejszej popularności Pythona za 10 lat.
    A C/C++/C# pewnie będzie się miał całkiem dobrze. I za 30 lat też.

    Jednak co tu kryć: Python to głównie różne web'y, małe aplikacje itp.
    (choć i do większych rzeczy się go używa). C/C++ to systemu operacyjne,
    oprogramowanie naukowe, oprogramowanie płatne, biblioteki obliczeniowe.
    Wiadomo jakie są tego efekty. Istotna aktualizacja Pythona powstaje
    szybciej, niż na wstępną rozmowę zbierają się wszyscy ważni panowie
    od C++ :).
    A z drugiej strony jest właśnie trwałość ("bezwładność") języka.
    Zobaczcie ile modnych języków zaginęło w mrokach dziejów, a IMO
    okropny Fortran trzyma się całkiem dobrze (bo napisano w nim kilka
    bibliotek obliczeniowych i kilka sterowników do sprzętu naukowego
    czy przemysłowego).

    pozdrawiam,
    Kosu


  • 8. Data: 2013-05-03 16:09:39
    Temat: Re: Stara szkoła w XXI wieku
    Od: "M.M." <m...@g...com>

    W dniu piątek, 3 maja 2013 15:23:10 UTC+2 użytkownik Kosu napisał:

    > Python cały czas zdobywa zwolenników, bo robi się na nim taka typowa
    > "bańka" (jak w finansach). Wszyscy się uczą, wszyscy polecają, wszędzie
    > się go wykorzystuje (często na siłę, bo modny i fajny). Trudno
    > powiedzieć, co zostanie z dzisiejszej popularności Pythona za 10 lat.
    > A C/C++/C# pewnie będzie się miał całkiem dobrze. I za 30 lat też.
    Nie znam prawdziwej przyczyny popularności Pythona. Moim zdaniem
    przyczyną jest ukrywanie szczegółów przed programistą. Python
    ukrywa więcej niż Java i znacznie więcej niż C/C++. Gdy dziś się
    proponuje programowanie w C, czy C++, to pytają się czy jesteś
    szaleńcem czy masochistą :)


    > Jednak co tu kryć: Python to głównie różne web'y, małe aplikacje itp.
    > (choć i do większych rzeczy się go używa). C/C++ to systemu operacyjne,
    > oprogramowanie naukowe, oprogramowanie płatne, biblioteki obliczeniowe.
    > Wiadomo jakie są tego efekty. Istotna aktualizacja Pythona powstaje
    > szybciej, niż na wstępną rozmowę zbierają się wszyscy ważni panowie
    > od C++ :).


    Można zaprojektować język który będzie i wygodny i nie straci dużo na
    wydajności, i będzie kompilowany do kodu maszynowego.


    > A z drugiej strony jest właśnie trwałość ("bezwładność") języka.
    > Zobaczcie ile modnych języków zaginęło w mrokach dziejów, a IMO
    > okropny Fortran trzyma się całkiem dobrze (bo napisano w nim kilka
    > bibliotek obliczeniowych i kilka sterowników do sprzętu naukowego
    > czy przemysłowego).
    No tak, ale mnie się nie chce zawsze klepać niskopozimowo w C++,
    pomimo że lubię ten język. Często da się napisać aplikacje bez
    wnikania w to czym jest wskaźnik i jak dany kompilator skompiluje
    zagnieżdżone szablony z dziedziczeniem wirtualnym. Niemniej w takich
    aplikacjach też oczekuję jakiejś sensownej wydajności, albo możliwości
    ukrycia kodu źródłowego. W zwykłych zastosowaniach C/C++ to przesada w
    jedną stronę, a Java i Python (choć to całkiem inne języki) to przesada
    w drugą stronę.

    Pozdrawiam


  • 9. Data: 2013-05-03 17:39:53
    Temat: Re: Stara szkoła w XXI wieku
    Od: Kosu <K...@n...com>

    On 2013-05-03, M.M. <m...@g...com> wrote:
    > Nie znam prawdziwej przyczyny popularności Pythona. Moim zdaniem
    > przyczyną jest ukrywanie szczegółów przed programistą. Python

    JAsne. Python jest łatwym językiem, a dla ogromnej większości
    użytkowników jego wady nie są zauważalne, a zalety (łatwy w pisaniu
    i czytaniu, bardzo szybko się klepie dzięki świetnym bibliotekom)
    rzucają na kolana. Nie trzeba być bardzo dobrym programistą, żeby
    napisać naprawdę przyzwoity program. M.in. dlatego uwielbiają go
    naukowcy (chyba przede wszystkim fizycy).

    Ale są też wady i na jedną zwróciłem poprzednio uwagę. Pythona
    używa się do prostych i głównie niekomercyjnych projektów.
    To oznacza, że jeśli za 5 lat ktoś wyskoczy z super nowym łatwym
    pomysłem - np. językiem "Świstak", który będzie jeszcze prostszy
    i będzie miał jeszcze nowsze biblioteki, to ludzie przerzucą się
    momentalnie :). I potem będą inne Żóbry i Bobry, a wspólną ich cechą
    będzie to, że będzie się w nich pisało na OSie napisanym w C-czymśtam
    (a jak dobrze pójdzie, to będą korzystały z bibliotek w Fortranie :P).

    Oczywiście Pythonowi źle nie życzę, wręcz sam bardzo lubię w nim pisać
    (choć akurat programować uczyłem się na C++ i to jest mój główny
    język od 15 lat). Ale jeśli ktoś dziś ma kilkanaście lat, to po prostu
    odradzam nadmierne przywiązanie (tzn. zostanie "fanboyem"),
    bo w momencie wejścia na rynek pracy mogą natrafić głównie na oferty
    od jakiegoś Rysia, a Python będzie dla zgredów takich jak ja :).

    > Można zaprojektować język który będzie i wygodny i nie straci dużo na
    > wydajności, i będzie kompilowany do kodu maszynowego.

    No Ryś, mówię przecież.

    > No tak, ale mnie się nie chce zawsze klepać niskopozimowo w C++,

    Mi się nigdy nie chce, ale klepię. Relatywnie najlepiej się w tym
    języku czuję, mam najwięcej doświadczenia i najwięcej gotowych
    własnych bibliotek. A po studiach tak naprawdę programuję mniej
    i głównie w VBA (:D). Nawet w nowego C++ i C# nie bardzo mam czas
    się wgryzać, a pewnie głównie z tymi językami jest jakoś związana
    moja przyszłość (no i z VBA :D).

    > ukrycia kodu źródłowego. W zwykłych zastosowaniach C/C++ to przesada w
    > jedną stronę, a Java i Python (choć to całkiem inne języki) to przesada
    > w drugą stronę.

    Java mnie odrzuca. Nie cierpię tej składni, nie mogę znaleźć fajnego
    IDE (Netbeans jest za wolny, z Eclipse po prostu nie mogę się dogadać).
    Kupiłem sobie jakiś czas temu telefon z Androidem myśląc "teraz nauczę
    się Java, będę pisał sobie applikacje, może coś zarobię na Play".
    I gucio. Powinienembył odkładać na iPada, bo na Objective-C
    przestawiłbym się momentalnie i miałbym więcej frajdy (osobną kwestią
    jest możliwość pisania na sprzęt Apple nie mając żadnego OS X ^^).

    pozdrawiam,
    Kosu


  • 10. Data: 2013-05-03 21:47:36
    Temat: Re: Stara szkoła w XXI wieku
    Od: Bronek Kozicki <b...@s...net>

    On 03/05/2013 07:13, Edek wrote:
    > Ktoś wspominał Mandelbrota:
    >
    > http://julialang.org
    > http://julialang.org/blog/2012/02/why-we-created-jul
    ia/
    >
    > Na stronie jest benchmark. Typy używane tam gdzie chce się ich
    > użyć, lispowate makra, JIT, przyjemna składnia, zrównoleglanie
    > jedną linijką, repl...

    fajne, dzięki


    B.

strony : [ 1 ] . 2


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: