Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dlaczego programiści PHP to nie programiści?
Forum PHP.pl > Inne > Hydepark
Stron: 1, 2, 3
darko
Cytat(nasty @ 8.01.2010, 13:08:38 ) *
Ponieważ w php nie da się implementować algorytmów.

Yy... w każdym języku da się zaimplementować pewne typy algorytmów. Bo czym jest algorytm z definicji? (wikipedia):
Cytat
Algorytm – w matematyce oraz informatyce skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego rodzaju zadań.
I dalej:
Cytat
Algorytm to jednoznaczny przepis przetworzenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych.

I od konkretnego języka (i umiejętności programisty) zależy czy można w nim wykonać pewnego rodzaju zadania. Tyle na ten temat.
nasty
echhh. Już pisałem o tym kilka razy na tym forum.

Zobacz:
http://rafjan.pl/index.php?id=fifo
http://rafjan.pl/index.php?id=lista
http://rafjan.pl/index.php?id=stack

Takie są implementacje tych struktur danych w PHP. Na czym wszystko jest implementowane? na tablicy asocjacyjnej/mapie co jest oddzielną strukturą danych i nie powinna być wykorzystywana do tego.
Nie twierdzę, że autor tych klas jest kiepski - wręcz przeciwnie. Radzi sobie najlepiej jak może z ograniczeniami języka.

I według Ciebie tak zaimplementowane rzeczy można nazwać algorytmem albo strukturą danych? Proszę Cię...

Taka implementacja nawet mija się z celem tej struktury danych.
itsme
ale Nasty o co Ci naprawdę chodzi ?
że php jest cienkie ?
ale w jakim zakresie ?
co to wnosi ?
piszecie tyle postów a zapominacie o podstawowej zasadzie o której wspominano również tutaj (thx ~zyx).
Wróćcie do jego posta i jeszcze raz przeczytajcie bo powielać tak oczywistych prawd mi się już nie chce ...

PHP nie jest do wszystkiego tak samo jak w C tez wszystkiego nie napiszesz ...

milego
darko
~nasty
Kolejki, listy i stosy to struktury danych i/lub kontenery, ale nie przykłady zastosowania podstaw algorytmiki w php, o którym pisał ~thek, a które Ty negujesz.
// edit
Ciekawe po co w takim razie 8,220,000 stron w Internecie pod hasłem php algorithms ?
nasty
Kurcze... a algorytmy na czym operują? nie na strukturach danych?
Jak masz od początku złe struktury to nie zrobisz dobrego algorytmu.


a Itsme:
Chodzi mi o to, że thek napisał o algorytmice i PHP, to mu odpowiedziałem, że jeżeli pod tym kątem patrzy to PHP jest złym wyborem. Dalej to udowadnianie mojej racji na temat tej opinii ;-)

Edit:
http://www.google.pl/search?q=man+vagina ( 8,260,000 wyników )
to znaczy, że masz waginę? tongue.gif

Thek: proszę, pogrubiaj ważniejsze zdania w swoich postach, bo chętnie zapoznam się z Twoim zdaniem ale nie mam siły na tak długie biggrin.gif
thek
Ja nie krytykuję smile.gif Kwestia tego, że jak słyszę teksty iż ktoś "napisał CMS w ciągu nocy" to nie wiem czy kpi ze mnie czy jest debilem winksmiley.jpg I tu pojawia się właśnie znów kwestia kodu. Co on ma za definicję CMS-a? Ja będąc po studiach inżynierskich z informatyki nawet nie zdołałbym przemyśleć wszystkich funkcjonalności i powiązań w serwisie by się zabrać za projektowanie, a on w tym czasie przemyślał, zaprojektował i zaprogramował CMS. Albo geniusz albo ja się starzeję już biggrin.gif Przez ten czas to może bym zmienił jakiemuś gotowemu CMS layout, ale nie napisał, w oparciu o najlepiej mi znany framework, nowego. To po prostu nierealne (nawet biorąc pod uwagę "magię programowania po pijaku" winksmiley.jpg ) zrobić w tak krótkim czasie taki projekt. Może zrobiłby szkielet i kilka elementarnych funkcjonalności gdyby olał projektowanie i całą fazę przygotowawczą. Ale w pełni funkcjonalny? Brednie i nic więcej. Tylko że tacy zazwyczaj jak on najgłośniej krzyczą i nie dość, że potem php jako język jest uważany za zbyt prostacki, to jeszcze jakość kodu, która wyszła spod ręki takiego "miszcza" jest wysoce wątpliwa. A to kładzie się potem cieniem na całej społeczności.

EDIT:
@nasty: Zapytam więc... Co masz na myśli pisząc struktura danych? Jeśli tylko obiekty lub złożone struktury w stylu wspomnianych list i kolejek to dla mnie źle rozumiesz to pojęcie. Strukturą danych jest zarówno tablica jak i pojedynczy int, double czy cokolwiek innego.
To co robi blooregard w linkach to nie algorytm tylko implementacja struktury danych w określonym języku. Czy jeśli implementowałbym klasę wektora jako tablicę asocjacyjną to miałoby to sens? Nie. Ponieważ Array już tym jest i tworzyłbym funkcje do gotowych funkcji. Bo czym w FIFO jest dodanie lub zdjęcie elementu jak nie pop() i push() ? To samo tyczy części innych struktur, które de facto sprowadzają się do opakowania już gotowych funkcji dla Array. Pokaż mi sens tego. Algorytmika zajmuje się pisaniem algorytmów, czyli ciągu operacji które mają prowadzić do określonego celu w sposób najbardziej optymalny/wydajny/szybki/ekonomiczny/zgodny z założeniami. Przykładem jest sortowanie. Wielu chwali QuickSorta bo jest szybki (złożoność obliczeniowa też niska) i stosuje go niemal wszędzie. Tylko czy ktoś zauważa, że to jeden z bardziej pamięciożernych i w środowisku z bardzo niską ilością zasobów (systemy wbudowane) może być fatalnym rozwiązaniem? Nie stawiaj więc znaku równości, czy choćby przybliżenia między złożonymi strukturami danych a algorytmem bo to nie jest tożsame.
Zobacz jakie formy może przyjąć zapis algorytmu. Między innymi schemat blokowy. Powiedz mi czy kolejkę jako strukturę danych zapiszesz jako schemat blokowy?

EDIT jednym zdaniem: Nie myl nasty implementacji algorytmu z implementacją struktury danych smile.gif
blooregard
Cytat


Cytat
Nie twierdzę, że autor tych klas jest kiepski - wręcz przeciwnie. Radzi sobie najlepiej jak może z ograniczeniami języka.


Hej, ~nasty, dzięki smile.gif

BTW, owe klasy to po prostu efekt moich ćwiczeń z tą książką: http://helion.pl/ksiazki/algpo.htm

dr4ko
Nasty, algorytm to algorytm. Co ma brak jakichś struktur danych do algorytmów? Klasy które przytoczyłeś same implementują algorytmy by zasymulować działanie struktur danych... Odnoszę wrażenie że mylisz pojęcia.
darko
Cytat(nasty @ 8.01.2010, 13:35:32 ) *
Kurcze... a algorytmy na czym operują? nie na strukturach danych?

Nie tylko.

Cytat(nasty @ 8.01.2010, 13:35:32 ) *
Chodzi mi o to, że thek napisał o algorytmice i PHP, to mu odpowiedziałem, że jeżeli pod tym kątem patrzy to PHP jest złym wyborem.

Tu masz całkowitą rację.

Cytat(nasty @ 8.01.2010, 13:35:32 ) *
Edit:
http://www.google.pl/search?q=man+vagina ( 8,260,000 wyników )
to znaczy, że masz waginę? tongue.gif

Nie ma to jak rzeczowy argument smile.gif
  1. if($ilosc_wynikow_w_google_dla_hasla_man_vagina > $ilosc_wynikow_w_google_dla_hasla_php_algorithms) {
  2. $you_cannot_use_algorithms_in_php_programming = true;
  3. }
nasty
Cytat(dr4ko @ 8.01.2010, 13:41:08 ) *
Nasty, algorytm to algorytm. Co ma brak jakichś struktur danych do algorytmów? Klasy które przytoczyłeś same implementują algorytmy by zasymulować działanie struktur danych... Odnoszę wrażenie że mylisz pojęcia.

Jakie pojęcia mylę?

Edit:
@drako: a na czym jeszcze?
nie, po prostu użyłem podobnie mocnego argumentu - ilość wyników zwracanych przez google dla danego hasła.
darko
Zgodnie z klasyczną definicją: na danych wejściowych, co nie oznacza, że dane te są jakąkolwiek uporządkowaną strukturą. A już tym bardziej nigdzie nie jest powiedziane, że musi to być kolejka, lista czy stos.
nasty
Każde dane są jakąś strukturą danych.
dr4ko
Właśnie nie wiem z czym mylisz algorytmy. Nie lubię się odwoływać do wikipedii ale nie chce mi się szukać innych źródeł:
http://en.wikipedia.org/wiki/Algorithm

Teraz proszę napisz która część definicji algorytmu uniemożliwia implementację za pomocą PHP i dlaczego nie można za pomocą PHP zaimplementować algorytmu z pierwszego obrazka.
nasty
dr4ko: na siłę to i każdą część obrazka możesz zaimplementować.
Jakby się uprzeć to można nawet za pomocą PHP używać DirectX (odwołując się do WinAPI) ale to po prostu nie jest do tego zrobione.
darko
Cytat(nasty @ 8.01.2010, 13:08:38 ) *
Ponieważ w php nie da się implementować algorytmów.


Cytat
dr4ko: na siłę to i każdą część obrazka możesz zaimplementować.
Jakby się uprzeć to można nawet za pomocą PHP używać DirectX (odwołując się do WinAPI) ale to po prostu nie jest do tego zrobione.


Więc jednak się da smile.gif I o to chodziło. Z mojej strony EOT.

// edit
Cytat( @ 8.01.2010, 13:46:33 ) *
nie, po prostu użyłem podobnie mocnego argumentu - ilość wyników zwracanych przez google dla danego hasła.

To było pytanie retoryczne winksmiley.jpg rzeczywiście sytuacja byłaby niezwykła, gdyby coś takiego jak algorytmy w php nie istniało, a tu ponad 8 milionów wyników wyskakuje w google.
nasty
Cytat(darko @ 8.01.2010, 14:03:36 ) *
Więc jednak się da smile.gif I o to chodziło. Z mojej strony EOT.

Faktycznie, za bardzo mówiłem w przenośni.
w tym przypadku:
Nie da się = używanie czegoś na siłę tam gdzie się nie nadaję.
Cysiaczek
Nie rozumiem jak można twierdzić, że implementacja FIFO, czy innej kolejki jest w php na siłę.
Te kolejki służą do czegoś przecież. Wykorzystuje się je w konkretnych przypadkach. To mi przypomina jakiś temat powstały na bazie dyskusji na IRC o tym, czy w php są typy zmiennych. smile.gif

Pozdrawiam.
thek
Napiszę informatycznie. Twoje rozumowanie można odebrać jako
algorytm ~= struktury_danych
A po ludzku: algorytm to w przybliżeniu struktury danych. Z tym się nie mogę zgodzić w żadnym wypadku. I to właśnie określiłem jako mylenie pojęć.

Z kolei idźmy dalej. Skoro PHP jest tak banalny, to co należy powiedzieć o MatLabie, którego sam wiele używałem i tworzyłem w nim między innymi sieci neuronowe. W PHP kod identyczny funkcjonalnie zająłby kilka razy więcej. Czy to czyni Matlaba gorszym, skoro operacje na macierzach choćby są wbudowane, a rozbudowane biblioteki sprawiają, że stworzenie poważniejszego oprogramowania inżynierskiego zajmuje ułamek tego co w porównaniu do PHP? Syntezator mowy w kodzie na około 200-250 linii kodu (nie pamiętam już dokładnie) na tyle dobrze działający, że prowadzący twierdzili, iż go nie mogłem samodzielnie stworzyć. To przykład możliwości MatLaba, którego uważam za naprawdę potężne narzędzie (aczkolwiek GUI tworzyć w nim to tragedia).

Algorytm to tylko ciąg instrukcji, kroków, mających na celu wykonanie określonej operacji nieelementarnej. Struktura danych jaka jest w nim użyta to sprawa drugorzędna. Czy PHP jest gorsze jeśli zamiast typu float posłałbym int do algorytmu jako daną wejściową? Nawet C to przełknie, niejawnie zrzutuje int na float i nawet nie piśnie. PHP nie zaprotestuje nawet gdybym posłał coś fantazyjnego bo sobie sam zrzutuje na określony, a potrzebny mu ( też nie zawsze, ale pomińmy to milczeniem winksmiley.jpg ) Różnica więc między PHP i językami "trudniejszymi" to wsparcie programisty przez narzędzie. Jest ono mniej restrykcyjne i przez to prostsze do opanowania.

