Czy programowanie obiektowe to najgorszy paradygmat programowania jaki kiedykolwiek wymyślono?

0

OOP to postęp w dziedzinie projektowania aplikacji.
Kod wynikowy może być taki sam, jest to jedynie sposób na zapisanie informacji.
Co daje nam OOP?:

  • porządek pracy nad projektem - bardzo ważne przy dużych i małych, logika konstukcji aplikacji
  • prostotę
  • testy w OOP to bajka
  • mniejsza ilość kodu do napisania
  • skończenie z tendencją do wynajdowania koła od nowa
  • prędkość projektowania aplikacji
  • przeniesienie programowania na wyższy poziom, dzięki czemu koncentrujesz się na projektowaniu a nie implemenctacji
  • możliwość wykorzystywania klas w wielu miejscach, przy zgodnym interfejsie
  • logiczne diagramy UML
  • ... wiele wiele innych
    A teraz minusy:
  • więcej nauki
  • wolniejsza ewolucja rozwiązań implementacyjnych

Teraz Ty napisz jakie są minusy OOP, bo mi naprawdę ciężko coś znaleźć.
OOP to postęp sposobu programowania, zapewne przy większych projektach tworzyłbyś coś na wzór OOP, w programowaniu proceduralnym, aby uprościć sobie pracę i nie pogubić się w tym wszystkim. Tylko po co wynajdywać koło od nowa?

0

E tam, były gorsze paradygmaty :D

0

A jakie są alternatywy?

0
Maluśki robaczek napisał(a):

OOP to postęp w dziedzinie projektowania aplikacji.
Kod wynikowy może być taki sam, jest to jedynie sposób na zapisanie informacji.
Co daje nam OOP?:

  • porządek pracy nad projektem - bardzo ważne przy dużych i małych, logika konstukcji aplikacji

Pusty slogan.

  • prostotę

Pusty slogan.

  • testy w OOP to bajka

Pusty slogan.

  • mniejsza ilość kodu do napisania'

Pusty slogan.

  • skończenie z tendencją do wynajdowania koła od nowa

Pusty slogan.

  • prędkość projektowania aplikacji

Pusty slogan.

  • przeniesienie programowania na wyższy poziom, dzięki czemu koncentrujesz się na projektowaniu a nie implemenctacji

Pusty slogan.

  • możliwość wykorzystywania klas w wielu miejscach, przy zgodnym interfejsie

Interfejs nie jest stricte OOP

  • logiczne diagramy UML

A te nielogiczne?

  • ... wiele wiele innych

Szkoda, że dotąd nie podałeś niczego co by vyło faktycznie argumentem, a nie psutym sloganem.

A teraz minusy:

  • więcej nauki
  • wolniejsza ewolucja rozwiązań implementacyjnych

Teraz Ty napisz jakie są minusy OOP, bo mi naprawdę ciężko coś znaleźć.

Ale jak widać łatwiej niż plusy, bo żadnego nie podałeś.

OOP to postęp sposobu programowania, zapewne przy większych projektach tworzyłbyś coś na wzór OOP,

Nie, nie tworzę i nie tworzyłbym.

w programowaniu proceduralnym, aby uprościć sobie pracę i nie pogubić się w tym wszystkim.

Jakoś nigdy się nie pogubiłem, a pracowałem z kodem o kilkumilionowej ilości linii nie pisanym OOP.

Tylko po co wynajdywać koło od nowa?

Jakie koło?

2

OOP leczy raka i rozwiązuje problem głodu na świecie

Jestem dość mocno przekonany, że to w językach ze wsparciem dla OOP pisze się oprogramowanie do szukania rozwiązań w tematach, które podałeś.

0
Wibowit napisał(a):

OOP leczy raka i rozwiązuje problem głodu na świecie

Jestem dość mocno przekonany, że to w językach ze wsparciem dla OOP pisze się oprogramowanie do szukania rozwiązań w tematach, które podałeś.

Fortran i C?

2

[...]Pusty slogan. [...]
Jakoś nigdy się nie pogubiłem, a pracowałem z kodem o kilkumilionowej ilości linii nie pisanym OOP.

Kolega też przestał popełniać błędy w programach jak został kierownikiem (po prostu nie pisał programów), Ty zapewne podobnie masz z tym że nigdy nie pogubiłeś się w kodzie z kilkoma milionami linii kodu. Przynajmniej to widać, po tym, jak podpisujesz sie - ciekawy nick "Pusty slogan"...

0
kaczus napisał(a):

[...]Pusty slogan. [...]
Jakoś nigdy się nie pogubiłem, a pracowałem z kodem o kilkumilionowej ilości linii nie pisanym OOP.

