Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zephir - co o nim myślicie?
JacekJagiello
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 21.11.2012

Ostrzeżenie: (0%)
-----


Rok temu ShadowD pisał o Phalconie, jendak chciałbym odnowić dyskusję, ponieważ trochę się zmineiło od tego czasu.

Może krótkie wprowadzenie. Phalcon jest frameworkiem PHP napisanym pierwotnie w C. Dzięki temu jest niesamowicie szybki. W "standardowych" frameworkach PHP przy każdym zapytaniu kod frameworka jest w całości interpretowany od nowa, co zajmuje trochę czasu. Phalcon jest już skompilowany, więc nie ma tego problemu. Wystarczy dodać rozszerzenie w postaci pliku dll dla serwera Aapche.
Ma to jednak swoje wady. Po pierwsze raczej mozemy zapomnieć w phlaconie na standardowych hostingach wpsółdzielonych. Potrzebujemy VPS-a gdyż tylko tam mamy możliwość instalowania własnych rozszerzeń.
Jest też problem rozwoju frameworka. Jest on stworzony dla programistów PHP, ale sam napisany jest w C. Nie każdy programista PHP zna C, a te języki mimo wszystko się różnią. Twórcy frameworka postanowili więc stworzyć własny język programowania, Zephir, który łączy cechy PHP oraz C(a także... Rust i Javascript). Trochę radykalne rozwiązanie, ale Zephir naprawdę wygląda ciekawie. I to głównie temat Zephira chciałbym poruszyć.

Zephir jest językiem zarówno typowanym dynamicznie(jak php czy javascirpt) jak i statycznie©. Zephir jest tłumaczony do C. W przeciwieństwie do PHP, Zephir wymusza pewne dobre standardy, i dodaje funkcje których w PHP brakuje, na przykład:
-Kod musi być umieszczony w klasach. Zephir jest wpełni obiektowy.
-Namespace jest konieczny
-używanie $ nie jest wymagane
-Możemy ustalić jaki typ danych ma zwracać metoda

Dzięki Zephir możemy tworzyć rozszerzenia. Więc całe nasze aplikacje możemy skompilować do C, tym samym znacznie poprawiając wydajność.
Zachęcam do oglądniecia składni zephir na http://zephir-lang.com/intro.html

Co myślicie o projekcie Zephir? Przesada, czy coś naprawdę przyszłościowego?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
irmidjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


Cytat(peter13135 @ 27.04.2014, 13:53:03 ) *
OK, jakieś to wytłumaczenie jest. Chociaż ja nie rozumiem skąd się bierze ten mit trudności javy. Moim zdaniem, języki typu java/c# były tworzone głównie po to, by tworzenie aplikacji było szybkie i łatwe.


Java i PHP są oczywiście dość podobne w zakresie składni i podstawowego używania, bo to ta sama rodzina języków. Ale nie wystarczy poznać tylko składni języka!!! Programista aby efektywnie i sensownie kodować musi znać całe środowisko programistyczne, w którym pracuje. Biblioteki, rozszerzenia, narzędzia dodatkowe, frameworki, dobre sposoby kodowania (idiomy), najlepsze wzorce implementacyjne itp. To wszystko wymaga czasu i przychodzi z doświadczeniem. Nauczenie się świata Javy to jest jednak kupa roboty. Ja cały czas mam na myśli przecież doświadczonych programistów PHP. Ile czasu potrzeba, aby zostać doświadczonym programistą Java czy C#/.NET? I o ten czas mi chodzi. Taki programista PHP wie i umie wykorzystać ten język oraz wszystko to, co składa się na specyfikę programowania w PHP. Teraz poznanie i zastosowanie Hacka czy Zephira w tym kontekście, to jest pestka. Wymagany na to czas jest po prostu śmiesznie mały.

Cytat(peter13135 @ 27.04.2014, 13:53:03 ) *
Po pierwsze, PHP jest tak bardzo wolne (po części wynika to z tego, że jest po prostu językiem interpretowanym, a po części z "błędów technicznych"), że trzeba by się mocno starać, by przepisując kod z php'a na coś innego (w dodatku natywnego) nie otrzymać dużego skoku wydajności.


No przecież właśnie o tym mówię! Użycie Zephira czy Hacka to m.in. znaczący skok wydajnościowy niesamowicie niskim kosztem - dla teamu doświadczonych pehapowców, którzy już mają napisaną (bądź piszą) sporą aplikację to są po prostu genialne narzędzia.

Cytat(peter13135 @ 27.04.2014, 13:53:03 ) *
Podobnie w przypadku Zephyra - kompiluje się on do C, potem C jest kompilowane do kodu maszynowego.
To, na ile będzie wydajny kod napisany w zephyrze, zależy od tego jak dobrze skompiluje się kod c do kodu maszynowego (jak wyżej napisałem - każdy kompilator generuje inny kod - "inaczej wydajny"), zależy również od tego na ile wydajny jest "kompilator zephyr -> C".


Jasne! Ale i tak to jest cholernie szybsze, niż odpowiedni kod PHP, który przepisano na Zephir. I o to chodzi! Wszystkie pozostałe teoretyczne rozważania w powyższym akapicie (nie zamieściłem ich) w ogóle tu nie mają znaczenia. Wszystkie benchmarki jasno pokazują, jak daleko w tyle Phalcon zostawia czysty kod PHP (wydajnościowo).

Cytat(solificati @ 27.04.2014, 20:06:02 ) *
Cytat
Pisałem już kilka razy - programista PHP nauczy się korzystać z Hack czy Zephir bardzo łatwo.

Nie. Język wprowadza nowe abstrakcje, które trzeba zrozumieć.


Nie zgadzam się, aby to była trudność.
I druga sprawa, że i tak to jest pikuś w porównaniu z ogarnięciem na poziomie zaawansowanym jakiegoś innego, konkurencyjnego języka.

Cytat( @ 27.04.2014, 20:06:02 ) *
Poza tym wątpię, żeby ktokolwiek teraz rozumiał wydajność Hacka lub Zephira.


No to chyba trzeba zacząć ich używać i osiągnąć to zrozumienie, he? (IMG:style_emoticons/default/wink.gif)

Cytat(solificati @ 27.04.2014, 20:06:02 ) *
Potrzebne są realne porównania. Zephir ma mechanizmy, których nie ma w C, tworzą one narzut. Dodatkowo język PHP nie jest binarnie kompatybilny z C, czyli odwołania do takich rozszerzeń są kosztowne. Nie wiadomo jak wygenerowany kod się optymalizuje w kompilatorze etc. Pewnie, będzie szybsze od PHP, ale to o absolutnie niczym nie świadczy. I raczej wątpię żeby był chociażby w okolicach 10 krotnego zwolnienia w stosunku do czystego C.


Tak jak wyżej - wciąż jest to znacznie wydajniej (zarówno jeśli chodzi o czas procka, jak i zapotrzebowanie na ram) niż PHP. Ale ale... czemu widzę tu takie porównywanie C i Zephir? Przecież ta dyskusja nie dotyczy tego, czy lepszy jest kod w C czy w Zephir. Dotyczy korzyści, jakie wnoszą technologie typu Zephir/Phalcon czy Hack/HHVM do świata PHP. A to, że przynajmniej Hack/HHVM wnosi, to nie mam wątpliwości, bo gdyby tak nie było, fejsbuk nie byłby przepisywany z PHP na Hack. I uważam, że Zephir/Phalcon to też bardzo obiecujące projekty. Wolisz płacić za 100 serwerów do obsługi ruchu, czy za 20? (IMG:style_emoticons/default/wink.gif)

Go to the top of the page
+Quote Post
solificati
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 10
Dołączył: 17.03.2012

Ostrzeżenie: (0%)
-----


Cytat(irmidjusz @ 28.04.2014, 02:00:52 ) *
Dotyczy korzyści, jakie wnoszą technologie typu Zephir/Phalcon czy Hack/HHVM do świata PHP. A to, że przynajmniej Hack/HHVM wnosi, to nie mam wątpliwości, bo gdyby tak nie było, fejsbuk nie byłby przepisywany z PHP na Hack. I uważam, że Zephir/Phalcon to też bardzo obiecujące projekty.

To jest jedna, jedyna firma, w dodatku z syndromem not invented here i dużą kasą. Nic to nie świadczy o użyteczności tego projektu. Dodatkowo f może sobie pozwolić na napisanie wszystkiego w hack. Jaki jest zysk w klasycznej aplikacji hack/zephir gdzie aplikacja spędza 80% czasu w bibliotekach? Zephir/Phalcon staje się sensownym rozwiązaniem - masz chociaż framework, ale jesteś częściowo do niego przymuszony.

Dodatkowa myśl: dlaczego do stworzenia kompilatora AOT dla PHP trzeba zmieniać język? Nie lepiej byłoby kompilować PHP a nie jakąś jego część z rozszerzeniami?
Go to the top of the page
+Quote Post
irmidjusz
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


Cytat(solificati @ 28.04.2014, 12:17:40 ) *
To jest jedna, jedyna firma, w dodatku z syndromem not invented here i dużą kasą. Nic to nie świadczy o użyteczności tego projektu.


