eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingmój obfuskator - problem projektowyRe: mój obfuskator - problem projektowy
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
    e.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.or
    g!reader01.eternal-september.org!.POSTED!not-for-mail
    From: heby <h...@p...onet.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: mój obfuskator - problem projektowy
    Date: Fri, 28 Oct 2022 14:57:34 +0200
    Organization: A noiseless patient Spider
    Lines: 199
    Message-ID: <tjgjjv$33ilo$1@dont-email.me>
    References: <tj64ne$36qsg$3@portraits.wsisiz.edu.pl> <tj64rj$1mmv4$1@dont-email.me>
    <tj8epv$3afh$1@portraits.wsisiz.edu.pl> <tj8vg4$21ll8$2@dont-email.me>
    <tjabcs$t53e$2@portraits.wsisiz.edu.pl> <tjan0p$2drd6$1@dont-email.me>
    <tjb0ft$10mf6$1@portraits.wsisiz.edu.pl> <tjb0up$2eot6$1@dont-email.me>
    <tjb1g2$10mnn$2@portraits.wsisiz.edu.pl> <tjb2ee$2ep64$1@dont-email.me>
    <tjg379$2q700$1@portraits.wsisiz.edu.pl> <tjg38l$314k8$2@dont-email.me>
    <tjg3ua$2qa65$1@portraits.wsisiz.edu.pl> <tjg46f$314k8$3@dont-email.me>
    <e...@g...com>
    <tjg6o5$31ke4$1@dont-email.me>
    <6...@g...com>
    <tjg8j5$31ke4$2@dont-email.me>
    <9...@g...com>
    <tjgb3e$31ke4$3@dont-email.me>
    <6...@g...com>
    <tjgeu5$32t15$2@dont-email.me>
    <e...@g...com>
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Injection-Date: Fri, 28 Oct 2022 12:57:35 -0000 (UTC)
    Injection-Info: reader01.eternal-september.org;
    posting-host="758fd47d21ac65228da440c0da78f4f9";
    logging-data="3263160";
    mail-complaints-to="a...@e...org";
    posting-account="U2FsdGVkX1/HxuiUk5azPzEsYOQ8aFue"
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
    Thunderbird/102.4.0
    Cancel-Lock: sha1:JiCuURCEb4zqTrtvKAuUXbLtDBg=
    In-Reply-To: <e...@g...com>
    Content-Language: en-US
    Xref: news-archive.icm.edu.pl pl.comp.programming:215918
    [ ukryj nagłówki ]

    On 28/10/2022 14:11, Maciek Godek wrote:
    >>> Java pod wieloma innymi względami jest podobna do C++.
    >> Dokładnie tak jak PHP jest podobny do C++.
    > Nie, zupełnie inaczej.

    Tak, podobieństwa są inne, ale istota podobieństwa taka sama. Zapis ma
    kilka cech wspólnych, w większości kompletnie nieistotnych.

    >> Algol też się chyba złapie. Ma if-y.
    > Algol jest pradziadkiem prawie wszystkich języków programowania,
    > więc trudno żeby się nie załapał.

    Czyli Algol podobny do C++, Javy i PHP? To jest teza, czy to już przegięcie?

    > Napisałem o składni "for".
    > W C piszesz
    > for (i = 0; i < N; ++i)
    > a w PHP
    > for ($i = 0; $i < N; ++$i)
    > Jedyna różnica pomiędzy powyższymi zapisami jest natury finansowej.

    No a z for(auto x: my_fancy_container) to jak będzie?

    >> Wiele języków ma iteracje po kontenerach. Czy czyni je składniowo
    >> podobnymi do siebie?
    > Nie. Ale czyni je to podobnymi do siebie pod względem posiadania
    > składni na iterowanie po kontenerach.

    To niestety oznacza całkiem spory zbiór języków programowania. Zgaduje
    że wszystkie współczesne są "podobne". Troche bida. Mają takie kryteria
    szybko dojdziesz do Jedynego Języka.

    >> A może to najzwyczajniej podstawowa jednostka każdego języka imperatywnego?
    > Na pewno nie każdego.

    Tak, brainfuck się nie łapie.

    >> Znowu masz szeroko pojęte "podobieństwo" które na koniec sprowadza się
    >> do "bo też ma klamry i ify".
    > I for, i do while, i switch case, i ...

    Tak, to dużo zmienia. W zasadzie mogę wyjąć dowolny język programowania
    i mam spore szanse na takie "podobieństwa".

    Może języki mało co się do siebie róznią w tej kwestii, a prawdziwe i
    ważne róznice są kompletnie gdzie indziej?

    > Ale tak naprawdę nietrudno się domyślić o co chodzi.
    > Chodzi o to, że przechodząc od jednego języka do drugiego,
    > nie musisz radykalnie zmieniać nawyków.

    Hmmm jak mogę łatwo przejśc z std::shared_ptr<std::optional<Foo> > na
    PHP bez zmiany nawyków?

    > Na przykład, przechodząc z C do Fortha, trzeba nawyki zmienić dość mocno.

    Z tym się nikt nie spiera.

    Ja się spieram ze spłycenia PHP i C++ do kilku klamr i ifów.

    >>> Java i C++ to języki podobne, bo Java celowo była tak projektowana,
    >>> żeby była podobna do C++. (I nie nazwałbym tego stwierdzenia ryzykownym)
    >> Mówisz o wskaźnikach, szablonach i wielodziedziczeniu? Czy o klamrach,
    >> znowu?
    > Mówię o klasach oraz modyfikatorach "private", "public" i "protected".
    > Wskaźniki, szablony i wielodziedziczenie to różnice, a więc nie podobieństwa.

    Czyli "klamry". Znowu mamy podobieństwo na poziomie Kazika z łopatą i
    koparki. Oba podobne. Kwestia jakości gumki w pojęciu "podobny".

    >> W ten sposób dostajemy niezwykle użyteczne pojęcie "język podobny" a
    >> dzięki uproszczeniu rzeczy trudnych i istotnych, możemy zredukować to
    >> pojęcie do jednej instancji, Języka Uniwersalnego, który używa bajtów,
    >> więc każdy się łapie (poza BCPL).
    > Jeżeli widzisz w tym jakąś użyteczność, to ok.

    Nie widzę ani śladu. Do głowy by mi nie przyszło mowić, że PHP i C++ to
    "podobne" języki, a co dopiero uważać że używanie bajtów to jakiś argument.

    >>> Natomiast są takie języki, jak np. unlambda czy whitespace,
    >>> które są pod tym względem podobne do brainfucka, że
    >>> - są ezoteryczne
    >>> - nie można w nich używać słów
    >> Spacja to nie słowo? Tabulator to nie słowo? Nie przesadzasz czasem?
    > Oczywiście, chciałem napisać "definiować słów".

    W języku maszynowym też nie można. Ale ma ify, tylko napisane np. jako
    np. beq. Czy to czyni z niego jezyk podobny do C++? Różnica między PHP i
    C++ to podobno tylko $. Tutaj niewiele wiecej: ot tylko inne słowo.
    Przeciez to prawie to samo. A że nie ma klarm? W C++ nie ma $ i nie
    przeszkadza to dostrzegać podobieństwo.

    >> Te klamry to poprawny termin określający cały zbiór róznych języków
    >> programowania. Spytaj google.
    > Pewnie nawet zbiór różnych języków programowania w jakiś sposób
    > do siebie podobnych.

    Tak, klamrami. I tyle.

    Troche jak twierdzić, że wszystkie obrazy malarzy holenderskich są
    podobne, bo płaskie.

    >>>> "Kolega pisze na komputerze a ja długopisem. Dlatego właśnie można
    >>>> powiedzieć, że robimy to bardzo podobnie, bo oboje piszemy".
    >>> I pewnie nawet obaj używamy alfabetu łacińskiego.
    >> Tak, to tez podobieństwo, dlatego nie widzę sensu nauki innych języków.
    > Nie rozumiem argumentu.

    Ja też go nie rozumiem. Na tym polega żart.

    >> Nauka alfabetu załatwia mówienie we wszystkich jezykach które ich
    >> używają, a hiszpański i angielski są w zasadzie identyczne, jak PHP i
    >> C++.
    > Nie załatwia, i nikt tu do tej pory nie twierdził, że załatwia.

    Jak to nie, przecież PHP i C++ są podobne. Ba, są nawet nieśmiałe próby
    kilka akapitów wyżej, że "łatwo się między nimi przenosić". Zgadza się,
    jesli zagadnieniem jest "policz sumę wszystkich liczb od 0 do 10" to
    nawet można to zrobić sed'em, jak ktoś lubi sado maso.

    >>> Podobieństwo dwóch przedmiotów rozumiem w taki sposób,
    >>> że istnieją w tych przedmiotach pewne cechy, które są identyczne.
    >> I ktoś się z tym spiera?
    > No, najwyraźniej Ty.

    Trochę spieram się o szerkość słwoa "podobny" a nie o jego użycie. Ktoś
    nieopacznie przeczyta że PHP to prawie to samo co C++ i nastepny startup
    niewypali. Trzeba ostrożnie z takimi bzdurami.

    >> Jak na razie nie udało się znaleźc nic innego, podobnego, między C++ i
    >> PHP. Tylko klamry.
    > Udało się, tylko Ty twierdzisz, że się nie udało.

    Nie. Tylko klamry. Do tej pory padł tylko jeden argument, który okazał
    się być zbiorem nazw z bibliteki standardowej. Wszystko inne jest inne,
    a jeśli "podobne" to na poziomie klamrowym.

    >> Zaznaczam, że strcmp itd są dostępne przez abi z
    >> dowolnego języka, wiec cięzko mówić, że to cecha specyficzna dla C++.
    > Jak wywołujesz w PHP substr, to nie wywołujesz funkcji w C, tylko funkcję
    > w PHP, którą ktoś tak nazwał.

    I która działa dokładnie tak samo?

    https://www.php.net/manual/en/security.filesystem.nu
    llbytes.php

    No patrz, podobieństwo, jak zwykle, klamrowe.

    > Bo PHP po prostu zmałpował wiele nazw funkcji z biblioteki standardowej C.

    Żeby tylko. One działaja inaczej, bo zapomniał zmałpować całej reszty.
    Innymi słowy: ktoś projektuje jezyk, ale tak strasznie stara się go
    zmałpować z innego, że wychodzi coś bez większego sensu.

    >> Ja kiedyś usilnie uzywalem PHP do zagadnień niewebowych. Naprawdę,
    >> uważałem go za przydatny język do zarządzania serwerm. Taki bash, tylko
    >> nie pisany przez durniów, choć niewątpliwe bardzo lepiej nie było.
    > Nie wiem, czy bash był pisany przez durniów.

    Myślę, że tak. Oczywiscie z poziomu świata dzisiaj. Wtedy mógł być
    objawieniem, szczególnie przy Forth czy BCPL. Dzisiaj większośc
    konstrukcji w bashu jest zaprojektowana błędnie, upierdliwie,
    dziecinnie, bez śladu sensownego projektu, planu, koncepcji. Ludzie
    lubią takie języki. Stąd popularnośc Perla, Basha, PHP i kilku innych.
    Nie rozumiem fenomenu, ale akceptuje.

    Pisanie w bashu czegokolwiek większego niż kilkanascie linijek boli co
    prawda mniej, niż w Perlu, ale dalej stanowi niebezpieczeństwo wylewu
    bądź detonacji istoty szarej.

    Świadomośc podobnych problemów w PHP pozwoliła by nie doprowadzić do
    upadku niejeden bank, choć nie mam pewności, czy autor zlinkowanego
    kilka postów temu tekstu miał pojęcie co pisze. Ale zakładajmy, że miał
    i PHP jest ważny w bankach.

    > Nie wiem, czy PHP nie był.

    Pierwsze wersja PHP były przefajne. Pamiętam nawet wykład jakiegoś
    lokalnego doktoranta pokazującego na bazie PHP jak *NIE* wolno
    projektować języków. Wybacz, po tylu latach wyleciało mi nazwisko z
    głowy. Z resztą umierałem wtedy ze śmiechu, to jestem usprawidliwiony.

    > Wszystkie te rzeczy powstawały w jakimś tam swoim kontekście,
    > nie czuję się w pozycji oceniania kompetencji ich twórców.

    Zgadza się. Ale wszystko podobne do C++ bo mają ify. Czy wiesz, że bash
    ma klamry? Ojej! To prawie to samo.

    >> Jednak po wielu wpadkach z nim, które są charakterystyczne dla języków
    >> projektowanych na kolanie, nie sięgnąłem po niego ponownie. Jest popsuty
    >> po wieloma względami, niebezpieczny, głupi.
    > Jest. Ale to samo można powiedzieć o C++.
    > (i mamy kolejne podobieństwo!)

    Jak już wspomniałem, mamy inną definicję "podobieństa".

    To, że słoń wygląda trochę jak kura to nie znacza, że to to samo
    podobieństwo co krzesła i balkonu. To różne podobieństwa.

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: