Thread View: pl.comp.programming
66 messages
66 total messages
Page 1 of 2
Started by Jivanmukta
Mon, 24 Oct 2022 13:42
Page 1 of 2 • 66 total messages
mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Mon, 24 Oct 2022 13:42
Date: Mon, 24 Oct 2022 13:42
46 lines
3280 bytes
3280 bytes
Piszę tutaj bo na pl.como.lang.php nie dostałem odpowiedzi.
Napisałem w C++ obfuskator PHP 5/7/8. Obfuskator umożliwia m.in.
zaciemnienie projektu wykorzystującego Composera, tzn. katalog vendor.
Ponieważ obfuskuję samą aplikację a nie frameworki i biblioteki z
katalogu vendor potrzebuję zrobić żeby identifikatory z vendor nie były
zastępowane losowymi. W tym celu analizuję kod frameworków i bibliotek z
katalogu vendor w poszukiwaniu identyfikatorów (zmiennych, funkcji,
metod, właściwości itd.). Problem w tym że jeśli katalog vendor jest
duży, tzn. liczy wiele podkatalogów, proces analizy trwa długo, nawet
kilka godzin. Żeby nie analizować katalogu vendor wielokrotnie (przy
każdej obfuskacji projektu) zapamiętuje znalezione w vendor
identyfikatory w cache'u (pliku xml-owym). Modyfikacja katalogu vendor
(np. dodanie Composerem nowej biblioteki lub update) nie powoduje u mnie
ponownego parsowania całego vendor bo zapamiętuję w cache'u timestampy
podkatalogów vendor.
Czy takie rozwiązanie jest do przyjęcia, tzn. że pierwsza obfuskacja
może trwać nawet kilka godzin, ale późniejsze już w minutach?
Jeśli nie, to czy ktoś mógłby mi rzucić pomysł jak rozwiązać ten
problem? Chcę żeby mój obfuskator był uniwersalny, tzn. potrafił
zaciemnić projekt wykorzystujący różne frameworki i różne biblioteki.
Dużo czasu zajmuje przetwarzanie wyrazeniami regularnymi kazdego wiersza
kazdego pliku duzego katalogu vendor.
const string remembering_regexps[index_what_num][2] =
{{"(static|abstract|final)?\\s*(public)?\\s*(static|abstract|final)?\\s*(function)\\s+("
+ ::identifier + ")\\s*\\(", ""},
{"(static|abstract|final)?\\s*(private|protected|public)?\\s*(static|abstract|final)?\\s*(function)\\s+("
+ ::identifier + ")\\s*\\(", ""},
{"\\b(function)\\s+(" + ::identifier + ")\\s*\\(", ""},
{"(static|private|protected|public)?\\s*(readonly)?\\s*([_a-zA-Z0-9]+)?\\s*(\\$("
+ ::identifier + ")\\s*=.*,?\\s*)+", // uproszczenie
"(static|private|protected|public)?\\s*(readonly)?\\s*([_a-zA-Z0-9]+)?\\s*(\\$("
+ ::identifier + ")\\s*,?\\s*)+"}, // uproszczenie
{"(?!(private|protected|public))\\s*(\\s*|[^:\\-][^:>])\\s*(\\\\\\\\)*\\$("
+ ::identifier + ")", ""}}; // pasuje do "instanceof
$var" a nie pasuje do "self::$prop;" czy "->$prop"
Ponadto dla każdego pliku wywołuję skrypt PHP robiący tokenizację.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Mon, 24 Oct 2022 13:44
Date: Mon, 24 Oct 2022 13:44
4 lines
1269 bytes
1269 bytes
On 24/10/2022 15:42, Jivanmukta wrote: > Napisałem w C++ obfuskator PHP Komu i do czego to jest potrzebne?
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Tue, 25 Oct 2022 10:46
Date: Tue, 25 Oct 2022 10:46
8 lines
1146 bytes
1146 bytes
W dniu 24.10.2022 o 15:44, heby pisze: > On 24/10/2022 15:42, Jivanmukta wrote: >> Napisałem w C++ obfuskator PHP > > Komu i do czego to jest potrzebne? > Jesteś prowokatorem czy jesteś niedorozwinięty?
Re: mój obfuskator - problem projektowy
Author: heby
Date: Tue, 25 Oct 2022 15:31
Date: Tue, 25 Oct 2022 15:31
9 lines
1613 bytes
1613 bytes
On 25/10/2022 12:46, Jivanmukta wrote: >>> Napisałem w C++ obfuskator PHP >> Komu i do czego to jest potrzebne? > Jesteś prowokatorem czy jesteś niedorozwinięty? Raczej praktykiem. Skoro coś trwa godzinami, a przeciez poprawki i refaktoringo się same nie zrobią, wiec x100, to musi istnieć jakiś *NAPRAWDĘ* znakomity powód babrania się w tym gównianym PHP aby było widać ale nie było widać. Ciekawośc mnie zżera, jaki to powód.
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Wed, 26 Oct 2022 02:00
Date: Wed, 26 Oct 2022 02:00
17 lines
1863 bytes
1863 bytes
W dniu 25.10.2022 o 17:31, heby pisze: > On 25/10/2022 12:46, Jivanmukta wrote: >>>> Napisałem w C++ obfuskator PHP >>> Komu i do czego to jest potrzebne? >> Jesteś prowokatorem czy jesteś niedorozwinięty? > > Raczej praktykiem. Skoro coś trwa godzinami, a przeciez poprawki i > refaktoringo się same nie zrobią, wiec x100, to musi istnieć jakiś > *NAPRAWDĘ* znakomity powód babrania się w tym gównianym PHP aby było > widać ale nie było widać. Ciekawośc mnie zżera, jaki to powód. > Mnie PHP bardzo odpowiada a ostatnie wersje PHP wcale nie uważam za gówniane. Lubię C++ i języki do niego podobne. -- Ta wiadomość e-mail została sprawdzona pod kątem wirusów przez oprogramowanie antywirusowe AVG. www.avg.com
Re: mój obfuskator - problem projektowy
Author: heby
Date: Wed, 26 Oct 2022 07:18
Date: Wed, 26 Oct 2022 07:18
6 lines
1570 bytes
1570 bytes
On 26/10/2022 04:00, Jivanmukta wrote: > Mnie PHP bardzo odpowiada a ostatnie wersje PHP wcale nie uważam za > gówniane. Lubię C++ i języki do niego podobne. Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie cechy PHP są podobne do C++ i Ci się spodobały?
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Wed, 26 Oct 2022 10:00
Date: Wed, 26 Oct 2022 10:00
9 lines
1434 bytes
1434 bytes
W dniu 26.10.2022 o 09:18, heby pisze: > On 26/10/2022 04:00, Jivanmukta wrote: >> Mnie PHP bardzo odpowiada a ostatnie wersje PHP wcale nie uważam za >> gówniane. Lubię C++ i języki do niego podobne. > > Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie > cechy PHP są podobne do C++ i Ci się spodobały? > Składnia.
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Wed, 26 Oct 2022 10:04
Date: Wed, 26 Oct 2022 10:04
7 lines
1687 bytes
1687 bytes
W dniu 26.10.2022 o 09:18, heby pisze: > Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie > cechy PHP są podobne do C++ i Ci się spodobały? > I to że wiele funkcji się tak samo lub podobnie nazywa, dzięki czemu łatwo mi było przejść na PHP (C++ miałem na studiach). Poza tym lubię paradygmat imperatywny i obiektowość.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Wed, 26 Oct 2022 10:08
Date: Wed, 26 Oct 2022 10:08
6 lines
1583 bytes
1583 bytes
On 26/10/2022 12:00, Jivanmukta wrote: >> Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie >> cechy PHP są podobne do C++ i Ci się spodobały? > Składnia. W sensie templates, orientacja na wartości, silne typowanie?
Re: mój obfuskator - problem projektowy
Author: heby
Date: Wed, 26 Oct 2022 10:09
Date: Wed, 26 Oct 2022 10:09
6 lines
1541 bytes
1541 bytes
On 26/10/2022 12:04, Jivanmukta wrote: > Poza tym lubię > paradygmat imperatywny i obiektowość. Sugneruje polubić funkcyjność, a obiektowośc jest ogólnie zrobiona wszędzie lepiej niż w PHP.
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Wed, 26 Oct 2022 10:17
Date: Wed, 26 Oct 2022 10:17
8 lines
1469 bytes
1469 bytes
W dniu 26.10.2022 o 12:08, heby pisze: > On 26/10/2022 12:00, Jivanmukta wrote: >>> Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie >>> cechy PHP są podobne do C++ i Ci się spodobały? >> Składnia. > > W sensie templates, orientacja na wartości, silne typowanie? Dobrze wiesz że nie.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Wed, 26 Oct 2022 10:33
Date: Wed, 26 Oct 2022 10:33
8 lines
1724 bytes
1724 bytes
On 26/10/2022 12:17, Jivanmukta wrote: >>>> Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie >>>> cechy PHP są podobne do C++ i Ci się spodobały? >>> Składnia. >> W sensie templates, orientacja na wartości, silne typowanie? > Dobrze wiesz że nie. Wiec co? Klamry?
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Wed, 26 Oct 2022 11:07
Date: Wed, 26 Oct 2022 11:07
10 lines
1604 bytes
1604 bytes
W dniu 26.10.2022 o 12:09, heby pisze: > On 26/10/2022 12:04, Jivanmukta wrote: >> Poza tym lubię paradygmat imperatywny i obiektowość. > > Sugneruje polubić funkcyjność, a obiektowośc jest ogólnie zrobiona > wszędzie lepiej niż w PHP. > Ale do większości zastosowań i przeciętnej wielkości projektów - wystarczająco dobrze. Ja piszę systemy o wielkości 20-kilku KLOC z wykorzystaniem CodeIgnitera i mi takie OOP wystarczy.
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Wed, 26 Oct 2022 11:08
Date: Wed, 26 Oct 2022 11:08
11 lines
1628 bytes
1628 bytes
W dniu 26.10.2022 o 12:33, heby pisze: > On 26/10/2022 12:17, Jivanmukta wrote: >>>>> Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie >>>>> cechy PHP są podobne do C++ i Ci się spodobały? >>>> Składnia. >>> W sensie templates, orientacja na wartości, silne typowanie? >> Dobrze wiesz że nie. > > Wiec co? Klamry? > Tak, klamry i składnia instrukcji, danych i klas.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Wed, 26 Oct 2022 12:49
Date: Wed, 26 Oct 2022 12:49
21 lines
1923 bytes
1923 bytes
On 26/10/2022 13:08, Jivanmukta wrote:
>> Wiec co? Klamry?
> Tak, klamry
Ok.
> i składnia instrukcji
Nie ma czegoś takiego, chyba że chodzi o funkcje, których składnia jest
mało podobna.
>, danych
PHP wspiera semantykę kopiowania, alingment danych, operacje na pointerach?
> i klas.
PHP wspiera szablony?
Żeby się na koniec nie okazało przypadkiem, że to podobieństwo, to tylko
{}, bo dopiero by było!
Re: mój obfuskator - problem projektowy
Author: heby
Date: Wed, 26 Oct 2022 12:51
Date: Wed, 26 Oct 2022 12:51
8 lines
1754 bytes
1754 bytes
On 26/10/2022 13:07, Jivanmukta wrote: >> Sugneruje polubić funkcyjność, a obiektowośc jest ogólnie zrobiona >> wszędzie lepiej niż w PHP. > Ale do większości zastosowań Czy większośc Twoich zastosowań to dawanie kodu źródłowego klientwi w formie nieczytelnej? Nie wydaje Ci się, że moze jednak wybrałes zły język do postawionego celu?
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Wed, 26 Oct 2022 16:04
Date: Wed, 26 Oct 2022 16:04
11 lines
2004 bytes
2004 bytes
W dniu 26.10.2022 o 14:51, heby pisze: > On 26/10/2022 13:07, Jivanmukta wrote: >>> Sugneruje polubić funkcyjność, a obiektowośc jest ogólnie zrobiona >>> wszędzie lepiej niż w PHP. >> Ale do większości zastosowań > > Czy większośc Twoich zastosowań to dawanie kodu źródłowego klientwi w > formie nieczytelnej? Nie wydaje Ci się, że moze jednak wybrałes zły > język do postawionego celu? > Moje programy są czytelne.
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Wed, 26 Oct 2022 16:33
Date: Wed, 26 Oct 2022 16:33
14 lines
1860 bytes
1860 bytes
W dniu 26.10.2022 o 18:04, Jivanmukta pisze: > W dniu 26.10.2022 o 14:51, heby pisze: >> On 26/10/2022 13:07, Jivanmukta wrote: >>>> Sugneruje polubić funkcyjność, a obiektowośc jest ogólnie zrobiona >>>> wszędzie lepiej niż w PHP. >>> Ale do większości zastosowań >> >> Czy większośc Twoich zastosowań to dawanie kodu źródłowego klientwi w >> formie nieczytelnej? Nie wydaje Ci się, że moze jednak wybrałes zły >> język do postawionego celu? >> > Moje programy są czytelne. > czytelne, zrefaktoryzowane, dobrze skomentowane, przetestowane i wydajne
Re: mój obfuskator - problem projektowy
Author: heby
Date: Wed, 26 Oct 2022 18:17
Date: Wed, 26 Oct 2022 18:17
4 lines
1626 bytes
1626 bytes
On 26/10/2022 18:33, Jivanmukta wrote: > wydajne Dalej mowa o PHP? Bo się pogubiłem.
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Thu, 27 Oct 2022 04:47
Date: Thu, 27 Oct 2022 04:47
25 lines
2009 bytes
2009 bytes
W dniu 26.10.2022 o 14:49, heby pisze: > On 26/10/2022 13:08, Jivanmukta wrote: >>> Wiec co? Klamry? >> Tak, klamry > > Ok. > >> i składnia instrukcji > > Nie ma czegoś takiego, chyba że chodzi o funkcje, których składnia jest > mało podobna. Jak to nie ma? A if, pętle while, do-while, for, instrukcja switch, wyrażenia, ternariusz, przypisania - nie są podobne? > >> , danych > > PHP wspiera semantykę kopiowania, alingment danych, operacje na pointerach? A stringi i liczby nie są podobne? > >> i klas. > > PHP wspiera szablony? A coś Ty się tak do tych szablonów przyczepił. Składnia klas jest podobna w obu językach. OOP w PHP opiera się na koncepcjach Stroustrupa.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Thu, 27 Oct 2022 07:29
Date: Thu, 27 Oct 2022 07:29
59 lines
3452 bytes
3452 bytes
On 27/10/2022 06:47, Jivanmukta wrote: >>> i składnia instrukcji >> Nie ma czegoś takiego, chyba że chodzi o funkcje, których składnia >> jest mało podobna. > Jak to nie ma? A if, pętle while, do-while, for, instrukcja switch, > wyrażenia, ternariusz, przypisania - nie są podobne? Nie wszystkie. auto x = foo(); char* y = floating_point_variable; //Error itd. Przypominam, bo chyba Ci się lekko rozjachało, że mówa o C++ a nie C. for( auto x : container) [...] >> PHP wspiera semantykę kopiowania, alingment danych, operacje na >> pointerach? > A stringi Masz na myśli std::string? Ani trochę. Jeśli mówisz o char* to: 1) to nie jest The String w C++ 2) a==b w tym wypadku nie zadziała jak w PHP Nie widzę podobieństwa, ani trochę. > i liczby nie są podobne? Liczby? One są podobne we wszystkich językach programowania. >>> i klas. >> PHP wspiera szablony? > A coś Ty się tak do tych szablonów przyczepił. Stwierdziłeś, że podobny do C++. Staram się dowiedzieć co w nim podobnego. 90% współczesnego C++ w postaci biblitek standardowych to szablony a w porządnych programach w C++ bez szablonów cieżko pisać. > Składnia klas jest podobna w obu językach. Nie jest. Przykładowo PHP nie woła konstruktora klasy nadrzędnej w sposób automatyczny co jest *zasadniczym* problemem. Nie ma overloadingu co powoduje problem z różnymi konstruktorami tej samej klasy. Wielokrotne dziedziczenie wpierane tylko przez interfejsy, zamiast tego jakaś proteza Traits. Składnia deklaracji jak żywcem wyjęta z Javy. Jak zwykle problemy z tym, że dzisiaj jeden z "architektów" PHP zapił na komersie i leży pod stołem, to musiał zrobić drugi, z 6C. Nie, klasy w PHP nie mają niewiele wspólnego z tymi od C++. Znowu, chodzi Ci tylko o klamry. > OOP w PHP opiera się na > koncepcjach Stroustrupa. Niewątpliwie.
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Thu, 27 Oct 2022 07:45
Date: Thu, 27 Oct 2022 07:45
12 lines
1992 bytes
1992 bytes
W dniu 27.10.2022 o 09:29, heby pisze: >>> PHP wspiera szablony? >> A coś Ty się tak do tych szablonów przyczepił. > > Stwierdziłeś, że podobny do C++. Staram się dowiedzieć co w nim > podobnego. 90% współczesnego C++ w postaci biblitek standardowych to > szablony a w porządnych programach w C++ bez szablonów cieżko pisać. Podejrzewam, że i szablony się w końcu w PHP pojawią. -- Ta wiadomość e-mail została sprawdzona pod kątem wirusów przez oprogramowanie antywirusowe AVG. www.avg.com
Re: mój obfuskator - problem projektowy
Author: Maciek Godek
Date: Thu, 27 Oct 2022 09:40
Date: Thu, 27 Oct 2022 09:40
18 lines
2670 bytes
2670 bytes
czwartek, 27 października 2022 o 09:29:25 UTC+2 heby napisał(a): > Nie widzę podobieństwa, ani trochę. > > i liczby nie są podobne? > Liczby? One są podobne we wszystkich językach programowania. > >>> i klas. > >> PHP wspiera szablony? > > A coś Ty się tak do tych szablonów przyczepił. > Stwierdziłeś, że podobny do C++. Staram się dowiedzieć co w nim > podobnego. 90% współczesnego C++ Może tu jest owa kość niezgody zakopana. Wydaje mi się, że OP ma na myśli raczej historycznego C++, tzn. takiego jeszcze z epoki cfront (czyli przed standaryzacją ISO z 98 roku), który rozszerzył składnię języka C o konstrukcje obiektowe, a w którym jeszcze nie było wynalazków w rodzaju szablonów.
Re: mój obfuskator - problem projektowy
Author: Tomasz Kaczanowski
Date: Thu, 27 Oct 2022 10:18
Date: Thu, 27 Oct 2022 10:18
25 lines
2427 bytes
2427 bytes
W dniu 27.10.2022 o 11:40, Maciek Godek napisał: > czwartek, 27 października 2022 o 09:29:25 UTC+2 heby napisał(a): > > >> Nie widzę podobieństwa, ani trochę. >>> i liczby nie są podobne? >> Liczby? One są podobne we wszystkich językach programowania. >>>>> i klas. >>>> PHP wspiera szablony? >>> A coś Ty się tak do tych szablonów przyczepił. >> Stwierdziłeś, że podobny do C++. Staram się dowiedzieć co w nim >> podobnego. 90% współczesnego C++ > > Może tu jest owa kość niezgody zakopana. > > Wydaje mi się, że OP ma na myśli raczej historycznego C++, tzn. takiego > jeszcze z epoki cfront (czyli przed standaryzacją ISO z 98 roku), > który rozszerzył składnię języka C o konstrukcje obiektowe, a w którym > jeszcze nie było wynalazków w rodzaju szablonów. Ale przecież szablony to też na długo przed 98 rokiem były w C++... -- http://zrzeda.pl
Re: mój obfuskator - problem projektowy
Author: heby
Date: Thu, 27 Oct 2022 11:06
Date: Thu, 27 Oct 2022 11:06
10 lines
2223 bytes
2223 bytes
On 27/10/2022 09:45, Jivanmukta wrote: >> Stwierdziłeś, że podobny do C++. Staram się dowiedzieć co w nim >> podobnego. 90% współczesnego C++ w postaci biblitek standardowych to >> szablony a w porządnych programach w C++ bez szablonów cieżko pisać. > Podejrzewam, że i szablony się w końcu w PHP pojawią. Oczywiście, jak Maciek z 6C pójdzie do zawodówki za 3 lata, to naczelnym architektem zostanie Zosia z 4B. Tak że nie wątpię, że się pojawią. Od razu mogę postawić jakąs kasę, że do ich porównywania będzie operator ====, bo co warte jest życie programisty bez zabawy?
Re: mój obfuskator - problem projektowy
Author: heby
Date: Thu, 27 Oct 2022 15:54
Date: Thu, 27 Oct 2022 15:54
15 lines
2254 bytes
2254 bytes
On 27/10/2022 17:37, Jivanmukta wrote: > Na stronie > https://thestory.is/pl/journal/python-vs-php-zalety-roznice/ > przeczytasz: > Szybkość > Pod względem szybkości lepiej wypada PHP. Najnowsza wersja PHP jest > prawie trzykrotnie szybsza od typowego programu Pythona>, co ma ogromne > znaczenie na przykład w wypadku systemu bankowego, gdzie codziennie > generowane są miliony odsłon. Czy systemy bankowe są pisane w Pythone albo zgoła PHP? Ja na przykład mam Chevroleta, który jest ponad trzyktotnie szybszy od Malucha, co ma niebagatelne znaczenie dla transportu kolejowego, gdzie codziennie transportuej się miliony ton węg... a nie czekaj...
Re: mój obfuskator - problem projektowy
Author: Maciek Godek
Date: Fri, 28 Oct 2022 07:29
Date: Fri, 28 Oct 2022 07:29
51 lines
4245 bytes
4245 bytes
czwartek, 27 października 2022 o 12:19:00 UTC+2 Tomasz Kaczanowski napisał(a): > W dniu 27.10.2022 o 11:40, Maciek Godek napisał: > > czwartek, 27 października 2022 o 09:29:25 UTC+2 heby napisał(a): > > > > > >> Nie widzę podobieństwa, ani trochę. > >>> i liczby nie są podobne? > >> Liczby? One są podobne we wszystkich językach programowania. > >>>>> i klas. > >>>> PHP wspiera szablony? > >>> A coś Ty się tak do tych szablonów przyczepił. > >> Stwierdziłeś, że podobny do C++. Staram się dowiedzieć co w nim > >> podobnego. 90% współczesnego C++ > > > > Może tu jest owa kość niezgody zakopana. > > > > Wydaje mi się, że OP ma na myśli raczej historycznego C++, tzn. takiego > > jeszcze z epoki cfront (czyli przed standaryzacją ISO z 98 roku), > > który rozszerzył składnię języka C o konstrukcje obiektowe, a w którym > > jeszcze nie było wynalazków w rodzaju szablonów. > Ale przecież szablony to też na długo przed 98 rokiem były w C++... Wikipedia podaje, że szablony pojawiły się po 1993 roku (czyli co najmniej 11 lat po wydaniu pierwszej wersji języka już nazywanego C++). Wydaje mi się, że przez długi czas główny kontakt z C++, jaki mieli programiści, był zapośredniczony przez kompilator Borlanda. Wg. Wikipedii wsparcie dla STLa otrzymał dopiero w 2000 roku, czyli po opracowaniu standardu ISO (nie wiem, czy wcześniej miał wsparcie dla składni szablonów, ale zdziwiłbym się, gdyby tak było). Dlatego osoby, które uczyły się C++ przed 2000 rokiem, mogły mieć na tę kwestię inną percepcję. Ja się go uczyłem w 2003 z książki Stroustrupa. Byłem w o tyle komfortowej sytuacji, że w tamtym czasie był już dostępny C++ w GCC (aczkolwiek pamiętam z książki Kernighana i Pike'a "Lekcja Programowania", oryginalnie wydanej w 1999, że były tam jakieś narzekania na niestabilność i błędy w STL - a oni akurat mieli bezpośredni dostęp do pracy Stroustrupa w Bell Labs). Pamiętam, że jak oddawałem na laborce program w C++ z szablonami, to prowadzący robił wielkie oczy. A z tym PHP to ciekawa sprawa. Pierwsze wersje były bardzo kiepskie i bardzo popularne. Najnowsze wersje to już dość przyzwoicie zaprojektowany język, ale jego popularność wydaje się marginalna. (Z C++ jest na odwrót: język z każdym kolejnym wydaniem staje się coraz gorszy, i chyba właśnie dzięki temu jako tako udaje mu się popularność utrzymać)
Re: mój obfuskator - problem projektowy
Author: Tomasz Kaczanowski
Date: Fri, 28 Oct 2022 08:11
Date: Fri, 28 Oct 2022 08:11
72 lines
4921 bytes
4921 bytes
W dniu 28.10.2022 o 09:29, Maciek Godek napisał: > czwartek, 27 października 2022 o 12:19:00 UTC+2 Tomasz Kaczanowski napisał(a): >> W dniu 27.10.2022 o 11:40, Maciek Godek napisał: >>> czwartek, 27 października 2022 o 09:29:25 UTC+2 heby napisał(a): >>> >>> >>>> Nie widzę podobieństwa, ani trochę. >>>>> i liczby nie są podobne? >>>> Liczby? One są podobne we wszystkich językach programowania. >>>>>>> i klas. >>>>>> PHP wspiera szablony? >>>>> A coś Ty się tak do tych szablonów przyczepił. >>>> Stwierdziłeś, że podobny do C++. Staram się dowiedzieć co w nim >>>> podobnego. 90% współczesnego C++ >>> >>> Może tu jest owa kość niezgody zakopana. >>> >>> Wydaje mi się, że OP ma na myśli raczej historycznego C++, tzn. takiego >>> jeszcze z epoki cfront (czyli przed standaryzacją ISO z 98 roku), >>> który rozszerzył składnię języka C o konstrukcje obiektowe, a w którym >>> jeszcze nie było wynalazków w rodzaju szablonów. >> Ale przecież szablony to też na długo przed 98 rokiem były w C++... > > Wikipedia podaje, że szablony pojawiły się po 1993 roku > (czyli co najmniej 11 lat po wydaniu pierwszej wersji języka już > nazywanego C++). > > Wydaje mi się, że przez długi czas główny kontakt z C++, jaki mieli programiści, > był zapośredniczony przez kompilator Borlanda. Wg. Wikipedii wsparcie > dla STLa otrzymał dopiero w 2000 roku, czyli po opracowaniu standardu ISO > (nie wiem, czy wcześniej miał wsparcie dla składni szablonów, ale zdziwiłbym > się, gdyby tak było). aż spojrzałem na półkę...Tam mam stare wydanie Pasji C++ - rok wydania 97... Sam korzystałem np z kompilatora Maxona - tam dużo konstrukcji było opartych na template'ach, dzięki czemu uzyskiwano w C++ bardzo mały kod wynikowy (szczególnie jeśli porównało się z tym co generował SASC). Ale z tego co pamiętam, to w Borlandzie (3.1) też template'y działały. > > Dlatego osoby, które uczyły się C++ przed 2000 rokiem, mogły mieć > na tę kwestię inną percepcję. Uczyłem się długo przed 2000 > > Ja się go uczyłem w 2003 z książki Stroustrupa. Byłem w o tyle > komfortowej sytuacji, że w tamtym czasie był już dostępny C++ w GCC > (aczkolwiek pamiętam z książki Kernighana i Pike'a "Lekcja Programowania", > oryginalnie wydanej w 1999, że były tam jakieś narzekania na niestabilność > i błędy w STL - a oni akurat mieli bezpośredni dostęp do pracy Stroustrupa > w Bell Labs). > > Pamiętam, że jak oddawałem na laborce program w C++ z szablonami, > to prowadzący robił wielkie oczy. zdarza się. W zasadzie template'ów używałem (mniej lub bardziej rozumnie) na laboratoriach, tak jak Ty. Tyle, że było to w latach 90... > > A z tym PHP to ciekawa sprawa. Pierwsze wersje były bardzo kiepskie > i bardzo popularne. Najnowsze wersje to już dość przyzwoicie > zaprojektowany język, ale jego popularność wydaje się marginalna. > (Z C++ jest na odwrót: język z każdym kolejnym wydaniem staje się > coraz gorszy, i chyba właśnie dzięki temu jako tako udaje mu się > popularność utrzymać) no cóż, tak bywa - życie. Bo to jedna ciekawa gałąź rozwoju została ucięta i wyparła ją gorsza? -- http://kaczus.ppa.pl
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Fri, 28 Oct 2022 08:17
Date: Fri, 28 Oct 2022 08:17
1 lines
1290 bytes
1290 bytes
I jeszcze symbole operatorów i komentarzy są podobne w obu językach.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Fri, 28 Oct 2022 08:17
Date: Fri, 28 Oct 2022 08:17
9 lines
2316 bytes
2316 bytes
On 28/10/2022 10:11, Tomasz Kaczanowski wrote: > aż spojrzałem na półkę...Tam mam stare wydanie Pasji C++ - rok wydania > 97... Sam korzystałem np z kompilatora Maxona - tam dużo konstrukcji > było opartych na template'ach, dzięki czemu uzyskiwano w C++ bardzo mały > kod wynikowy (szczególnie jeśli porównało się z tym co generował SASC). Używałem w tym czasie SASC na Amidze. O ile pamiętam, on generował kod pośredni w C. Nie był najlepszej jakości, ale jako baza na zabawę z C++ był wystarczający. Z szablonami, oczywiście.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Fri, 28 Oct 2022 08:18
Date: Fri, 28 Oct 2022 08:18
4 lines
1627 bytes
1627 bytes
On 28/10/2022 10:17, Jivanmukta wrote: > I jeszcze symbole operatorów i komentarzy są podobne w obu językach. No własnie mówiłem, "klamry".
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Fri, 28 Oct 2022 08:30
Date: Fri, 28 Oct 2022 08:30
9 lines
1602 bytes
1602 bytes
W dniu 28.10.2022 o 10:18, heby pisze: > On 28/10/2022 10:17, Jivanmukta wrote: >> I jeszcze symbole operatorów i komentarzy są podobne w obu językach. > > No własnie mówiłem, "klamry". > > W sumie podobieństwo obu języków głownei polega na tym, że ich twórcy najpierw programowali w C.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Fri, 28 Oct 2022 08:34
Date: Fri, 28 Oct 2022 08:34
11 lines
2106 bytes
2106 bytes
On 28/10/2022 10:30, Jivanmukta wrote: >>> I jeszcze symbole operatorów i komentarzy są podobne w obu językach. >> No własnie mówiłem, "klamry". > W sumie podobieństwo obu języków głownei polega na tym, że ich twórcy > najpierw programowali w C. PHP nie jest podobny do C ani C++ z kilku fudamentalnych powodów. Zacznij od silnego typowania, wskaźników, zarządzania pamięcią, szablonów. Ja wiem, że dokumentacja do PHP odwołuje się co chwile do C/C++. Ale oni to robią chyba tylko aby ten dziecinny jezyk zestawić z czymś użytecznym.
Re: mój obfuskator - problem projektowy
Author: Maciek Godek
Date: Fri, 28 Oct 2022 08:53
Date: Fri, 28 Oct 2022 08:53
44 lines
4315 bytes
4315 bytes
piątek, 28 października 2022 o 10:11:46 UTC+2 Tomasz Kaczanowski napisał(a): > W dniu 28.10.2022 o 09:29, Maciek Godek napisał: > > czwartek, 27 października 2022 o 12:19:00 UTC+2 Tomasz Kaczanowski napisał(a): > >> W dniu 27.10.2022 o 11:40, Maciek Godek napisał: > >>> czwartek, 27 października 2022 o 09:29:25 UTC+2 heby napisał(a): > >>> > >>> > >>>> Nie widzę podobieństwa, ani trochę. > >>>>> i liczby nie są podobne? > >>>> Liczby? One są podobne we wszystkich językach programowania. > >>>>>>> i klas. > >>>>>> PHP wspiera szablony? > >>>>> A coś Ty się tak do tych szablonów przyczepił. > >>>> Stwierdziłeś, że podobny do C++. Staram się dowiedzieć co w nim > >>>> podobnego. 90% współczesnego C++ > >>> > >>> Może tu jest owa kość niezgody zakopana. > >>> > >>> Wydaje mi się, że OP ma na myśli raczej historycznego C++, tzn. takiego > >>> jeszcze z epoki cfront (czyli przed standaryzacją ISO z 98 roku), > >>> który rozszerzył składnię języka C o konstrukcje obiektowe, a w którym > >>> jeszcze nie było wynalazków w rodzaju szablonów. > >> Ale przecież szablony to też na długo przed 98 rokiem były w C++... > > > > Wikipedia podaje, że szablony pojawiły się po 1993 roku > > (czyli co najmniej 11 lat po wydaniu pierwszej wersji języka już > > nazywanego C++). > > > > Wydaje mi się, że przez długi czas główny kontakt z C++, jaki mieli programiści, > > był zapośredniczony przez kompilator Borlanda. Wg. Wikipedii wsparcie > > dla STLa otrzymał dopiero w 2000 roku, czyli po opracowaniu standardu ISO > > (nie wiem, czy wcześniej miał wsparcie dla składni szablonów, ale zdziwiłbym > > się, gdyby tak było). > aż spojrzałem na półkę...Tam mam stare wydanie Pasji C++ - rok wydania > 97... Sam korzystałem np z kompilatora Maxona - tam dużo konstrukcji > było opartych na template'ach, dzięki czemu uzyskiwano w C++ bardzo mały > kod wynikowy (szczególnie jeśli porównało się z tym co generował SASC). > Ale z tego co pamiętam, to w Borlandzie (3.1) też template'y działały. Aż sprawdziłem, i masz rację. W Borlandzie 3.1 nie było jeszcze STLa, ale procesor szablonów już był, i były generyczne funkcje min i max oraz kilka generycznych kolekcji (ARRAYS, BAGS, DEQUES, DLIST, QUEUES, SETS, STACSK, VECT)
Re: mój obfuskator - problem projektowy
Author: Maciek Godek
Date: Fri, 28 Oct 2022 09:00
Date: Fri, 28 Oct 2022 09:00
17 lines
2818 bytes
2818 bytes
piątek, 28 października 2022 o 10:34:26 UTC+2 heby napisał(a): > On 28/10/2022 10:30, Jivanmukta wrote: > >>> I jeszcze symbole operatorów i komentarzy są podobne w obu językach. > >> No własnie mówiłem, "klamry". > > W sumie podobieństwo obu języków głownei polega na tym, że ich twórcy > > najpierw programowali w C. > PHP nie jest podobny do C ani C++ z kilku fudamentalnych powodów. A może: pod pewnymi względami jest, a pod innymi nie jest? > Zacznij od silnego typowania, wskaźników, zarządzania pamięcią, szablonów. W C nie ma szablonów, a typowanie też nie jest zbyt silne. Co do zarządzania pamięcią, oto pmiętny cytat z Rasmusa Lerdorfa: "I'm not a real programmer. I throw together things until it works then I move on. The real programmers will say "Yeah it works but you're leaking memory everywhere. Perhaps we should fix that." I’ll just restart Apache every 10 requests. "
Re: mój obfuskator - problem projektowy
Author: heby
Date: Fri, 28 Oct 2022 09:17
Date: Fri, 28 Oct 2022 09:17
17 lines
2557 bytes
2557 bytes
On 28/10/2022 11:00, Maciek Godek wrote: >> PHP nie jest podobny do C ani C++ z kilku fudamentalnych powodów. > A może: pod pewnymi względami jest, a pod innymi nie jest? Tak. Ale dodałbym, że jest podobny pod względami mało istotnymi. Wyglądu. Czyli "klamry". >> Zacznij od silnego typowania, wskaźników, zarządzania pamięcią, szablonów. > W C nie ma szablonów, a typowanie też nie jest zbyt silne. Zdanie wyżej masz "C albo C++". Nie manipuluj. > Co do zarządzania pamięcią, oto pmiętny cytat z Rasmusa Lerdorfa: > "I'm not a real programmer. I throw together things until it works then I move on. The real programmers will say "Yeah it works but you're leaking memory everywhere. Perhaps we should fix that." I’ll just restart Apache every 10 requests." Czy ktoś tutaj napisał, że C/C++ ma lepsze/gorsze zarządzanie pamięcią? Ma *INNE* od PHP. Podobieństwa praktycznie nie istnieją.
Re: mój obfuskator - problem projektowy
Author: Maciek Godek
Date: Fri, 28 Oct 2022 09:32
Date: Fri, 28 Oct 2022 09:32
29 lines
3354 bytes
3354 bytes
piątek, 28 października 2022 o 11:18:00 UTC+2 heby napisał(a): > On 28/10/2022 11:00, Maciek Godek wrote: > >> PHP nie jest podobny do C ani C++ z kilku fudamentalnych powodów. > > A może: pod pewnymi względami jest, a pod innymi nie jest? > Tak. Ale dodałbym, że jest podobny pod względami mało istotnymi. > Wyglądu. Czyli "klamry". Nie tylko klamry. Z C++ zapożyczył składnię deklarowania klas. Semantyki może nie. W każdym razie zgoda że podobieństwo jest raczej powierzchowne. > > Co do zarządzania pamięcią, oto pmiętny cytat z Rasmusa Lerdorfa: > > "I'm not a real programmer. I throw together things until it works then I move on. The real programmers will say "Yeah it works but you're leaking memory everywhere. Perhaps we should fix that." I’ll just restart Apache every 10 requests." > Czy ktoś tutaj napisał, że C/C++ ma lepsze/gorsze zarządzanie pamięcią? > Ma *INNE* od PHP. Podobieństwa praktycznie nie istnieją. Jasne. Na tym polega podobieństwo: że pod jakimiś względami jest taki sam, a pod innymi względami jest inny. Gdyby pod każdym względem był taki sam, to nie byłby podobny, tylko identyczny. Pod względem składni PHP i C są do siebie podobne. Pod względem semantyki PHP jest bardziej podobny do Pythona, a C do Pascala. Jak weźmiesz np. Lamborghini Diablo, i resoraka Lamborghini Diablo, to też będą do siebie podobne, chociaż jeden z nich będzie dużo mniejszy i nie będzie nawet miał silnika.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Fri, 28 Oct 2022 09:49
Date: Fri, 28 Oct 2022 09:49
40 lines
3584 bytes
3584 bytes
On 28/10/2022 11:32, Maciek Godek wrote: >> Tak. Ale dodałbym, że jest podobny pod względami mało istotnymi. >> Wyglądu. Czyli "klamry". > Nie tylko klamry. Z C++ zapożyczył składnię deklarowania klas. > Semantyki może nie. Czyli "klamry"? >> Czy ktoś tutaj napisał, że C/C++ ma lepsze/gorsze zarządzanie pamięcią? >> Ma *INNE* od PHP. Podobieństwa praktycznie nie istnieją. > Jasne. Na tym polega podobieństwo: że pod jakimiś względami jest taki sam, > a pod innymi względami jest inny. Pod jakimi względami zarządzanie pamięcą w PHP jest podobne do C++? Pozwól że ja zacznę: PHP ma prymitywny RAII. > Gdyby pod każdym względem był taki sam, to nie byłby podobny, tylko identyczny. Rzecz w tym "podobny". Czy kangur jest podobny do fotela? Tak: oba obiekty składają się z fermionów. > Pod względem składni PHP i C są do siebie podobne. Niewątpliwie należy mocno naciągnąć tą "cechę" aby uzasadnić takie twierdzenia. > Jak weźmiesz np. Lamborghini Diablo, i resoraka Lamborghini Diablo, to też będą do siebie podobne, > chociaż jeden z nich będzie dużo mniejszy i nie będzie nawet miał silnika. Jak by to było takie podobieństwo, to bym nie protestował. W PHP są tylko "klamry" podobne do C++. Pozostałe cechy są skrajnie różne. Oba imperatywne, ale to akurat 95% języków na rynku ma tą cechę. PHP to zupełnie inny język, ze składnią kradzioną nie tylko z C++ ale również z wysypiska śmieci, chorych urojeń i przypadkowych pomysłów. Niewątpliwie znajdzie się tam też podobieństwo do JS, Moduli i COBOLa. Wystarczy mieć odpowiednio elastyczną definicję, że jak dodawanie to "+" to już podobne. Z czym nie ma problemu, wszak elastycznośc definicji jest najzwyczajniej opinią.
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Fri, 28 Oct 2022 10:01
Date: Fri, 28 Oct 2022 10:01
5 lines
1668 bytes
1668 bytes
W dniu 28.10.2022 o 11:17, heby pisze: Podobieństwa praktycznie nie istnieją. > Dla mnie takie cechy jak imperatywność i obiektowość to niebanalne własności obu języków. Z tymi klamerkami przesadzasz.
Re: mój obfuskator - problem projektowy
Author: Maciek Godek
Date: Fri, 28 Oct 2022 10:08
Date: Fri, 28 Oct 2022 10:08
61 lines
5205 bytes
5205 bytes
piątek, 28 października 2022 o 11:49:28 UTC+2 heby napisał(a): > >> Czy ktoś tutaj napisał, że C/C++ ma lepsze/gorsze zarządzanie pamięcią? > >> Ma *INNE* od PHP. Podobieństwa praktycznie nie istnieją. > > Jasne. Na tym polega podobieństwo: że pod jakimiś względami jest taki sam, > > a pod innymi względami jest inny. > Pod jakimi względami zarządzanie pamięcą w PHP jest podobne do C++? To zależy jak zarządzasz pamięcią. Np jeżeli programujesz w C tylko wywołując malloc i nigdy nie wywołując free, to podejrzewam, że taka strategia może być identyczna ze strategią zarządzaniem pamięcią we wczesnych wersjach PHP (czyli: cała pamięć jest zwalniana przez system operacyjny po zakończeniu procesu). Co do współczesnych wersji PHP, to jeżeli np. używasz funkcji shmop_*, to zarządzanie taką pamięcią niewiele się różni od tego, co byś pisał w C. > Pozwól że ja zacznę: PHP ma prymitywny RAII. > > Gdyby pod każdym względem był taki sam, to nie byłby podobny, tylko identyczny. > Rzecz w tym "podobny". Czy kangur jest podobny do fotela? Tak: oba > obiekty składają się z fermionów. > > Pod względem składni PHP i C są do siebie podobne. > Niewątpliwie należy mocno naciągnąć tą "cechę" aby uzasadnić takie > twierdzenia. Nieprawda. Składnia pętli for jest praktycznie identyczna. Podobnie jak pozostałe instrukcje sterujące (if, while, switch, do while). Nazwy wielu funkcji operujących na stringach są żywcem wzięte z biblioteki standardowej języka C. W PHP jest nawet funkcja "define", która została tak "zaprojektowana", żeby przypominać preprocesor języka C (którego wielu programistów używało do definiowania stałych w programie) > > Jak weźmiesz np. Lamborghini Diablo, i resoraka Lamborghini Diablo, to też będą do siebie podobne, > > chociaż jeden z nich będzie dużo mniejszy i nie będzie nawet miał silnika. > Jak by to było takie podobieństwo, to bym nie protestował. To jest dokładnie takie podobieństwo. Jedno i drugie to zabawka, tylko jedna bardziej niebezpieczna. Choć nawet i to jest dość pozorne, bo choć mogłoby się wydawać, że nikt nie będzie próbował jeździć resorakiem po prawdziwych drogach, programiści oczywiście zaczęli to robić, i w efekcie trudno powiedzieć, co jest bardziej niebezpieczne. > W PHP są tylko "klamry" podobne do C++. Pozostałe cechy są skrajnie > różne. Oba imperatywne, ale to akurat 95% języków na rynku ma tą cechę. > PHP to zupełnie inny język, ze składnią kradzioną nie tylko z C++ ale > również z wysypiska śmieci, chorych urojeń i przypadkowych pomysłów. Czyli z dokładnie tych samych źródeł, co C++. Kolejne podobieństwo. > Niewątpliwie znajdzie się tam też podobieństwo do JS, Moduli i COBOLa. > Wystarczy mieć odpowiednio elastyczną definicję, że jak dodawanie to "+" > to już podobne. Z czym nie ma problemu, wszak elastycznośc definicji > jest najzwyczajniej opinią. Dokładnie. Dlatego spieranie się, że coś jest "zupełnie niepodobne do czegoś innego", nie ma większego sensu.
Re: mój obfuskator - problem projektowy
Author: Tomasz Kaczanowski
Date: Fri, 28 Oct 2022 10:09
Date: Fri, 28 Oct 2022 10:09
18 lines
2220 bytes
2220 bytes
W dniu 28.10.2022 o 12:01, Jivanmukta napisał: > W dniu 28.10.2022 o 11:17, heby pisze: > Podobieństwa praktycznie nie istnieją. >> > Dla mnie takie cechy jak imperatywność i obiektowość to niebanalne > własności obu języków. Z tymi klamerkami przesadzasz. > Ale obiektowość możesz uzyskać w wielu innych językach. Jest kwestia tego jak jest wspierana i jak zaimplementowana. Inna rzecz, ze samo podobieństwo - to kwestia indywidualnej optyki. Nam się wydaje na przykład, że większość azjatów się od siebie nie różni, bo patrzymy na pewne szczególne punkty przy ocenie. Azjaci patrzą na inne i oni bez problemu się rozróżniają. -- http://kaczus.ppa.pl
Re: mój obfuskator - problem projektowy
Author: heby
Date: Fri, 28 Oct 2022 10:32
Date: Fri, 28 Oct 2022 10:32
93 lines
6096 bytes
6096 bytes
On 28/10/2022 12:08, Maciek Godek wrote: > To zależy jak zarządzasz pamięcią. Oczywiście. Wszak w C++ można używać np. garbage collectorow. Co czyni go podobnym do Javy. Prawda? W tym tępie dojdziemy za chwilę do wniosku, że wszystkie języki programowania są identyczne. W końcu każdy jest turing-complete, wiec można emulować w każdym co tylko sobie chcesz. > Np jeżeli programujesz w C tylko wywołując malloc i nigdy nie wywołując free, > to podejrzewam, że taka strategia może być identyczna ze strategią zarządzaniem > pamięcią we wczesnych wersjach PHP (czyli: cała pamięć jest zwalniana przez > system operacyjny po zakończeniu procesu). Oooo właśnie. Gdyby na przykład do koparki przymocowasz szpadel zamiast lemiesza, to taka strategia może być bardzo podobna do Kazika z łopatą. Co czyni Kazika i koparkę podobnymi. > Co do współczesnych wersji PHP, to jeżeli np. używasz funkcji shmop_*, > to zarządzanie taką pamięcią niewiele się różni od tego, co byś pisał w C. A używasz i/lub znasz kogoś kto używa? I wiesz, że nie są do tego samego co malloc/new? >> Niewątpliwie należy mocno naciągnąć tą "cechę" aby uzasadnić takie >> twierdzenia. > Nieprawda. > Składnia pętli for jest praktycznie identyczna. Serio? W C++, który ma być ponoć podobny, jest: for( auto x : container) [...] > Podobnie jak pozostałe > instrukcje sterujące (if, while, switch, do while). A wies,z że są prawi identyczne równiez w JS, Javie i wielu innych? Zaryzykujesz, że Java i C++ to jezyki "podobne" bo mają te same instrukcje co prawie każdy jezyki imperatywny? W takich oparach absurdu będzie cieżko znaleźc język "niepodobny". No chyba, że brainfuck. > Nazwy wielu funkcji operujących na stringach są żywcem wzięte > z biblioteki standardowej języka C. I trylion innych, niepodobnych, do obsługi stringów, z czego te podobne do C w zasadzie mogą być używane przez bylekogo - kwestia abi do glibc lub nazwania funkcji. > W PHP jest nawet funkcja "define", która została tak "zaprojektowana", > żeby przypominać preprocesor języka C (którego wielu programistów > używało do definiowania stałych w programie) Do robienia prymitywnych substytutów. #define w C jest o wiele bardziej skomplikowana, co nie jest, zaznaczam, ani trochę zaletą. >>> Jak weźmiesz np. Lamborghini Diablo, i resoraka Lamborghini Diablo, to też będą do siebie podobne, >>> chociaż jeden z nich będzie dużo mniejszy i nie będzie nawet miał silnika. >> Jak by to było takie podobieństwo, to bym nie protestował. > To jest dokładnie takie podobieństwo. Nie, to dwa różne języki o wspólnej inspiracji. *Ważnych* detali je różniących jest zdecydowanie za dużo, aby była mowa o tym że są podobne, bo "klamry". >> W PHP są tylko "klamry" podobne do C++. Pozostałe cechy są skrajnie >> różne. Oba imperatywne, ale to akurat 95% języków na rynku ma tą cechę. >> PHP to zupełnie inny język, ze składnią kradzioną nie tylko z C++ ale >> również z wysypiska śmieci, chorych urojeń i przypadkowych pomysłów. > Czyli z dokładnie tych samych źródeł, co C++. Kolejne podobieństwo. "Kolega pisze na komputerze a ja długopisem. Dlatego właśnie można powiedzieć, że robimy to bardzo podobnie, bo oboje piszemy". Jesteś pewny, że rozumiesz słowo "podobieństwo" tak samo jak reszta ludzkości? >> Niewątpliwie znajdzie się tam też podobieństwo do JS, Moduli i COBOLa. >> Wystarczy mieć odpowiednio elastyczną definicję, że jak dodawanie to "+" >> to już podobne. Z czym nie ma problemu, wszak elastycznośc definicji >> jest najzwyczajniej opinią. > Dokładnie. > Dlatego spieranie się, że coś jest "zupełnie niepodobne do czegoś innego", > nie ma większego sensu. Nie ma, ale tu usenet a ja ciągle nie wiem gdzie PHP jest podobny do C++. Miałem szczerą nadzieję, że w świecie PHP, z którym zerwałem kontakt 20 lat temu, coś ciekawego się wydarzyło. A tu dalej "klamry, jak w C++". Nawet w dokumentacji takie informacje. Aż strach pomyśleć, jak ktoś w to uwierzy, że to "prawie jak w C++".
Re: mój obfuskator - problem projektowy
Author: heby
Date: Fri, 28 Oct 2022 10:48
Date: Fri, 28 Oct 2022 10:48
4 lines
1894 bytes
1894 bytes
On 28/10/2022 12:32, heby wrote: > W tym tępie tempie.
Re: mój obfuskator - problem projektowy
Author: Maciek Godek
Date: Fri, 28 Oct 2022 10:59
Date: Fri, 28 Oct 2022 10:59
109 lines
6670 bytes
6670 bytes
piątek, 28 października 2022 o 12:32:17 UTC+2 heby napisał(a): > On 28/10/2022 12:08, Maciek Godek wrote: > > To zależy jak zarządzasz pamięcią. > Oczywiście. Wszak w C++ można używać np. garbage collectorow. Co czyni > go podobnym do Javy. Prawda? Java pod wieloma innymi względami jest podobna do C++. > W tym tępie dojdziemy za chwilę do wniosku, że wszystkie języki > programowania są identyczne. Raczej nie dojdziemy do tego, że są identyczne, w każdym razie nie bez poważnych błędów w rozumowaniu. > > Co do współczesnych wersji PHP, to jeżeli np. używasz funkcji shmop_*, > > to zarządzanie taką pamięcią niewiele się różni od tego, co byś pisał w C. > A używasz i/lub znasz kogoś kto używa? Zdarzyło mi się. > >> Niewątpliwie należy mocno naciągnąć tą "cechę" aby uzasadnić takie > >> twierdzenia. > > Nieprawda. > > Składnia pętli for jest praktycznie identyczna. > Serio? W C++, który ma być ponoć podobny, jest: > for( auto x : container) [...] No widzisz. W PHP też jest for_each, który się różni od tego co masz w C (i jest - uwaga uwaga - bardziej podobny do tego co masz w C++) > > Podobnie jak pozostałe > > instrukcje sterujące (if, while, switch, do while). > A wies,z że są prawi identyczne równiez w JS, Javie i wielu innych? Tak. Jak również to, że są języki, w których ich nie ma. Bo - uwaga uwaga - JS i Java też są składniowo podobne do C. (Natomiast mniej podobne składniowo są np. Lua, Ruby czy Python) > Zaryzykujesz, że Java i C++ to jezyki "podobne" bo mają te same > instrukcje co prawie każdy jezyki imperatywny? 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) > W takich oparach absurdu będzie cieżko znaleźc język "niepodobny". No > chyba, że brainfuck. Również Forth jest dość mocno niepodobny. Tzn. ok, jest podobny pod tym względem, że można w nim używać słów. 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 > > W PHP jest nawet funkcja "define", która została tak "zaprojektowana", > > żeby przypominać preprocesor języka C (którego wielu programistów > > używało do definiowania stałych w programie) > Do robienia prymitywnych substytutów. #define w C jest o wiele bardziej > skomplikowana, co nie jest, zaznaczam, ani trochę zaletą. Owszem. > >>> Jak weźmiesz np. Lamborghini Diablo, i resoraka Lamborghini Diablo, to też będą do siebie podobne, > >>> chociaż jeden z nich będzie dużo mniejszy i nie będzie nawet miał silnika. > >> Jak by to było takie podobieństwo, to bym nie protestował. > > To jest dokładnie takie podobieństwo. > Nie, to dwa różne języki o wspólnej inspiracji. *Ważnych* detali je > różniących jest zdecydowanie za dużo, aby była mowa o tym że są podobne, > bo "klamry". Ale te "klamry" to Ty powiedziałeś. > >> W PHP są tylko "klamry" podobne do C++. Pozostałe cechy są skrajnie > >> różne. Oba imperatywne, ale to akurat 95% języków na rynku ma tą cechę. > >> PHP to zupełnie inny język, ze składnią kradzioną nie tylko z C++ ale > >> również z wysypiska śmieci, chorych urojeń i przypadkowych pomysłów. > > Czyli z dokładnie tych samych źródeł, co C++. Kolejne podobieństwo. > "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. > Jesteś pewny, że rozumiesz słowo "podobieństwo" tak samo jak reszta > ludzkości? Podobieństwo dwóch przedmiotów rozumiem w taki sposób, że istnieją w tych przedmiotach pewne cechy, które są identyczne. A Ty jak rozumiesz? (I jak rozumiesz, że reszta ludzkości rozumie?) > Nie ma, ale tu usenet a ja ciągle nie wiem gdzie PHP jest podobny do > C++. Nie wiesz, bo nie pytasz po to, żeby się dowiedzieć, tylko po to, żeby się dowartościować i pokazać swoją wyższość nad rozmówcą. > Miałem szczerą nadzieję, że w świecie PHP, z którym zerwałem > kontakt 20 lat temu, coś ciekawego się wydarzyło. Wydarzyło. W PHP5.2 wprowadzono domknięcia, w PHP7 uproszczono składnię, w PHP8 zdaje się usprawniono wydajność. > Aż strach pomyśleć, jak ktoś w to uwierzy, że to "prawie jak w C++". Bo co się wtedy stanie?
Re: mój obfuskator - problem projektowy
Author: Maciek Godek
Date: Fri, 28 Oct 2022 11:01
Date: Fri, 28 Oct 2022 11:01
7 lines
2199 bytes
2199 bytes
piątek, 28 października 2022 o 12:48:38 UTC+2 heby napisał(a): > On 28/10/2022 12:32, heby wrote: > > W tym tępie > > tempie. Tępię.
Re: mój obfuskator - problem projektowy
Author: heby
Date: Fri, 28 Oct 2022 11:37
Date: Fri, 28 Oct 2022 11:37
152 lines
8854 bytes
8854 bytes
On 28/10/2022 12:59, Maciek Godek wrote:
>> Oczywiście. Wszak w C++ można używać np. garbage collectorow. Co czyni
>> go podobnym do Javy. Prawda?
> Java pod wieloma innymi względami jest podobna do C++.
Dokładnie tak jak PHP jest podobny do C++.
Algol też się chyba złapie. Ma if-y.
>>> Składnia pętli for jest praktycznie identyczna.
>> Serio? W C++, który ma być ponoć podobny, jest:
>> for( auto x : container) [...]
> No widzisz.
> W PHP też jest for_each, który się różni od tego co masz w C
> (i jest - uwaga uwaga - bardziej podobny do tego co masz w C++)
"bardziej podobny" do daleko posunięty otymizm. Ma inną składnię.
Napisałeś "jest praktycznie identyczna". Nie jest. Składnia foreach w
PHP wygląda inaczej.
Wiele języków ma iteracje po kontenerach. Czy czyni je składniowo
podobnymi do siebie?
A może to najzwyczajniej podstawowa jednostka każdego języka imperatywnego?
>>> Podobnie jak pozostałe
>>> instrukcje sterujące (if, while, switch, do while).
>> A wies,z że są prawi identyczne równiez w JS, Javie i wielu innych?
> Tak. Jak również to, że są języki, w których ich nie ma.
> Bo - uwaga uwaga - JS i Java też są składniowo podobne do C.
Znowu masz szeroko pojęte "podobieństwo" które na koniec sprowadza się
do "bo też ma klamry i ify".
> (Natomiast mniej podobne składniowo są np. Lua, Ruby czy Python)
Zauważyłes, że auto wątku na początku nic nie mówił o jakieś "składni" a
jedynie że "lubi języki podobne do C++"? Dopiero po wymęczeniu go
pytaniam okazało się, że chodzi o klamry. Ku mojemu zasmuceniu, bo
miałem nadzieję, że komisja z 7C wraz z trójką klasową, dokonali jakichś
istotnych zmian w tym języku, co uzasadnia to twierdzenie. A tu
"klamry". Czyli jak zwykle. Doceniam genryki w Javie, to było coś, co
uznałbym za rewolucję, gdyby pojawiło się w PHP.
Nie wiem, czy wiesz, aje hasło "klamry" nie wymyśliłem ja. To poprawny
termin, oreślający cała rodzinę języków, o zupełnie różnych
paradygmatach, budowie, zastosowaniu, których jedyną cechą wspólną jest
{}. No i może if/for, choć nie zawsze.
>> Zaryzykujesz, że Java i C++ to jezyki "podobne" bo mają te same
>> instrukcje co prawie każdy jezyki imperatywny?
> 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?
>> W takich oparach absurdu będzie cieżko znaleźc język "niepodobny". No
>> chyba, że brainfuck.
> Również Forth jest dość mocno niepodobny.
> Tzn. ok, jest podobny pod tym względem, że można w nim używać słów.
Idziesz w dobrą stronę. Jeszcze tylko jeden krok: jesli język używa
bajtów, to jest podobny do innych języków używających bajtów. Nie łapie
się tylko BCPL, ale to żadna strata, a wręcz zaleta.
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).
> 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?
Nagle spacja "to nie słowo" ale już zarządzanie pamięcią to "prawie to
samo co w C++". Raczysz żartować?
>> Nie, to dwa różne języki o wspólnej inspiracji. *Ważnych* detali je
>> różniących jest zdecydowanie za dużo, aby była mowa o tym że są podobne,
>> bo "klamry".
> Ale te "klamry" to Ty powiedziałeś.
Te klamry to poprawny termin określający cały zbiór róznych języków
programowania. Spytaj google.
>> "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.
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++. I tu i tu słowa, niektóre nawet podobne. Pikuś. To to samo.
>> Jesteś pewny, że rozumiesz słowo "podobieństwo" tak samo jak reszta
>> ludzkości?
> 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? Bo ja widzę podobieństwo "klamry" od samego
początku tej dysputy. Co powoduje zamęt, no bo jak tak można? Wszak sa
jeszcze if'y!
> A Ty jak rozumiesz? (I jak rozumiesz, że reszta ludzkości rozumie?)
Reszta ludzkości rozumie, że aby dysputować należy poznać stanowisko
drugiej strony. Moje stanowisko jest takie, że poza "klamrami" nie ma w
PHP nic podobnego do C++. Napisane bodaj w 3 poście.
Jak na razie nie udało się znaleźc nic innego, podobnego, między C++ i
PHP. Tylko klamry. Zaznaczam, że strcmp itd są dostępne przez abi z
dowolnego języka, wiec cięzko mówić, że to cecha specyficzna dla C++.
>> Nie ma, ale tu usenet a ja ciągle nie wiem gdzie PHP jest podobny do
>> C++.
> Nie wiesz, bo nie pytasz po to, żeby się dowiedzieć, tylko po to,
> żeby się dowartościować i pokazać swoją wyższość nad rozmówcą.
"Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie
cechy PHP są podobne do C++ i Ci się spodobały?"
Napisałem to na początku tej dyskusji.
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.
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.
Mam do niego pewien sentyment. I liczę na to, że coś poprawili. Nie. Nie
poprawili. Mieszają herbatę i mówią, że coraz słodsza.
>> Miałem szczerą nadzieję, że w świecie PHP, z którym zerwałem
>> kontakt 20 lat temu, coś ciekawego się wydarzyło.
> Wydarzyło. W PHP5.2 wprowadzono domknięcia, w PHP7 uproszczono składnię,
> w PHP8 zdaje się usprawniono wydajność.
Ale to są rewolucje, poprawki na błedy czy ewolucja?
>> Aż strach pomyśleć, jak ktoś w to uwierzy, że to "prawie jak w C++".
> Bo co się wtedy stanie?
Napisze w tym system bankowy, jak już w wątku padło. W końcu
programatora PHP łatwiej trafić niż hackera od COBOLa, wiec cel
biznesowy zasadny.
Re: mój obfuskator - problem projektowy
Author: Mateusz Viste
Date: Fri, 28 Oct 2022 11:49
Date: Fri, 28 Oct 2022 11:49
24 lines
2699 bytes
2699 bytes
2022-10-28 o 03:59 -0700, Maciek Godek napisał: > W PHP też jest for_each, który się różni od tego co masz w C > (i jest - uwaga uwaga - bardziej podobny do tego co masz w C++) Niezaczepnie poprawię: foreach() Bardzo przyjemna sprawa swoją szosą. Od C++ trzymam się jak najdalej, ale coby domieszać swoje 3 gr. wtrącę tylko, że regularnie piszę w PHP. Prymitywnie, bo nie jestem żadnym web programistą, ale jednak. Jedna z cech, która bardzo mi się podoba w PHP to jego podobieństwo do C. W sensie, że po programowaniu w dzień w C mogę przesiąść się wieczorem na chwilę żeby poskrobać coś w PHP i czuję się "prawie jak w domu". Przy czym uściślę, że nie używam żadnego OOP, moje amatorskie PHP jest wyłącznie proceduralne. Druga fajna cecha to łatwość obsługi zapytań http w tym języku. Kilkanaście lat temu pisałem trochę w CGI, via C. W porównaniu do tego, PHP jest niesamowicie przyjaznym środowiskiem. Trzecia fajna cecha to fakt, że PHP jest wszędzie. I to chyba zamyka listę PHP-owych fajności. Mateusz
Re: mój obfuskator - problem projektowy
Author: Maciek Godek
Date: Fri, 28 Oct 2022 12:11
Date: Fri, 28 Oct 2022 12:11
174 lines
9627 bytes
9627 bytes
piątek, 28 października 2022 o 13:37:43 UTC+2 heby napisał(a): > On 28/10/2022 12:59, Maciek Godek wrote: > >> Oczywiście. Wszak w C++ można używać np. garbage collectorow. Co czyni > >> go podobnym do Javy. Prawda? > > Java pod wieloma innymi względami jest podobna do C++. > Dokładnie tak jak PHP jest podobny do C++. Nie, zupełnie inaczej. > 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ł. > >>> Składnia pętli for jest praktycznie identyczna. > >> Serio? W C++, który ma być ponoć podobny, jest: > >> for( auto x : container) [...] > > No widzisz. > > W PHP też jest for_each, który się różni od tego co masz w C > > (i jest - uwaga uwaga - bardziej podobny do tego co masz w C++) > "bardziej podobny" do daleko posunięty otymizm. Ma inną składnię. > > Napisałeś "jest praktycznie identyczna". Nie jest. Składnia foreach w > PHP wygląda inaczej. 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. > 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. > A może to najzwyczajniej podstawowa jednostka każdego języka imperatywnego? Na pewno nie każdego. > >>> Podobnie jak pozostałe > >>> instrukcje sterujące (if, while, switch, do while). > >> A wies,z że są prawi identyczne równiez w JS, Javie i wielu innych? > > Tak. Jak również to, że są języki, w których ich nie ma. > > Bo - uwaga uwaga - JS i Java też są składniowo podobne do C. > 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 ... > > (Natomiast mniej podobne składniowo są np. Lua, Ruby czy Python) > Zauważyłes, że auto wątku na początku nic nie mówił o jakieś "składni" a > jedynie że "lubi języki podobne do C++"? Dopiero po wymęczeniu go > pytaniam okazało się, że chodzi o klamry. Nie. Napisał, że chodzi o składnię. 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. Na przykład, przechodząc z C do Fortha, trzeba nawyki zmienić dość mocno. Zresztą to jest istatota słowa "lubić". Po angielsku masz "like" -- "I like something" -- "lubę coś", tzn. "coś PODOBA mi się" (jak w "PODOBIEŃSTWIE"). > >> Zaryzykujesz, że Java i C++ to jezyki "podobne" bo mają te same > >> instrukcje co prawie każdy jezyki imperatywny? > > 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. > >> W takich oparach absurdu będzie cieżko znaleźc język "niepodobny". No > >> chyba, że brainfuck. > > Również Forth jest dość mocno niepodobny. > > Tzn. ok, jest podobny pod tym względem, że można w nim używać słów. > Idziesz w dobrą stronę. Jeszcze tylko jeden krok: jesli język używa > bajtów, to jest podobny do innych języków używających bajtów. Nie łapie > się tylko BCPL, ale to żadna strata, a wręcz zaleta. > > 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. > > 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". > >> Nie, to dwa różne języki o wspólnej inspiracji. *Ważnych* detali je > >> różniących jest zdecydowanie za dużo, aby była mowa o tym że są podobne, > >> bo "klamry". > > Ale te "klamry" to Ty powiedziałeś. > 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. > >> "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. > 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. > >> Jesteś pewny, że rozumiesz słowo "podobieństwo" tak samo jak reszta > >> ludzkości? > > 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. > 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. > 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ł. Bo PHP po prostu zmałpował wiele nazw funkcji z biblioteki standardowej C. > >> Nie ma, ale tu usenet a ja ciągle nie wiem gdzie PHP jest podobny do > >> C++. > > Nie wiesz, bo nie pytasz po to, żeby się dowiedzieć, tylko po to, > > żeby się dowartościować i pokazać swoją wyższość nad rozmówcą. > "Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie > cechy PHP są podobne do C++ i Ci się spodobały?" > > Napisałem to na początku tej dyskusji. No, i OP również odpisał na początku dyskusji. > 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. Nie wiem, czy PHP nie był. Wszystkie te rzeczy powstawały w jakimś tam swoim kontekście, nie czuję się w pozycji oceniania kompetencji ich twórców. Ale pod względem jakości projektu oba są siebie warte. > 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!)
Re: mój obfuskator - problem projektowy
Author: 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.
Re: mój obfuskator - problem projektowy
Author: Mateusz Viste
Date: Fri, 28 Oct 2022 13:29
Date: Fri, 28 Oct 2022 13:29
15 lines
2278 bytes
2278 bytes
2022-10-28 o 05:11 -0700, Maciek Godek napisał: > Jak wywołujesz w PHP substr, to nie wywołujesz funkcji w C, tylko > funkcję w PHP, którą ktoś tak nazwał. > Bo PHP po prostu zmałpował wiele nazw funkcji z biblioteki > standardowej C. Znów się niekulturalnie wtrącę. To małpowanie nazw ma swoje limity. Fajne, bo człowiek od razu wie, czego szukać i ma wrażenie, że wie co robi... do czasu, kiedy rzeczywistość uświadomi go, że jest jednak na obcej ziemi. Taki np. sprintf() zwraca zupełnie co innego, niż jego odpowiednik w C. Chwila nieuwagi i można się nadziać. Mateusz
Re: mój obfuskator - problem projektowy
Author: Jivanmukta
Date: Fri, 28 Oct 2022 14:11
Date: Fri, 28 Oct 2022 14:11
11 lines
2383 bytes
2383 bytes
W dniu 28.10.2022 o 14:11, Maciek Godek pisze: > Nie. Napisał, że chodzi o składnię. > 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. Oto właśnie mi chodziło. Programowałem trochę w C++ (MFC/Windows), potem robiłem inne rzeczy, potem zająłem się właśnie PHP i wcale nie musiałem się dużo uczyć, żeby pisać w nim programy o wielkości 20 KLOC. Stąd moje wrażenie o podobieństwie C++ i PHP. Ale nie jestem jeszcze profesjonalistą w PHP.
Page 1 of 2 • 66 total messages
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads