eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJaki język?Re: Jaki język?
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsfeed.straub-
    nv.de!weretis.net!feeder1.news.weretis.net!news.solani.org!not-for-mail
    From: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
    Newsgroups: pl.comp.programming
    Subject: Re: Jaki język?
    Date: Fri, 26 Feb 2010 12:39:48 +0000 (UTC)
    Organization: solani.org
    Lines: 107
    Message-ID: <hm8fek$5fu$4@solani.org>
    References: <hlkh9u$9ji$1@nemesis.news.neostrada.pl> <hlkk0t$igp$1@news.task.gda.pl>
    <hlmbgj$g2t$1@nemesis.news.neostrada.pl> <hlmpjr$6m8$1@news.onet.pl>
    <4b7f001e$1@news.home.net.pl> <hm0p8r$o3h$2@news.agh.edu.pl>
    <hm63j0$ke6$1@news.onet.pl> <hm65ut$73v$1@solani.org>
    <hm6k2v$347$1@news.onet.pl> <hm6l56$6h7$1@solani.org>
    <i...@4...com> <hm7rrd$sb9$1@solani.org>
    <b...@4...com>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=iso-8859-2
    Content-Transfer-Encoding: 8bit
    X-Trace: solani.org 1267187988 5630
    eJwNwYERADEEBMCWItyhHEz0X8L/LpTCcSNoWGw1O58IKtvtohFnn3F0ImfYGKiZ/26d4Ace/hCu
    (26 Feb 2010 12:39:48 GMT)
    X-Complaints-To: a...@n...solani.org
    NNTP-Posting-Date: Fri, 26 Feb 2010 12:39:48 +0000 (UTC)
    X-User-ID: eJwNx8EBwCAIA8CV0BBoxkEq+4/Q3u+IWNHpwXAOR7CNFXWy/obJd0t+30NQlXjGhbulGcj6Aw
    MoEF4=
    Cancel-Lock: sha1:yfGJthvdedOtdp1p0qJ1CrWNgoI=
    User-Agent: slrn/pre0.9.9-111 (Linux)
    X-NNTP-Posting-Host: eJwFwYEBwCAIA7CXilKY51iE/09Ywh0WlR4M53CAg4R7z6nRat26z9Liq8XHbgpr
    QmIJO/MHIxsRgA==
    Xref: news-archive.icm.edu.pl pl.comp.programming:185131
    [ ukryj nagłówki ]

    On 2010-02-26, Grzegorz Krukowski <r...@o...pl> wrote:
    > 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.

    A to wiesz, właściwie w każdym języku tak jest, że konstrukcje językowe
    poza typowymi dla części wspólnej ogółu są niezrozumiałe bez poznania
    języka.

    >>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ć

    Widzisz, od tego jest taka sztuczka jak baza wiedzy i procedur. Fajny
    narządź, wiesz? Przechowuje wiedzę skuteczniej niż program naskrobany na
    kolanie.

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

    Jest wadą, tylko na tym "niższym poziomie" ludzie lubią sobie utrudniać
    życie i nie patrzą perspektywicznie (brak dokumentacji).

    > 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.
    [...]
    > def RobTabelke(
    > naglowek,
    > danetabeli,
    > margines
    > ):
    > """ Funkcja generuje gotową tabelkę.
    > WEJŚCIE:
    > naglowek - krotka z opisem kolumn
    > danetabeli - lista z krotkami opisującymi kolejne wiersze

    Co to jest """?

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

    Co to jest [naglowek], co to jest map() i co to jest lambda? Co to jest
    xrange()?

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

    Co to jest xrange() i jak się ma do poprzedniego dwuargumentowego?

    > separatorwierszy = \
    > u"+" + \
    > u"+".join(
    [...]

    Co to jest 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
    > ]

    Tu już się pogubiłem. Za dużo konstrukcji Python-specific, za bardzo
    rozstrzelone żeby na jeden raz (czy nawet na trzy razy) objąć je
    wzrokiem. To już potworek w PHP jest czytelniejszy.

    Objaśnienie: znam Pythona, potrafię w nim pisać (choć nie tak biegle jak
    w Perlu). W pytaniach wypunktowałem tylko o co może zapytać osobnik,
    nawet programista, który Pythona nie zna.

    --
    Secunia non olet.
    Stanislaw Klekot

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: