2010-01-05 12 views
16

Czy istnieją alternatywy dla PHP, które działają szybciej i mają nieco ten sam zestaw funkcji (np. Obsługa typowych RDBMS, Curl, Regex itp.)?Alternatywy PHP?

A co z kodowaniem stron internetowych w języku C? Jak to działa? Czy ta platforma jest niezależna i działa na każdym serwerze?

+7

Być może powinieneś wskazać, jakie problemy masz (jeśli w ogóle) z PHP – Rad

+1

Zazwyczaj wąskie gardło czeka na bazę danych. Profiluj też swoją aplikację/stronę, aby zobaczyć, co ją trzyma. –

+0

Powinieneś wskazać, jakie problemy masz z PHP. Zobacz, jakie techniki agnostyczne są używane w celu poprawy wydajności aplikacji internetowych - http://developer.yahoo.com/performance/ – igouy

Odpowiedz

8

"Czy istnieją alternatywy dla PHP" - Tak

"... które wykonują szybciej ..." - Tak

"... ten sam zestaw funkcji ..." - Nie - to by uczynić PHP zbędnym.

Zadajesz bardzo szerokie pytanie. Istnieje wiele języków, które wspierają wszelkiego rodzaju systemy DBMS, PCRE i inne.

"A co z kodowaniem stron internetowych w języku C? Jak to działa? Czy ta platforma jest niezależna i działa na każdym serwerze?"

  • Nie jest niezależny od platformy.

Trudno jest wskazać konkretny kierunek w oparciu o tak szerokie pytanie.

Czasami warto przeczytać:

http://benchmarksgame.alioth.debian.org/

Należy jednak pamiętać, że większość kosztów oprogramowania leży w rozwoju - sprzęt jest tani - tak jest w stanie zaimplementować coś w połowie linii kodu będzie być znacznie bardziej korzystne dla większości ludzi niż podwojenie wydajności.

Istnieją również mniej oczywiste ograniczenia i/lub zalety w usuwaniu określonych języków - np.

http://www.oreillynet.com/ruby/blog/2007/09/7_reasons_i_switched_back_to_p_1.html

C.

+11

Urk, nienawidzę tego artykułu. "7 powodów, dla których wracam do PHP" jest ciągle przedstawiany jako rodzaj ataku na Railsy, ​​kiedy nie jest - to demonstracja ignorancji autora. Jego pierwsze słowa to: "Spędziłem dwa lata próbując zmusić Railsów do zrobienia czegoś, czego nie zamierzano zrobić ...". Resztę artykułu można zastąpić słowami: "... więc jestem idiotą, który marnuje 2 lata". – meagar

+1

"Możesz to przeczytać" - szczególnie "Ogólna wydajność: PHP rzadko jest wąskim gardłem (slajdy HTML)" http://talks.php.net/show/drupal08/7 :-) – igouy

+2

Rewizja "Nie, nie jest niezależna od platformy "odpowiedź, ponieważ zależy to przede wszystkim od ** sposobu integracji z serwerem HTTP. – magnus

17

Twoje pytanie jest szerokie.

  • PHP mogą być wykonane szybko i skalowalne (Flickr, Facebook i więcej stron uruchomić PHP)

  • nieco podobny w celu są webframeworks jak Ruby on Rails, Django, winda, ... (mogą skala też patrz np Twitter)

  • krótki wstęp na CGI C: http://www.cs.tut.fi/~jkorpela/forms/cgic.html

+0

Bardzo niewielka korekta: * aplikacje * zbudowane w PHP mogą być wykonane szybko, to prawda - ale język sama z natury nie może być "szybka", a przynajmniej nie w tym sensie, że języki systemowe (C, C++, Go itp.) są szybkie. Sam język opiera się na czasach pracy napisanych w języku systemu i/lub usługach zewnętrznych (DBMS itp.) Również (w przeważającej części) napisanych w języku systemowym, niezależnie od wydajności. –

6

PHP podłączyć bezpośrednio do Apache'u.

C nie. Aby połączyć C z Apache, będziesz musiał użyć bezpiecznej/szybkiej implementacji CGI zamiast gotowego CGI.

C - jako język - wymaga dużo pracy przy budowie stron internetowych.

Spójrz na struktury sieciowe w Pythonie.

Spójrz na Ruby on Rails.

+2

Nie odpowiedziałeś na to pytanie, a niektóre informacje są nieprawidłowe. C * nie * integruje się bezpośrednio z Apache za pośrednictwem modułów Apache. Np., Mod_rewrite, mod_env, itp., Itp. C * również * integruje ** pośrednio ** dla CGI/FastCGI/SCGI/etc jak wspomniałeś. – magnus

8

Perl (CGI)

Python

RoR (Ruby on Rails)

ASP (nie najlepsza opcja)

całkiem pewny, czy zamierzasz zakodować stronę internetową w języku C swój Będziesz także kodował swój własny serwer, więc trzymałbym się z dala od tego.

RoR byłby dobrym rozwiązaniem. Ale to zależy od osobistych preferencji. Mam tendencję do trzymania się php, ponieważ wiem, jak zrobić prawie wszystko w PHP.

1

Jeśli problem jest na stronie internetowej lub aplikacji internetowej, która wydaje się zbyt wolno, przełączanie języków prawdopodobnie nie jest warte wysiłku. Istnieje wiele bardziej skutecznych sposobów na przyspieszenie działania. Jednym z nich będzie buforowanie kodu w celu uniknięcia narzutu świeżej kompilacji skryptów PHP na żądanie każdej strony. Zobacz na przykład: http://en.wikipedia.org/wiki/PHP_accelerator. Osobiście użyłem XCache do świetnego efektu.

Istnieje wiele innych powodów, dla których strony internetowe wykonują wolniej niż mogłyby, a wiele z nich nie ma związku z podstawowym językiem. YSlow (http://developer.yahoo.com/yslow/) jest niezbędnym narzędziem do znalezienia wąskiego gardła. Aby podać tylko jeden przykład, łączenie wielu plików CSS lub JS zawartych ze stroną HTML w jeden plik może znacznie poprawić czas odpowiedzi.

Tak więc podstawa: w większości przypadków język bazowy nie jest sprawcą. Powiedziawszy to wszystko, tak, są szybsze języki. Zobacz inne odpowiedzi powyżej :)

+1

Tak. Sprawdź HipHop PHP, kompiluje PHP do kodu C dla 50% wzrostu wydajności. – Rolf

9

Jeśli lubisz JavaScript można go używać na stronie serwera z Node.js

3

Co o kodowanie stron internetowych w języku C? Jak to działa? Czy ta platforma jest niezależna i działa na każdym serwerze?

Samodzielny kod na piśmie w C jest całkiem możliwy. (Sam PHP jest napisany w języku C, a istnieje niedorzeczna liczba programów i bibliotek międzyplatformowych napisanych w języku C, takich jak PostgreSQL i MySQL, Boost i Poco C++).

Samodzielna platforma do pisania aplikacje internetowe, z drugiej strony, zależy przede wszystkim od sposobu integracji z serwerem HTTP. Np. Jeśli napiszesz aplikację C, która integruje bezpośrednio z serwerem HTTP przez skompilowany moduł (dla Apache lub IIS), otrzymasz mniej przenośnego kodu - np. Napisanie modułu IIS w C lub Delphi (co widziałem wcześniej i który serwis eBay początkowo zrobił) oznacza, że ​​jesteś nie tylko zablokowany pod Windows, ale również jesteś zablokowany na IIS na Windows. Podobna sytuacja ma miejsce podczas pisania modułów Apache w C.

Ale jeśli piszesz aplikację internetową w języku C, które integruje via wspólnego standardu z serwerem HTTP, to tak, można mieć całkiem przenośny kod (choć kodu musi być kompilowany na każdej platformie). Na przykład możesz użyć CGI do komunikacji z serwerem HTTP przy użyciu zmiennych środowiskowych lub możesz użyć powiązanych standardów, FastCGI i SCGI. Ponownie, widziałem to zrobić w praktycznych, komercyjnych aplikacjach (zarówno dla dobrego efektu, jak i złego efektu).

Debata na temat natywnych aplikacji internetowych (np. Napisanych w języku C, C++ i tym podobnych) a zinterpretowanych aplikacji internetowych (PHP, Perl itp.) Często koncentruje się na trzech obszarach.

  • Wydajność kodu. O ile nie jest napisany przez nieumarłą małpę, która nie dostała pracy przy pisaniu fortune cookie, kod C zawsze będzie lepszy od PHP. Jednak wąskim gardłem w aplikacji może nie być szybkość i zużycie pamięci kodu, ale raczej procedury wejścia/wyjścia.
  • Wydajność programisty. Jeśli nie użyjesz dobrego frameworku (a część twojego pytania dotyczyła zestawów funkcji innych języków), będziesz pisał dużo tablicy kotła, powtarzalny kod. Np. Dekodowanie zakodowanych w procentach adresów URL, analizowanie danych HTTP POST itp. Istnieją ramy, które istnieją w C i C++ (zobacz CppCMS).
  • Przenośność, jak już wspomniano. Jeśli nie jesteś gotowy na pisanie aplikacji internetowej w C, trzymałbym się CGI lub SCGI.