konto usunięte

Temat: Programowanie NIE-obiektowe

Artur Świerc:
pewne standardy, nie pisze się tak syfnego kodu jak w php.

Oczywiście, ale te standardy wcale nie sprawiają, że powstaje lepszy kod ani, że programisci stają się lepsi.
Dawid Per

Dawid Per PHP Backend
Developer

Temat: Programowanie NIE-obiektowe

A ja znów zaprotestuję przeciw łączeniu kodu z językiem. Kod pisze programista - nie język. Widziałem syfny kod w C, w Javie i w Pytonie, widziałem też świetnie napisany w PHP, nie ma reguły, to że w php powstaje najwięcej oprogramowania z oczywistych względów z "otwartym kodem" jest powodem powstawania takich "Urban legends"

Temat: Programowanie NIE-obiektowe

Wy tu tak gadu-gadu o OOP vs. strukturalne podejście, a nie ma innych paradygmatów? Co z programowaniem funkcyjnym?
Można je stosować z tego co wiem na JVM wraz z jęzkiem Scala.
Że zacytuje:
"Mam wrażenie, że programowanie funkcyjne przeżywa jakiś swój renesans. Od jakiegoś czasu więcej słychać o Erlangu, Clojure (świetny dialekt Lispa w Javie), Haskellu czy F#. Zalety programania funkcyjnego w stosunku do programowania imperatywnego są znane. Przede wszystkim, brak zmiennych i brak efektów ubocznych. Odpadają problemy związane z synchronizacją wątków, semaforami i blokowaniem dostępu do wspólnych obszarów pamięci. Kod pisany funkcyjnie znacznie łatwiej jest też testować. Funkcja niczym ma tylko jedno wejście i jedno wyjście. Nic innego ukradkiem nie zmieni. Programowanie funkcyjne jest też prostsze, choć osoby spaczone latami spędzonymi na programowaniu imperatywnym, mogą mieć na początku pewne problemy z przestawieniem sposobu myślenia. Np. w typowo funkcyjnym podejściu nie ma w ogóle pętli w programie. Zastępuje ją rekursja (która nie przepełnia stosu, jest to tzw. tail recursion)"

Więcej o Scali: http://blog.zabiello.com/2009/03/28/scala-lang

Nie mam w takim podejściu żadnych doświadczań, ale chętnie poznam wasze :)

konto usunięte

Temat: Programowanie NIE-obiektowe

Artur Świerc:
Michał Wujas:
Zachwyconym OOP polecam jakieś środowisko graficzne w Javie np Swing i zrobienie w tym jakiegoś dziwnego elementu gui, dystans do oop gwarantowany ;-)


Ee... tutaj się z Tobą nie zgodzę ;) Co prawda pisałem bardzo mało w swingu, skupiam się na webowych rozwiązaniach. Ale i tak pisało mi się dosyć przyjemnie - java wymusza na programiście pewne standardy, nie pisze się tak syfnego kodu jak w php.

Ale to zupełnie nie chodzi o jakość kodu, jakość jest super. Ale jeżeli 2 programistów musi spędzić tydzień nad dodaniem podpowiedzi na wierszu w datagridzie poznając przy tym jakieś 500+ klas to zaczynasz się zastanawiać czy jednak oop zawsze jest fajne

konto usunięte

Temat: Programowanie NIE-obiektowe

Rafał Nowak:
Wy tu tak gadu-gadu o OOP vs. strukturalne podejście, a nie ma innych paradygmatów? Co z programowaniem funkcyjnym?

Właśnie chciałem troche skierować dyskusje tor na programowania funkcyjnego, (wraz z funkcją lambda), ale widze że panuje bardzo silny KULT OOP :)

konto usunięte

Temat: Programowanie NIE-obiektowe

Jarosław K.:
Rafał Nowak:
a nie ma innych paradygmatów? Co z programowaniem funkcyjnym?


Proponuje podejście:

programowanie funkcyjne, model komponentowy ,system wieloagentowy
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: Programowanie NIE-obiektowe

Jarosław K.:
Artur Świerc:
pewne standardy, nie pisze się tak syfnego kodu jak w php.

Oczywiście, ale te standardy wcale nie sprawiają, że powstaje lepszy kod ani, że programisci stają się lepsi.

W każdym języku można napisać syfny kod, pytanie tylko - który język daje programiście większą tego możliwość?
Java posiada pewne standardy i je wymusza, w phpie są one opcjonalne. Poczynając od wzorców projektowych, aż po proste przykłady związane chociażby z nazwą plików i klas - ile razy w phpie można się spotkać z rozwiązaniem, że klasa 'Osoba' znajduje się w pliku 'Pracownicy.php'? Spotkałem się też z problemami typu, wyłączony e_notice i niedefiniowanie zmiennych. Niby nic, bo kod działa, ale errorlog rośnie do niewyobrażalnych rozmiarów. W javie taki kod po prostu nie ruszy - to uczy.

Michał Wujas: aaa.. masz rację - skakanie po plikach nie jest fajne ;)Artur Świerc edytował(a) ten post dnia 16.10.09 o godzinie 11:08

konto usunięte

Temat: Programowanie NIE-obiektowe

Artur Świerc:
Jarosław K.:
Artur Świerc:
pewne standardy, nie pisze się tak syfnego kodu jak w php.

Oczywiście, ale te standardy wcale nie sprawiają, że powstaje lepszy kod ani, że programisci stają się lepsi.

W każdym języku można napisać syfny kod, pytanie tylko - który język daje programiście większą tego możliwość?
Java posiada pewne standardy i je wymusza, w phpie są one opcjonalne. Poczynając od wzorców projektowych, aż po proste przykłady związane chociażby z nazwą plików i klas - ile razy w phpie można się spotkać z rozwiązaniem, że klasa 'Osoba' znajduje się w pliku 'Pracownicy.php'?

Moim zdaniem wszystko zależy od celu. Jak mamy zrobić projekt przy pomocy 100 kiepskich programistów to tak, ale jak przy pomocy 10 dobrych to oni poradzą sobie z ogranizacją w każdym modelu.
Stanisław P.

Stanisław P. Software designer

Temat: Programowanie NIE-obiektowe

Jarosław K.:
A co jak używam bcompilera ?
To dostajesz paczkę, która zawiera bytecode + linuje się do biblioteki php. Dalej nie jest to kod natywny.
Jeżeli porównanmy kod wykonywany na JVM i ZendEngine (zwany VM, mimo że maszyną to on nie jest) to w 2 przypakdu będzie mniej zajętej pamięci i cykli procesora.
ZendEngine interpretuje bytecode php i dostarcza podstawowe funkcje środowiska. Jest przez to maszyną wirtualną. PHP poświęca więcej cykli procesora względem javy np. na dynamiczne typowanie i boxowanie wszystkiego. Poświęca ich mniej np. na typowe funkcje przez większą specjalizację. Nie wiem jaki jest bilans. Pamięci więcej zajmie PHP w przypadku długo działających aplikacji ponieważ nie rozbija automatycznie cykli w GC (tak naprawdę php wogóle nie używa GC automatycznie).

Czy ktoś powie, że java jest lepsza czy nie, to zależy od wielu czynników. Ale obiektywnie jest szybsza od php. Zawsze będzie szybsza dla takiego samego kodu.
Nie widziałem także aby komuś się udało tak zoptymalizować/zprofilować Eclipse aby nie zajął 512 MB Ramu i nie ładował się na relatywnie szybkim sprzęcie kilka, kilkanaście sekund.
Co nie ma znaczenia, ponieważ nikt nie napisał środowiska o wielkości i możliwościach Eclipse w języku nie wysokiego poziomu.

konto usunięte

Temat: Programowanie NIE-obiektowe

Stanisław Pitucha:
Jeżeli porównanmy kod wykonywany na JVM i ZendEngine (zwany VM, mimo że maszyną to on nie jest) to w 2 przypakdu będzie mniej zajętej pamięci i cykli procesora.
ZendEngine interpretuje bytecode php i dostarcza podstawowe funkcje środowiska. Jest przez to maszyną wirtualną. PHP poświęca więcej cykli procesora względem javy np. na dynamiczne typowanie i boxowanie wszystkiego. Poświęca ich mniej np. na typowe funkcje przez większą specjalizację. Nie wiem jaki jest bilans. Pamięci więcej zajmie PHP w przypadku długo działających aplikacji ponieważ nie rozbija automatycznie cykli w GC (tak naprawdę php wogóle nie używa GC automatycznie).

Nie wiesz jaki jest bilans ale Java i tak jest lepsza ;)

Czy ktoś powie, że java jest lepsza czy nie, to zależy od wielu czynników. Ale obiektywnie jest szybsza od php. Zawsze będzie szybsza dla takiego samego kodu.

Raczej subiektywnie.
Nie widziałem także aby komuś się udało tak zoptymalizować/zprofilować Eclipse aby nie zajął 512 MB Ramu i nie ładował się na relatywnie szybkim sprzęcie kilka, kilkanaście sekund.
Co nie ma znaczenia, ponieważ nikt nie napisał środowiska o wielkości i możliwościach Eclipse w języku nie wysokiego poziomu.

No właśnie ma duże znaczenie bo pokazuje jak ten język jest efektywny. Sa o wiele bardziej złożone programy napisane w C/C++, które się tyle nie wykonują i nie alokują tyle pamięci.

Proponuję porównać MS Office i Open Office.

Nie mogę wyjść z podziwu dla ludzi ktorzy wierzą, że JAVA może dorównać lub/i być tak szybka jak C.

Przepiszmy systemy operacyjne i bazy danych na JAVE !

konto usunięte

Temat: Programowanie NIE-obiektowe

Przypominam, że wątek dotyczy alternatywnych podejść do OOP.

Czy stosować ?
Jakie alternatywne podejścia stosować ?
Gdzie stosować ?Jarosław K. edytował(a) ten post dnia 16.10.09 o godzinie 14:46
Stanisław P.

Stanisław P. Software designer

Temat: Programowanie NIE-obiektowe

Jarosław K.:
Nie wiesz jaki jest bilans ale Java i tak jest lepsza ;)
Nie lepsza - szybsza. A o bilansie mówiłem tylko między tymi dwoma przypadkami. Jest ich o wiele więcej.
Czy ktoś powie, że java jest lepsza czy nie, to zależy od wielu czynników. Ale obiektywnie jest szybsza od php. Zawsze będzie szybsza dla takiego samego kodu.

Raczej subiektywnie.
Obiektywnie. Jeśli kod znajduje się w hotspocie, to JVM zrobi specjalizację i skompiluje funkcje do kodu natywnego. Jak by php w tym momencie nie było zoptymalizowane, będzie wolniejsze, bo dalej działa przez interpreter. W jaki sposób php może być tu szybsze?
No właśnie ma duże znaczenie bo pokazuje jak ten język jest efektywny. Sa o wiele bardziej złożone programy napisane w C/C++, które się tyle nie wykonują i nie alokują tyle pamięci.
Np jakie programy? Daj jakiś przykład o porównywalnej ilości linii.
Proponuję porównać MS Office i Open Office.
Obydwa są napisane w C++, więc co konkretnie chcesz porównać? O.O.o ma tylko dodatki w javie.
Nie mogę wyjść z podziwu dla ludzi ktorzy wierzą, że JAVA może dorównać lub/i być tak szybka jak C.
Może być != jest w typowych systemach. W praktycznych zastosowaniach nigdy nie dojdzie do tej samej szybkości oczywiście... wątpie, żeby ktoś tego próbował dowieść.
Przepiszmy systemy operacyjne i bazy danych na JAVE !
Jak NodeOS? Albo DB4o? ;)Stanisław Pitucha edytował(a) ten post dnia 16.10.09 o godzinie 14:58
Jakub L.

Jakub L. Programista

Temat: Programowanie NIE-obiektowe

Rafał Nowak:
Wy tu tak gadu-gadu o OOP vs. strukturalne podejście, a nie ma innych paradygmatów? Co z programowaniem funkcyjnym?
Można je stosować z tego co wiem na JVM wraz z jęzkiem Scala.
Że zacytuje:
"Mam wrażenie, że programowanie funkcyjne przeżywa jakiś swój renesans. Od jakiegoś czasu więcej słychać o Erlangu, Clojure

Renesans po czym? Po napisaniu Emacsa w Lispie?
Słyszy się to tak chyba od 8 lat, byłem na studiach i się słyszało.

