Jakie są alternatywy PHP, jeśli w ogóle?

Najlepsza odpowiedź

Szczerze mówiąc, jeśli chcesz wykonywać proste / średnie skrypty po stronie serwera, powinieneś idź na PhP. Jest to jeden z najlepszych skryptów serwerowych, bez dwóch zdań! To najpopularniejszy język po stronie serwera!

Jeśli chcesz radzić sobie z ogromnymi obciążeniami, takimi jak Facebook lub Google, powinieneś przyjrzeć się skryptom w języku Python. Lub nawet używając programowania w C po stronie serwera.

Oto lista najczęściej używanych języków po stronie serwera.

CGI / Perl

Perl istnieje dłużej niż sama sieć World Wide Web. Wersja 1 została wydana 18 grudnia 1987 r., Czyli całą dekadę , zanim jeszcze inne języki omówione w tym artykule zostały stworzone! Jeśli jesteś nowy w tej dziedzinie, prawdopodobnie zastanawiasz się, jak język programowania po stronie serwera mógł istnieć przed samą siecią. Widzisz, Perl nie został stworzony jako język programowania WWW. Perl to w rzeczywistości uniwersalny język skryptowy, który został zaprojektowany do obsługi zadań wymagających dużej ilości manipulacji tekstem. Perl bardzo dobrze radzi sobie z żonglowaniem fragmentami tekstu z różnych źródeł i łączeniem ich w kompletne dokumenty, co jest dokładnie tym, co jest związane z tworzeniem stron WWW po stronie serwera. W ciągu półtorej dekady od jego powstania, Perl został rozszerzony o moduły , fragmenty czasami złożonej funkcjonalności, które można podłączyć do języka w celu dostosowania do różnych specjalistycznych celów. Jednym z takich celów jest tworzenie dynamicznej zawartości sieci Web za pośrednictwem interfejsu Common Gateway Interface (CGI) obsługiwanego przez zdecydowaną większość serwerów sieci Web. CGI to standardowy sposób, za pomocą którego oprogramowanie serwera sieci Web może przekazywać żądanie przeglądarki dotyczące strony internetowej do dowolnego programu. Prawdę mówiąc, programy CGI mogą być (i były czasami) napisane w C / C ++, jeśli to konieczne. Jednak dzięki wygodnej obsłudze tekstu Perl zawsze lepiej pasował do tego zadania, a teraz, gdy Perl zawiera wbudowany moduł CGI.pm , większość z podstawowymi szczegółami obsługi rzeczy, takich jak przesyłanie formularzy HTML, są obsługiwane za Ciebie. Ostatnim dobrodziejstwem jest utworzenie kompleksowej sieci archiwów Perl (CPAN) , aby zapewnić scentralizowane źródło modułów dodatkowych, przykładowych skryptów, a w niektórych przypadkach w pełni opracowane aplikacje internetowe. Obecnie wersje Perla są dostępne za darmo we wszystkich głównych systemach operacyjnych (od głównego nurtu Windows do najbardziej nieznanego wariantu Uniksa), a jeśli chcesz, aby zrobił coś skomplikowanego, prawdopodobnie ktoś napisał już moduł ułatwiający Ci pracę . Jedyną wadą tego języka jest to, że ponieważ nie został stworzony specjalnie do tworzenia aplikacji internetowych, nie został zoptymalizowany pod kątem szybkości, skalowalności ani łatwości użycia w ustawieniach serwera WWW. Istnieje wiele łatwiejszych języków, których można się nauczyć, a które mogą zdziałać tak samo na arenie tworzenia stron internetowych, ale Perl pozwoli ci również zrobić o wiele więcej niż tylko programowanie w sieci, jeśli zajdzie taka potrzeba. Zalety:

  • Dojrzały język z ponad dziesięcioletnią historią, jest mniej prawdopodobne, że napotkasz błędy w Perlu niż w jakimkolwiek innym języku po stronie serwera.
  • Jest BEZPŁATNY, chociaż dobra książka, która pokaże Ci możliwości, może trochę Cię cofnąć.
  • Większość dobrych hostów internetowych obsługuje Perl, więc prawdopodobnie nie będzie musiał dodatkowo płacić za hosting.
  • Do Twojej dyspozycji jest rozległa sieć wyspecjalizowanych programistów Perla na całym świecie. Nie tylko odpowiedzą na Twoje pytania na niezliczonych grupach dyskusyjnych Perla i listach mailingowych, ale archiwum CPAN (między innymi) da Ci wiele przykładów do pracy.

Wady:

  • Chociaż istnieją pewne opcje poprawiające sytuację, Perl nie skaluje się szczególnie dobrze na obciążonych serwerach. Jeśli chcesz stworzyć aplikację internetową, która może obsłużyć wiele trafień w krótkim czasie, możesz poszukać gdzie indziej.
  • Perl jest znany z pięciu różnych sposobów wykonywania najprostsza rzecz, która może utrudnić uczenie się na podstawie pracy innych, jeśli nie używają oni tej samej metody, do której przywykłeś. Ponadto programiści Perla znani są z tego, że znajdują najkrótszy sposób napisania dowolnego programu, więc możesz być zaskoczony, patrząc na przykładowy skrypt tylko po to, aby stwierdzić, że kompletny skrypt koszyka na zakupy e-commerce został napisany w trzech wierszach kodu, z których większość jest zawijasami i ukośnikami.
  • Perl jest zoptymalizowany pod kątem platformy Unix, na której został utworzony, więc jeśli spodziewasz się pracy na serwerze Windows, prawdopodobnie masz lepszy wybór pod względem wydajności.
  • Perl jest oprogramowaniem Open Source, co oznacza, że ​​nie ma dla niego formalnego wsparcia.Pomimo ogromnej społeczności wsparcia dostępnej dla Ciebie, jeśli coś pójdzie nie tak, jedyną osobą, na którą możesz naprawdę liczyć, jesteś Ty.

Docelowy programista : Większość programistów internetowych, którzy nadal pracują z Perlem dzisiaj, to zazwyczaj administratorzy Uniksa i użytkownicy, którzy również używają Perla do pracy w innych obszarach swojego systemu. Dla takich ludzi Perl to pocieszające narzędzie typu „idź wszędzie i rób wszystko”, na którym zawsze można polegać. Jeśli jesteś niedoświadczonym programistą, który stoi przed zadaniem utrzymania witryny, która została pierwotnie napisana w Perlu, weź kilka dobrych książek i przygotuj się na dodanie naprawdę potężne narzędzie do Twojego arsenału.

ASP

Zanim przejdziemy dalej, zróbmy coś dla purystów. Microsoft Active Server Pages (ASP) to nie język. ASP to raczej platforma, która pozwala łączyć jeden z wielu języków skryptowych (najpopularniejsze są VBScript i JavaScript) z rozszerzalnym zestawem komponentów . . Te komponenty są traktowane jako obiekty przez wybrany język skryptowy, gdy są używane jako część struktury ASP. W istocie siła ASP polega na jego zdolności do łączenia stosunkowo prostych języków skryptowych, takich jak VBScript i JavaScript, z potężnymi komponentami oprogramowania, które są zwykle używane przez programistów C / C ++. OK, to jest propozycja sprzedaży Microsoft na uboczu. A teraz spójrzmy prawdzie w oczy: z praktycznego punktu widzenia ASP równie dobrze może być językiem. Po prostu masz wybór między pisaniem VBScript ASP lub JavaScript ASP. Ponieważ większość przykładowego kodu jest napisana w języku VBScript, wybór należy do Ciebie. Dlatego język ASP jest ogólnie uważany za język do tworzenia dynamicznych witryn sieci Web przy użyciu VBScript i pod tym parasolem wyróżnia się. ASP jest łatwy do nauczenia, dostatecznie potężny do większości zastosowań WWW po stronie serwera i całkiem niezły pod względem wydajności. ASP jest ściśle powiązany z systemem operacyjnym Windows (większość składników oprogramowania, na których ASP opiera swoją funkcjonalność, jest specyficznych dla systemu Windows) oraz oprogramowaniem serwera sieci Web Microsoft Internet Information Services. Z tych powodów uruchamianie witryny sieci Web opartej na ASP na czymkolwiek innym niż na serwerze z systemem Windows nie jest ani praktyczne, ani pożądane. Jeśli konfigurujesz własny serwer sieci Web, oznacza to, że musisz zainwestować w kopię systemu Windows 2000 Server (chociaż większość ASP działa w systemie Windows 2000 Professional, usługi IIS nie są tak skalowalne na tej platformie). Jeśli płacisz za hosting w Internecie, oznacza to płacenie za serwer z systemem Windows, który jest zwykle droższy. Jak na to spojrzysz, korzystanie z ASP będzie kosztować. Istnieją wersje ASP, które można uruchamiać na serwerze Apache działającym pod kontrolą systemu Linux, ale chyba że Twoim celem jest przeniesienie istniejącej witryny internetowej ASP na Serwer Linux, nie ma sensu. Innym problemem dla programistów ASP jest stosunkowo ograniczony charakter komponentów dostarczanych w pakiecie z ASP. Jeśli wszystko, czego potrzebujesz do swojej aplikacji, to łączność z bazą danych, wyszukiwarka, usługi obsługi poczty elektronicznej, podstawowe przetwarzanie formularzy i śledzenie sesji, ASP będzie dla Ciebie odpowiedni. Każda mniej powszechna funkcjonalność będzie jednak zwykle wymagać zainstalowania dodatkowych składników oprogramowania na serwerze. Istnieje wiele firm, które produkują komponenty do użytku z ASP, które generują pliki PDF, współpracują z serwerami FTP, obsługują przesyłanie plików binarnych i wiele innych rzeczy. Niestety, te komponenty, takie jak ASP, są zwykle rozwiązaniami komercyjnymi, które będą kosztować. Plusem tego wszystkiego jest to, że ASP jest bardzo dobrze obsługiwaną technologią, za którą stoi cała społeczność programistów Microsoft. MSDN , Microsoft Development Network zapewnia bogactwo artykułów technicznych i materiałów referencyjnych dla programistów ASP, a personel pomocy technicznej firmy Microsoft z przyjemnością zbada wszelkie problemy związane z pracami programistycznymi (za cenę). Jeśli kiedykolwiek będziesz potrzebować odpowiedzi na pytanie, możesz mieć pewność, że będzie tam ktoś, kto udzieli Ci odpowiedzi. Zalety:

  • Dość łatwy do nauczenia, chociaż wymagane jest programowanie.
  • Wbudowany w Windows 2000 Server – brak problemów z instalacją.
  • Dostępne profesjonalne wsparcie.

Wady:

  • To nie jest darmowe (chyba że używasz już serwera Windows)
  • Specjalistyczna funkcjonalność może wymagać zakupu komponentów komercyjnych lub samodzielnego opracowania ich w C / C ++ lub Visual Basic.
  • Jeśli jesteś przyzwyczajony do składni w stylu C (współdzielonej przez C / C ++, Java, Perl, PHP itp.), może okazać się, że trudno jest uporać się z idiosynkrazjami języka VBScript.

Docelowy programista: jeśli programowałeś w języku VBScript lub Visual Basic albo tworzyłeś obiekty COM w systemie Windows Wcześniej jest to zdecydowanie platforma programistyczna dla Ciebie. Ponadto ASP jest tak przyjazny dla nie-programistów, jak język programowania może być (ale jeśli naprawdę nienawidzisz programowania, sprawdź Cold Fusion, dalej). Jeśli czujesz się komfortowo decydując się na system Windows jako platformę serwera sieci Web i możesz sobie pozwolić na związane z tym koszty lub jeśli firma, dla której pracujesz, po prostu wymaga takiego poziomu wsparcia, jaki może zapewnić firma Microsoft, ASP jest doskonałą technologią do nauczenia się. Cold Fusion Dla projektanta stron internetowych, który nigdy wcześniej nie napisał programu, wybór platformy programistycznej po stronie serwera może być przerażający. Niezależnie od tego, którą wybierzesz, masz do czynienia z wielkim, złym językiem programowania, którego musisz się nauczyć, a głowa zaczyna boleć… Pierwotnie stworzony przez Allaire w 1995 i niedawno wykupiony przez Macromedia , Cold Fusion został zaprojektowany, aby był inny. Zamiast języka skryptowego, Cold Fusion oferuje zestaw tagów do nauczenia. Tak, tagi – tak jak te znaczniki HTML, które już znasz i lubisz! Weźmy przykład publikowania informacji przechowywanych w bazie danych w Internecie. W większości języków po stronie serwera musisz dodać kod do swojego Aby wyjść z trybu HTML, połączyć się z bazą danych, zażądać wpisów z bazy danych, którą chcesz wyświetlić, i przetworzyć wyniki przesłane przez bazę danych, aby wyświetlić je jako część strony internetowej. W Cold Fusion to typowe zadanie jest wykonywane za pomocą dwóch tagów: znacznika , którego atrybuty nadają zapytaniu nazwę i wskazują, jakie informacje pobrać z jakiej bazy danych. Drugi znacznik, , odnosi się do zapytania i pozwala na użycie standardowego HTML sformatować i wyświetlić wyniki zapytania. Dla doświadczonego programisty ten system oparty na tagach może wydawać się restrykcyjny i nieelastyczny, ale z wbudowaną biblioteką ponad 300 tagów w najnowszej wersji oraz możliwością dodawania niestandardowych tagów za pomocą bardziej tradycyjne języki programowania, takie jak C / C ++ a nd Java, Cold Fusion to wszystko , ale restrykcyjne. Cold Fusion 5.0 zawiera tagi, które automatycznie generują wykresy na podstawie danych z bazy danych, bezproblemowo zapewniają funkcje wyszukiwania w Twojej witrynie, a nawet generują formularze HTML z pełnym kodem weryfikacyjnym JavaScript. Projektantowi, który jest zmuszony nabyć umiejętności po stronie serwera, Cold Fusion zapewnia utopijną obietnicę, że będzie musiał nauczyć się tylko kilku nowych tagów! Podobnie jak ASP, Cold Fusion jest komercyjną platformą serwerową, co oznacza, że ​​jej uruchomienie będzie kosztować pieniądze, niezależnie od tego, czy skonfigurujesz własny serwer, czy wynajmiesz miejsce u dostawcy usług hostingowych. Jednak w przeciwieństwie do ASP Cold Fusion nie jest powiązany z platformą Windows. Cold Fusion może równie łatwo zintegrować się z Apache działającym pod Linuksem, jak z IIS w Windows 2000. Zalety:

  • Niezwykle łatwe do nauczenia – nie jest wymagane programowanie!
  • Potężny i bardzo skalowalny (najnowsza wersja obsługuje klastry serwerów oparte na oprogramowaniu i sprzęcie).
  • Profesjonalne wsparcie ze strony Macromedia.
  • Wiele platform.

Wady:

  • Kosztowny w konfiguracji własny serwer: Cold Fusion Server Professional 5.0 kosztuje 1295 USD
  • Programiści mogą nie lubić metod programowania opartych na tagach.

Docelowy programista: projektanci stron internetowych, którzy dobrze znają HTML, ale muszą dodać do swojego repertuaru umiejętności po stronie serwera bez konieczności uczenia się języka programowania. Z punktu widzenia przeciętnego programisty nauka Cold Fusion jest jak nauka nowych tagów. Osoby, które nie są projektantami, mogą również rozgrzać się do schludnego programowania po stronie serwera za pomocą tagów, więc jeśli masz dość debugowania skryptów po stronie serwera, warto zajrzeć do Cold Fusion!

PHP

PHP, względnie nowy na arenie programistycznej po stronie serwera, zyskał wielu zwolenników wśród programistów dzięki znana składnia i obszerna biblioteka funkcji. Ponadto jego stosunkowo prosta składnia i niska, niska cena (za darmo!) Sprawiły, że jest to atrakcyjna alternatywa dla ASP firmy Microsoft dla nowych programistów. Niektórzy nazywają PHP „zabójcą Perla” w świecie skryptów po stronie serwera. Dla celów tworzenia stron WWW, PHP może zrobić prawie wszystko, co Perl, i zwykle robi to szybciej i łatwiej. W przeciwieństwie do Perla, który zwykle działa jako program CGI wywoływany przez serwer WWW do obsługi każdego żądania strony, PHP może zintegrować się z serwerem WWW, dzięki czemu działa znacznie wydajniej.PHP to niezwykle wydajny język, z szeroką gamą wbudowanych funkcji do wykonywania wszystkiego, od śledzenia sesji użytkowników po generowanie dynamicznej grafiki, a nawet plików PDF w locie! Żadnych modułów do zainstalowania, żadnych komercyjnych dodatków do kupienia… PHP obsługuje wszystko sam! W rzeczywistości jedyną słabością PHP jest to, że stosunkowo trudno jest rozszerzyć język w celu dodania niestandardowych funkcji, które nie są obsługiwane przez funkcje wbudowane. To wymaga znajomości programowania w C / C ++ i nie jest dla osób o słabym sercu! Na szczęście musiałbyś wymyślić bardzo ezoteryczną aplikację internetową, aby wymagać funkcjonalności, która nie jest jeszcze wbudowana w PHP. PHP jest darmowym, wieloplatformowym oprogramowaniem Open Source. Integruje się ze wszystkimi głównymi serwerami WWW we wszystkich głównych systemach operacyjnych. Jest to wielkie dobrodziejstwo dla programistów z ograniczonym budżetem, ponieważ mogą oni skonfigurować kompletny serwer WWW oparty na systemie Linux z obsługą PHP i nie płacić ani grosza za oprogramowanie! Wadą tego jest oczywiście to, że nie ma formalnego wsparcia dla jakichkolwiek problemów, które możesz napotkać w PHP. Ponieważ PHP jest nową i aktywnie rozwijaną technologią, w najnowszych wersjach nadal można znaleźć sporadyczne błędy. Nie daj się jednak zniechęcić tym drobiazgom – PHP ma niezwykle aktywną społeczność użytkowników (której duży segment można znaleźć na naszych własnych forach SitePoint !), który zawsze chętnie pomoże Ci z wszelkimi przeszkodami, a obecne wersje PHP są dość stabilne i niezawodne. Zalety:

  • Dość łatwe do nauczenia, szczególnie dla programistów ze znajomością C / C ++, Java lub Perl.
  • Aktywna społeczność użytkowników gotowa pomóc Ci w rozpoczęciu pracy.
  • Wszystko jest wbudowane w język.
  • To nic nie kosztuje!
  • Wiele platform .

Wady:

  • Ten język został zaprojektowany tak, aby był przyjazny dla programistów, co niestety czyni go trochę mniej przyjaznym dla nieprogramistów.

Docelowy programista: deweloperzy z ograniczonym budżetem, którzy lubią proste programowanie (np. JavaScript) lub nie przejmuj się nauką. PHP zapewnia dużą moc dzięki stosunkowo prostej strukturze kodu, ale może nie być odpowiedni dla bardzo zaawansowanych aplikacji, które nie są obsługiwane przez wbudowane funkcje PHP.

Java

Java jest obecnie prawdopodobnie najpotężniejszą platformą do tworzenia witryn WWW po stronie serwera. Od małych programów Java (serwlety), które obsługują żądania stron internetowych, po JavaServer Pages (JSP), które łączą HTML z niestandardowymi znacznikami i kodem Java, a nawet Enterprise JavaBeans (EJB), komponenty oprogramowania o wyrafinowanych możliwościach płynnego przenoszenia informacji między serwerami i w sieciach obsługujących aplikacje rozproszone, Java jest naprawdę gorącą technologią. Doświadczony programista Java WWW może z łatwością uzyskać pensje przekraczające 100 000 USD rocznie. Jak można się spodziewać, jest ku temu powód: Java nie jest łatwa do nauczenia! W przeciwieństwie do języków skryptowych, takich jak Perl, ASP i PHP, Java jest pełnoprawnym językiem programowania, w pełni zdolnym do pisania dużych programów! Ktoś z niewielkim doświadczeniem w programowaniu mógłby spodziewać się praktycznej znajomości języka Java w ciągu miesiąca lub dwóch z pomocą dobrej książki, a za miesiąc prawdopodobnie byłby w stanie przyswoić podstawy prostego programowania po stronie serwera z Javą. Jeśli jesteś zainteresowany zrobieniem kariery w programowaniu po stronie serwera, to może się wydawać, że nie jest to dużo, ale jeśli chcesz, aby coś działało szybko, prostszy język, taki jak PHP, może sprawić, że zaczniesz działać w tydzień lub mniej! Java jest znana ze swojej filozofii Write One, Run Anywhere (WORA) i rzeczywiście można ją uruchomić na wszystkich głównych serwerach internetowych i wszystkich głównych systemach operacyjnych. Aplikacje internetowe Java można również umieścić w standardowych plikach archiwum aplikacji internetowych (.WAR), które można następnie zainstalować na dowolnym serwerze sieci Web obsługującym język Java, niezależnie od platformy. Twórcy Java zaplanowali wykorzystanie tego mechanizmu do dystrybucji komercyjnych aplikacji internetowych do użytku na serwerach WWW Java; Jednak z mojego doświadczenia wynika, że ​​aplikacje internetowe Java są raczej niestandardowymi rozwiązaniami złożonych problemów, a nie rozwiązaniami przeznaczonymi do sprzedaży, które można kupić online. Wielu różnych dostawców produkuje wtyczki, które umożliwiają serwerom sieci Web, takim jak Apache i IIS, uruchamianie aplikacji internetowych w języku Java, i chociaż większość z nich jest bezpłatna do użytku osobistego i programowania, za większość z nich należy zapłacić, zanim będzie można ich użyć w celach komercyjnych Stronie internetowej. Zalety:

  • Niezwykle wydajne i skalowalne.
  • Wieloplatformowe.
  • Większość wtyczek serwera Java jest bezpłatna do celów osobistych i programistycznych.

Wady:

  • Nauka języka Java wymaga dużo pracy.Nawet nie zaczynaj, jeśli nie myślisz poważnie o nauce programowania obiektowego.
  • Większość wtyczek serwera Java musi być opłacona, jeśli mają być używane do hostowania komercyjnej witryny sieci Web.

Docelowy programista: poważni programiści, którzy chcą najwyższej mocy, elastyczności i skalowalności dla swoich aplikacji internetowych i nie mają nic przeciwko płaceniu za to w pocie, łzach i czasie rozwoju. Podsumowanie W tym artykule przyjrzeliśmy się względnym funkcjom, zaletom i wadom wszystkich głównych dostępnych obecnie opcji programistycznych po stronie serwera:

  • Perl : dojrzały, wieloplatformowy język, który może być trudny do zrozumienia
  • ASP : potężna platforma Microsoft oparta na systemie Windows
  • Cold Fusion : potężna, oparta na tagach opcja dla nieprogramistów
  • PHP : wieloplatformowa alternatywa typu open source z wieloma wbudowanymi funkcjami
  • Java : najwyższa moc i elastyczność dla poważnych programistów

Na zdrowie

Odpowiedź

PHP jest językiem skryptowym po stronie serwera. Dowolny język programowania może być używany jako alternatywa, o ile dostępne jest oprogramowanie serwerowe obsługujące tę funkcję. Możesz używać Python dla Django, JavaScript dla Node.JS, ASP .Net dla IIS, Java dla Tomcat, Php dla Apache i wiele innych, które Jeszcze nie używałem.

Moim ulubionym jest ASP .net MVC, ponieważ mogę używać potężnego programu Visual Studio do kodowania i mogę używać języka C #. Nie lubię php tylko dlatego, że nie ma on bardzo dobrego IDE (prawdopodobnie nigdy takiego nie miałem) tak potężnego jak Visual Studio iw większości przypadków php jest nadal proceduralny. Przez większość swojej kariery kodowałem w językach obiektowych, a pisanie skryptów w procedurach wydaje mi się zbyt archaiczne. Nienawidzę nawet JS za to, ale przynajmniej jQuery jest po to, by rozwiązać większość moich problemów.

Po prostu czuję, że php nie ma struktury potrzebnej do dużego projektu. Tak, wiem, że facebook używa php, ale jest mocno dostosowany i mają utalentowanych inżynierów do tworzenia własnych frameworków i IDE. Próbowałem nawet frameworków takich jak CodeIgniter i CakePHP. Chociaż z pewnością są one lepsze niż pisanie surowego kodu php, nie mogą porównać luksus pisania kodu C #.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *