-
Data: 2022-10-28 14:57:34
Temat: Re: mój obfuskator - problem projektowy
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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.
Następne wpisy z tego wątku
- 28.10.22 15:29 Mateusz Viste
- 28.10.22 16:11 Jivanmukta
- 02.11.22 05:34 Jivanmukta
- 02.11.22 13:37 Jivanmukta
- 02.11.22 14:05 Tomasz Kaczanowski
- 02.11.22 16:00 Jivanmukta
Najnowsze wątki z tej grupy
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
Najnowsze wątki
- 2025-05-06 Gdynia => ML Ops Engineer <=
- 2025-05-06 Warszawa => IT Recruiter <=
- 2025-05-06 Warszawa => Specjalista wsparcia IT - analiza techniczna sprzętu IT <
- 2025-05-06 Warszawa => Tableau UX Designer <=
- 2025-05-06 Protoków komunikacyjny do urządzenia pomiarowego
- 2025-05-06 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-05-06 Warszawa => Key Account Manager IT <=
- 2025-05-06 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-05-06 trasa Londyn - Koszalin
- 2025-05-06 "Unia Europejska poważnie myśli o wprowadzeniu całkowitego zakaz importu gazu
- 2025-05-05 Jak naładować akumulator iRobot DC 14,4V 3300 mAh zasilaczem ?
- 2025-05-05 Kopanie Bitcoinów kosztuje 137.000 $, więcej niż cena 95.000 $
- 2025-05-05 Kraków => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu
- 2025-05-05 Kraków => Production Coordinator / Representant Product Dev <=
- 2025-05-05 Gdynia => Konsultant wdrożeniowy (systemy controlingowe) <=