Article View: pl.comp.programming
Article #217835Re: mój obfuskator - problem projektowy
From: heby
Date: Fri, 28 Oct 2022 12:57
Date: Fri, 28 Oct 2022 12:57
198 lines
10860 bytes
10860 bytes
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.nullbytes.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.
Technical Details
Message-ID:
<tjgjjv$33ilo$1@dont-email.me>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mailReferences:
<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> <e896216c-e3ca-4ec9-9903-8a33d43fcc00n@googlegroups.com> <tjg6o5$31ke4$1@dont-email.me> <6a159c97-995c-4408-9cf8-d14faee45dd9n@googlegroups.com> <tjg8j5$31ke4$2@dont-email.me> <90bbce43-c979-43da-aa26-9397596021c6n@googlegroups.com> <tjgb3e$31ke4$3@dont-email.me> <6f90c461-2fa9-435c-a120-31cae1a9b3a4n@googlegroups.com> <tjgeu5$32t15$2@dont-email.me> <ea6b4629-c1e4-4fbe-b902-720a2213c2e8n@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: heby <heby@poczta.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> <e896216c-e3ca-4ec9-9903-8a33d43fcc00n@googlegroups.com> <tjg6o5$31ke4$1@dont-email.me> <6a159c97-995c-4408-9cf8-d14faee45dd9n@googlegroups.com> <tjg8j5$31ke4$2@dont-email.me> <90bbce43-c979-43da-aa26-9397596021c6n@googlegroups.com> <tjgb3e$31ke4$3@dont-email.me> <6f90c461-2fa9-435c-a120-31cae1a9b3a4n@googlegroups.com> <tjgeu5$32t15$2@dont-email.me> <ea6b4629-c1e4-4fbe-b902-720a2213c2e8n@googlegroups.com> MIME-Version: 1.0 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="abuse@eternal-september.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: <ea6b4629-c1e4-4fbe-b902-720a2213c2e8n@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit