Planowanie projektów
Firma CrystalPoint jest do Państwa dyspozycji w zaplanowaniu działalności internetowej, analizie potrzeb i wymagań, opracowaniu funkcjonalności czy grafiki. Prosimy o kontakt z nami.
Napisz do nas...Oferta
CrystalPoint specjalizuje się w tworzeniu zaawansowanych aplikacji internetowych, tworzonych z użyciem sprawdzonych technologii.
- Aplikacje internetowe
- Strony i wizytówki WWW
- Hosting
- Serwery VPS
Portfolio
Nasze usługi mają potwierdzenie w zrealizowanych i utrzymywanych projektach. Projektowaliśmy:
- Sklepy internetowe
- Aplikacje dedykowane
- Serwisy społecznościowe
- Narzędzia dla programistów
PHP, język zdezorientowany obiektowo
CrystalPoint wyspecjalizował się w tworzeniu aplikacji internetowych z wykorzystaniem popularnego języka przeznaczonego specjalnie do tych zastosowań: PHP. Wybór tego a nie innego języka uzasadniony jest mocnymi argumentami. PHP istnieje wystarczająco długo by zyskać sobie wciąż rosnącą popularność, dzięki której jest rozwijany i udoskonalany. Jest szybki i wydajny, posiada składnię opartą o znaną każdemu programiście rodzinę języków C. Zdawałoby się, że jest najlepszym z możliwych wyborów jako narzędzia pracy dla młodej firmy.
Wydaje się, że PHP jest najlepszym z możliwych wyborów jako narzędzia pracy dla młodej firmy. Czasami, niestety wydawać się może, że „najlepsze” nie oznacza „tak dobre jak mogło by być”. Zastanówmy się chwilę, jakie są wymagania stawiane przed nowoczesnym językiem programowania przeznaczonym do tworzenia aplikacji internetowych. Jak się wydaje, klucz do odpowiedzi na to pytanie zawiera się w samym zastosowanym określeniu „nowoczesny”.
Nowoczesne języki programowania
Języki programowania muszą dostosowywać się do wymogów tworzonych przez rozwój technologiczny. Ich historia rozwoju popiera tą tezę. Rodzina języków assemblerowych w pewnym momencie przestała wystarczyć jako narzędzie do „codziennego programowania”. Powstały języki średnio- i wysoko-poziomowe. Postawiono nacisk na łatwość obsługi. C ze swoją tragicznie niewygodną obsługą ciągów znaków i tablic musiał ustąpić miejsca nowszym językom, które sukcesywnie przenosiły ciężar zajęcia się tak nieintuicyjnymi rzeczami jak pilnowanie typów zmiennych na kompilatory i interpretery. Wreszcie doszliśmy do sytuacji, w której języki programowania zostały z jednej strony zredukowane do podstawowych instrukcji sterujących a z drugiej nadbudowane ogromną ilością konstrukcji powstających podczas lat rozwoju inżynierii programowania. Wiele języków, które były zbyt skomplikowane, zbyt nieintuicyjne lub miały zbyt ograniczone możliwości szybko zniknęło z rynku.
Jedynie język który umożliwia zastosowanie nowoczesnych rozwiązań na dłuższą metę ma rację bytu. Programiści chcą dostać do rąk narzędzie, które pozwoli im zastosować teorię obiektowości czy wykorzystać wzorce projektowe, szybko, efektywnie i za pomocą nowoczesnych metod. Jak się okazuje w codziennej pracy programistycznej są to rzeczy nieodzowne.
PHP, Hypertext Preprocessor
PHP powstał w roku 1994 jako prosty język do tworzenia dynamicznych stron internetowych. Pozwalał na zdefiniowanie funkcji obsługujących żądania przeglądarki i przedstawienia odpowiedzi serwisu za pomocą np. HTML. Dziś, po latach rozwoju, PHP pretenduje do miana języka programowania zorientowanego obiektowo. Niestety, ponieważ obsługa obiektowości wprowadzona została trochę na siłę, jest ona sztuczna i niepełna. W dodatku rosnące zadłużenie technologiczne mocno przeszkadza w dostosowaniu PHP do poziomu „dorosłego” języka programowania – byłaby to zmiana założeń skutkująca koniecznością napisania wszystkiego od nowa. Ten smutny fakt powoduje, iż rozwój PHP postępuje ewolucyjnie lecz w żadnym momencie rewolucyjnie, co widać jeśli prześledzi się zmiany w kolejnych jego wersjach.
Podczas projektowania a następnie realizacji naszych projektów często napotykaliśmy się na przeszkody wynikające z bariery technologicznej języka z którego korzystamy. Proceduralne zaszłości PHP i niepełna obsługa obiektowości powodowały konieczność ponownego przemyślenia projektu, zubożenia implementacji czy wprowadzenia niewydajnych rozwiązań. Cierpiała na tym także możliwość ponownego wykorzystania napisanego już kodu – bardzo dużej zalety programowania zorientowanego obiektowo.
PHP i obiektowość
Przyjrzyjmy się PHP jako językowi obiektowemu. Przypomnijmy: każda ze struktur na jakich operujemy jest obiektem. Każda taka struktura posiada pewne atrybuty ją opisujące i metody na niej działające, niektóre niedostępne dla innych obiektów. Struktury takie mogą być ze sobą związane zależnościami. Już na pierwszy rzut oka widać, że traktowanie wszystkich encji powołanej w czasie działania programu napisanego w PHP nie jest takie jakie być powinno. Specjalnie zadeklarowane obiekty pozostają oczywiście obiektami, lecz podstawowe struktury wbudowane w język są już typami prostymi. I tak: powołanej do życia zmiennej o wartość np. 5 (typ prosty, liczba całkowita) nie przeładujemy operatorów, nie zdefiniujemy klasy pochodnej ani nie dodamy nowej metody.
Bolączką większości języków zorientowanych obiektowo jest problem związany z dziedziczeniem wielokrotnym. Dzięki niemu możemy zdefiniować i powołać obiekt posiadający właściwości wielu obiektów-rodziców. PHP pozwala jedynie na dziedziczenie jednokrotne i nie udostępnia na razie żadnych sensownych mechanizmów pozwalających na obejście tego problemu. Tu na pomoc przychodzą założenia wzorców projektowych, gdzie głębokie i wieloreferencyjne drzewo dziedziczenia jest zastępowane agregacją obiektów.
PHP stoi w rozkroku, jedną nogą po stronie programowania proceduralnego, drugą po stronie programowania zorientowanego obiektowo. I nie do końca może się zdecydować co dalej. Głównym problemem jest fakt, iż PHP nie należy tak naprawdę do języków naprawdę nowoczesnych. Nie był projektowany z założeniem stworzenia języka obiektowego a jego rozwój jest powolny i powoduje, że PHP zostaje w tyle w porównaniu z innymi językami obiektowymi.
Silnymi stronami PHP są jego wydajność, szybkość a także prosty interfejs i dość spójna składnia. Duża społeczność oraz zainteresowanie spowodowało, że do PHP istnieje mnóstwo dodatkowych modułów. Jak grzyby po deszczu powstają biblioteki napisane w PHP i nowe, wydajne frameworki. Dzięki temu język uzyskał dużą wszechstronność i możliwości zastosowania, stając się jednym z najpopularniejszych (jeśli nie napopularniejszym) języków skryptowych służących do tworzenia aplikacji internetowych.