Wpis z mikrobloga

Mirki, w czym teraz się aplikacje webowe? Chciałbym hobbistycznie napisać aplikację webową, a ostatni raz to robiłem gdy PHP 5 i django było nowością. Zależy mi na wydajności oraz kosztach utrzymania w razie gdyby projekt się rozwinął. Na razie zastanawiam się nad Go, PHP albo Java Gemini Web. W Go minusem jest to, że nie ma wiele programistów. PHP dostało od wersji 7 JITa, ale problemem jest security (chyba, że teraz jest lepiej?). Co myślicie? Może polecacie coś innego?
#programowanie #webdev
  • 35
Zależy mi na wydajności oraz kosztach utrzymania w razie gdyby projekt się rozwinął


@patste: php(5.6 z racji że w 7 nie jest phalcon jeszcze w pełni wspierany) + phalcon(framework działający jako rozszerzenie w c do php, takze w sumie lepiej niż JIT) w takim razie, php 7 nie dostało JIT, jedynie został zoptymalizowany jego kod, tak to dalej masz opcache + interpretacja
@Vinniczek: Wiem, że się da napisać bezpieczne aplikacje w PHP, problemem jest jednak wysoki próg wejścia. Trzeba wiedzieć np. żeby używać operatora ===, by PHP nie skonwertował sobie hasha na liczbę zmiennoprzecinkową, albo że jak się wyśle request HEAD i aplikacja wysyła dane to PHP może zakończyć interpretacje w połowie skryptu bez żadnego błędu. O takich rzeczach trzeba wiedzieć, a jak ktoś nie ma fakultetów w PHP to łatwo takie błędy
żeby używać operatora ===, by PHP nie skonwertował sobie hasha na liczbę zmiennoprzecinkową


@patste: prezecież to nie jest kwestia tylko php, takie problemy są w każdym jeżyku z dynamicznym typowaniem
@Jurigag: Jak się PHP z opcache sprawdzi, jeśli muszę zaimplementować jakiś algorytm operujący na konkretnych strukturach np. na drzewach? Lub zaimplementować własne struktury?
@Jurigag
Z tego co wiem to może dostać szybciej niż myślimy, jeszcze w wersji 7. Pytanie bardziej brzmi jak dużo jeszcze to mu pomoże :)

@patste
Jak samodzielnie porownujesz hashe dla haseł to już tu masz problem ;) imo to nie są żadne problemy.
@Vinniczek: pomoże bardzo dużo na pewno, przyspieszy wydajność kilkukrotnie, a ja z tego co wiem to obecnie JIT zostało porzucone i prędko do tematu nie zostanie wrócone, skupiają się obecnie na optymalizacji samego języka i kodu w C i nowych rzeczach(tj rozbudowa AST) bo tam można wyciągnąć dużo niż implementacji JIT

zresztą jak komuś zależy na wydajności to zawsze sobie może te elementy które są wolne skompilować z php do zephira
@patste: ale co ? JIT ? a tego to ja ci nie powiem, dopóki nie będziemy mieli to będzie to wróżenie z fusów, chyba że chodzi ci o "przekonwertowanie" kodu php => zephir no to masz po prostu identyczną wydajność jak c bo wynikowo dostajesz kod c po skompilowaniu zephira i odpalasz to sobie jako rozszerzenie do php
@Jurigag: Przyznam, że PHP wygląda interesująco. Jednak zephir używa np. heterogenicznych tablic, istnieje możliwość zrobienia tablicy tylko intów bez overheadu implementacji tablic w PHP, tj. sprawdzania typów itp? Czy trzeba napisać osobno moduł w czystym C?
@patste: nie ma takiej możliwości, zephir operuje nadal na zend engine - do takiej tablicy nadal masz mieć dostęp w każdej chwili w php normalnie, co do modułu czystego w C - nie jest to konieczne, w zephirze można robić wstawki w czystym C, takze otrzymujesz w zasadzie język z prostotą php czy innych dynamicznie typowanych języków z większymi możliwościami jak i wadami czegoś co jest "nowe" i nieznane
@Jurigag: Chodziło mi jednak o tablicę do której dostępu z poziomu PHP nie potrzebuję. Np. funkcję która otrzymuje i zwraca jedną liczbę, natomiast w środku robi jakieś skomplikowane obliczenia na tablicach intów. Np. funkcja która sumuje liczby losowo wygenerowane, gdzie parametrem jest seed do randoma. Czy jeżeli napiszę taką funkcję używając zephir, to będzie ona tak wydajna jak w czystym C?