Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Programowanie strukturalne a obiektowe - takie sobie rozważania.

Ostatnio zmodyfikowano 2011-04-06 10:11
Autor Wiadomość
marek
Temat założony przez niniejszego użytkownika
Programowanie strukturalne a obiektowe - takie sobie rozważania.
» 2011-04-04 21:30:27
Kopię się teraz jak koń z programowaniem obiektowym i idzie mi to jak po grudzie. Podobno największą zaletą C++ jest to, że można używać tylko część C tego języka. Czyli mozna nie używać programowania obiektowego.
Podobno "obiektowiec" ten sam problem rozwiąże 10 razy szybciej niż "procedurowiec". Czy ktoś mógłby to skomentować? Albo skorygować np. nie 10 razy szybciej lecz tylko 25% szybciej. Czy są zawodowi programiści którzy nie używają programowania obiektowego?

Nie znalazłem jeszcze prostego przykładu w którym ten sam problem byłby rozwiązany przy pomocy:
 - programowania strukturalnego ( zwykłe C )
 - obiektowego (część obiektowa C++)
Dobrze byłoby żeby ewidentnie była widoczna tu przewaga C++ nad C.

Być może ta przewaga jest widoczna tylko przy dużych, nietrywialnych programach?

Intuicyjnie czuję co było przyczyną powstania programowania obiektowego.

Co robi programista proceduralny, gdy ma stworzyć nowy program?
Nie ma właściwie możliwości znalezienia na rynku podobnego programu i zmodyfikowania go. Tu kłaniają się prawa autorskie. Może budować nowy program z cegiełek, czyli z istniejących funkcji, ale te cegiełki są malutkie, żeby nie powiedzieć maciupcie. Jeżeli np. 10 lat wcześniej stworzył program który, jest choć trochę podobny do tego nowego, to ma zadanie ułatwione. Kilka cegiełek (jego wcześniejszy program) będzie wcześniej połączonych w jakąś jedną całość, i tę całość będzie obudowywał nowymi cegiełkami.  To programowanie wymaga bardzo dużego doświadczenia osobistego. Choćby chciał to nie może w ten sam sposób obudowywać cegiełkami istniejących na rynku programów.
Prawdopodobnie te istniejące na rynku programy są lepsze i bardziej podobne do założonego docelowego programu, ale nie może ich modyfikować ("obudowywać cegiełkami - funkcjami") z dwóch powodów:
- po pierwsze primo prawa autorskie
- po secundo primo programista stosunkowo łatwo dowie się co ten istniejący program robi, ale nie nie będzie wiedział jak to robi. A trudno modyfikować program który nie wiadomo jak działa.
Czyli w gruncie rzeczy programista musi wszytko robić od początku, bazując na własnym doświadczeniu.
To tak jakby konstruktor telewizora jego projektowanie zaczął od projektowania tranzystora, z których to z kolei będzie robił układy scalone małej skali inegracji, z tych duże itd. Na koniec zaprojektuje pudło i to wszystko połączy w całość.

Co robi programista obiektowy, gdy ma stworzyć nowy program?
Też buduje ale z cegieł (obiektów) a nie cegiełek (funkcji i danych).
Dlaczego ma łatwiejszą robotę?
- po pierwsze primo prawa autorskie są łatwiejsze do obejscia.
- po secundo primo programista nie musi wiedzieć dokładnie jak "cegła" działa tylko musi wiedzieć co robi  i jak ją łączyć z innymi cegłami. A ponieważ "cegły" są większe niż "cegiełki" to łatwiej będzie storzyć całość.
Powracając do telewizora, to projektant nie zaczyna od tranzystora, tylko od dosłownie kilkunastu elementów (pudło, kilka układów scalonych, dokładnie opisanych przez producenta w specyfikacjach). Producent zgadza się na korzystanie z jego produktów, wręcz skamle o to. Wiadomo że konstruktor choć 30 lat temu uczył się o tranzystorach i teoretycznie mógłby stworzyć nowy układ scalony. Ale straci na to 10 lat a i tak nie zrobi tego tak dobrze jak układ scalony firmy Hitachi w którym jest zawarte doświadczenie wielu pokoleń inżynierów, i który powstawał poprzez ewolucję, stopniowo się udoskonalając.
Podsumowując programista obiektowy legalnie buduje program z obiektów które są duże, prawie doskonałe (patrz wieloletnia ewolucja). Musi tylko wiedzieć jak to połączyć w całość. Istnieje więc duże prawdopodobieństwo że stworzy coś bardziej doskonałego, niż gdyby budował to tylko z małych cegiełek.
 
Przy okazji. Z pewną dozą nieśmiałości, jak ta panienka co reklamowała podpaski, chciałbym się spytać DejaVu kiedy ruszy dalsza część kursu C++. Czekam na to jak kania dżdżu.

P-30294
DejaVu
» 2011-04-04 21:39:56
Pewnie będę rozwijał kurs C++ dalej gdzieś na początku wakacji tak by uczelnie czy też szkoły, które z niego korzystają miały więcej materiałów do dyspozycji od początku września.

/edit:
Dużo napisałeś ;p przeczytałem 1/4 posta ale: porównaj sobie jak wygląda zarządzanie obrazami w Allegro 4.4 (strukturalne) i w bibliotece SFML 1.6 (obiektowe) :)

/edit2:
Czekam na to jak kania dżdżu.
Nie znam człowieka ;p
P-30295
kamillo121
» 2011-04-04 21:47:53

[..] tak by uczelnie czy też szkoły, które z niego korzystają miały więcej materiałów do dyspozycji od początku września.

Kurcze jak to przeczytałem to od razu sobie przypomniałem nauczycieli którzy uczą się z tej strony :D A żeby było śmieszniej to nauczyciele programowania... sry za offtop.
P-30296
marek
Temat założony przez niniejszego użytkownika
do Kamilo121
» 2011-04-06 10:11:55
Intryguje mnie
programowania... sry za offtop.
comments please
P-30348
« 1 »
  Strona 1 z 1