Kolega też przestał popełniać błędy w programach jak został kierownikiem (po prostu nie pisał programów), Ty zapewne podobnie masz z tym że nigdy nie pogubiłeś się w kodzie z kilkoma milionami linii kodu. Przynajmniej to widać, po tym, jak podpisujesz sie - ciekawy nick "Pusty slogan"...

Khekhekhe, umiesz czytać? Gdzie ty yam widzisz nick "Pusty Slogan"? No ale czego oczekiwac po kims, kto sam ma nick "kaczus".

I to, że ty się gubisz w kodzie nie pisanym OOP, nie znaczy że inni też tak mają. Naprawdę, nie jesteś najdoskonalszym programistą Wszechświata. Przyjmij to do wiadomości.

0

Wiecie co? Tak czytam i czytam ten wątek. I nigdzie nie widzę aby obalono tezę, że oop to najgorszy paradygmat jaki wymyślono. Padło dużo epitetów, obelg pod adresem przeciwników oop. Lecz brak jest solidnego uzasadnienienia wyjaśniającego dlaczego teza z tematu jest fałszywa.

Sorry, wygląda to tak jakby tu pisały same trolle zaopatrzone ślepo w oop. I wzorce.

0

Programowanie strukturalne zawiera się w obiektowym, ponieważ każdy program strukturalny można trywialnie przekształcić w obiektowy, natomiast w drugą stronę się nie da. Stąd programowanie strukturalne jest gorsze od obiektowego. Zatem obiektowe nie jest najgorsze. C.B.D.U.

0
Krolik napisał(a):

Programowanie strukturalne zawiera się w obiektowym, ponieważ każdy program strukturalny można trywialnie przekształcić w obiektowy, natomiast w drugą stronę się nie da. Stąd programowanie strukturalne jest gorsze od obiektowego. Zatem obiektowe nie jest najgorsze. C.B.D.U.

Programowanie obiektowe bez obiektów. Fajnie masz na chacie...

1

Cała ta dyskusja w części "argumenty za OOP" opiera się jak widzę na "argumentach", czy raczej "pustych sloganach:"
Slogan najczęściej powtarzany: "OOP zapewnia organizację/porządek/strukturę kodu" nie, nie zapewnia organizacji kodu, on umożliwia organizację kodu za pomocą klas. To zasadnicza różnica, nieobiektowe języki też posiadają mechanizmy dzięki którym można kod zorganizować. W obu zaś przypadkach bez zaplanowania jakiejkolwiek w miarę sensownej i systematycznie przestrzeganej stuktury kodu kończy się po jakimś czasie powstaniem nieczytelnego, chaotycznego spagetthi. Co zresztą obrazuje cała masa projektów pisanych paradygmatem OOP, a które skończyły jako makaron i nic im podział na klasy nie pomógł.

Slogany typu: OOP umożliwa coś szybciej/lepiej/zajebiście/taniej lub zwiększa szanse powodzenia projektu oczywiście nikt nie przytacza żadnych danych potwierdzających, że projekty OOP powstają szybciej, czy są lepszej jakości niż pisane w paradygmacie proceduralnym. Na ile się orientuje to takowych badań nikt nigdy nie przeprowadził, więc taka argumentacja to po prostu miotanie pustymi hasłami, na które nikt nie posiada dowodów, conajwyżej własną opinię ( a przynajmniej mam nadzieję, że własną, a nie bezmyślnie powtarzaną za kimś ).

Dość rzadki arguent: OOP ułatwia testy ( w tym wątku najbardziej się uczepiono jednostkowych, najczęściej nawet nie zawuażając, że nie wymagają one wcale struktury obiektowej ) testy ułatwia organizacja projektu i podział na moduły. A co do podziału to patzr punkt pierwszy omawianych sloganów. Tak, można napisać projekt w dowolnym paradygmacie którego testowanie będzie bardziej bolesne niż spotkanie twoje twarzy z pędzącą ciężarówką.

0
Krolik napisał(a):

Programowanie strukturalne zawiera się w obiektowym, ponieważ każdy program strukturalny można trywialnie przekształcić w obiektowy, natomiast w drugą stronę się nie da. Stąd programowanie strukturalne jest gorsze od obiektowego. Zatem obiektowe nie jest najgorsze. C.B.D.U.

Jeśli założymy, że programowanie proceduralne jest podzbiorem pogramowania obiektowego, to poniższe zdania będą prawdziwe:

  • Ten kod jest napisany proceduralnie - zatem ten kod jest napisany obiektowo.
  • Język ANSI C to język proceduralny - zatem ANSI C jest językiem obiektowym.
0

na odwrót... - caer 1 minuta temu

Na odwót już nie.

2

Jeśli założymy, że programowanie proceduralne jest podzbiorem pogramowania obiektowego, to poniższe zdania będą prawdziwe:

Ten kod jest napisany proceduralnie - zatem ten kod jest napisany obiektowo.

Próbujesz dyskutować, a widzę wypadałoby najpierw podstawówkę skończyć... Pamiętasz, jak tam było o takich magicznych rzeczach, że kwadrat jest prostokątem, ale prostokąt nie jest kwadratem? Spróbuj sobie podstawić do tych swoich wynurzeń...

0
Krolik napisał(a):

Programowanie strukturalne zawiera się w obiektowym, ponieważ każdy program strukturalny można trywialnie przekształcić w obiektowy, natomiast w drugą stronę się nie da. Stąd programowanie strukturalne jest gorsze od obiektowego. Zatem obiektowe nie jest najgorsze. C.B.D.U.

Owszem można przekształcić każdy kod napisany obiektowo na równoważny napisany proceduralnie bo i proceduralnie pisany i obiekowo można przekształcić na assembler. po prostu wymaga dopisania całej warstwy kleju, który ciągnie za sobą obiektowość.

1
aurel napisał(a):

Jeśli założymy, że programowanie proceduralne jest podzbiorem pogramowania obiektowego, to poniższe zdania będą prawdziwe:

Ten kod jest napisany proceduralnie - zatem ten kod jest napisany obiektowo.

Próbujesz dyskutować, a widzę wypadałoby najpierw podstawówkę skończyć... Pamiętasz, jak tam było o takich magicznych rzeczach, że kwadrat jest prostokątem, ale prostokąt nie jest kwadratem? Spróbuj sobie podstawić do tych swoich wynurzeń...

Widzę, ż u rozmówcy kompletnie leży algebra zbiorów. A mimo to, to mnie on wysyła do podstawówki.

0
aurel napisał(a):

Jeśli założymy, że programowanie proceduralne jest podzbiorem pogramowania obiektowego, to poniższe zdania będą prawdziwe:

Ten kod jest napisany proceduralnie - zatem ten kod jest napisany obiektowo.

Próbujesz dyskutować, a widzę wypadałoby najpierw podstawówkę skończyć... Pamiętasz, jak tam było o takich magicznych rzeczach, że kwadrat jest prostokątem, ale prostokąt nie jest kwadratem? Spróbuj sobie podstawić do tych swoich wynurzeń...

Ziór wszystkich kwadratów jest pozbiorem wszystkich prostokątów.
Kwadraty są prostokątami.
Programowanie kwadratowe jest podzbiorem programowania prostokątnego.
Zatem kod napisany kwadratowo jest kodem napisanym prostokątnie.

Gdzie tu niby błąd? I kogo tu zeczywiście trzeba wysyłać do podstawówki?

3

Jakie znowu zbiory? Jeśli powiem że samochód zawiera w sobie okno, to nie znaczy że każde okno należy do samochodu albo że można nim jeździć.

0

Byłoby mi cię szkoda, ale tak zerowe zrozumienie tematu to musi być troll :) - aurel 1 minuta temu

A mi szkoda ludzi, którzy idą w zaparte nawet gdy im naocznie i matematycznie przedstawisz, że się mylą. Mogę ci przedstawić graficznie iż takie wynikanie jest prawdziwe. Narysować ci to?

0
caer napisał(a):

Jakie znowu zbiory? Jeśli powiem że samochód zawiera w sobie okno, to nie znaczy że każde okno należy do samochodu albo że można nim jeździć.

Samochód to zbiór części. Okno należy do zbioru części samochodu. Jeśli okno należy do zbioru części samochodu to okno jest częścią samochodu. W zbiorze części samochodu jest zawarty zbiór wszystkich okien samochodu. Zbiór wszystkich okien samochodu zawiera się w zbiorze wszystkich okien. Zatem nie każde okno zawiera się w zbiorze wszystkich okien zawiera się w zbiorze wszystkich okien samochodu. Masz więc rację.

Teraz popatrzmy na to co napisał inny rozmówca o programowaniu proceduralnym i jego relacji z programowaniem obiektowym.

Krolik napisał(a):

Programowanie strukturalne zawiera się w obiektowym, ponieważ każdy program strukturalny można trywialnie przekształcić w obiektowy, natomiast w drugą stronę się nie da. Stąd programowanie strukturalne jest gorsze od obiektowego. Zatem obiektowe nie jest najgorsze. C.B.D.U.

A - Programowanie strukturalne
B - Programowanie obiektowe

Krolik napisał(a):

Programowanie strukturalne zawiera się w obiektowym,

A zawiera się w B

Krolik napisał(a):

ponieważ każdy program strukturalny można trywialnie przekształcić w obiektowy

C - ażdy program strukturalny można trywialnie przekształcić w obiektowy
Z C wynika, że A zawiera się w B

Krolik napisał(a):

natomiast w drugą stronę się nie da

B nie zawiera się w A

Do kupy:
Z C wynika, że A zawiera się w B. Dodatkowo zachodzi - B nie zawiera się w A

Jak widzisz, ty zawęziłeś zbiór okien do zbioru okien samochodowych, natomiast tamten rozmówca nie zawęził nijak zbioru wszystkich możliwych programów proceduralnych.

0

Jak zwykle fanboje programowania obiektowego przypuścili atak. Opowiadają o kwadratach, prostokątach i wysyłają do podstawówki każdego kto myśli inaczej niż oni.

Troll attack. A merytorycznych wypowiedzi brak. Tak broni się tylko ten, co nie ma nic do powiedzenia.

0

Programowanie kwadratowe jest podzbiorem programowania prostokątnego.
Zatem kod napisany kwadratowo jest kodem napisanym prostokątnie.

Ha! Mamy cię, założyłeś, że "programowanie" jest covariant (kowariantne?) - skrycie piszesz obiektowo :D

0

@caer i @aurel
Jeśli zatem @Krolik pisał iż programowanie proceduralne zawiera się w obiektowym i nie zaznaczył że jakaś część programowania proceduralnego nie zawiera się w obiektowym to nie mam podstaw by wysnuć wniosek, że Krolik twierdzi, iż jakaś część programowania proceduralnego nie zawiera się w obiektowym. Zatem na mocy analogii do kwadratów będących podzbiorem prostokątów wynikającej z rachunku zbiorów i przedstawionego przez @Krolik twierdzenia o zawieraniu się programowania proceduralnego w obiektowym mam jak najbardziej matematyczne podstawy do stwierdzenia 9 na mocy twierdzenia krolika ) iż każdy program proceduralnie napisany jest programem napisanym obiektowo.

Jeśli @Krolik wystosuje nowe twierdzenie, w którym zaznaczy jasno, że jakaś część programowania proceduralnego jednak nie zawiera się w programowaniu obiektowym, to wtedy rzeczywiście nie każdy program napisany proceduralnie będzie programem napisanym obiektowo.

0
SzopenFXX napisał(a):

Jak zwykle fanboje programowania obiektowego przypuścili atak. Opowiadają o kwadratach, prostokątach i wysyłają do podstawówki każdego kto myśli inaczej niż oni.

Troll attack. A merytorycznych wypowiedzi brak. Tak broni się tylko ten, co nie ma nic do powiedzenia.

I dodatkowo strzelają sobie w stopę bo ich analogia do kwadratów tylko unaoczniła poprawność wystosowanego przeze mnie wniosku na podstawie twierdzenia które przedstawił @Krolik , iż każdy program napisany proceduralnie jest programem napisanym obiektowo. Zatem prowadzi do w konsekwencji do nadania pawdziwości zdaniu o tym, że język proceduralny jest językiem obiektowym. Zatem język ANSI C jest na mocy twierdzenia użytkownika @Krolik językiem obiektowym.

0

struktura jest opisem obiektu tak samo jak klasa.... - kaczus 1 godz. temu

Zatem każdy język umożliwiający tworzenie struktury jest językiem obiektowym.

0

Czytam i czytam, wniosek jest jeden:
@Młot na pustosłowie, masz downa albo uszkodzony mózg.

Wytłumacz mi jedną prostą rzecz.
Dlaczego najpopularniejsze języki programowania stosują się do zasad pełnej obiektowości?
Inaczej: dlaczego twórcy nowych języków, wprowadzają do niech obiektowość? Wszyscy się mylą?

Idź do psychologa, bo masz problem z logicznym myśleniem. Trollu.

0

@Maluśki robaczek, przecież on to pisze specjalnie żeby ludzie tacy jak ty się spinali. To jak z dzieckiem - odpuść to przestanie :P

0

@caer @aurel
Jeśli więc atakujecie moje twierdzenie wysnute na podstawie twierdzenia użytkownika forum @Krolik to atakujecie jednocześnie to twierdzenie prze Królika napisane. Więc dalsze zażalenia to adresujcie do Krolika, nie do mnie.

I to w sumie dowodzi iż powstała sytuacja kiedy to osoby będące przeciwnikami tezy zę OOP jest gorszy od proceduralnego nie zgadzają się wzajemnie między sobą.

3

@Młot na pustosłowie
Wyjaśnij mi tylko jedno.
Czy twierdzisz, że paradygmat programowania obiektowego zawiera w sobie paradygmat proceduralny?

  1. Jeżeli tak, to czy twierdzisz, że udowodniłeś własnie, że wszystkie programy proceduralne są obiektowe? :D
  2. Jeżeli nie - wróć do szkoły.

1 użytkowników online, w tym zalogowanych: 0, gości: 1