Andrzej Góralczyk:
Uważa Pan programowanie obiektowe za najlepsze? Są na ten temat kontrowersje wśród czołówki programistów.
A konkretnie? (chodzi mi kto z czołówki twierdzi, że to zły pomysł i jakie daje argumenty)?
Według mnie:
Jeśli chodzi o szybkość działania aplikacji - zgadzam się, że z języków proceduralnych można wycisnąć kilka procent szybciej (z assemblera jeszcze kilka, tylko po co). Sortowanie bąbelkowe napisane w assemblerze będzie na pewno wolniejsze niż QuickSort napisany w Clipperze. Myślenie daje przyspieszenie wielkrotnie większe niż implementacja w najszybszym języku świata
Jeśli chodzi o tworzenie jednej bardzo niepowtarzalnej aplikacji (nie ma dwóch podobnych fragmentów) - zgadzam się, że obiektowość jest niepotrzebną nadmiarowością i stratączasu
(i na razie nic innego nie przychodzi mi do głowy)
Natomiast wszystkie inne przypadki dają podstawy sądzenia, że obiektowość jest wygodniejsza, szybsza i mniej błędotwórcza:
1. Znacznie większa możliwość podziału programu na moduły tworzone niezależnie
2. możliwość tworzenia programów, których funkcjonalność zostanie określona później (metody wirtualne, czyli programista obiektu bazowego zakłada wołanie nieistniejącej jeszcze metody obiektu potomnego). Oczywiście można to zrobić w języku proceduralnym, tylko po co robić sobie tyle roboty
3. Łatwość korzystania z napisanych wcześniej bibliotek (modyfikujemy tylko to co chcemy zmodyfikować)
4. Łatwość testowania (zarówno można przetestować wszystkie moduły w częściach jak i do istniejących obiektów banalnie prosto dopisywać debbugery, które skontrolują przebieg aplikacji, nawet jeśli producent obiektu tego nie uwzględnił (nie do zrobienia w językach proceduralnych)
5. Łatwość tworzenia wielu jednakowych lub nieznacznie różniących się instancji
6. Intuicyjna zgodność z programowaniem środowisk lokalnych graficznych (zaróno windows, czy wszystkie gui linuxa a nawet applety czy middlety).
i kilka kilogramów innych
Uważam, że niechęć do obiektówki wynika ze starych nawyków (cały czas kadra naukowa na uczelniach podchodzi do obiektówki z rezerwą - boją się, więc jak mają tego uczyć ludzi).
Kolejne to przyzwyczajenia do języków strukturalnych, pseudoobiektowych czy stanowych (php, javascript, vb, tsql, html bez css'a itp). Byle jaką stronę w php zrobi się w 15 minut, a do zrobienia strony w javie trzeba trochę więcej. Hosting z php zapewnia 99% firm niemal za darmo, za javę trzeba sporo zapłacić.
Cały czas brak dobrej literatury o programowaniu obiektowym, mimo że idea znana jest chyba już ponad 20 lat
Na szczęście java i .net trochę poprawiają sprawę, ale dużo jescze czasu upłynie zanim zmieni się podejście od podstaw
Marek