Kwadratowy pomidor napisał(a):
Błękitny Kot napisał(a):
Hanibal napisał(a):
Ktoś mądry napisał w necie o obiektówce coś takiego
"połowę rzeczy w programowaniu obiektowym jest łatwe i intuicyjne, druga połowa jest nieintuicyjna, i niepotrzebnie skomplikowana"To raczej szło tak:
“The phrase "object-oriented” means a lot of things. Half are obvious, and the other half are mistakes.“ – Paul Graham
"Termin ''zorientowane obiektowo'' mieści w sobie wiele rzefczy. Połowa z nich jest oczywista, reszt jest pomyłką " – Paul GrahamTrzeźwy Karp napisał(a):
Ja glownie programuje w pracy w C++, ale w domu chetnie poznaje inne paradygmaty. Gdy uczylem sie F# to zauwazylem, ze moj kod C++ w pracy staje sie coraz mniej obiektowy i coraz bardziej proceduralny i funkcyjny (na ile to C++ pozwala). Wciaz uzywalem klas ale w znacznie mniejszym stopniu niz robilem to kiedys.
No i bardzo dobrze. Tworzenie klas do wszystkiego co się da w obecnych czasach to plaga. Zwłąszcza im młodsze pokolenie, tym bardziej wypaczone mózgi. Jeszcze trochę a dojdziemy do poziomu, gdzie będą tworzyć hierarchię klas, żeby tylko napisać program "Hello Wordl!".
Zgadza się - jest to plaga. Najgorzej jak ktoś kto wcześniej programował wielowątkowo na super wypasionych 64-ro rdzeniowych prockach nagle dostaje do zaprogramowania system embedded. Przykład z życia wzięty: prosty programik niskopoziomowy do forwardowania danych pomiędzy serialem a ethernetem w systemie embedded Linux. Był najpierw napisany w C. Działało to w miarę dobrze i zajmowało kiladziesiąt lub kilkaset kB. Ale niektórzy "mądrzy" stwierdzili, że C jest passe i trzeba to przepisać na C++. No i przepisali. Specjaliści. Program w nowej wersji napisanu już w C++ zajmował ponad 9MB. Zżerał 70-80% czasu procka. Pamięć flash miała na tym systemie 32MB. Czyli 9MB z tych 32MB poszło na jeden program. Dodam może, że cała reszta systemu - kernel i kilkaset binarek pisanych w C zajmowała w sumie 11MB a tu jeden prosty program w C++ zżera 9MB. Ten program w C++ nie miał żadnego GUI - to był daemon po prostu. No ale tak musiało być - obiektowo. Do tego ci którzy zadecydowali o przepisaniu kodu z C do C++ twierdzili, że C++ ma bardzo niewielki narzut w stosunku do C. Właśnie widać - kilkaset kB w C w stosunku do 9MB w C++ - to niewiele, prawda?
Nawet jeśli wynikało to z nieumiejętnego linkowania bibliotek, to trzeba naprawdę nieźle przywalić "warstwami abstrakcji" i "wzoracami projektowymi" i "sprawdzonymi szablonami i przetestowanymi biblotekami" żeby coś tak prostego jak forwardowanie bitów z A do B zaciągnęło 9MB kodu i zżerało tyle czasu procesora. Jak to w ogóle skomentowali, co na to klient/szef zespołu?