02 marca 2008

Spotkanie z Jamesem Goslingiem na The Feel Of Java Revisited


Ale numer z tym miejscem, gdzie odbywało się spotkanie The Feel Of Java Revisited by James Gosling z James Goslingiem w ramach SVJUG. Kiedy podałem ulicę do NeverLost (system GPS) i skręciłem w Montague Expy, już widziałem, że jedziemy do miejsca, które odwiedzamy prawie codziennie, gdzie zazwyczaj jemy lunch. Kilkakrotnie widząc logo Suna przy ulicy, rozmawialiśmy o nich, a tu proszę niedaleko spotkanie z Jamesem. Przy wejściu rejestracja, jednakże zwykła formalność i mimo wcześniejszego obowiązku wpisywania się na listę uczestników weszliśmy wspólnie z jeszcze jedną osobą.


Pojawiliśmy się w samą porę. Chwila prezentacji liderów JUGów i czas Jamesa rozpoczął się. Jak widać na zdjęciu, pierwsze pytanie o miejsce działalności najprężniejszej grupy JUG w środkowej Europie i...lekkie zmieszanie. Żartuję ;-)


James rozpoczął przedstawianie historii Javy od swoich perypetii z różnymi językami programowania i należy oddać pokłon jego zacięciu i wytrwałości - naliczyłem ich bodajże ponad 10 (!) Chwila zastanowienia i u siebie nie mogłem doliczyć nawet 5. Tutaj następuje moja przemiana i pojawia się pomysł nauki kolejnych, które i tak są od dawien dawna na tapecie - Scala i Haskell (pojawiły się jeszcze inne, ale już nie pamiętam).


Bardzo ciekawie przedstawił historię swoją, pobódki powstania Javy i co miało wpływ na jej ostateczny kształt. Po około 45 minutach, rozpoczęła się sesja pytań i odpowiedzi. Padło kilka pytań o konstrukcje w stylu domknęcia (ang. closures), JavaFX, Groovy, języki skryptowe w ogólności, czy co nowego i dobrego w Java 7. Kiedy jednak James przyznał, że tak na prawdę nie interesuje go rozwój API Javy, a jedynie możliwości wirtualnej maszyny i sposoby, w jakie możnaby ją dopracować odczułem, że James widzi Javę z innej perspektywy - od strony naukowca-inżyniera. Dla niego Java to JVM, reszta to wyłącznie API, które korzysta z tych fundamentów. Miałem jednak wrażenie, że uczestnicy oczekiwali jednak praktycznego spojrzenia na kwestię rozwoju Javy. Jedną rzeczą, które w tym momencie jestem zobowiązany przytoczyć z wypowiedzi Jamesa, to fakt, że cokolwiek nie stworzył, przyznał, że zawsze zaskakiwały go pomysły użytkowników, którzy rozciągali jego twór w każdą możliwą stronę, do granic możliwości. Dobra uwaga: Tworzysz system? Miej świadomość, że najprawdopodobniej będą użytkownicy, którzy przekroczą Twoje wyobrażenie możliwości Twojego własnego produktu. Ja będę o tym pamiętał. JVM jako produkt był więc prawdopodobnie w zainteresowaniu wyłącznie jednego człowieka podczas konferencji - jego samego. Po raz pierwszy uzmysłowiłem sobie rolę Jamesa w życiu Javy - stworzył JVM, jednakże API, było produktem innych osób, bardziej rozeznanych w danej dziedzinie. Jego interesuje wnętrze Javy - JVM. Do tej pory pamiętam lekkie "zamieszanie" jakie wywołał stwierdzeniem, że on rozwój Javy to don't care. I jeszcze te pytania o zabawki w stylu JavaFX, czy domknięcia, czy podobne - kiedy spojrzeć na Javę od strony wirtualnej maszyny, to całe to API schodzi na plan drugi. Dobrze, że nikt nie zapytał o Java EE 6.

Wyszliśmy przed czasem, bo nie ukrywam, że trochę znużyły mnie te pytania o Java 7 i podobnie, podczas, gdy James wyraźnie wskazał, że nie jest to jego obszar zainteresowania. To sprowokowało mnie i znajomych do dyskusji o roli Jamesa w rozwój Javy i w ogóle jego pozycji w Sunie i płynących z tego obowiązkach. Zastanawiałem się, czy James mógłby teraz wymyśleć "inną" Javę, czy podobnie, coś co mogłoby przesłonić ją, przyćmić jej blask. Dla mnie jest to nie dopomyślenia. Tyle zainwestowano w Javę, a teraz mianoby promować coś odmiennego. Nie! Jeśli coś innego, to na pewno nie odmiennego, a co najmniej bardzo, bardzo zbliżonego. James, jak Linus, już do końca swoich dni będą więźniami swoich wspaniałych produktów. Szkoda, bo możnaby oczekiwać jeszcze ciekawszych pomysłów ich autorstwa, a tak pozostaniemy z tym, co mamy.

I na koniec niespodzianka. Wracając do apartamentu, zapomniałem kompletnie, że zostawiliśmy laptopy w biurze, aby nie trzymać ich w samochodzie (przy okazji, zauważyłem, że na spotkaniu pojawił się ktoś, kto zostawił swój na tylnim siedzeniu i zaparkował samochód pod lampą! Chyba, żeby było lepiej widać laptopa?!). Powrót do biura - 15 minut wyjęte. Podjeżdżamy do biura, a tam zamknięte drzwi. Telefon do Emergency Center i dowiadujemy się, że niestety, ale jedynie uprawnieni, tj. z ważnymi przepustkami wchodzą. Nasze są nieaktywne na tego typu wejścia, więc komputerów nie będzie. Czwartkowy wieczór spędziłem bez komputera. Jakby na odwyku, ale wciąż żyję i znowu sobie (nad)używam.

Po spotkaniu z Jamesem uzmysłowiłem sobie, że warto uczestniczyć w spotkaniach-dyskusjach dotyczących genezy tego czy innego produktu. Można zrozumieć swoje dreptanie w miejscu. Warto byłoby zaprosić Jamesa do Polski. Chwila refleksji na temat historii Javy i w ogóle życiu człowieka, który stworzył również Emacsa mogłaby niejednego sprowadzić do pionu i przypomnieć, że nie wciąż tylko Java, Spring, Hibernate, ale od czasu do czasu i coś odmiennego w życiu inżyniera pozwala na poszerzenie horyzontów. Warto zajrzeć do innych języków czy mniej popularnych szkieletów programistycznych, bo często to co ciekawe nie musi być jednocześnie popularne. Wywnioskowałem z prezentacji Jamesa, że rzeczy ciekawe wiążą się z pewnym wysiłkiem umysłowym i ciągłe poleganie na popularnych rozwiązaniach może zubożyć nasz warsztat, a to z pewnością jest ostatnia z rzeczy jakich ktokolwiek sobie życzy.