eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › jaki wybrac jezyk?
Ilość wypowiedzi w tym wątku: 130

  • 71. Data: 2011-08-16 20:29:37
    Temat: Re: jaki wybrac jezyk?
    Od: Adam Przybyla <a...@r...pl>

    m...@t...pl wrote:
    >
    >> Proponowałbym Prolog. Dlaczego? Jest zupełnie inny niż C/C++ .
    > A Python? Słynie z tego ze się w nim popełnia mało błędów.
    > Prologa nie znam (pythona zresztą też nie), czy prolog nadaje
    > się w ogóle do rzeczy typu: sortowanie tablicy, mnożenia macierzy?
    ... moge sie pod tym podpisac, ale sa rozne zdania na ten temat;-)
    Z powazaniem
    Adam Przybyla


  • 72. Data: 2011-08-16 21:24:28
    Temat: Re: jaki wybrac jezyk?
    Od: m...@t...pl

    > On Sat, 13 Aug 2011 21:09:15 +0200, "Marszalkowski" <m...@t...pl>


    > Przygotuj po prostu dane wejsciowe i popatrz czy dane wyjsciowe sie
    > zgadzaja. W koncu chyba blad jest pojeciem obiektywnym w stosunku do
    > przetwarzania danych.
    Bym chcial...
    Pozdrawiam


    --
    Wysłano z serwisu OnetNiusy: http://niusy.onet.pl


  • 73. Data: 2011-08-16 21:31:55
    Temat: Re: jaki wybrac jezyk?
    Od: m...@t...pl

    > m...@t...pl wrote:

    > >>> W C i w C++ od dawna jest arytmetyka wskaźników, polega ona np. na
    > >>> dodaniu do wskaźnika zmiennej typu int. Od zawsze w programach
    > >>> wymagających wydajności znajdowały się w nich ujemne wartości
    > >> Bzdura
    > > To że Panu nie przyszedł do głowy żaden pomysł na wykorzystanie
    > > ujemnych indeksów nie oznacza jeszcze że to jest bzdurą :)

    > Kwestia ujemnych/dodatnich indeksów to tylko kwestia czysto kosmetyczna.
    > Nie wpływa na wydajność. Tutaj akurat, wyjątkowo, z A.L. się zgadzam.
    Kompilator i mój stoper od pomiaru czasu wykonania nie zgadzają się z Wami
    Panowie. Jeśli algorytm produkuje czasami ujemną liczbę to zawsze szybciej
    jest użyć ujemnego indeksu niż testować ifem czy zakres jest dodatni. Tyle
    że pod ujemnym indeksem nie może być śmieci...
    Pozdrawiam




    --
    Wysłano z serwisu OnetNiusy: http://niusy.onet.pl


  • 74. Data: 2011-08-17 04:30:57
    Temat: Re: jaki wybrac jezyk?
    Od: Maciej Pilichowski <P...@g...com>

    On Tue, 16 Aug 2011 23:24:28 +0200, m...@t...pl wrote:

    >> On Sat, 13 Aug 2011 21:09:15 +0200, "Marszalkowski" <m...@t...pl>
    >
    >
    >> Przygotuj po prostu dane wejsciowe i popatrz czy dane wyjsciowe sie
    >> zgadzaja. W koncu chyba blad jest pojeciem obiektywnym w stosunku do
    >> przetwarzania danych.
    >Bym chcial...

    Jezeli nie jestes w stanie tego zrobic, to znaczy, ze program jest
    nieweryfikowalny jako taki. Napisanie drugiego programu niewiele tu
    poprawi, beda dzialaly tak samo, lub roznie, to wszystko czego sie
    dowiesz.

    milego dnia, hej
    --
    Moja wyprzedaz wszystkiego: ksiazki, plyty, filmy.
    http://www.garaz.pol.pl/


  • 75. Data: 2011-08-17 05:23:23
    Temat: Re: jaki wybrac jezyk?
    Od: m...@t...pl

    > On Tue, 16 Aug 2011 23:24:28 +0200, m...@t...pl wrote:

    > >> Przygotuj po prostu dane wejsciowe i popatrz czy dane wyjsciowe sie
    > >> zgadzaja. W koncu chyba blad jest pojeciem obiektywnym w stosunku do
    > >> przetwarzania danych.
    > >Bym chcial...

    > Jezeli nie jestes w stanie tego zrobic.
    Jestem w stanie, ale bym musiał zbyt długo patrzeć zanim bym wykonał w
    myślach miliony operacji arytmetyczno-logicznych.
    Pozdrawiam


    --
    Wysłano z serwisu OnetNiusy: http://niusy.onet.pl


  • 76. Data: 2011-08-17 06:11:58
    Temat: Re: jaki wybrac jezyk?
    Od: Michal Kleczek <k...@p...onet.pl>

    On 2011-08-16 22:27, Maciej Sobczak wrote:
    > On Aug 16, 8:27 am, Michal Kleczek<k...@p...onet.pl> wrote:
    >
    >> Dobre.
    >> Ale nieprawdziwe :)
    >
    > Sprawdziłeś?
    >
    >> Java rzuci ClassCastException na pierwszym add (fakt - w runtime).
    >
    > To ja mam zepsutą Javę (1.6.0), bo u mnie rzuca dopiero na drugim add.
    >
    >> 1. Wymaga tego specyfikacja TreeSet.add()
    >
    > Wg. dokumentacji (6) wyjątek leci "if the specified object cannot be
    > compared with the elements currently in this set ". Czyli jeśli zbiór
    > jest pusty, to ma nie lecieć.
    >
    >> 2. Zweryfikowalem zrodla
    >
    > W jakiej wersja Javy?

    1.7
    TreeMap:
    public V put(K key, V value) {
    Entry<K,V> t = root;
    if (t == null) {
    compare(key, key); // type (and possibly null) check
    ...
    }


    >
    >> ktorej put() w przypadku gdy mapa jest pusta probuje porownac klucz sam
    >> ze soba (wlasnie w celu zweryfikowania typu).
    >
    > I to ma być "statyczna kontrola typów"? Porównywanie obiektu samego ze
    > sobą w run-time?
    > Ale jaja. :-D
    >
    >> API _zawsze_ mozna spieprzyc
    >
    > To nie jest kwestia API. TreeSet<NonComparable> jest bez sensui w
    > poważnym języku można to sprawdzić *od razu*. Nawet bez dostępu do
    > implementacji klasy TreeSet.

    TreeSet<NonComparable> _nie_ jest bez sensu, bo mozna uzyc Comparatora
    zeby porownac elementy. Problem lezy w tym, ze Klasa TreeSet istniala
    przed wprowadzeniem generykow (i trzeba bylo zachowac konstruktory).

    Wyobraz sobie, ze TreeSet wyglada tak:
    public class TreeSet<T> {
    protected TreeSet() {...}
    protected TreeSet<Comparator<? super T>>() {...}

    public static <T extends Comparable> TreeSet<T> make() {...}
    public static <T> TreeSet<T> make(Comparator<? super T> comparator)
    {...}
    }

    (fakt, ze mogliby dolozyc do Javy jakas mozliwosc dodawania "type
    bounds" konstruktorom - byloby wygodniej)

    lub ew. po prostu dwie rozne klasy TreeSet jak pisalem wczesniej.

    Tyle, ze obydwie takie zmiany bylyby niekompatybilne z Java 1.4.

    > Tak, właśnie np. Ada nie potrzebuje widzieć implementacji, żeby
    > stwierdzić, że to jest bez sensu. I to jest właśnie statyczna kontrola
    > typów a nie jakieś machanie rękami w run-time.
    >

    Java tez nie potrzebuje. Pod warunkiem, ze tworca API biblioteki dobrze
    wykorzystal cechy jezyka. (Oczywiscie - Ada ma mocniejszy system typow,
    ale akurat w tym wypadku to nie ma to znaczenia).

    --
    Michal


  • 77. Data: 2011-08-17 08:12:42
    Temat: Re: jaki wybrac jezyk?
    Od: "Artur M. Piwko" <m...@b...pl>

    In the darkest hour on Sat, 13 Aug 2011 23:11:59 +0200,
    Edek <e...@g...com> screamed:
    >>> Ale jakiego zadania? Przecież nic nie opisałeś - wiadomo tylko, że dla
    >>> danych wejściowych program ma wyprodukować wartości wyjściowe. I że
    >>> jest text I/O.
    >>> Wszystkie języki się do tego nadają.
    >> Nie znam takich języków jak Prolog, Lisp, Python, Perl. Zastanawiam
    >> się czy warto któregoś się pouczyć. Czy można tak ogólnie o którymś
    >> z nich powiedzieć, że zapis typowych algorytmów niesie mniejsze ryzyko
    >> pomyłki?
    >
    > Z powyższych, poprawnie używane C++. Z powodu pełnej kontroli typów
    > podczas kompilacji.
    >

    To jest akurat marginalna zaleta. Podobnie sprawdzi się poprawnie
    używany Python. Nie trzeba ludzi straszyć dynamicznie typowanymi
    językami. https://docs.google.com/View?id=dcsvntt2_25wpjvbbhk

    --
    [ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:227B ]
    [ 10:05:56 user up 12897 days, 22:00, 1 user, load average: 0.00, 0.18, 0.04 ]

    Kennedy family favorite sexual position -- defendant.


  • 78. Data: 2011-08-17 08:29:59
    Temat: Re: jaki wybrac jezyk?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-08-17, Michal Kleczek <k...@p...onet.pl> wrote:
    [...]
    > TreeSet<NonComparable> _nie_ jest bez sensu, bo mozna uzyc Comparatora
    > zeby porownac elementy. Problem lezy w tym, ze Klasa TreeSet istniala
    > przed wprowadzeniem generykow (i trzeba bylo zachowac konstruktory).

    Przed wprowadzeniem machania rękami zwanego generykami, zapomniałeś
    dodać. Generyki to tylko syntax sugar, *odrobinkę* ułatwiający życie
    programiście, ale to nadal jest kontener trzymający elemety klasy
    Object. Widać to choćby po bezparametrowej metodzie ArrayList.toArray().
    I żeby nie być gołosłownym:
    #v+
    import java.util.ArrayList;

    class test
    {
    public static void main(String[] args)
    {
    ArrayList al = new ArrayList();
    ArrayList<Integer> ial = (ArrayList<Integer>)al;

    al.add(new Integer(1));
    al.add("foo");
    al.add("bar");
    al.add("baz");
    al.add("nabla");

    for (int i = 0; i < ial.size(); ++i)
    System.out.println(ial.get(i));
    }
    }
    #v-

    Zgadnij, kiedy to się wywróci, o ile się wywróci? Java 6.26.

    Przepraszam, ale w poważnym języku o statycznym systemie typów taka
    głupota zostanie wykryta na etapie kompilacji. Java jest ewenementem, bo
    to język o typowaniu statycznym ale dynamicznym.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 79. Data: 2011-08-17 09:55:30
    Temat: Re: jaki wybrac jezyk?
    Od: Edek <e...@g...com>

    On 08/17/2011 10:12 AM, Artur M. Piwko wrote:
    > In the darkest hour on Sat, 13 Aug 2011 23:11:59 +0200,
    > Edek<e...@g...com> screamed:
    >>>> Ale jakiego zadania? Przecież nic nie opisałeś - wiadomo tylko, że dla
    >>>> danych wejściowych program ma wyprodukować wartości wyjściowe. I że
    >>>> jest text I/O.
    >>>> Wszystkie języki się do tego nadają.
    >>> Nie znam takich języków jak Prolog, Lisp, Python, Perl. Zastanawiam
    >>> się czy warto któregoś się pouczyć. Czy można tak ogólnie o którymś
    >>> z nich powiedzieć, że zapis typowych algorytmów niesie mniejsze ryzyko
    >>> pomyłki?
    >>
    >> Z powyższych, poprawnie używane C++. Z powodu pełnej kontroli typów
    >> podczas kompilacji.
    >>
    >
    > To jest akurat marginalna zaleta. Podobnie sprawdzi się poprawnie
    > używany Python. Nie trzeba ludzi straszyć dynamicznie typowanymi
    > językami. https://docs.google.com/View?id=dcsvntt2_25wpjvbbhk
    >

    Nikogo nie straszę, znam zalety testów, w dowolnym języku da się napisać
    dowolną ilość linijek.

    Sprawa polega na czym innym, mówimy o wyższości jednego języka nad
    drugim w kontekście ilości popełnianych błędów. Tu nie da się ukryć, że
    tak czy inaczej testy są pomocne, że w każdym się robi błędy itd.
    Potrzebna jest inna miara.

    W moim osobistym przypadku, ja czasami sprawdzam, ile linijek kodu
    (napisanego, średnio skomplikowanego, przetestowanego) tworzę średnio
    na minutę. I - w moim przypadku - wynik jest następujący: w Pythonie
    średnia jest nieco niższa (sam kod, nie liczę linijek testów) niż w C++
    i niższa niż w Javie. Co mi sugeruje, że moje tempo pisania włącznie
    z poprawianiem kodu jest podobne w Pythonie c++ i Javie, bo Python jest
    bardziej zwięzły.

    Ale, przy bardziej skomplikowanym kodzie, mam problem z Pythonem. Być
    może jest to kwestia IDE, że pisząc coś większego muszę dużo uwagi
    poświęcać na to, czy x to float, dict czy lista list, a nie na to, czym
    ta zmienna jest. W c++ mogę otagować nawet floaty, czyli mieć typ
    float-znaczysię-średnia i typ float-znaczysię-mediana, jeżeli tylko
    chcę. Inaczej mówiąc, C++ pozwala tworzyć wiele kontrukcji na
    poziomie typów, które służą poprawności. W Pythonie niby też
    część z tych rzeczy jest możliwa, tylko implementuje się to inaczej,
    ale walidacja ma miejsce w runtime, co a) powoduje, że to robi się
    jeszcze wolniejsze b) trzeba faktycznie wykonać w testach każdą linijkę,
    żeby w ogóle się dowiedzieć, czy nie pomyliłem w kodzie mediany ze
    średnią. Oczywiście, tak jak 2/3 c++, nikt nikogo nie zmusza do
    używania języka właśnie w ten sposób, można pisać w c++ np. bez
    tworzenia template'ów i nawet często tak się właśnie robi. YMMV.

    Edek


  • 80. Data: 2011-08-17 10:01:35
    Temat: Re: jaki wybrac jezyk?
    Od: Michal Kleczek <k...@p...onet.pl>

    On 2011-08-17 10:29, Stachu 'Dozzie' K. wrote:
    > On 2011-08-17, Michal Kleczek<k...@p...onet.pl> wrote:
    > [...]
    >> TreeSet<NonComparable> _nie_ jest bez sensu, bo mozna uzyc Comparatora
    >> zeby porownac elementy. Problem lezy w tym, ze Klasa TreeSet istniala
    >> przed wprowadzeniem generykow (i trzeba bylo zachowac konstruktory).
    >
    > Przed wprowadzeniem machania rękami zwanego generykami, zapomniałeś
    > dodać. Generyki to tylko syntax sugar, *odrobinkę* ułatwiający życie
    > programiście, ale to nadal jest kontener trzymający elemety klasy
    > Object.

    Nie bardzo rozumiem dlaczego to problem z punktu widzenia statyczniej
    weryfikacji poprawnosci programu.

    > Widać to choćby po bezparametrowej metodzie ArrayList.toArray().

    To fakt - tablice w Javie zawsze byly schrzanione jesli chodzi o
    typowanie - generyki specjalnie tu nic nie zmienily.

    > I żeby nie być gołosłownym:
    > #v+
    > import java.util.ArrayList;
    >
    > class test
    > {
    > public static void main(String[] args)
    > {
    > ArrayList al = new ArrayList();
    > ArrayList<Integer> ial = (ArrayList<Integer>)al;
    >
    > al.add(new Integer(1));
    > al.add("foo");
    > al.add("bar");
    > al.add("baz");
    > al.add("nabla");
    >
    > for (int i = 0; i< ial.size(); ++i)
    > System.out.println(ial.get(i));
    > }
    > }
    > #v-
    >
    > Zgadnij, kiedy to się wywróci, o ile się wywróci? Java 6.26.
    >
    > Przepraszam, ale w poważnym języku o statycznym systemie typów taka
    > głupota zostanie wykryta na etapie kompilacji.

    Zostaje wykryta - ja dostaje warning w 1 i 2 linijce main()

    Ignorujesz warning - to tak jakbys stosowal <reinterpret_cast> w C++ -
    widocznie wiesz co robisz.

    > Java jest ewenementem, bo
    > to język o typowaniu statycznym ale dynamicznym.
    >

    Tzn chodzi ci o to, ze informacja o typie jest dostepna w runtime? Java
    nie jest tu ewenementem.

    --
    Michal

strony : 1 ... 7 . [ 8 ] . 9 ... 13


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: