Albo wtedy, kiedy uświadomią sobie, że w Javie nie ma funkcji.
A niby co jest? To, że ktoś nazwał funkcję metodą to nie znaczy, że nie jest funkcją :). Wiesz, dzisiaj wybierając się na wakacje dostajesz ulotkę z "destynatami" do wyboru. Tylko pytanie czemu, skoro destynat to nic innego jak "kierunek podróży", "miejsce" itp. Podobnie jest z nadużywanym zapożyczeniem, gdzie się z czymś zgadzasz to mówisz "dokładnie" zamiast typowe "tak". Miejmy swój język :), nawet z małymi błędami ale swój. Ja osobiście specjalnie zawsze ale to zawsze mówię o funkcji. Raz, że nie widzę specjalnej różnicy (mało mnie obchodzi czy funkcja w klasie to metoda a poza klasą to funkcja, bo to poziom dyskusji o wyższości świąt ... a nie merytoryczna dyskusja na temat tego co to ma robić lub co nie działa) a dwa, że mam swój język i aż tak absurdalnego zapożyczenia nie muszę stosować.
Pewnie w tym samym momencie, w którym uświadomią sobie, że nie należy wykorzystywać języków wysokopoziomowych do realizacji niskopoziomowych celów.
Powiedz to tym, którzy szukają "kompilatorów" do Javy dla takich mikrokontrolerów jak ATMEGA8 i dziwią się, że tego nie ma, albo jest nie tak dobre jak normalna java. To są dopiero przegięcia.
Albo nauczą się, że argument "kod jest nieczytelny ponieważ wygląda nieczytelnie jeśli stosuje się dobre praktyki z innego języka" jest raczej słaby.
Wiesz, widziałem "proste" przykłady dla Androida i jak widziałem tę prostotę to uświadomiłem sobie dlaczego połowa programów na androida ledwie działa (na czele z firmowymi typu YouTube). Chcąc tworzyć proste środowisko należy mieć świadomość, że im więcej osób się do niego dobierze, tym gorzej dla niego. Do tego doprowadziła właśnie Java. Pozorna prostota i moda na Jave spowodowała, że coś co mogłoby być rewelacyjne stało się niekiedy parodią (Android i jego Java wraz z programami). I właśnie na przykładzie Androida można powiedzieć, że to jest właśnie ten przypadek, kiedy ktoś zamiast językiem niskiego poziomu próbuje zrobić coś językiem wysokiego poziomu. Wyobraź sobie, że można byłoby pisać w C/C++, a cały android chodziłby bezpośrednio na linuksie ze standardowymi okienkami. Przecież dla tabletów to byłby ideał. Wtedy dałoby się poczuć moc tych urządzeń. A tak tnie wszystko nawet na XPerii za 2k zł
Czytelność kodu wynika głównie z umiejętności programisty, a nie użytego języka. Bo w C++ to niby nie można pozagnieżdżać klas na 10 poziomów i zrobić pojedynczej funkcji na 2000 linii? Zabawne. A konieczność zabawy z plikami nagłówkowymi też potrafi wprowadzić całkiem niezły bałagan, w porównaniu z językami, które mają porządny system modułów.
Można, tylko z racji tego, że C++ nigdy nie promował się jako super ekstra łatwy i prosty to sporo kodu jest napisana z zachowanie pewnego poziomu logiki. Nawet te gorsze, pisane na kolanie są pisane przez osoby, które tego języka się nie boją i pewne doświadczenie mają. Java nie jest złym językiem. Po prostu jave przejęła duża część ludzi, którzy są przekonani, że tam bez programowania stworzą windowsa. I to jest jej przekleństwo, bo potem takie osoby piszą kody przykładowe a w nich tego typu konstrukcje jak opisane wyżej :). To miałem na myśli.
I Panowie, ja nie atakuje Javy jako Javy. Przekleństwem jest ten marketing powodujący spadek jakości programów w tym języku.