![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 0 Pomógł: 0 Dołączył: 14.09.2009 Ostrzeżenie: (10%) ![]() ![]() |
Czy faktycznie każdy rozumny człowiek powinien omijać PHP szerokim łukiem? Największe serwisy internetowe powstały w PHP (Facebook, YT). Internet jest zalany artykułami o beznadziejności PHP. Czy jest tak w rzeczywistości? Jakie są powody by tak twierdzić? Jeff Atwood stara się to wyjaśnić. SPAM
Ten post edytował erix 14.09.2009, 21:45:27
Powód edycji: [erix]: znowu ten sam link, moderka do odwołania [Ociu]: Usunąłem link.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Co do OOP
Cytat Jest jak najbardziej prawidłowym podejściem pod warunkiem, że się z nimi nie przesadzi. Wiem co miałeś na myśli, ale powinieneś to doprecyzować, bo przy powyższym to Java i inne podobne "przeginają". (IMG:style_emoticons/default/winksmiley.jpg) W PHP np. nie warto czasami korzystać z obiektów, bo (jak zauważyli przedmówcy) bo daje ono narzędzia (np. w postaci tablic asocjacyjnych), które są szybsze - a dają podobne możliwości (oczywiście: w niektórych przypadkach)Cytat Co do wprowadzania kolejnych "warstw abstrakcji" to przy takim podejściu do sprawy niedługo do włączenia notatnika będzie potrzebny procesor 2GHz i 1GB RAM I nie ma w tym nic złego pod warunkiem, że ten 1GB to będzie powiedzmy jakaś jedna stutysięczna część dostępnej na PC pamięci. Jeżeli postęp technologiczny pozwala na pewne marnotrawstwo pamięci, mocy obliczeniowej czy zużycia energii (no, z tym to jeszcze dłuuugie lata będzie przynajmniej u nas spory problem :]) to "czemu nie"?
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Co do OOP. Wiem co miałeś na myśli, ale powinieneś to doprecyzować, bo przy powyższym to Java i inne podobne "przeginają". Java to nie jest OOP tylko OP. Przyjrzyj się architekturze tego języka. Tam najmniejszą elementarną częścią jest klasa Object, po której dziedziczy wszystko.Wszystkie dane są obiektem i jest on domyślnym typem, a wszystko może być do niego przekształcone. Rozumiem za to sens zastosowania maszyny wirtualnej w ich wypadku. To warstwa pośrednicząca między systemem a aplikacją, mająca uniezależnić ją od niego. Takie podejście jest akceptowalne dla mnie i wielu osób. To samo podejście zastosowano choćby w OpenGL, gdzie operacje graficzne są tłumaczone pomiędzy kartą graficzną a kodem także niezależnie. I stąd uważam to za lepsze od DirectX, bo daje takie same lub lepsze rezultaty nie na jednym, ale kilku systemach operacyjnych. Zresztą jeśli przyjrzysz się protokołom internetowym to zauważysz, że rozwiązania różnych firm nieraz łączyły 2 i 3 warstwę modelu OSI/ISO w jedną, czyli był przypadek odwrotny do tutaj omawianego.I nie ma w tym nic złego pod warunkiem, że ten 1GB to będzie powiedzmy jakaś jedna stutysięczna część dostępnej na PC pamięci. Jeżeli postęp technologiczny pozwala na pewne marnotrawstwo pamięci, mocy obliczeniowej czy zużycia energii (no, z tym to jeszcze dłuuugie lata będzie przynajmniej u nas spory problem :]) to "czemu nie"? Niestety jeszcze długie lata poczekamy zanim nastąp skok technologiczny. W chwili obecnej doszliśmy już niemal do granicy możliwości zmniejszania układów krzemowych i każda próba dalszego zmniejszania sprawia, że procesory, z uwagi na przeskoki elektronów, popełniają coraz więcej błędów. To dlatego wprowadza się kolejne rdzenie by dotrzymać prawu Moore'a. Jeśli nie można zmniejszać fizycznie układu to należy go dublować. Dopiero wprowadzenie nanotechnologii (nanorurki węglowe), oparcie o struktury DNA będzie przełomem pozwalającym na dalsze, bezpieczne zmniejszanie układów.Osobiście nie wiem do kogo mi bliżej w podejściu... Lubię gdy kod jest szybki, ale cenię swój czas i wygodę pisania. Potrafię pójść na kompromis między estetyką kodu i jego funkcjonalnością a wydajnością. To co mnie irytuje jednak to podejście do obiektowego programowania przez niektórych. Gdyby mogli to wystawili by mu ołtarzyk i modlili się do niego. Według nich optymalizacja jest zbędna, bo twórcy już się tym zajęli wypuszczając narzędzie. Mają rację, ale to jest optymalizacja na poziomie funkcjonalności obiektu i tylko trochę tyczy wydajności, na tyle, na ile nie zaburza jego elastyczności i skalowalności.Tym zapatrzonym we framework nawet nie przyjdzie do głowy próba napisania własnej metody w kodzie, mimo że byłaby ileś razy szybsza, bo twierdzą, że to rozwiązanie już framework udostępnia i nie chcą wymyślać koła na nowo. Tyle że nie zauważają, iż dane rozwiązanie ma ogromny czasem narzut wynikający z przyjętych przez piszącego konwencji i zastosowanych rozwiązań oraz podejścia. Z biegiem czasu dojdzie do sytuacji, że programiści znają tylko funkcje frameworka, który zastąpi im wszystkie z danego języka, ale przepisane do niego wolę nie wiedzieć jak wtedy się wszystko będzie ślimaczyć, gdyż dojdzie cała warstwa przepisująca funkcje frameworka na kod języka, a do tego obiektowo. Co z tego, że ktoś będzie miał certyfikat twórcy frameworka, skoro tylko do niego będzie ograniczony podczas tworzenia aplikacji? Wspomniano o wojnie: artyści i pragmatycy. Nie wiem jak Ty nasty to widzisz, ale jak dla mnie nie tak definiuję te terminy. Pragmatyk to osoba, która ma ograniczone spojrzenie na język, korzystająca z utartych rozwiązań i algorytmów byle osiągnąć zamierzony efekt szybko i z w miarę dobrą wydajnością. Wynika to z ilości napisanego kodu i dostrzegania gdzie jaki algorytm nada się najlepiej. Artysta jest jego rozwinięciem. Potrafi zmodyfikować algorytmy już przez innych napisane, nie boi się stosować własnych, autorskich i często trudno zrozumiałych dla pragmatyków, którzy dopiero po bliższym się przyjrzeniu im zauważają dopiero zalety takich konstrukcji. Powiedziałbym, że artysta to pragmatyk, który zrobił lvl-up w postrzeganiu programowania (IMG:style_emoticons/default/winksmiley.jpg) Wyszedł poza ogólne przyjęte schematy i jest na tyle dobry, że potrafi sam tworzyć nowe. Wielu zaś uważa za artystów tych, którzy piszą kod szybko i mało wydajnie ale korzystając z gotowych narzędzi z funkcjami, które sprawiają, że nie muszą się oni przejmować kilkoma płaszczyznami działalności programu skupiając tylko na jednej lub dwóch. dla takich pragmatyk, to ten który grzebie się w kodzie "o jeden poziom abstrakcji niżej". Gdyby tak skrócić mój sposób postrzegania do kilku słów to można to określić jako: Pragmatyk - doświadczony programista określonego języka, Artysta - doświadczony programista wielojęzykowy. EDIT: Temat fajny bo można się szerzej wypowiedzieć i jak widzę piszą tutaj raczej osoby w sposób rozsądny, bez flame'a, z bogatym doświadczeniem w języku. Byle więcej takich tematów z sensownymi wypowiedziami było w przyszłości (IMG:style_emoticons/default/smile.gif) Nawet to, że nie zgadzamy się we wszystkim nie prowadzi do bezsensownych utarczek ale raczej konstruktywnej krytyki określonego podejścia. Ten post edytował thek 19.09.2009, 10:47:11 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 11:04 |