Smutna prawda dla fanów programowania funkcyjnego jest taka, że łatwiej jest wziąć i nauczyć kogoś pisać imperatywnie niż funkcyjnie, i dlatego języki funkcyjne są tylko niszową zabawką.
problemy z przestawieniem sposobu myślenia. Np. w typowo funkcyjnym podejściu nie ma w ogóle pętli w programie. Zastępuje ją rekursja (która nie przepełnia stosu, jest to tzw. tail recursion)"

Rekursja ogonowa, szczególnie w przypadku liczenia ciągu Fibonacciego :)
Nie mam w takim podejściu żadnych doświadczań, ale chętnie poznam wasze :)

Zabawki.
Jakub L.

Jakub L. Programista

Temat: Programowanie NIE-obiektowe

Michał Wujas:
Artur Świerc:
Michał Wujas:
Zachwyconym OOP polecam jakieś środowisko graficzne w Javie np Swing i zrobienie w tym jakiegoś dziwnego elementu gui, dystans do oop gwarantowany ;-)


Ee... tutaj się z Tobą nie zgodzę ;) Co prawda pisałem bardzo mało w swingu, skupiam się na webowych rozwiązaniach. Ale i tak pisało mi się dosyć przyjemnie - java wymusza na programiście pewne standardy, nie pisze się tak syfnego kodu jak w php.

Ale to zupełnie nie chodzi o jakość kodu, jakość jest super. Ale jeżeli 2 programistów musi spędzić tydzień nad dodaniem podpowiedzi na wierszu w datagridzie poznając przy tym jakieś 500+ klas to zaczynasz się zastanawiać czy jednak oop zawsze jest fajne

Albo jak się próbuje wyczytać na sucho bez żywego programu dlaczego coś się sypie w programie napisanym przy pomocy klas implementujących interfejsy.

Temat: Programowanie NIE-obiektowe

Ale to zupełnie nie chodzi o jakość kodu, jakość jest super. Ale jeżeli 2 programistów musi spędzić tydzień nad dodaniem podpowiedzi na wierszu w datagridzie poznając przy tym jakieś 500+ klas to zaczynasz się zastanawiać czy jednak oop zawsze jest fajne

1. OOP też może być źle napisane / zbyt rozbudowane / źle wdrożone
2. Jaka tu przewaga programowania funkcyjnego (innego)? ("Jeżeli 2 hydraulików musi spędzić tydzień dodaniem zaworu przeszukując 5km rur w instalacji to zaczynasz się zastanawiać czy nie lepiej użyć ogrzewania elektrycznego")Łukasz Rylik edytował(a) ten post dnia 16.10.09 o godzinie 19:48
Kordian Zadrożny

Kordian Zadrożny TETA HR, IT.
Konsulting,
Marketing, JOOMLA,
CorelDraw

Temat: Programowanie NIE-obiektowe

a przy okazji
Czy w Polsce wyszła jakaś książka ucząca na przykładach sensownych obiektowego php?

Obiektówka dla mnie była magią i jak c++ było na zajęciach, ale podchodzę do frameworków a tam bez zrozumienia obiektowego daleko się nie zajdzie :(

konto usunięte

Temat: Programowanie NIE-obiektowe

Łukasz Rylik:

1. OOP też może być źle napisane / zbyt rozbudowane

Zaryzykuje stwierdzenie, że przy oop pokusa zbytniego rozbudowywania jest spora ;-)

konto usunięte

Temat: Programowanie NIE-obiektowe

Kordian Zadrożny:
a przy okazji
Czy w Polsce wyszła jakaś książka ucząca na przykładach sensownych obiektowego php?

http://forum.php.pl/index.php?showtopic=118685&pid=596...

Poziom trudności spory ale warto.
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: Programowanie NIE-obiektowe

"Projektowanie obiektowe, Role, odpowiedzialnosc i wspolpraca"
http://merlin.pl/Projektowanie-obiektowe-Role-odpowied...

nudne jak flaki z olejem, ale ryje banie na tyle, ze wpadaja po tym rozne pomysly :)

konto usunięte

Temat: Programowanie NIE-obiektowe

Łukasz Cepowski:

nudne jak flaki z olejem, ale ryje banie na tyle, ze wpadaja po tym rozne pomysly :)

Potwierdzam, swoją drogą fajna recenzja może zgłoś się do nich to Cię dopiszą z tyłu książki...

Następna dyskusja:

Programowanie obiektowe czy...




Wyślij zaproszenie do