eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPowerShell - ktos uzywa?Re: PowerShell - ktos uzywa?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
    From: PawelS <c...@1...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: PowerShell - ktos uzywa?
    Date: Sun, 17 Mar 2013 21:46:14 +0100
    Organization: ICM, Uniwersytet Warszawski
    Lines: 125
    Message-ID: <ki5a2o$fnr$1@news.icm.edu.pl>
    References: <5142e7de$0$1250$65785112@news.neostrada.pl>
    <c...@g...com>
    <514459fd$0$1220$65785112@news.neostrada.pl>
    <ki1mht$28j$1@news.icm.edu.pl>
    <514471c3$0$1220$65785112@news.neostrada.pl>
    <ki452i$2lt$1@news.icm.edu.pl>
    <5145a8b3$0$26686$65785112@news.neostrada.pl>
    NNTP-Posting-Host: muszelka.nat.student.pw.edu.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.icm.edu.pl 1363553179 16123 194.29.137.5 (17 Mar 2013 20:46:19 GMT)
    X-Complaints-To: u...@n...icm.edu.pl
    NNTP-Posting-Date: Sun, 17 Mar 2013 20:46:19 +0000 (UTC)
    User-Agent: Thunderbird 2.0.0.24 (X11/20110622)
    In-Reply-To: <5145a8b3$0$26686$65785112@news.neostrada.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:202231
    [ ukryj nagłówki ]

    R.e.m.e.K pisze:
    > Dnia Sun, 17 Mar 2013 11:14:42 +0100, PawelS napisał(a):
    >> To jest niestety problem ... wikipedii i wikipedystów,
    >> przedstawiających takie, a nie inne przykłady
    >> a na to nic nie poradzimy ...
    >
    > Zawsze mozesz wyedytowac wiki i poprawic, sam tak czasem robie :-)
    Musiałbym mieć: więcej czasu, lepszy dostęp do Internetu,
    być bardziej pracowitym, aby umieć znaleźć gdzie jest to wiki
    i te specyficzne przykłady oraz wiedzieć jak to poprawić,
    bo nie wiem czy anonimowo tak jak na pl/en.wikipedia.org można.
    Nauczyłem się kiedyś podstaw perla korzystając
    ze stron www.tutorialspoint.com perldoc.perl.org search.cpan.org,
    staram się unikać i nie próbować nauczyć składni,
    która dla mnie wydaje się być abstrakcyjna,
    chyba że nie można czegoś inaczej napisać.

    >> To powyżej powinno być zapisane:
    >> my $var; # using strict w perlu trzeba deklarować jednak zmienne ;)
    >> $var="Magiczna liczba to 150\n";
    >> print($var);
    >> # na to niestety nie ma akurat rady, chyba że własna sub:
    >> # coś na kształt PHP:
    >> # sub preg_replace {
    >> # my ($pattern,$replacement,$subject)=@_;
    >> # $subject=~s/$pattern/$replacement/g;
    >> # return $subject;
    >> # }
    >> $var=~s/\d+/-1/; # lub $var=preg_replace('\d+', '-1', $var);
    >> print($var);
    >> Jak dla mnie tak jest czytelniej,
    >> wystarczy przestać używać wynalazków i skrótów perla.
    >
    > Ale jak sam piszesz przestac nie tak latwo, bo "na to niestety nie ma rady".
    To może wyrażę się precyzyjniej:
    nie próbować nauczyć się i zrozumieć tej dziwnej składni,
    o ile rzecz jasna nie jest to niezbędne:
    na preg_replace nie ma wyjścia: $var=~s///g; musi być,
    analogicznie jest z $count=$#LIST+1 lub if ($#LIST+1>0) {} # niepusta
    Ja tak zrobiłem, nauczyłem się tego co jest dla mnie logiczne,
    plus pewne niezbędniki: wspomniany preg_replace, czy $#LIST+1.
    Niestety ma to swoje dobre i złe strony:
    z jednej strony mój kod można rzecz jest w miarę czytelny,
    dla osób znających składnie analogiczną do C,
    z drugiej strony sam mogę mieć problemy ze zrozumieniem
    skryptów w perlu korzystających z dziwnej składni:
    np: to co poniżej przedstawiłeś: "$["
    nie potrafię tego przeanalizować, co najwyżej mogę uruchomić
    i po wyniku się domyślić co to robi ...

    >>> Albo:
    >>> $n = $#a - $[ + 1;
    >>> print "ilosc elementow w wektorze: $n \n";
    >>>
    >>> Taki $#a czy $[ jako zywo przypomina mi idee Brainfucka, ktory jest fajny,
    >>> bo dowcipny i pomyslowy, ale jest tylko zartem.
    >
    > btw powyzszy przyklad nie jest juz z wiki, tylko jakiegos studenckiego
    > skryptu.
    Jako że nie ma innego sposobu sprawdzenia
    (ja przynajmniej nie znam) nauczyłem się tego skrótu "$#",
    ale to kolejne: "$[" to nie mam pojęcia to co jest
    i pewnie nigdy nie poznam do póki nie będę musiał
    coś zrobić i nie będzie innego wyjścia.

    >> Niestety z racji, że python narzuca na formatowanie,
    >> to i nie bardzo mi się podoba.
    >> Często stosuję tego typu pseduo kompresję kodu:
    >> if (conditional) { $a=1; $B[2]=2; $C['key']=3; }
    >> a gdzie indziej jeśli to potrzebne dekompresję:
    >> if (conditional) {
    >> $a=1; # bo jest to pierwsza zmienna w if ;)
    >> $B[2]=2; # bo jest to druga zmienna w if, to klucz = 2 i wartość = 2
    >> $C['key']=3; # bo musi być inaczej niż w poprzednich liniach
    >> }
    >
    > Teraz ja z ciekawosci spytam. Po co stosujesz kompresje? Masz jakis cel w
    > tym, zeby plik zrodla bym mniejszy? Osobiscie unikam takich praktyk jak
    > ognia, bo po roku, gdy musze ten kod czytac to chetnie sam bym sie kopnal w
    > dupe za taki styl. Znaczy juz nie musze, bo od lat tego nie robie.
    Z bardzo prostej przyczyny, żeby proste instrukcje przypisania,
    analogiczne do tych przedstawionych powyżej
    nie przesłaniały rzeczywistego celu kodu.
    Oczywiście w perlu lub PHP powyższe instrukcje
    można skompresować/zapisać nieco dziwaczniej:
    PERL: ($a, $B[2], $C['key'])=(1,2,3);
    PHP: list($a, $B[2], $C['key'])=array(1,2,3);
    Oczywiście sporadycznie się to zdarza, ale zdarza się,
    że zapisuję kilka instrukcji w jednej linii,
    aby te proste instrukcje nie przesłaniały
    prawdziwego celu kodu.

    > Czy to nie zalezy od ustawien kompilatora? Poza tym uzywajac dobrego edytora
    > mozna o tym problemie zapomniec bez wzgledu na to czy uzywasz spacji, taba
    > czy obu naraz. Mam na mysli edytor, ktory w locie podmieni taby na spacje
    > lub spacja na taby - tak jak chcesz.
    > Zatem jest to problem wagi lekkiej, w przeciwienstwie do perlowych kompresji
    > zabetonowanych w jezyk na zawsze.
    Jak sam napisałeś używając dobrego edytora.
    Tylko napisz w jaki sposób zmusisz wszystkich
    by używali "dobrego edytora" (cokolwiek to też znaczy).
    Pozwolę sobie jeszcze raz siebie zacytować:
    > Przeglądając kody źródłowe (like C) często widzę
    > mieszany styl wcięć, kilka linii ładnie spacjami,
    > kolejne linie ładnie tabulatorami,
    > i jeśli ja mam inne ustawienia np: vim ts=4 sw=4
    > to niestety kod rozjeżdża mi się na ekranie,
    Nie pamiętam co to było, ale być może to mogło być:
    glibc(src), QT(src), PHP(src), gd(src), KDE(src),
    tam gdzieś widziałem mieszaną składnię,
    co od razu dało się zauważyć bo mój edytor (kate/kwrite)
    trochę inaczej wyświetla wcięcia spacją i tabulatorami,
    w sensie te dwa znaki są rozróżnialne.
    Tak więc, Ty możesz sobie używać dobry edytor,
    ale niestety wiele osób używa np: vi/vim z różnymi ustawieniami,
    a potem szukasz czegoś (np: definicji danej funkcjonalności)
    w kodzie źródłowym i widzisz taką mieszaninę wcięć.

    > A jednak sie jakos wykonuje chyba. Czyli moze python jest "madrzejszy" niz
    > sie wydaje? :-)
    A ja jednak pozwolę sobie jednak nie akceptować
    wymuszania na mnie formatowania :P
    Ze względu na konfigurowalność szerokości tabulacji
    stosuję wszędzie wcięcia tabulatorem,
    poza jednolinijkowacami uruchamianymi w bashu.

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: