eGospodarka.pl
eGospodarka.pl poleca

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

  • 111. Data: 2010-02-25 15:05:00
    Temat: Re: Jaki język?
    Od: Andrzej Kmicic <d...@p...onet.pl>

    Mif pisze:
    > PHP to IMO koszmar potrafiący skutecznie zniechęcić do programowania nawet
    > dużo starsze osoby. Choć może niektórym odpowiadać, choć osobiście go
    > bardzo nie lubię.

    A co takiego koszmarnego w PHP ?. PHP to nie tylko język do młócenia
    stronek za 100 zł. To łatwy, szybki język skryptowy o bardzo
    uniwersalnym zastosowaniu.
    Wrzucę tu taka perełkę jaką znalazłem, no napisz to w innym języku tak
    prosto w kilku linijkach. To tabelka tekstowa robiona z tablicy
    dwuwymiarowej :

    +-----+----+----------------------+
    | Pos | No | Driver |
    +-----+----+----------------------+
    | 1 | 1 | Kimi Räikkönen |
    +-----+----+----------------------+
    | 2 | 2 | Felipe Massa |
    +-----+----+----------------------+
    | 3 | 22 | Lewis Hamilton |
    +-----+----+----------------------+
    | 4 | 4 | Robert Kubica |
    +-----+----+----------------------+

    function text_table($data) {
    $keys = array_keys(end($data));
    $size = array_map('strlen', $keys);
    foreach(array_map('array_values', $data) as $e)
    $size = array_map('max', $size,
    array_map('strlen', $e));
    foreach($size as $n) {
    $form[] = "%-{$n}s";
    $line[] = str_repeat('-', $n);
    }
    $form = '| ' . implode(' | ', $form) . " |\n";
    $line = '+-' . implode('-+-', $line) . "-+\n";
    $rows = array( vsprintf($form, $keys) );
    foreach($data as $e)
    $rows[] = vsprintf($form, $e);
    return $line . implode($line, $rows) . $line;
    }

    pozdrawiam
    AK


  • 112. Data: 2010-02-25 15:45:33
    Temat: Re: Jaki język?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2010-02-25, Andrzej Kmicic <d...@p...onet.pl> wrote:
    > Mif pisze:
    >> PHP to IMO koszmar potrafiący skutecznie zniechęcić do programowania nawet
    >> dużo starsze osoby. Choć może niektórym odpowiadać, choć osobiście go
    >> bardzo nie lubię.
    >
    > A co takiego koszmarnego w PHP ?. PHP to nie tylko język do młócenia
    > stronek za 100 zł. To łatwy, szybki język skryptowy o bardzo
    > uniwersalnym zastosowaniu.

    C też jest łatwym, szybkim językiem (kompilowanym akurat) o bardzo
    uniwersalnym zastosowaniu. I wiesz co? Nie do wszystkiego jest używany.

    > Wrzucę tu taka perełkę jaką znalazłem, no napisz to w innym języku tak
    > prosto w kilku linijkach.

    Może być Perl?

    > To tabelka tekstowa robiona z tablicy
    > dwuwymiarowej :
    >
    > +-----+----+----------------------+
    > | Pos | No | Driver |
    > +-----+----+----------------------+
    > | 1 | 1 | Kimi Räikkönen |
    > +-----+----+----------------------+
    > | 2 | 2 | Felipe Massa |
    > +-----+----+----------------------+
    > | 3 | 22 | Lewis Hamilton |
    > +-----+----+----------------------+
    > | 4 | 4 | Robert Kubica |
    > +-----+----+----------------------+
    >
    > function text_table($data) {
    > $keys = array_keys(end($data));
    > $size = array_map('strlen', $keys);
    > foreach(array_map('array_values', $data) as $e)
    > $size = array_map('max', $size,
    > array_map('strlen', $e));
    > foreach($size as $n) {
    > $form[] = "%-{$n}s";
    > $line[] = str_repeat('-', $n);
    > }
    > $form = '| ' . implode(' | ', $form) . " |\n";
    > $line = '+-' . implode('-+-', $line) . "-+\n";
    > $rows = array( vsprintf($form, $keys) );
    > foreach($data as $e)
    > $rows[] = vsprintf($form, $e);
    > return $line . implode($line, $rows) . $line;
    > }

    A fuj, jakie brzydkie spaghetti.
    #v+
    sub text_table {
    my ($two_dim_table) = @_;

    my ($position, $number, $driver);

    format STDOUT_TOP =
    +-----+----+----------------------+
    | Pos | No | Driver |
    +-----+----+----------------------+
    .
    format STDOUT =
    | @>> | @> | @<<<<<<<<<<<<<<<<<<< |
    $position, $number, $driver
    +-----+----+----------------------+
    .

    for my $r (@$two_dim_table) {
    ($position, $number, $driver) = @$r;
    write;
    }
    }
    #v-

    --
    Secunia non olet.
    Stanislaw Klekot


  • 113. Data: 2010-02-25 19:46:39
    Temat: Re: Jaki język?
    Od: Andrzej Kmicic <d...@p...onet.pl>

    Stachu 'Dozzie' K. pisze:
    > On 2010-02-25, Andrzej Kmicic <d...@p...onet.pl> wrote:
    >> Mif pisze:
    >>> PHP to IMO koszmar potrafiący skutecznie zniechęcić do programowania nawet
    >>> dużo starsze osoby. Choć może niektórym odpowiadać, choć osobiście go
    >>> bardzo nie lubię.
    >> A co takiego koszmarnego w PHP ?. PHP to nie tylko język do młócenia
    >> stronek za 100 zł. To łatwy, szybki język skryptowy o bardzo
    >> uniwersalnym zastosowaniu.
    >
    > C też jest łatwym, szybkim językiem (kompilowanym akurat) o bardzo
    > uniwersalnym zastosowaniu. I wiesz co? Nie do wszystkiego jest używany.
    >
    >> Wrzucę tu taka perełkę jaką znalazłem, no napisz to w innym języku tak
    >> prosto w kilku linijkach.
    >
    > Może być Perl?
    >
    >> To tabelka tekstowa robiona z tablicy
    >> dwuwymiarowej :
    >>
    >> +-----+----+----------------------+
    >> | Pos | No | Driver |
    >> +-----+----+----------------------+
    >> | 1 | 1 | Kimi Räikkönen |
    >> +-----+----+----------------------+
    >> | 2 | 2 | Felipe Massa |
    >> +-----+----+----------------------+
    >> | 3 | 22 | Lewis Hamilton |
    >> +-----+----+----------------------+
    >> | 4 | 4 | Robert Kubica |
    >> +-----+----+----------------------+
    >>
    >> function text_table($data) {
    >> $keys = array_keys(end($data));
    >> $size = array_map('strlen', $keys);
    >> foreach(array_map('array_values', $data) as $e)
    >> $size = array_map('max', $size,
    >> array_map('strlen', $e));
    >> foreach($size as $n) {
    >> $form[] = "%-{$n}s";
    >> $line[] = str_repeat('-', $n);
    >> }
    >> $form = '| ' . implode(' | ', $form) . " |\n";
    >> $line = '+-' . implode('-+-', $line) . "-+\n";
    >> $rows = array( vsprintf($form, $keys) );
    >> foreach($data as $e)
    >> $rows[] = vsprintf($form, $e);
    >> return $line . implode($line, $rows) . $line;
    >> }
    >
    > A fuj, jakie brzydkie spaghetti.
    > #v+
    > sub text_table {
    > my ($two_dim_table) = @_;
    >
    > my ($position, $number, $driver);
    >
    > format STDOUT_TOP =
    > +-----+----+----------------------+
    > | Pos | No | Driver |
    > +-----+----+----------------------+
    > .
    > format STDOUT =
    > | @>> | @> | @<<<<<<<<<<<<<<<<<<< |
    > $position, $number, $driver
    > +-----+----+----------------------+
    > .
    >
    > for my $r (@$two_dim_table) {
    > ($position, $number, $driver) = @$r;
    > write;
    > }
    > }
    > #v-
    >

    Może byc perl ale Nie tak łatwo, nazwy kolumn bane są z nazw kluczy
    tablicy asocjacyjnej. A szerokości kolumn ustalane są dynamicznie w
    zaleznosci od tresci !!!.

    AK


  • 114. Data: 2010-02-25 20:04:54
    Temat: Re: Jaki język?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2010-02-25, Andrzej Kmicic <d...@p...onet.pl> wrote:
    >> A fuj, jakie brzydkie spaghetti.
    >> #v+
    >> sub text_table {
    >> my ($two_dim_table) = @_;
    >>
    >> my ($position, $number, $driver);
    >>
    >> format STDOUT_TOP =
    >> +-----+----+----------------------+
    >> | Pos | No | Driver |
    >> +-----+----+----------------------+
    >> .
    >> format STDOUT =
    >> | @>> | @> | @<<<<<<<<<<<<<<<<<<< |
    >> $position, $number, $driver
    >> +-----+----+----------------------+
    >> .
    >>
    >> for my $r (@$two_dim_table) {
    >> ($position, $number, $driver) = @$r;
    >> write;
    >> }
    >> }
    >> #v-

    > Może byc perl ale Nie tak łatwo, nazwy kolumn bane są z nazw kluczy
    > tablicy asocjacyjnej. A szerokości kolumn ustalane są dynamicznie w
    > zaleznosci od tresci !!!.

    Sądzisz że to dużo trudniejsze będzie? Twoja funkcja-perełka w PHP jest
    po prostu brzydka i jest bardzo fajnym przykładem na myślenie typowego
    PHP-owca: nieeleganckie spaghetti, które się naprawdę źle czyta, gościu
    uważa za perełkę. Dlaczego? Bo działa?

    --
    Secunia non olet.
    Stanislaw Klekot


  • 115. Data: 2010-02-25 20:16:17
    Temat: Re: Jaki język?
    Od: Grzegorz Krukowski <r...@o...pl>

    On Thu, 25 Feb 2010 20:04:54 +0000 (UTC), "Stachu 'Dozzie' K."
    <d...@g...eat.some.screws.spammer.invalid> wrote:

    >Sądzisz że to dużo trudniejsze będzie? Twoja funkcja-perełka w PHP jest
    >po prostu brzydka i jest bardzo fajnym przykładem na myślenie typowego
    >PHP-owca: nieeleganckie spaghetti, które się naprawdę źle czyta, gościu
    >uważa za perełkę. Dlaczego? Bo działa?

    Wiesz, nie znając ani PHP, ani Perla, to jego PHPowy kod rozumiem w
    dużym stopniu ,,od ręki'' a Twojego w Perlu (optycznie elegantszego,
    nie przeczę) ni w ząb. Co innego czytelność dla osoby znającej idiomy
    danego języka, a co innego czytelność ogólna. I jeżeli to jest
    czytelny program w Perlu to już się boję, jak wygląda nieczytelny ...
    --
    Grzegorz Krukowski


  • 116. Data: 2010-02-25 21:51:01
    Temat: Re: Jaki język?
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Grzegorz Krukowski <r...@o...pl> napisał(a):
    > Wiesz, nie znając ani PHP, ani Perla, to jego PHPowy kod rozumiem w
    > dużym stopniu ,,od ręki'' a Twojego w Perlu (optycznie elegantszego,
    > nie przeczę) ni w ząb. Co innego czytelność dla osoby znającej idiomy
    > danego języka, a co innego czytelność ogólna. I jeżeli to jest
    > czytelny program w Perlu to już się boję, jak wygląda nieczytelny ...

    @P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub
    p{
    @p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=
    $f=!fork;map{$P=$P[$f^ord
    ($p{$_})&6];$p{$_}=/
    ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.
    ]/&&
    close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep
    rand(2)if/\S/;print

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 15 days, 23 hours, 49 minutes and 43 seconds


  • 117. Data: 2010-02-26 07:05:17
    Temat: Re: Jaki język?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2010-02-25, Grzegorz Krukowski <r...@o...pl> wrote:
    > On Thu, 25 Feb 2010 20:04:54 +0000 (UTC), "Stachu 'Dozzie' K."
    ><d...@g...eat.some.screws.spammer.invalid> wrote:
    >
    >>Sądzisz że to dużo trudniejsze będzie? Twoja funkcja-perełka w PHP jest
    >>po prostu brzydka i jest bardzo fajnym przykładem na myślenie typowego
    >>PHP-owca: nieeleganckie spaghetti, które się naprawdę źle czyta, gościu
    >>uważa za perełkę. Dlaczego? Bo działa?
    >
    > Wiesz, nie znając ani PHP, ani Perla, to jego PHPowy kod rozumiem w
    > dużym stopniu ,,od ręki'' a Twojego w Perlu (optycznie elegantszego,
    > nie przeczę) ni w ząb. Co innego czytelność dla osoby znającej idiomy
    > danego języka, a co innego czytelność ogólna.

    Jego "czytelność ogólna", jak to nazwałeś, to użycie tego, czym PHP
    akurat nie wyróżnia się na tle innych języków imperatywnych i można by
    *to samo* zapisać tak w Perlu, jak w C, Javie, Rubym i Pascalu. Tylko
    dlatego jest czytelniejsze dla ciebie. A przecież nie o to chodzi żeby
    ograniczać się do wspólnej części wszystkich możliwych języków.

    No i co ci przyjdzie z faktu, że osoba w ogóle nie znająca danego języka
    być może zrozumie kod, o ile przebije się przez gąszcz pętli
    i instrukcji warunkowych? Czy będzie się to pisać i konserwować
    wygodniej?

    > I jeżeli to jest
    > czytelny program w Perlu

    Nie. To nie jest czytelny program w Perlu. To jest coś na szybko
    sklecone do wypisania tabelki. A i tak jest bardziej eleganckie od
    przytoczonej funkcji w PHP.

    > to już się boję, jak wygląda nieczytelny ...

    --
    Secunia non olet.
    Stanislaw Klekot


  • 118. Data: 2010-02-26 08:42:54
    Temat: Re: Jaki język?
    Od: Grzegorz Krukowski <r...@o...pl>

    On Fri, 26 Feb 2010 07:05:17 +0000 (UTC), "Stachu 'Dozzie' K."
    <d...@g...eat.some.screws.spammer.invalid> wrote:

    >Jego "czytelność ogólna", jak to nazwałeś, to użycie tego, czym PHP
    >akurat nie wyróżnia się na tle innych języków imperatywnych i można by
    >*to samo* zapisać tak w Perlu, jak w C, Javie, Rubym i Pascalu. Tylko
    >dlatego jest czytelniejsze dla ciebie. A przecież nie o to chodzi żeby
    >ograniczać się do wspólnej części wszystkich możliwych języków.
    Tak, jest czytelniejsze bo zapisj jest podobny jak w wielu innych
    językach.

    Tak, nie o to chodzi aby wykorzystywać tylko podstawowe instrukcje
    języka, ale zaawansowane możliwości można zapisywać czytelniej lub
    nie. Akurat Perl, jak widzę robi to w wariancie mniej czytelnym, tj.
    bez przeczytania opisu języka jest mi trudno zrozumieć o co chodzi.
    >
    >No i co ci przyjdzie z faktu, że osoba w ogóle nie znająca danego języka
    >być może zrozumie kod, o ile przebije się przez gąszcz pętli
    >i instrukcji warunkowych? Czy będzie się to pisać i konserwować
    >wygodniej?
    Widzisz, ja nie jestem zawodowym programistą i też w takim środowisku
    się obracam. I w tym środowisku dużo osób pisze sobie programy które
    coś robią. Ba, 20 lat po odejściu autora program jest często jedynym
    źródłem wiedzy *jak* coś zrobić (mój ulubiony przykład - program
    napisany w 84 w Fortranie, po norwesku, w ABB, wysłany do mojej
    obecnej firmy po wycięsiu wszystkiego czego nie powinniśmy wiedzieć, w
    95 roku dopiero przenieciony na PC. No i teraz zadanie: uaktualnić go
    do obecnych realiów ;)). I jeżeli będzie wykorzystywał zbyt
    zaawansowane sztuczki to nikt poza osobami znającymi dobrze język nie
    wyciągnie z programu żadnej informacji. A tak da się zrozumieć
    algorytm, mniej więcej co gdzie jest robione i po krótkim
    samoszkoleniu się można podjąć próbę zmian.

    Tak więc to co jest wadą z punktu profesjonalistów / bardzo
    zaawansowanych użytkowników niekoniecznie jest prawdą na niższym
    poziomie.

    A na koniec oba warianty (bardziej proceduralnie i skondensowania a'la
    Perl) w Pythonie. Który wariant i w jakim języku jest najbardziej
    cztelny to już pozostawiam czytelnikom.


    # -*- coding: utf-8 -*-

    #+-----+----+----------------------+
    #| Pos | No | Driver |
    #+-----+----+----------------------+
    #| 1 | 1 | Kimi Räikkönen |
    #+-----+----+----------------------+
    #| 2 | 2 | Felipe Massa |
    #+-----+----+----------------------+
    #| 3 | 22 | Lewis Hamilton |
    #+-----+----+----------------------+
    #| 4 | 4 | Robert Kubica |
    #+-----+----+----------------------+


    def RobTabelke(
    naglowek,
    danetabeli,
    margines
    ):
    """ Funkcja generuje gotową tabelkę.
    WEJŚCIE:
    naglowek - krotka z opisem kolumn
    danetabeli - lista z krotkami opisującymi kolejne wiersze
    tabeli
    margines - krotka opisująca ile spacji należy należy wstawić
    aby uzy-
    skać optyczny marines między treścią a
    obramowaniem tabelki
    WYJŚCIE:
    łańcuch znaków z tabelką
    """


    danejakotekst = \
    [naglowek] + \
    map(
    lambda nrwiersza, wiersz: \
    ( unicode(nrwiersza), ) + \
    tuple([ unicode(kolumna) for kolumna in wiersz ]),
    xrange(1, 1 + len(danetabeli)),
    danetabeli
    )


    szerokosckolumn =\
    [
    max([ len(x[idkol]) for x in danejakotekst ])
    for
    idkol in xrange(len(danejakotekst[0]))
    ]


    separatorwierszy = \
    u"+" + \
    u"+".join(
    [
    u"".center(szerokosckolumn[idkol]+2*margines[idkol],
    u"-")
    for
    idkol in xrange(len(szerokosckolumn))
    ]
    ) + \
    u"+"


    wynik = \
    separatorwierszy + u"\n" + \
    ( separatorwierszy + u"\n" ).join(
    [
    u"|" + \
    u"|".join(
    [
    "".center(margines[idkol]) + \
    wiersz[idkol].ljust(szerokosckolumn[idkol]) + \
    "".center(margines[idkol])
    for
    idkol in xrange(len(wiersz))
    ]
    ) + \
    u"|\n"
    for
    wiersz in danejakotekst
    ]
    ) + \
    separatorwierszy

    return wynik




    def DrukujTabelkeJakWPerlu(danetabeli):
    """ Funkcja drukuje gotową tabelkę.
    WEJŚCIE:
    danetabeli - lista z krotkami opisującymi kolejne wiersze
    tabeli
    """
    NAGLOWEK="""+-----+----+----------------------+
    | Pos | No | Driver |
    +-----+----+----------------------+"""

    WIERSZ="""| %-3d | %-2d | %-20s |
    +-----+----+----------------------+"""

    def Licznik(StanPoczatkowy):
    wartosc=StanPoczatkowy
    while True:
    yield wartosc
    wartosc+=1

    print NAGLOWEK
    licznik=Licznik(1)
    for wiersz in danetabeli:
    print WIERSZ % ( (licznik.next(), )+wiersz )



    if __name__=="__main__":

    margines = ( 1, 1, 2 )
    naglowek = ( u"Pos", u"No", u"Driver" )
    tabelka = \
    [
    ( 1, u"Kimi Räikkönen" ),
    ( 2, u"Felipe Massa" ),
    ( 22, u"Lewis Hamilton" ),
    ( 4, u"Robert Kubica" )
    ]

    print RobTabelke(naglowek,tabelka,margines)
    print ""

    DrukujTabelkeJakWPerlu(tabelka)
    --
    Grzegorz Krukowski


  • 119. Data: 2010-02-26 09:14:09
    Temat: Re: Jaki język?
    Od: lolo <n...@n...com>

    >> Java/Javowate - no, nieźle, nieźle... Java Script jest w miarę prosta
    >> - ale co można pisać w tym? Tzn. co można pisać, co będzie atrakcyjne
    >> dla 10-latka?
    >
    > flash ;)
    >
    > za tydzień będzie robił banery
    > po miesiącu będą animowane kodem
    > po pół roku będą już powstawały gry oparte o OOP

    w innym wątku podałem jeszcze
    http://www.flashdesigner.pl/edukacja/
    http://www.flashdesigner.pl/edukacja/srodekdydaktycz
    ny.php

    ale to raczej do zabawy w szybkie efekty wizualne a sama rodzinka flash
    rozrosła się w międzyczasie dość znacznie (flex, air, haxe) i w sporej
    części bazuje na darmowych bibliotekach/środowiskach/kompilatorach - do
    wyboru, do koloru - do zabawy, ale i do nauki całkiem porządnego
    programowania (oop/patterns)


  • 120. Data: 2010-02-26 12:27:44
    Temat: Re: Jaki język?
    Od: "jacem" <j...@1...pl>

    Użytkownik "lolo" <n...@n...com> napisał w wiadomości
    news:4b879114@news.home.net.pl...
    >>> Java/Javowate - no, nieźle, nieźle... Java Script jest w miarę prosta - ale
    >>> co można pisać w tym? Tzn. co można pisać, co będzie atrakcyjne dla
    >>> 10-latka?
    >> flash ;)
    >> za tydzień będzie robił banery
    >> po miesiącu będą animowane kodem
    >> po pół roku będą już powstawały gry oparte o OOP
    > w innym wątku podałem jeszcze
    > http://www.flashdesigner.pl/edukacja/
    > http://www.flashdesigner.pl/edukacja/srodekdydaktycz
    ny.php
    > ale to raczej do zabawy w szybkie efekty wizualne a sama rodzinka flash
    > rozrosła się w międzyczasie dość znacznie (flex, air, haxe) i w sporej części
    > bazuje na darmowych bibliotekach/środowiskach/kompilatorach - do wyboru, do
    > koloru - do zabawy, ale i do nauki całkiem porządnego programowania
    > (oop/patterns)

    A fuj!

strony : 1 ... 11 . [ 12 ] . 13 ... 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: