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
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Cytat
Pisałem już kilka razy - programista PHP nauczy się korzystać z Hacka czy Zephira bardzo łatwo. Nawet nie da się tego porównać z czasem potrzebnym na sensowne ogarnięcie Javy...

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. Chyba na każdych studiach informatycznych jest java, lub c#, a każdy programista raczej powinien znać "elementarz" języków c, c++, java w jakimś stopniu. No ale skoro mówisz, że java jest problemem dla programistów PHP, to OK. Nie ja tu jestem od biznes planu (IMG:style_emoticons/default/smile.gif)

Cytat
Jednak determinuje. Po przepisaniu kodu PHP z minimum niezbędnych zmian na Zephir i skompilowaniu tego do kodu C rozszerzenia PHP już uzyskuje się masakryczny skok wydajności. Nie ma nawet potrzeby pytać "a co jeśli kod robiący to samo napisany w C będzie jeszcze 10x szybszy?" - bo może będzie, a może nie będzie, nie wiadomo - gdy tymczasem już osiągnięto doskonały, z dużym prawdopodobieństwem wystarczający, wzrost wydajności przy ogromnie mniejszym nakładzie pracy (i kosztach) w porównaniu z pisaniem tego w C od zera.

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.

Kompilowanie kodu do do języka C, nie determinuje wydajności (IMG:style_emoticons/default/smile.gif)
Nie można powiedzieć, że "zephyr jest szybki", bo kompiluje się do C. Tzn. może kod w nim pisany jest "szybki" w porównaniu do PHP, to pokazuje praktyka. Na logikę można się spodziewać, że gdyby był kompilowany do... PHP, pewnie byłby wolniejszy, niż kompilowany do C. Ale czy można powiedzieć o tym, że język C, lub np. Pascal jest szybki, bo kompiluje się do kodu maszynowego ? Dobry programista assemblera zawsze napisze program mniejszy i szybszy niż jego odpowiednik w języku C/Pascal.
Standard ANSI C sam w sobie nie gwarantuje wydajności. To tylko język - "zbiór słów kluczowych". To jak szybko będzie działał program napisany w c, zależy w znacznej mierze od kompilatora. Oczywiście od samego języka zależy na ile optymalny kompilator da się zbudować. Np. programy pisane w językach dynamiczne typowanych, będą wolniejsze od statycznie typowanych, bo "struktura języka" nie sprzyja budowaniu kompilatorów generujących wydajny kod.
Takich porównań wydajności kompilatorów jest dość dużo. Tutaj jakiś pierwszy lepszy przykład jaki wygooglowałem. http://www.g-truc.net/post-0372.html . Niby ten sam język, a każdy kompilator kompiluje inaczej.

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". No i zależy od samego programisty, ale to inna bajka.


Napiszcie lepiej (bo jestem tego ciekawy, a znaleźć nie bardzo potrafię), Czy Zephyr w jakichś sposób zarządza pamięcią ? Jakiś garbage collector ? Czy może sterty w ogóle nie używa ?
Moim zdaniem, jedną z większych zalet języków java/c# to właśnie gc - zawsze to jedna rzecz mniej na głowie programisty.
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 03:17