A tak wracając do pustej tablicy... Nie prościej w C po prostu zadeklarować wskaźnik i potem dopiero na określonym etapie wypełnić tablicę przez użycie malloc, lub idąc ku C++ użyć operatora new? winksmiley.jpg
Pod tym względem int *wskaźnik nie jest niczym innym niż array() tongue.gif Oba przechowują adres początku tablicy pustej. No chyba, że o innym formacie pustej tablicy mówimy winksmiley.jpg W końcu nie ma musu w C określać na starcie jak duża ma być tablica i można to robić w trakcie działania algorytmu.


A tak przy okazji to dla mnie implementacja FIFO w PHP to po prostu array() + array_push() +array_shift() i nie sądzę by były osoby, które się ze mną by nie zgodziły winksmiley.jpg Czy więc jest choćby najmniejszy sens opakowywania tego i tworzenie klasy FIFO w PHP tylko by nazwać ją tak? Stos to to samo, tyle że array_shift() zastępujemy array_pop(). Kto widzi logikę w takim postępowaniu? To samo z wszelkimi kombinacjami F(L)IF(L)O winksmiley.jpg
erix
Cytat
Nie używaj słów PHP i Algorytm na raz w jednym zdaniu ;-)

Ech, z ~mikem się widziałeś, czy jak...? Przeczysz w wielu miejscach sam sobie. Piorąc skarpetki nie masz wpływu na algorytm w pralce? Sąsiadka idąca do sklepu nie programuje sobie drogi? Za bardzo naginasz prawdę na swoją stronę anty-PHP. winksmiley.jpg

Cytat
Nie rozumiem jak można twierdzić, że implementacja FIFO, czy innej kolejki jest w php na siłę.

Jest. winksmiley.jpg Od PHP 5.3 i ostatniej rozbudowy SPL już jest na siłę. tongue.gif
Cysiaczek
Cytat
A tak przy okazji to dla mnie implementacja FIFO w PHP to po prostu array() + array_push() +array_shift() i nie sądzę by były osoby, które się ze mną by nie zgodziły


Hmm, a jednak smile.gif
Myślę, że w bardziej skomplikowanych systemach wręcz należy stworzyć interfejs, bo dzięki temu masz:

1. Cywilizowany dostęp
2. Gwarancję spójności (a przynajmniej taki jest cel)

Kolejkowanie nie musi opierać się tylko na aktualnym żądaniu i dotyczyć prostej tablicy. Do kolejki możesz się próbować odnieść poprzez kolejne żądanie, a nawet inna aplikacja może to zrobić. To już skala makro, ale nadal pozostaje to kolejką, a przynajmniej czymś na wzór kolejki (czyli działającej w oparciu o podobny algorytm). IMO, te pojęcia po prostu niekiedy się rozmywają w praktyce, a jednowątkowe aplikacje php siłą rzeczy, do bardziej skomplikowanych zadań potrzebują czegoś więcej niż pamięć RAM - najczęściej bazy danych i wyobraźni.

Będę więc może surowy w ocenie, ale wydaje mi się, że trudności występujące np. w języku C to nie są trudności, które są warte czasu przeciętnego programisty php. Ten ma po prostu uzyskać jakiś efekt w postaci działającego programu. Jeśli programista php buduje narzędzia, wszelka wyższa wiedza z zakresu algorytmiki i matematyki to już same plusy, bo jakość takiego narzędzia może być większa.

Progarmiści php zresztą też cwaniakują - user===głupek happy.gif

Pozdrawiam


@erix - niestety nie oglądałem jeszcze dobrze php 5.3, więc trudno mi się odnieść do tego, co piszesz sad.gif
nasty
Cytat
A tak przy okazji to dla mnie implementacja FIFO w PHP to po prostu array() + array_push() +array_shift() i nie sądzę by były osoby, które się ze mną by nie zgodziły Czy więc jest choćby najmniejszy sens opakowywania tego i tworzenie klasy FIFO w PHP tylko by nazwać ją tak? Stos to to samo, tyle że array_shift() zastępujemy array_pop(). Kto widzi logikę w takim postępowaniu? To samo z wszelkimi kombinacjami F(L)IF(L)O

W takim przypadku, operację dodania do kolejki i wyciągania z kolejki nie będą się wykonywać w złożoności O(1) a w takiej ile zajmie przesunięcie elementów w tablicy (O(n)) (chodź w PHP tablice są zaimplementowane jako hashtable więc jest to odrobinę więcej niż 1).
Do tego używasz dość skomplikowanej struktury aby zbudować inną która jest kilka razy prostsza. Zużywasz więcej pamięci niż faktycznie potrzebujesz.
Tak więc takim sposobem po za korzyści płynących z narzucenia organizacji danych nie masz reszty korzyści płynących z tej struktury - minimalny czas dodania i usuwania :-)


Do czego dążę? Do tego, że używając innych języków programowania programiści są zmuszeni do tego aby takie rzeczy wiedzieć a w PHP nie. Stąd też ponownie odpowiadając na pytanie: czy programiści innego języka są lepsi tylko dlatego bo zarabiają więcej? Tak. Są lepsi bo mają większą wiedzę i za nią im płacą.
erix
Cytat
Progarmiści php zresztą też cwaniakują - user===głupek

A czy pisałbyś dobre systemy walidacji danych przychodzących nie przyjmując takiego założenia? winksmiley.jpg
Blame
Czy w ogóle byśmy je pisali? Oto jest pytanie tongue.gif
f1xer
Cytat
Tak. Są lepsi bo mają większą wiedzę i za nią im płacą.


Strasznie uogólniasz. Nie można mówić że wiedza zależy od języka, programista DirectX zazwyczaj nie ma pojęcia jak wygląda np. konfiguracja firewalla na linuxie bo jest mu to nie potrzebne, programiści PHP nie potrzebują znać algorytmów wyszukiwania dróg itp. bo jest im to nie potrzebne, ale nie można porównywać wiedzy na zasadzie ja piszę w JAVA więc mam większą wiedzę niż Ci którzy piszą skrypty w bashu
thek
Znam narzuty wynikające z kolejek, wektorów, map itp. W końcu zanim zacząłem z PHP to już od około 2-3 lat w C, C++ pisałem i miałem do czynienia także z STL.
To, że ktoś zna PHP nie znaczy, że algorytmy znajdywania drogi są zbędne dla niego. Wystarczy, że w projekcie trafi się ten problem lub inny i będzie musiał poznać smile.gif Czy jako informatyk z jakiejś dziedziny powiesz szefowi: "Stary... To nie moja działka, nie muszę znać dziedziny X. Zatrudnij sobie do tej części kogoś innego." tylko dlatego, że choćby wspomniane algorytmy znajdowania drogi nie wchodzą w zakres programowania w Twoim języku. Dla mnie problem to wyzwanie i je podejmuję a nie zrzucam na karb "to nie moja działka".