Jest jedyna, bo sami to stworzyli. Wymyślili to i zrobili, bo potrzebowali tego ze względów ekonomicznych (wydajnościowych). Nie porzucili tego projektu, przeciwnie, używają go w coraz szerszym zakresie i stale rozwijają. Benchmarki jednoznacznie pokazują, że to działa szybciej. Uważam, że to świadczy o użyteczności.

Cytat(solificati @ 28.04.2014, 12:17:40 ) *
Dodatkowa myśl: dlaczego do stworzenia kompilatora AOT dla PHP trzeba zmieniać język? Nie lepiej byłoby kompilować PHP a nie jakąś jego część z rozszerzeniami?


No cóż, to już zupełnie inne zagadnienie (IMG:style_emoticons/default/tongue.gif) Jest jak jest, mamy PHP takie, jakie mamy (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- JacekJagiello   Zephir - co o nim myślicie?   22.04.2014, 19:36:55
- - buliq   Czemu Zephir skoro jest już Hack, który działa sz...   23.04.2014, 07:06:56
- - !*!   Cytat(JacekJagiello @ 22.04.2014, 20:36...   23.04.2014, 07:49:36
- - Posio   Ja osobiście używam Phalcona i bardzo sobie chwale...   23.04.2014, 19:42:35
- - ano   Jw. po co wchodzić w Zephira? Jakieś argumenty? Cz...   23.04.2014, 19:51:05
- - irmidjusz   Zephir powstał z tego samego powodu, co Hack. Umoż...   23.04.2014, 19:51:28
- - ano   CytatLiczę na to, że kiedyś będę mógł pracować z k...   23.04.2014, 20:00:25
- - irmidjusz   Nie zakładam, tylko wiem, bo w necie jest dosyć om...   24.04.2014, 08:27:28
|- - pyro   Cytat(irmidjusz @ 24.04.2014, 09:27:2...   24.04.2014, 09:18:45
|- - solificati   Cytat(pyro @ 24.04.2014, 09:18:45 ) -...   24.04.2014, 11:34:27
- - buliq   Dlatego też zamiast uczyć się Zephir, polecam zain...   24.04.2014, 08:29:46
- - viking   Ale chyba nie rozumiecie. Zephyr nie powstał po to...   24.04.2014, 09:38:37
- - JacekJagiello   Chyba trochę źle napisałem pierwszy post. Gdy czyt...   24.04.2014, 18:16:08
- - irmidjusz   Pyro, głupoty napisałeś. Nie kontynuujmy już tego....   24.04.2014, 23:00:22
|- - pyro   Cytat(irmidjusz @ 25.04.2014, 00:00:2...   25.04.2014, 07:27:56
|- - ano   Cytat(irmidjusz @ 25.04.2014, 00:00:2...   25.04.2014, 18:38:35
|- - irmidjusz   Cytat(ano @ 25.04.2014, 19:38:35 ) Dl...   25.04.2014, 23:17:04
- - peter13135   CytatTo prawda, że język może być wydajniejszy, al...   25.04.2014, 22:11:44
- - Tuminure   CytatCałkiem niedawno gdzieś też czytałem, że prog...   26.04.2014, 08:33:23
- - irmidjusz   CytatOdnoszę wrażenie, że "lepszy do czytania...   26.04.2014, 11:55:36
- - Posio   Z doświadczenia które ostatnio dość szybko nabywam...   26.04.2014, 12:38:09
- - peter13135   CytatNatomiast inaczej sprawa wygląda, gdy już mas...   26.04.2014, 12:50:56
- - JacekJagiello   CytatZ doświadczenia które ostatnio dość szybko na...   26.04.2014, 12:55:45
|- - solificati   Cytat(JacekJagiello @ 26.04.2014, 13:55...   26.04.2014, 18:19:02
- - irmidjusz   Cytat(Posio @ 26.04.2014, 13:38:09 ) ...   26.04.2014, 23:49:20
|- - solificati   Cytat(irmidjusz @ 27.04.2014, 00:49:2...   27.04.2014, 19:06:02
- - peter13135   CytatPisałem już kilka razy - programista PHP nauc...   27.04.2014, 12:53:03
- - irmidjusz   Cytat(peter13135 @ 27.04.2014, 13:53...   28.04.2014, 01:00:52
|- - solificati   Cytat(irmidjusz @ 28.04.2014, 02:00:5...   28.04.2014, 11:17:40
|- - irmidjusz   Cytat(solificati @ 28.04.2014, 12:17...   28.04.2014, 22:48:36
- - peter13135   CytatNo przecież właśnie o tym mówię! Użycie Z...   28.04.2014, 10:17:20
- - solificati   Zrobili to, bo mogli. Nikt nigdy nie podał liczb n...   29.04.2014, 10:12:10
- - irmidjusz   Ok, spoko, jak dla mnie to fantazjujesz, ale nie m...   29.04.2014, 19:02:17


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 17:24