eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJaki język?
Ilość wypowiedzi w tym wątku: 158

  • 141. Data: 2010-03-01 17:51:13
    Temat: Re: Jaki język?
    Od: "slawek" <s...@h...pl>


    Użytkownik "slawek" <s...@h...pl> napisał w wiadomości grup
    dyskusyjnych:hmgu2e$23d$...@a...news.neostrada.pl
    ...
    > Ja tam "nie myślę" - tzn. nie stosuję jakiegoś formalnego algorytmu. Więc
    > raczej blado od tej strony. :)

    Jeszcze uzupełnienie - wystarczy np. zajrzeć do "Tetris is Hard, Even to
    Approximate" http://arxiv.org/abs/cs.CC/0210020 aby nabrać podejrzeń, że
    problem jest Bardzo Trudnym Problemem NPC.

    Jednak to nieprawda - nie chodzi o program idealnie grający - ale o coś, co
    w miarę będzie działać, czyli może robić błędy i może przegrywać.

    slawek




  • 142. Data: 2010-03-01 23:07:12
    Temat: Re: Jaki język?
    Od: Arkadiusz Dymek <a...@n...bedzie>

    W dniu 2/28/2010 11:58 PM, slawek wrote:
    >
    > Użytkownik "jacem" <j...@1...pl> napisał w wiadomości grup
    > dyskusyjnych:hmb9gb$jnh$...@n...news.neostrada.pl.
    ..
    >> No dobrze, temat chyba już wyczerpany.
    >
    > To jeszcze jedna prośba - padły różne propozycje - stąd moje kolejne
    > pytania.
    >
    > Ile czasu potrzebowalibyście, aby w waszym ulubionym języku napisać
    > program grający w Tetris? I jak długi - według was - byłby to program?
    >
    > Nie chodzi rzecz jasna o napisanie kolejnego klona Tetrisa - lecz o
    > program, który dysponując danymi o kolejnych klockach (tak jak człowiek)
    > potrafiłby w miarę sensownie układać te klocki zgodnie z regułami gry
    > Tetris.
    >
    > Nie potrzeba mi takiego programu! Ale myślę, że tego rodzaju problem nie
    > jest zupełnie trywialny. Chciałbym jedynie, abyśmy mieli jakieś
    > porównanie, coś czym moglibyśmy uzupełnić dyskusję nt. dydaktycznych
    > języków programowania.

    Przy tak postawionych kryteriach zastanowiłbym się nad Pythonem.
    Elegancja, elastyczne struktury danych, spora efektywność pracy nad kodem.

    Pozdrawiam,
    Arkadesh




  • 143. Data: 2010-03-02 05:08:45
    Temat: Re: Jaki język?
    Od: "slawek" <s...@h...pl>


    Użytkownik "Arkadiusz Dymek" <a...@n...bedzie> napisał w wiadomości grup
    dyskusyjnych:4b8c48ae$...@n...home.net.pl...
    > Przy tak postawionych kryteriach zastanowiłbym się nad Pythonem.
    > Elegancja, elastyczne struktury danych, spora efektywność pracy nad kodem.

    To już wiem. Choć - moim zdaniem - Phyton jest bałaganiarski, a pomysł z
    wcięciami... tragiczny bardziej niż 73 kolumna.

    Nowe pytanie brzmiało jednak: ile roboczo-dni i ile linii kodu - w ulubionym
    języku? Orientacyjnie. Na coś co WYGLĄDA jak program rozwiązujący tetris.

    slawek



  • 144. Data: 2010-03-02 08:14:00
    Temat: Re: Jaki język?
    Od: "jacem" <j...@1...pl>

    Użytkownik "slawek" <s...@h...pl> napisał w wiadomości
    > Ja tam "nie myślę" - tzn. nie stosuję jakiegoś formalnego algorytmu. Więc
    > raczej blado od tej strony. :)

    Mózg przetwarza, i to intensywnie.
    Zagraj w tetris.
    A potem przyłóż dłoń do czoła.
    Przekonasz się jakie gorące. ;-)

    Podejmujesz decyzje "odruchowo", to jasne. Ale nie są przypadkowe.
    Czymś się kierujesz.

    > Kiedyś napisałem program grający w kółko i krzyżyk - algorytm był
    > jednolinijkowy, do dziś pamiętam:
    > n = (n + 1) mod 9
    > Sprawdza się na planszy 3x3, AI zawsze jako druga, numeracja pól jakoś
    > tam sobie szła. Nie wygra i nie przegra. Czysty minimax.

    A na planszy 5x5?

    >> Ludzie, którzy na codzień zajmują się tworzeniem gier, na pewno dadzą
    >> wyczerpującą odpowiedź. Przypuszczam, że tego typu problemy mają już
    >> dawno rozpracowane.
    > Zgoda, ale NIE chodzi o to aby ZROBIĆ TO - ale aby zastanowić się JAK
    > DUŻE TO BYŁOBY WYZWANIE.

    > I odpowiedź niekoniecznie nieomylna - może algorytm da się streścić w
    > paru linijkach? A może porządny algorytm to jakieś 10 tysięcy linii
    > kodu? Mnie nie interesuje, by taki napisać (bo i po co?) - ale aby
    > zorientować się, jak bardzo ufacie swoim ulubionym językom
    > programowania. Jeżeli ktoś np. pisze, że PHP jest cool - a potem nie
    > potrafi ocenić, ile musiałby naklepać tego PHP aby mieć "program
    > rozwiązujący łamigłówkę Tetris" - to czy PHP jest taki cool? Zamiast
    > PHP podstawcie sobie inne języki, przeiterujcie.


    Nie mam swojego ulubionego języka.
    To tylko narzędzie.
    Może być C++, Java, C#...

    > Jeszcze jedno - zakładam że program nie musi być the best - takim
    > "terisowym mistrzem" - patrz Głęboko Niebieski i gra w szachy. Chodzi
    > tylko o to, by grał sportowo, uczciwie. Dlatego odpadają programy
    > upuszczające klocki tak jak są, albo upuszczające je z losowym obrotem
    > i przemieszczeniem. Pewnym utrudnieniem mogłoby być przesuwanie klocków
    > tak, aby wlazły pod inne (pozwalamy opaść w pewnym położeniu... i myk w
    > lewo lub prawo gdy będą już na dole) - więc załóżmy że tego robić nie
    > wolno.
    > Ja bym próbował np. tak jak poniżej. Nie twierdzę, że to dobre
    > rozwiązanie.
    > Przesunięć jest może 10, obroty mnożą to przez 4, symetria może
    > zredukować. Czyli jakieś do 40 pozycji do rozpatrzenia, powiedzmy 2^5.
    > Typów klocków jest może z 2^4. Stąd przewidywanie jakie przyjdą kolejne
    > dwa (mając już jeden) i spasowanie ich daje łącznie (2^5)^3 * (2^4)^2 =
    > 2^23 = 8 milionów kombinacji. To niedużo - jeżeli jeszcze uda nam się

    Skoro klocki pojawiają się przypadkowo, to jaki sens przewidywania?
    A ty przewidujesz, który klocek następny podczas układania bieżącego?

    > ograniczyć trochę (usunąć te, które są ewidentnie złe, odfiltrować
    > symetryczne). Czyli wstawiamy klocek tak, aby optymalnie pasował -
    > biorąc pod uwagę kolejne dwa, których jeszcze nie ma. I od nowa.
    > Musimy jeszcze jakąś reprezentację mieć planszy, klocków, definicję
    > "optymalności" - nie mówię że to łatwe i nie jest pracochłonne.
    > Ale zakładam, że program ma prawo się mylić - tzn. nie musi sprawdzać
    > wszystkich możliwości, może używać funkcji random (jeżeli to uzasadnione).
    > Trzebaby pogooglać - może są jacyś entuzjaści tego typu programów. Ale
    > nie chodzi o sam program - lecz o zagadnienie, które: a. można
    > zaprogramować; b. nie jest to "typowe" programowanie
    > kadry-płace-excel-webmastering-cholera-wie-co; c. fajne jakieś takie
    > wyszło.
    > Moim zdaniem ciekawiej jest porównywać "jak duży ma być program
    > układający Tetris" - niż programy "Hello, I am Jan... Jan B."
    > slawek

    Wszystko zależy od poczynionych założeń początkowych i uproszczeń.
    Im prościej, tym bardziej elegancko. :-)

    Przypuszczam, że najkrótszy (ale najmniej czytelny) kod byłby w Ruby'm.
    (pomijam Perla)




    j.



  • 145. Data: 2010-03-02 09:41:48
    Temat: Re: Jaki język?
    Od: "slawek" <s...@h...pl>


    Użytkownik "jacem" <j...@1...pl> napisał w wiadomości grup
    dyskusyjnych:hmihh9$n69$...@a...news.neostrada.pl
    ...
    > Skoro klocki pojawiają się przypadkowo, to jaki sens przewidywania?
    > A ty przewidujesz, który klocek następny podczas układania bieżącego?

    Nie mam dziś ochoty tłumaczyć rzeczy aż tak oczywistych.

    > Wszystko zależy od poczynionych założeń początkowych i uproszczeń.
    > Im prościej, tym bardziej elegancko. :-)

    Niekoniecznie. Sortowanie szybkie jest przy twojej definicji bardzo
    "nieeleganckie". Sama prostota niewiele warta, jeżeli daje nieefektywne lub
    wręcz błędne rozwiązania.

    > Przypuszczam, że najkrótszy (ale najmniej czytelny) kod byłby w Ruby'm.
    > (pomijam Perla)

    Ok, wreszcie coś konstruktywnego od ciebie. Więc ile linii w Ruby i jak
    długo - orientacyjnie - trwałoby napisanie? Dzień? Tydzień? Miesiąc? Dłużej?

    slawek



  • 146. Data: 2010-03-03 08:52:41
    Temat: Re: Jaki język?
    Od: "jacem" <j...@1...pl>

    Użytkownik "slawek" <s...@h...pl> napisał w wiadomości
    news:hmi6ln$qi$1@atlantis.news.neostrada.pl...
    > Użytkownik "Arkadiusz Dymek" <a...@n...bedzie> napisał w wiadomości
    > grup dyskusyjnych:4b8c48ae$...@n...home.net.pl...
    >> Przy tak postawionych kryteriach zastanowiłbym się nad Pythonem. Elegancja,
    >> elastyczne struktury danych, spora efektywność pracy nad
    >> kodem.
    > To już wiem. Choć - moim zdaniem - Phyton jest bałaganiarski, a pomysł z
    > wcięciami... tragiczny bardziej niż 73 kolumna.
    > Nowe pytanie brzmiało jednak: ile roboczo-dni i ile linii kodu - w
    > ulubionym języku? Orientacyjnie. Na coś co WYGLĄDA jak program
    > rozwiązujący tetris.

    Zdolny gimnazjalista, który zna podstawy algorytmiki, biegle posługuje się swoim
    ulubionym językiem (np. python, ruby, delphi, c#, c++, czy co tam innego...),
    zakładając, że nie poświęci wiele czasu na oprogramowanie UI (może być w trybie
    znakowym), to zajmie mu to nie więcej niż 2 wieczory i kilkaset linii kodu.



    j.


  • 147. Data: 2010-03-03 13:52:11
    Temat: Re: Jaki język?
    Od: "slawek" <s...@h...pl>


    Użytkownik "jacem" <j...@1...pl> napisał w wiadomości grup
    dyskusyjnych:hml85o$6ql$...@a...news.neostrada.pl
    ...
    > Zdolny gimnazjalista, który zna podstawy algorytmiki, biegle posługuje się
    > swoim ulubionym językiem (np. python, ruby, delphi, c#, c++, czy co tam
    > innego...), zakładając, że nie poświęci wiele czasu na oprogramowanie UI
    > (może być w trybie znakowym), to zajmie mu to nie więcej niż 2 wieczory i
    > kilkaset linii kodu.

    Ok, wpisuję to do "bazy danych" - czyli "jacem" twierdzi że program
    układający (tzn. AI podejmująca decyzję gdzie wstawić losowo generowane
    klocki znając w każdej chwili wyłącznie jeden klocek) - co jest jak "wszyscy
    wiemy" problemem NP-zupełnym - zajęłoby mu gdyby był zdolnym gimnazjalistą:

    1. Phyton 10 godzin 500 linii kodu
    2. Ruby 10 godzin 500 linii kodu
    3. Delphi 10 godzin 500 linii kodu
    4. C# 10 godzin 500 linii kodu
    5. C++ 10 godzin 500 linii kodu

    Komentarz A.: założyłem że dzień to 24 godziny które dzielą się na "rano",
    "po obiedzie", "wieczorem", "w nocy" itp., czyli "dwa wieczory" to mniej
    więcej 2 razy po pięć godzin, możliwe że to jest także bliższe 12 czy 14
    godzinom albo też krótszemu czasowi (zwłaszcza że taki gimnazjalista/ka musi
    wieczorem zęby umyć i parę jeszcze rzeczy zrobić - wiadomo, rodzice).

    Komentarz B: 500 linii kodu, bo kilkaset to mniej niż tysiąc i więcej niż
    sto. Może trzeba było napisać 500 +/- 400, czy jakoś tak.

    Komentarz C: wątpię - widzę raczej kolejny przykład chciejstwa - samo
    przemyślenie projektu to jeden dzień. Kodując 500 linii w 10 godzin
    mielibyśmy 50 linii na godzinę, czyli 1 linię na minutę plus 10 minut
    przerwy na fizjologię, kompilację, cokolwiek. Takie tempo jest możliwe, ale
    gdzie i kiedy w takim razie uruchomienie - czyli debugging? Jeżeli w po
    kilku godzinach zmieni się koncepcja - to będzie jeszcze gorzej. Brak czasu
    na sporządzenie dokumentacji: takiej "autodocowej" i takiej w postaci
    helpu/instrukcji dla użytkownika. Pomijam złotą regułę 40% (w praktyce 4x) -
    "jeżeli planujesz że coś zabierze x roboczogodzin, to będzie to gotowe po
    czasie o 40% dłuższym". Mniejsza liczba linijek? Owszem, ale wymagać to
    będzie bardziej przemyślanej konstrukcji algorytmu...

    Nie raz widziałem gieroji, którzy chwalili się, jak szybko zrobią dany
    projekt - zwykle padał magicznie termin jednotygodniowy. Mam na nich dość
    konkretny sposób - zakładam się o skrzynkę piwa. Piwa mi nie brakuje.
    Bezalkoholowego oczywiście ;)

    slawek



  • 148. Data: 2010-03-03 14:33:34
    Temat: Re: Jaki język?
    Od: Jędrzej Dudkiewicz <j...@g...com>

    slawek pisze:
    >
    > Użytkownik "jacem" <j...@1...pl> napisał w wiadomości grup
    > dyskusyjnych:hml85o$6ql$...@a...news.neostrada.pl
    ...
    >> Zdolny gimnazjalista, który zna podstawy algorytmiki, biegle posługuje
    >> się swoim ulubionym językiem (np. python, ruby, delphi, c#, c++, czy
    >> co tam innego...), zakładając, że nie poświęci wiele czasu na
    >> oprogramowanie UI (może być w trybie znakowym), to zajmie mu to nie
    >> więcej niż 2 wieczory i kilkaset linii kodu.
    >
    > Ok, wpisuję to do "bazy danych" - czyli "jacem" twierdzi że program
    > układający (tzn. AI podejmująca decyzję gdzie wstawić losowo generowane
    > klocki znając w każdej chwili wyłącznie jeden klocek) - co jest jak
    > "wszyscy wiemy" problemem NP-zupełnym - zajęłoby mu gdyby był zdolnym
    > gimnazjalistą:
    [ciach]

    Zwróć uwagę, że napisałeś powyżej coś w stylu "nie musi wygrywać" - w
    tetrisa nie da się "wygrać", można tylko mieć więcej punktów niż inni,
    można więc chyba założyć, że chodziło Ci o to, że program nie musi grać
    optymalnie. To poważnie zaniża poziom konkursu i jednocześnie sprawia,
    że Twoje uwagi powyżej do ustalonych przez Ciebie zasad konkursu chyba
    nie pasują.

    JD

    PS. Oczywiście dwa wieczory na program grający optymalnie to, nazwijmy
    to, grube niedoszacowanie.


  • 149. Data: 2010-03-03 17:21:19
    Temat: Re: Jaki język?
    Od: "slawek" <s...@h...pl>


    Użytkownik "Jędrzej Dudkiewicz" <j...@g...com> napisał w
    wiadomości grup dyskusyjnych:hmlrvl$pi5$...@n...onet.pl...
    > Zwróć uwagę, że napisałeś powyżej coś w stylu "nie musi wygrywać" - w
    > tetrisa nie da się "wygrać", można tylko mieć więcej punktów niż inni,
    > można więc chyba założyć, że chodziło Ci o to, że program nie musi grać
    > optymalnie.

    Zgoda, nie musi grać optymalnie. Jednak powinien grać uczciwie. Powiedzmy...
    powinien grać na tyle dobrze, aby nie grać gorzej niż człowiek ;)

    >To poważnie zaniża poziom konkursu i jednocześnie sprawia, że Twoje uwagi
    >powyżej do ustalonych przez Ciebie zasad konkursu chyba

    Nie ma konkursu. Po prostu chodzi mi o to, że każdy (chyba) potrafi sobie
    wyobrazić, jak taki program mógłby próbować stworzyć: ile czasu i jaki duży.
    Czy te wyobrażenia w jakikolwiek sposób są zgodne z rzeczywistością/prawdą?
    To nie jest istotne... Bo nie chodzi mi o program, ale o to jak ludzie
    używający różnych języków widzą poziom złożoności zagadnienia. Innymi słowy:
    jak wybrany przez programistę język wpływa na wyobraźnię programisty.

    Były propozycje różnych dydaktycznych języków. W Small Basic jest np.
    przykładowy Tetris (ale grać w to ma człowiek). Zainteresowało mnie, ile
    razy dłuższy byłby ten program w Small Basic, gdyby musiał sam sobie klocki
    układać i to nie oszukując. I jak byłby to długie/duże/trudne - gdyby
    zamiast Small Basic brać np. Pascala czy C++ z STL ?

    > PS. Oczywiście dwa wieczory na program grający optymalnie to, nazwijmy to,
    > grube niedoszacowanie.

    Zgoda, lecz jak na razie "w bazie danych" mam że 500 linii i 10 godzin w
    przypadku prostych języków obiektowych ogólnego stosowania, takich C#.

    slawek




  • 150. Data: 2010-03-04 10:10:10
    Temat: Re: Jaki język?
    Od: "jacem" <j...@1...pl>

    Użytkownik "slawek" <s...@h...pl> napisał w wiadomości

    > Komentarz A.: założyłem że dzień to 24 godziny które dzielą się na
    > "rano", "po obiedzie", "wieczorem", "w nocy" itp., czyli "dwa wieczory"
    > to mniej więcej 2 razy po pięć godzin, możliwe że to jest także bliższe
    > 12 czy 14 godzinom albo też krótszemu czasowi (zwłaszcza że taki
    > gimnazjalista/ka musi wieczorem zęby umyć i parę jeszcze rzeczy zrobić
    > - wiadomo, rodzice).

    Widać, że jako nastolatek, nie miałeś w rękach komputera. :-)))
    Oni potrafią non stop ryć przy klawierze po kilkanaście godzin dziennie.

    Trochę nonszalancko się wyraziłem:
    Pisząc "wieczory", miałem raczej na myśli dwa dni intensywnej pracy.
    Co można w 10 godzin zrobić? Sam wiesz.
    Licząc wg twoich kryteriów niech to będą 4 wieczory.

    > Komentarz B: 500 linii kodu, bo kilkaset to mniej niż tysiąc i więcej
    > niż sto. Może trzeba było napisać 500 +/- 400, czy jakoś tak.

    Raczej bliżej do 1000 niż 500.
    Powiedzmy, że ok. 800.

    > Komentarz C: wątpię - widzę raczej kolejny przykład chciejstwa - samo
    > przemyślenie projektu to jeden dzień. Kodując 500 linii w 10 godzin


    Jeśli ktoś jest pochłonięty problemem, to ten młody człowiek nawet siedząc na
    sedesie, będzie go zgłębiał.
    Ogólny zarys będzie miał po kilku godzinach.

    > mielibyśmy 50 linii na godzinę, czyli 1 linię na minutę plus 10 minut przerwy
    > na fizjologię, kompilację, cokolwiek. Takie tempo jest możliwe,
    > ale gdzie i kiedy w takim razie uruchomienie - czyli debugging? Jeżeli
    > w po kilku godzinach zmieni się koncepcja - to będzie jeszcze gorzej.
    > Brak czasu na sporządzenie dokumentacji: takiej "autodocowej" i takiej
    > w postaci helpu/instrukcji dla użytkownika. Pomijam złotą regułę 40% (w
    > praktyce 4x) - "jeżeli planujesz że coś zabierze x roboczogodzin, to
    > będzie to gotowe po czasie o 40% dłuższym". Mniejsza liczba linijek?
    > Owszem, ale wymagać to będzie bardziej przemyślanej konstrukcji
    > algorytmu...

    Im dalej w las, tym więcej drzew. To prawda.
    Jeśli życzyłbyś sobie dokumentacji, to niestety, ale jeszcze jeden wieczór
    należałoby dodać.

    A testy?

    Trzeba przeprowadzić testy, aby zakwalifikować produkt.
    Zagrać: maszyna kontra człowiek.

    I należałoby ustalić, że program jest ok, jeśli zwycięży np. w 30% rund (3 na
    10).


    No tak, przy twoich wymaganiach z 2 wieczorów zrobi się 5!

    > Nie raz widziałem gieroji, którzy chwalili się, jak szybko zrobią dany
    > projekt - zwykle padał magicznie termin jednotygodniowy. Mam na nich dość

    Ja ich często widuję. ;-)

    A jeszcze częściej widuję bossów, którzy oczekują, że ktoś im projekt wykona w
    tydzień (np. wg moich szacunków w 5 tyg.) za przysłowiowe dwa piwa.
    Wtedy odsyłam ich do "gieroji", o których wspomniałeś powyżej. :-)))

    > konkretny sposób - zakładam się o skrzynkę piwa. Piwa mi nie brakuje.
    > Bezalkoholowego oczywiście ;)

    A co to?
    Niepijący alkoholik? :-)))


    j.

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: