Jako programiści w ogólności jesteśmy niedouczeni ;-)
Latami można pisać w Java'ie nie wiedząc dlaczego to:
public class A {
public static void a(String str) { System.out.println("String"); }
public static void a(Object str) { System.out.println("Object"); }
public static void main(String[] args) {
a(null);
}
się skompiluje i wypisze String, a to:
public class A {
public static void a(String str) { System.out.println("String"); }
public static void a(Integer str) { System.out.println("Integer"); }
public static void main(String[] args) {
a(null);
}
się nie skompiluje bez rzutowania null na String lub Integer.
Większość programów można stworzyć w Java'ie czy dowolnym innym języku obiektowym nie mając pojęcia co to jest polimorfizm i o co w nim chodzi ;-)
Wbrew pozorom to niedouczenie nie jest do końca takie złe. Zwykle z niewiedzy biorą się eksperymenty, a z eksperymentów powstaje prawdziwa wiedza i często nowe pomysły :-)
Jednak czasem to denerwuje ;-)
Choć chyba mniej niż ortodoksja. Hasła w stylu "instanceof jest zły", albo "wszystko musi być obiektem" brzmią świetnie w trakcie dyskusji, ale w praktyce bywa różnie ;-) Nie znoszę sterownia przepływem przy pomocy wyjątków, ale sam w kodzie OOo2GD mam kawałki jak ten:
private boolean storeToDisk() {
// OK, here we will have small sample of wrong behavior, this means exception driven control flow... but it's easier ;p
boolean result = true;
XStorable storable = (XStorable) UnoRuntime.queryInterface(
XStorable.class, m_xFrame.getController().getModel()) ;
try {
storable.store();
} catch (IOException ioe) {
result = false;
}
return result;
}
a to i tak delikatny przykład, który się nie liczy ;-)
Ale w ogólności i masie jesteśmy niedouczeni... awangarda nowoczesnej technologii, z tym, że zamiast szczegółów zna ogólne mechanizmy ;-) trochę to przerażające ;-)
Ciekawe jest to, że w trakcie rekrutacji często wymagana jest znajomość pewnych specjalizowanych technologii i często przyjmuje się kogoś bo dużo umie, po czym zapada decyzja, że ten ktoś ma tworzyć oprogramowanie w języku którego nie zna ;-)
Często dlatego wybrano taki język bo "na etapie projektowania" zdecydowano, że to będzie najlepsza opcja.... co oznacza zwykle - bo mamy przykłady ;-)
W tym miejscu inne jest Google, które podobno bardziej ceni umiejętność nauki niż samą wiedzę.... choć z drugiej strony dobrze wtedy mieć rachunek prawdopodobieństwa w małym palcu, tak jak i być świetnym z algorytmiki ;-)
Banda niedouczonych kombinatorów z nas po prostu jest ;-)
Dlatego warto zdobywać certyfikaty, chociaż mamy papier, że byliśmy w stanie na czas egzaminu opanować rozsądne podstawy ;-)
Podobne postybeta
Sztuczki tropiciela błędów, part 4
Seks w ujęciu informatycznym ;-) - rozmnażanie ;-)
Java 8 nadchodzi....
clone() i Cloneable się mszczą ;-)
Javozagadka ;-)
Brak komentarzy:
Prześlij komentarz