Co do PHP i twierdzenia user === głupek... A jak mają traktować userów wszyscy programiści gdzie user ma wprowadzać dane? Pisząc w JAVA lub C++ z interfejsem dla usera też masz w d.pie walidację tylko dlatego, że używasz tych języków? winksmiley.jpg Ja bym nie był takim optymistą bo nawet program konsolowy bez walidacji łatwo wysypać wrzucając jako parametry śmieci.

Gdy pisałem o FIFO jako array() to zauważcie, że tak naprawdę do tego się sprowadza to. Czy mam w PHP od zera pisać to skoro sam język mi to daje? Stworzenie klas odpowiednich tylko po to by był "cywilizowany interfejs" jest dla mnie jak kupienie robota kuchennego i wyrzucenie do śmieci 3/4 końcówek. Można... Ale jaki jest tego sens?
Lepiej już iść "od zera" i implementować strukturę. Tylko że w PHP nie ma tego "zera" (w C, C++ jak najbardziej istnieje), a jedyną najbliższą jest array(), którą byśmy okrajali z jej funkcjonalności tylko.

A jeszcze idąc wątku język -> płaca... Skoro piszę w określonym języku, ale znam także i wykorzystuję inne oznacza, że pracując skaczę pomiędzy nimi. Pracodawca ma mi wiec płacić za jaki? 8.00-10.00 stawka za PHP, 10.00-11.00 stawka za JS, 11.00-12.00 za CSS, 12.00-13.00 za HTML, 13.00-15.00 za C++ dla CGI, 15.00-16.00 za PHP biggrin.gif Wyobrażasz sobie takie głupoty ze stawkami za określony "język" używany ? winksmiley.jpg
Pilsener
Przypomina mi to dyskusję taksówkarzy (zawodowcy kontra amatorzy, lepsze fury kontra gorsze), którzy prawem kaduka wywalczyli sobie licencjonowanie, limity, naciągają klientów przewożąc ich przez dodatkowe klasy etc. Tutaj jest podobnie, "programuję więc jestem", kto ma licencję na programowanie wydaną przez lokalny samorząd to jo, reszta to wieśniaki lub mówiąc językiem średniowiecznych cechów rzemieślniczych: partacze? Czy chcemy, aby było tak jak w Niemczech, gdzie konserwator w szkole nie może wymienić żarówki, bo nie jest elektrykiem ani zamalować bazgrołów na ścianie, bo nie jest malarzem?

Mi tam wszystko jedno, jak klient chce "programisty PHP do zmiany stopki w PHP Fusion", to przedstawiam się jako programista i stopkę zmieniam, jeśli klient woła "skryptu do wystawiania faktur", to przedstawiam się też jako programista, który mu skrypt napisze smile.gif

Zostawmy tytuły Waszmoście, liczą się umiejętności, dla mnie programista to każdy, kto pisze kod źródłowy interpretowany przez jakąś maszynę.
Jabol
@thek: z tym FIFO to chodzi o czytelność. Ty sobie użyjesz zwykłej tablicy i będzie działać. Tak samo w Javie mógłbym do wszystkiego brać java.util.Vector. Ale jak ktoś przyjdzie i będzie czytał i nie będzie znał Twojej idei to dużo szybciej się połapie jak Twoja klasa będzie się nazywała Stack albo Queue (FIFO to taka nieludzka nazwa - nie róbcie z siebie na siłę geeków), nawet jeżeli jest ona tylko opakowaniem dla wyżej wymienionego arraya.
thek
@Jabol: rozumem to podejście, tylko w PHP uważam je za niepotrzebne. Skoro mamy array() z wszelkimi niezbędnymi metodami to po co mamy to w kolejny kontener pakować? Tworzenie funkcji/metody tylko po to, by odwołać się w niej do już gotowej funkcji języka jest tylko niepotrzebnym wywołaniem funkcji w funkcji. Czy jest sens tworzyć klasę Stack tylko po to by użyć $obiekt_klasy_Stack->push($zmienna) co jest zamienione wewnątrz prostym
  1. public function push($zmienna) {
  2. return array_push($this, $zmienna);
  3. }

Co mi to daje poza tym, że ktoś uzna to za czytelniejsze? równie dobrze można uznać, że każdyjęzyk powinien miećfunkcje we własnym języku i nagle powinno się tworzyć aliasy dla wszystkich funkcji php by array_push było usun_ostatni_element_z_tablicy. W końcu programista nie musi znać obligatoryjnie angielskiego. Dla mnie jest to zmiana na podobnym poziomie.

A FIFO używam z konwencji pisania tutaj. Czy nazwę to FIFO, Queqe czy Kolejka to i tak kwesta tylko nazewnictwa. Wiem co oznacza i stosuję zamiennie. Uważam jednak, że nie ma sensu przerabiać czegoś na nowo tylko po to by pasowało to do pomysłu. Może rzucę przykładem. Czy tworząc system do Multilotka tworzę nowy typ Kulki tylko po to by określał on możliwą liczbę int z przedziału od 1 do 80? Wiem, że spłyciłem maksymalnie, ale to dla mnie analogiczny przykład. Co innego, gdybym miał przechowywać dodatkowo informację: jaka to była liczba w kolejności podczas losowania, w jakim losowaniu padła, czy inna dana statystyczna tycząca tej konkretnej kuli w określonym losowaniu (wiem, zły przykład i nie takie dane powinna kula posiadać, ale to tylko przykład). Wtedy ma to jakiś sens. Ale bez tego nie widzę nawet jednego uzasadnienie takiego podejścia.

Dla mnie programista powinien umieć dostosować się do sytuacji. Po to między innymi mamy wiedzę ogólną, której brak osobom kształconym na Zachodzie Europy. Oni są super specjalistami w wąskiej dziedzinie. Daj im coś spoza jako problem i większość leży oraz kwiczy bo nie wiedzą co z tym zrobić, jak podejść do zagadnienia. Polacy może są mniej wyspecjalizowani, ale wbrew pozorom nie jest to złe, ponieważ łatwiej przez to o szersze spojrzenie na problem. A dokształcić zawsze się można prosto jeśli masz już jakieś podstawy. Nie narzekam wcale, że na studiach miałem podstawy ekonomii, prawa i "nieinformatyczne" przedmioty jak Rysunek techniczny (tak, siedziałem przy stole z linijką, cyrklem i ołówkiem) czy elektronika. Bo jako inżynier muszę takie coś znać w razie gdybym musiał na szybko coś zrobić. Mój kumpel lutował na płycie głównej gdy mu się spalił opornik przed portem klawiatury. Na dodatek nie miał właściwego to zrobił mostek z kilku innych. I komp chodził tak przez kilka tygodni, dopóki nie wlutował prawidłowego. Gdyby był stricte programistą to co by zrobił? Zapewne poszedł kupić nową płytę główną z powodu jednego spalonego opornika. Lub czekał by go zakup klawiatury na USB.

Stosujmy więc wszystko z głową. Nie tylko po to by sobie było. W końcu przecież coś takiego jak komentarz istnieje w razie gdyby coś trzeba było oznaczyć. To tak jak niektórzy mają z Divami i przesadnym wrzucaniu ich byle gdzie. I to samo jest u niektórych z obiektówką. Trylion obiektów nie wiadomo po co winksmiley.jpg
nasty
Thek... podstawy obiektówki....
http://pl.wikipedia.org/wiki/Hermetyzacja
thek
Jako programista więc powiedz mi czy implementacja stosu dla użytkownika końcowego ma znaczenie jako array lub specjalnie z array stworzonej klasy Stack, skoro i tak nie ma do niej dostępu, gdyż mu nie udostępniasz innych metod niż array_push, array_pop? To tylko "ułatwienie" dla programisty, by w razie czego nie "chlapnął" array_shift, który dla stosu jest niewłaściwym zachowaniem i sypnął wtedy "Sorki, nie możesz tego zrobić". Rozumiem, że hermetyzacja ograniczyła by się zaś do ustawienia private dla zmiennej przechowującej tablicę, a pop, push i read jako zawoalowane end() jako jedyne byłyby public function, bo takie przecież jest zachowanie stosu. Myślisz, że dlaczego uważam to za "sztukę dla sztuki"? Dlaczego tworzenie kompletnie niepotrzebnej klasy, która jest tylko dla mnie jako programisty widoczna, uważam za przerost formy nad treścią. W maluchu mogę zmienić dach i wychromować silnik (widziałem takie cudo biggrin.gif ), ale czy przez to nie będzie on już Fiatem 126p winksmiley.jpg Inny ciut design, a pod spodem i tak to samo. Ale zmień silnik, pobaw się z układami podwozia i pod spodem już coś innego. To już nie prosta zmiana koloru farby dorzucenie naklejki czy mało istotnych elementów. Zamiana array na Stos to jak wyciągnąć z malucha kilka części, zaspawać wszystko poza drzwiami od strony kierowcy, wyrwać pokrętła do opuszczania szyb, zdemontować ręczny i całość pomalować winksmiley.jpg Teraz nazywamy to Maleństwo tongue.gif Ale to nadal maluch, tyle że hermetyzacja ograniczyła Cię do jednych drzwi, braku wentylacji, a o hamowaniu na ręcznym to tylko pomarz winksmiley.jpg
Zyx
Nasty, kilka faktów, o których najwyraźniej zapominasz:

1. Lekturka na dzień dobry:

http://docs.php.net/manual/en/class.splstack.php
http://docs.php.net/manual/en/class.splqueue.php
http://docs.php.net/manual/en/class.splheap.php
http://docs.php.net/manual/en/class.splmaxheap.php
http://docs.php.net/manual/en/class.splminheap.php
http://docs.php.net/manual/en/class.splpriorityqueue.php
http://docs.php.net/manual/en/class.splfixedarray.php
http://docs.php.net/manual/en/class.splobjectstorage.php

I nie gadaj głupot, że "w PHP nie ma struktur danych". Algorytmy ZAZWYCZAJ wymagają złożonych struktur danych, ale nie ZAWSZE. Pokaż mi, jakiej to skomplikowanej struktury używasz w algorytmie obliczania silni. Tylko nie zacznij mi udowadniać, że to nie jest algorytm (a co niby? Lodówka?). Udowodnij, że w PHP nie da się zaimplementować maszyny Turinga (stricte dodam, byś się nie miał do czego przyczepić: pomijając wymóg posiadania nieskończonej taśmy), jeśli chcesz wygłaszać publicznie głupoty, że w "PHP się nie da implementować algorytmów".

2. Tablice wcale nie są potrzebne w PHP do zaimplementowania np. stosu, ale są najprostsze. Ja też sobie mogę w C++ zaimplementować stos z użyciem kopca Fibonacciego, jak się uprę, ale to nie jest wcale powód do twierdzenia, że "i z tego powodu w C++ nie da się implementować algorytmów". Nie przyszło Ci do głowy, że taki stos można zrobić wyłącznie na obiektach, niemal dokładnie tak samo, jak zrobiłbyś to np. w C++ czy w Javie? A jak już jesteśmy tak precyzyjni, to tablica PHP jak najbardziej jest odpowiednią strukturą danych akurat dla stosu, gdyż jej implementacja w C stosowana w Zend Engine wyposażona jest nie tylko w haszowanie, ale też w funkcjonalność listy dwukierunkowej.

Bądźmy poważni z argumentami dotyczącymi PHP.
thek
Chyba nie ma sensowniejszego poparcia mojego rozdzielenia implementacji algorytmu od implementacji struktury danych niż post powyżej. Wystarczy zajrzeć w linki by sobie zobaczyć co implementują klasy SPL.

Ale idąc do głównego pytania tematu znów i je nieco parafrazując. Dlaczego programistów PHP nie uważa się za programistów? Czy łatwość pisania sprawia, że uznaje się go za język "niepoważny" i "nieprofesjonalny" w przeciwieństwie do choćby Pythona?
Theqos
Cytat(thek @ 9.01.2010, 22:29:48 ) *
Jako programista więc powiedz mi czy implementacja stosu dla użytkownika końcowego ma znaczenie jako array lub specjalnie z array stworzonej klasy Stack, skoro i tak nie ma do niej dostępu, gdyż mu nie udostępniasz innych metod niż array_push, array_pop?


A jak bedziesz chciał rozszerzyć funkcjonalność stosu, chociazby o jakies glupie logowanie, to bedziesz potem szukal tego array_push/pop po kodzie? A jak w php 6 usuna te instrukcje, to też będziesz latał po kodzie i poprawial?
Spawnm
@Thek -> w javie aplikacje okienkowe też się łatwo pisze a trudno coś złego usłyszeć na jave winksmiley.jpg

Theqos
Cytat(Spawnm @ 11.01.2010, 14:45:47 ) *
w javie aplikacje okienkowe też się łatwo pisze a trudno coś złego usłyszeć na jave winksmiley.jpg


Niebezpieczne Java-Szkoły
dr4ko
Cytat(Theqos @ 11.01.2010, 14:38:43 ) *
A jak bedziesz chciał rozszerzyć funkcjonalność stosu, chociazby o jakies glupie logowanie, to bedziesz potem szukal tego array_push/pop po kodzie? A jak w php 6 usuna te instrukcje, to też będziesz latał po kodzie i poprawial?


A jak usuną dziedziczenie klas? Albo interfejsy? Albo coś jeszcze bardziej absurdalnego? Panowie, bez jakichś kosmosów proszę.
Cysiaczek
Jak usuną dziedziczenie, to dopiero się okaże, kto umie programować obiektowo snitch.gif
thek
Cytat(Theqos @ 11.01.2010, 14:38:43 ) *
A jak bedziesz chciał rozszerzyć funkcjonalność stosu, chociazby o jakies glupie logowanie, to bedziesz potem szukal tego array_push/pop po kodzie? A jak w php 6 usuna te instrukcje, to też będziesz latał po kodzie i poprawial?
Jeśli zechcę rozszerzyć to o logowanie to znaczy, że nie przemyślałem projektu dokładnie i klas jakie chcę zawrzeć w nim. A usunąć nie usuną z prostej przyczyny. Te funkcje są newralgiczne. Z tej samej przyczyny nigdy nie usuną funkcji scanf i printf bez całkowitej przebudowy php i zerwania z wieloma funkcjami uznawanymi za niezbędne, bo niżej poziomowe niż obiektowe klasy do tego celu już przystosowane smile.gif
Cytat(Spawnm @ 11.01.2010, 14:45:47 ) *
@Thek -> w javie aplikacje okienkowe też się łatwo pisze a trudno coś złego usłyszeć na jave winksmiley.jpg
Zależy co chce się zrobić. Aplikacja desktopowa z półprzezroczystymi elementami graficznymi samoskalującymi się przy rozszerzaniu okna to dla wielu tortura. Oprogramowanie tego, co nie ma mieć stałych rozmiarów i reagować musi na zmiany rozmiaru formatki, to także swego rodzaju sztuka. W JAVA to też nie jest proste do zrobienia. Niezależnie z jakiej biblioteki korzystasz. Nawet w wydawało by się fajnym Swing, są problemy przy bardziej złożonych layoutach.
Theqos
Cytat(dr4ko @ 11.01.2010, 15:06:03 ) *
A jak usuną dziedziczenie klas? Albo interfejsy? Albo coś jeszcze bardziej absurdalnego? Panowie, bez jakichś kosmosów proszę.


Ale jakie kosmosy? Ze usuną funkcję z php? To jakaś nowość? Ze ktoś będzie chciał sobie zmienić implementacje stosu? A może trzeba będzie to przepisać na jakiś normalny język winksmiley.jpg

Po co http://docs.php.net/manual/en/class.splstack.php skoro sa array_push/pop i jeszcze wrednie to dziedziczy po jakiejs liscie i implementuje jakies tam interfejsy O.o

Cytat(thek @ 11.01.2010, 15:19:11 ) *
Jeśli zechcę rozszerzyć to o logowanie to znaczy, że nie przemyślałem projektu dokładnie i klas jakie chcę zawrzeć w nim.

Bo wszystko wiemy na początku i nie zaczynamy programować dopóki nie mamy pełnej dokumentacji w najdrobniejszych szczegółach. Aha i klient nigdy nie zmienia zdania, a program raz napisany już nie jest rozbudowywany winksmiley.jpg

Cytat(thek @ 11.01.2010, 15:19:11 ) *
Nawet w wydawało by się fajnym Swing, są problemy przy bardziej złożonych layoutach.

Od kiedy Swing jest fajny? tongue.gif Przecież nikt nie pisze aplikacji desktopowych w Javie (nieliczac narzedzi do pisania w javie).
dr4ko
Możemy tak sobie gdybać do końca świata i na temat każdej wbudowanej funkcjonalności PHP. To samo można by odnieść do JAVY albo C++. Zawsze istnieje możliwość że np Microsoft przestanie wspierać DirectX. Czy to oznacza że nie należy używać tej biblioteki?
thek
Cytat(dr4ko @ 11.01.2010, 15:06:03 ) *
A jak usuną dziedziczenie klas? Albo interfejsy? Albo coś jeszcze bardziej absurdalnego? Panowie, bez jakichś kosmosów proszę.

Dla mnie interfejs to jedynie graniczenie na zasadzie "to musi być w nowej klasie i nie wymigasz się od tego" winksmiley.jpg Szczerze mówiąc to ja rzadko implementuję cokolwiek pisząc obiektowo głównie "od zera" lub ewentualnie dziedzicząc po prostszej klasie. Stąd robienie Stosu z Array poprzez jej okrojenie uznałem za naturalne w pewien sposób dla wielu, choć dla mnie powinno to być jako implementacja prostej klasy typu object z mapą. Dziedziczenie według mnie ma za cel rozszerzać działanie klasy, a nie je ograniczać. Stąd weźmy przykładowo klasę usera forum. Gość jest bazowy. Klasa Zalogowany dziedziczy po nim wszystko i coś dodaje. A Admin to dziedziczenie po Zalogowany i jego rozszerzenie. Proste.

Cytat(Cysiaczek @ 11.01.2010, 15:15:23 ) *
Jak usuną dziedziczenie, to dopiero się okaże, kto umie programować obiektowo snitch.gif
Jeśli to usunęliby to coś takiego jak powielanie kodu skutecznie by wkurzyło wszystkich. Wyobrażasz sobie pisanie całej definicji wszystkiego w klasach od zera zamiast prostego wywołania klasy rodzica? Obiektówka straciła by całą swą siłę praktycznie w jednej chwili. Bo co nam by dało to, że super napiszemy wszystko obiektowo skoro nie możemy dziedziczyć i następuje powielanie kodu. Cofamy się do sensowniejszego w takiej chwili programowania strukturalnego i pisania wszystkiego w bibliotekach funkcji.

Cytat(Theqos @ 11.01.2010, 15:35:12 ) *
Ale jakie kosmosy? Ze usuną funkcję z php? To jakaś nowość? Ze ktoś będzie chciał sobie zmienić implementacje stosu? A może trzeba będzie to przepisać na jakiś normalny język winksmiley.jpg

Po co http://docs.php.net/manual/en/class.splstack.php skoro sa array_push/pop i jeszcze wrednie to dziedziczy po jakiejs liscie i implementuje jakies tam interfejsy O.o


Bo wszystko wiemy na początku i nie zaczynamy programować dopóki nie mamy pełnej dokumentacji w najdrobniejszych szczegółach. Aha i klient nigdy nie zmienia zdania, a program raz napisany już nie jest rozbudowywany winksmiley.jpg


Od kiedy Swing jest fajny? tongue.gif Przecież nikt nie pisze aplikacji desktopowych w Javie (nieliczac narzedzi do pisania w javie).
Po co splstack i inne to robią? Po to, że gdy ktoś chce iść dalej to ma odgórne ograniczenia co musi zachować w nowej klasie. No i dla TWOJEJ programisty wygody, byś nie musiał sam tego implementować bazując na Array. Czy STL i jego klasy w C++ nie dlatego powstały? Ten sam powód u ich powstania leżał.

Jeśli masz klientów na swój kod to do pewnej granicy możesz pozwolić, ale chyba byś strzelił w pysk kolesia gdyby zmienił dokumentację na kilka dni przed oddaniem i albo rozwiązał umowę, albo policzył kupę extra za to. Zaś dobrze napisany kawał kodu pozwala na rozszerzanie w dowolnym momencie po jego ukończeniu.

"nikt nie pisze aplikacji desktopowych w Javie" - toś strzelił z grubej rury biggrin.gif Normalnie mało się nie popłakałem ze śmiechu. To dlaczego na kompie masz JRE instalowane? Dla picu lub apletów w przeglądarce? biggrin.gif Nie każde oprogramowanie wykonywalne w kompie jest kompilowane z C/C++ smile.gif Odinstaluj sobie JRE w kompie i zobaczymy ile % softu Ci zawyje, że mu go brak winksmiley.jpg Co większe niezależne od systemu operacyjnego oprogramowanie jest pisane w JAVA ze względu na przenośność kodu. Albo dostajesz skompilowany dla danego systemu plik wykonywalny albo dostajesz pliki wykonywalne wymagające JAVA do uruchomienia.
Cysiaczek
Wyobrażam sobie programowanie obiektowe bez dziedziczenia i bez powielania kodu, naprawdę. Nie twierdzę przy tym, że byłoby lepiej, bo odpada wiele naturalnych rozwiązań, ale myślę, że dałoby się to przeżyć.
Cytat
Stąd weźmy przykładowo klasę usera forum. Gość jest bazowy. Klasa Zalogowany dziedziczy po nim wszystko i coś dodaje. A Admin to dziedziczenie po Zalogowany i jego rozszerzenie. Proste.

Można też inaczej: Weźmy obiekt usera forum i uzupełnijmy go o kolejny obiekt - Profil oraz o flagę zalogowania. Admin ma z kolei ustawioną flagę is_admin na true.
Takie obiekty i tak zazwyczaj odpytuje się poprzez interfejs isAdmin() isAthenticated(), więc stosowanie dziedziczenia na tym poziomie można najzwyczajniej w świecie olać, bo nie jest wymagane do uzyskania podobnego efektu :-)
Zrobienie klasy ZjadaczForumowegoChleba i ciągłe sprawdzanie typu instancji to też słabe. Powiesz, że dorzucisz właśnie mtodę isAuthenticated(), która zwróci true dla instanceof ZjadaczForumowegoChleba, a false dla innej (pomijam admina).
Też szkoda, bo tym samym powielamy funkcjonalność. Z założenia typ klasy miał służyć jako dystynktor, tymczasem wprowadzamy kolejne ułatwienia do czegoś, co miało być proste. Z tego powodu właśnie uważam, że wiele osób nadużywa dziedziczenia.

Pozdrawiam
Crozin
Cytat
Jak usuną dziedziczenie, to dopiero się okaże, kto umie programować obiektowo
Wtedy zaś doszłoby pewnie do nadużywania czegoś innego przez niedoświadczonych programistów. Dziedziczenie samo w sobie jest dobre, ale jak każde narzędzie: źle użyte robi więcej złego niż dobrego.

Brak dziedziczenia byłby czymś złym i nienaturalnym, bo o ile przykład thek'a jest dosyć mocno nie trafiony (raczej dziwne mi się wydaje: Gość < Użytkownik < Administrator, bo wszyscy są tym samym tylko mają inne uprawnienia), ale już przykładowo weźmy jakiś... obiekt żądania (request).
Możemy mieć trzy obiekty: Request, WebRequest, CliRequest - dwa ostatnie rozszerzają pierwszy (abstrakcyjny) dodając specyficzną funkcjonalność dla swojego środowiska. Tutaj dziedziczenie wydaje mi się być najprostszą i najbardziej naturalną implementacją.
Cysiaczek
Cytat
Wtedy zaś doszłoby pewnie do nadużywania czegoś innego przez niedoświadczonych programistów. Dziedziczenie samo w sobie jest dobre, ale jak każde narzędzie: źle użyte robi więcej złego niż dobrego.


Pod tym mogę się podpisać smile.gif
Brak dziedziczenia doprowadziłby do konieczności jego symulacji - mam tego świadomość.
Pytam więc, czy znając takie zawiłości i programując w php nie jestem programistą? axesmiley.png
scanner
Cytat(Cysiaczek @ 11.01.2010, 18:43:38 ) *
Pytam więc, czy znając takie zawiłości i programując w php nie jestem programistą? axesmiley.png

OT: Ty akurat jesteś zaawansowanym mentaxowym murzinem tongue.gif
Cysiaczek
ahah! Znajdę zaraz jakiś paragraf na Ciebie..., w odwecie za ujawnianie takich wrażliwych danych osobowych jak kolor skóry (bądź co bądź)admina forum.php.pl biggrin.gif
thek
Cytat(Crozin @ 11.01.2010, 17:25:03 ) *
o ile przykład thek'a jest dosyć mocno nie trafiony (raczej dziwne mi się wydaje: Gość < Użytkownik < Administrator, bo wszyscy są tym samym tylko mają inne uprawnienia)
Wszystko zależy od spojrzenia i implementacji. Jeśli wszystcy mają pwnedomyślne metod to jest to równoznaczne z najbardziej "dziadowatym" Gościem. User miałby już z kolei dostęp także do własnych "rodzicielskich" funkcjonalności, a więc znacznie rozszerzał możliwości klasy gość. To już nie byłby interfejs. I to samo tyczyło by Admina względem Usera,który oferowałby swoje 'dziecięce". Nie miałem na myśli ACL w każdym razie smile.gif
Cytat(Cysiaczek @ 11.01.2010, 18:43:38 ) *
Brak dziedziczenia doprowadziłby do konieczności jego symulacji - mam tego świadomość.
Pytam więc, czy znając takie zawiłości i programując w php nie jestem programistą? axesmiley.png
Pisałem już kto jest, a kto nie moim zdaniem programistą. Jeśli ktoś chce to może się nazywać "programistą danego języka", ale to moim zdaniem jeszcze trochę drogi do "informatyka". Miano to jest moim zdaniem zarezerwowane dla osób posiadających znacznie szerszą wiedzę z zakresu informatyki. Nie tylko posiadanie wiedzy o jednym języku. To także wiedza ogólna informatyczna, z zakresu projektowania, inżynierii oprogramowania, systemów operacyjnych, architektury komputerów i wielu dziedzin związanych z informatyką. Programista jest informatykiem "ograniczonym" do pewnego zakresu związanego z tworzeniem oprogramowania. Ale nawet on powinien znać możliwości i ograniczenia swojego narzędzia. Jeśli jest ich świadom to moim zdaniem powinien zasługiwać na swoje miano. Ale nie szalejmy i nie nazywajmy znającego idealnie HTML programistą, bo ten język to tylko język znaczników, nie zaś język programowania.

Cytat(scanner @ 11.01.2010, 19:02:43 ) *
OT: Ty akurat jesteś zaawansowanym mentaxowym murzinem tongue.gif
Ja tm do murzynów nic nie mam, z nimi czy mulatami utrzymywałem znajomości smile.gif
Theqos
Cytat(thek @ 11.01.2010, 16:15:05 ) *
"nikt nie pisze aplikacji desktopowych w Javie" - toś strzelił z grubej rury biggrin.gif Normalnie mało się nie popłakałem ze śmiechu. To dlaczego na kompie masz JRE instalowane? Dla picu lub apletów w przeglądarce?

Dla Eclipse i Netbeans? Co się mieści w definicji (narzędzia do pisania w Javie). Poza cieżkim klientem torrentów i jakims tam edytorem tekstu, więcej aplikacji nie pomnę. No poprostu zatrzesienie.

Cytat(thek @ 11.01.2010, 16:15:05 ) *
Nie każde oprogramowanie wykonywalne w kompie jest kompilowane z C/C++ smile.gif

No ba, jest jeszcze .NET. Już nawet na linuksie wolą pisać za pomocą Mono niż użerać się ze zbugowanym swingiem.

Cytat(thek @ 11.01.2010, 16:15:05 ) *
Co większe niezależne od systemu operacyjnego oprogramowanie jest pisane w JAVA ze względu na przenośność kodu.

Na przyklad? Byle nie firmy Sun/Oracle. Bo to tak jak mówić, że Silverlight rządzi w sieci pokazując strony MS. Fakty są takie, że Java jest mocna na serwerach, a poza nimi to bida.
blooregard
Cytat
No ba, jest jeszcze .NET. Już nawet na linuksie wolą pisać za pomocą Mono niż użerać się ze zbugowanym swingiem.

Dołączam się do kolegi. Jako zadeklarowany Pingwin długo zastanawiałem się, na jakiej platformie dalej rozwijać swoje programistyczne pasje. Powiem tak: mimo dużej sympatii do Sun-a i jego produktów, a w szczególności NetBeans, którego jestem zapalonym fanem i zwolennikiem, każde podejście do Javy kończy się rozczarowaniem. Postanowiłem, że spróbuję alternatywy, a jedyną alternatywą w tej chwili wydaje się być platforma .NET (pomijam języki kompilowane, chodzi mi o alternatywę dla Javy i jej maszyny wirtualnej, czyli właśnie .NET i jego CLR).

Dodatkową zaletą (dla mnie) jest mozliwość tworzenia aplikacji dla .NET w C++, którego znam jeszcze z zamierzchłych czasów smile.gif
No i bardzo przypadł mi do gustu C#, a już możliwość tworzenia za jego pomocą serwisów internetowych (które, BTW, równierz bardzo ładnie uruchamiają się na Linuksie, bo Mono, podobnie zresztą chyba jak Visual Studio dla Windows, posiada zainstalowany serwer www obsługujący serwisy w technologii ASP.NET) doskonale pasuje mi w kontekście dalszego rozwijania się (zawodowo) w zakresie tworzenia serwisów internetowych.

thek
To wywal JRE z dysku i próbuj popracować normalnie winksmiley.jpg Jeśli masz narzędzia, które działają na wielu OS-ach to niemal na mur beton są one w JAVA. Reszta też powoli zaczyna odgrywać jakąś rolę, ale póki co kompilowane rządzą i będą rządzić. Nie bez powodu. Lepiej kod C++ skompilować pod określonym systemem niż pisać coś między-OS-owego. Mi też JAVA nie podchodzi, ale to nie znaczy, że jest to zły język.

Co do JAVA i Swinga to wynika z czego innego. Naprodukowano programistów od tego, którzy myślą, że są dobrzy, a problemy natury algorytmicznej są dla ich głowy wysiłkiem ponad miarę, jeśli rozwiązania nie ma w google winksmiley.jpg Jeśli nie ma gotowca w necie lub gotowego komponentu za to odpowiedzialnego to leżą i kwiczą. To samo dotyka coraz większej liczby języków programowania. Niedługo dojdzie do etapu "pisania www" przy użyciu php metodą drag&drop winksmiley.jpg Ktoś pewnie zacznie pisać jakieś IDE w stylu Buildera czy Delphi gdzie tylko komponenty będziesz wrzucał a całość będzie podobna do Zend ale z GUI w stylu wspomnianego Buildera czy Delphi winksmiley.jpg

Choćby Matlab, ale to nie jedyne narzędzie. Jeśli ktoś chce mieć coś multi OS-owego to albo kombinuje z technologiami webowymi, albo musi mieć język wykonywalny zarówno na Linux, jak i M$ oraz Macu. JAVA to umożliwia. Tyle że prędzej na nią trafisz pracując w korporacjach lub firmach, gdzie często jest wymieszanie używanych systemów na różnych stanowiskach lub w działach.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.