<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:plblog.danieljanus.pl,2019:category:scala</id>
  <title>Daniel Janus – Scala</title>
  <link href="http://plblog.danieljanus.pl/category/scala/"/>
  <updated>2011-04-19T00:00:00Z</updated>
  <author>
    <name>Daniel Janus</name>
    <uri>http://danieljanus.pl</uri>
    <email>dj@danieljanus.pl</email>
  </author>
  <entry>
    <id>tag:plblog.danieljanus.pl,2011-04-19:post:wrazenia-z-j4p-2011</id>
    <title>Wrażenia z java4people 2011</title>
    <link href="http://plblog.danieljanus.pl/wrazenia-z-j4p-2011/"/>
    <updated>2011-04-19T00:00:00Z</updated>
    <content type="html">&lt;div&gt;&lt;p&gt;Jest niedzielny poranek, siedzę w pociągu relacji Szczecin–Warszawa i właśnie wyciągnąłem laptopa, aby spisać wrażenia z trzeciej edycji konferencji &lt;a href="http://java4people.com"&gt;java4people&lt;/a&gt;, która odbyła się wczoraj w Szczecinie, póki jeszcze nie okrzepły i nie rozmyły się.&lt;/p&gt;&lt;p&gt;Zanim opowiem o poszczególnych wystąpieniach, winienem oddać zasłużone gratulacje organizatorom, czyli szczecińskiemu JUG-owi. Przestronne, nowoczesne aule Zachodniopomorskiego Uniwersytetu Technologicznego, dostępne przez cały czas ciastka i herbata, obiad (załapałem się na dokładkę!), after-party, a nade wszystko ciekawe prezentacje i rozmowy kuluarowe – wszystko to stwarzało znakomitą atmosferę sprzyjającą temu, aby posłuchać o nowych językach i technologiach wokół Javy i JVM oraz „dzielić się wiedzą i pasją”, jak głosi motto konferencji. Wielkie brawa!&lt;/p&gt;&lt;p&gt;Jedyny niedosyt polegał na tym, że prezentacje poprowadzone były w dwóch równoległych blokach, a do tego w trzecim bloku trwały warsztaty z SWT/JFace. Momentami bardzo doskwierał mi brak możliwości bilokacji, ale trudno winić o to organizatorów.&lt;/p&gt;&lt;p&gt;Oficjalnego otwarcia dokonał prof. Antoni Wiliński, dziekan Wydziału Informatyki ZUT, życząc uczestnikom owocnej wymiany doświadczeń. Następnie część ludzi udała się posłuchać wystąpienia Tomka Kopacza o .NET i Javie, ja zaś zadebiutowałem w roli prelegenta na imprezie tego formatu, opowiadając o Clojure.&lt;/p&gt;&lt;p&gt;Trudno mi wypowiadać się o własnej prezentacji – nie jestem dobrym mówcą i to &lt;a href="http://pacykarz.blogspot.com/2011/04/jawnosc-dla-ludu-s03e02-reminesencje.html"&gt;było&lt;/a&gt; &lt;a href="http://blog.kedziorski.pl/2011/04/18/java4people/"&gt;widać&lt;/a&gt;.  Jak się jednak okazało z rozmów ze słuchaczami, udało się zainteresować część osób tematem. Sukces jest więc połowiczny, a postaram się, aby następnym razem było lepiej. Slajdy można znaleźć &lt;a href="http://danieljanus.pl/slides/j4p/"&gt;tu&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Potem wybrałem się na wystąpienie Przemka Pokrywki o Scali. Scala bywa wymieniana jednym tchem z Clojure, gdy mowa o nowych językach funkcyjnych działających na JVM, więc byłem bardzo ciekaw tego wykładu. I nie zawiodłem się: z Przemka wprost emanowała pasja, znać było też dużą wiedzę i doświadczenie w temacie. Przemek ciekawie pokazał, w jaki sposób Scala łączy paradygmat funkcyjny z obiektowym -- w tym drugim zakresie przypomina mi Smalltalka: tu też wszystko jest obiektem i &lt;code&gt;2 + 3&lt;/code&gt; oznacza zawołanie na obiekcie &lt;code&gt;2&lt;/code&gt; metody &lt;code&gt;+&lt;/code&gt; z parametrem &lt;code&gt;3&lt;/code&gt;.  Fajnym mechanizmem wydaje się też możliwość definiowania własnych niejawnych konwersji – to sposób na wzbogacanie już istniejących klas o nowe funkcjonalności, ale bez zmiany tych klas; przypomina to trochę Clojurowe protokoły i &lt;code&gt;extend-type&lt;/code&gt;. Dopisuję do listy rzeczy do wypróbowania.&lt;/p&gt;&lt;p&gt;Po obiedzie, zachęcony tytułem, wybrałem się na prezentację „Skalowalność technologii Javowych w zastosowaniach komercyjnych” Dawida Gruszczyńskiego. Organizatorzy konferencji na samym początku rozdali ankiety, w których prosili o ocenienie każdego wystąpienia w skali od 1 (szkoda czasu) do 5 (naprawdę warto) – po tej prezentacji dały się słyszeć rozmowy, że należałoby dać jej 0 albo i -1. Ja jestem łagodniejszy w swych ocenach. Bezsprzecznie prezentacja była źle zatytułowana: tytuł obiecywał opowieść o technikach czy narzędziach projektowania skalowalnych aplikacji; tymczasem okazało się to klasycznym &lt;em&gt;success story&lt;/em&gt; dotyczącym systemu obsługi spisu powszechnego, w tym oprogramowania działającego na terminalach używanych przez rachmistrzów.&lt;/p&gt;&lt;p&gt;Czy ta prezentacja była nie na miejscu na takiej konferencji? Może i tak. Mam jednak słabość do &lt;em&gt;success stories&lt;/em&gt; i duży szacunek do ludzi, którym udaje się stworzyć działające, niezawodne oprogramowanie, nawet jeśli nie zgadzam się z wyborem technologii. To naprawdę spora rzecz. A samej prelekcji trzeba oddać, że była sprawnie przeprowadzona, slajdy zrozumiałe, a diagramy prezentujące architekturę systemu – czytelne. Wątpliwości słuchaczy budziła kwestia bezpieczeństwa transmisji danych (i samych rachmistrzów!) Ciekawostka: terminale rachmistrzowskie mają zmienne IP, ale nie powiadamiają serwera co chwila o swoim aktualnym adresie, bo wywoływałoby to zanadto duże obciążenie. Co więc robi terminal, gdy zmieni mu się adres? Otóż... wysyła SMS (!) ze swoim aktualnym adresem!&lt;/p&gt;&lt;p&gt;Na wystąpieniu Sebastiana Pietrowskiego o Jythonie (a także samym Pythonie i Django) nie dowiedziałem się wiele nowego, z racji wcześniejszych swoich doświadczeń z Pythonem. Ale też celem tej prezentacji było chyba nie tyle przekazanie wiedzy, co podzielenie się własnymi doświadczeniami, z subiektywnego punktu widzenia – i to udało się Sebastianowi znakomicie. Stąd slajdy zatytułowane „What I Like”, „What I Don’t Like”, „What I’d Use Python For” – bardzo pragmatyczne. Sebastian opowiadał między innymi o tym, że Jythona można fajnie wykorzystać jako narzędzie do eksploracji nowych API z REPL-a: używając pythonowej introspekcji można łatwo obejrzeć listę pól i metod udostępnianych przez dowolną klasę. W swoim wystąpieniu o tym nie opowiadałem, ale w pakiecie repl-utils w Clojure Contrib jest funkcja &lt;code&gt;show&lt;/code&gt;, która daje bardzo podobny efekt.&lt;/p&gt;&lt;p&gt;Słuchając wystąpienia Bartka Kuczyńskiego o Vaadinie utwierdziłem się w przekonaniu, że nie chcę pisać aplikacji webowych tak jak okienkowe, na modłę swingową.  Vaadin ma w zamierzeniu służyć właśnie do tego: to nadbudowany nad GWT modularny framework WWW.  Bartek pokazywał dziejącą się pod spodem magię, wraz z protokołem, którym część kliencka kompilowana do JS komunikuje się z serwerową (UIDL – dobrze pamiętam? – i JSON z danymi do wyświetlenia, poprzedzonymi ni mniej ni więcej tylko pętlą nieskończoną &lt;code&gt;for(;;);&lt;/code&gt;, co podobno ma jakiś sens). Psikus w tym, że ostatnio w &lt;a href="http://smyrna.danieljanus.pl"&gt;Smyrnie&lt;/a&gt; zrobiłem dokładnie odwrotną rzecz, to znaczy napisałem aplikację &lt;em&gt;desktopową&lt;/em&gt; tak jakbym pisał webową, a więc używając ajaksowego XML-RPC (odsyłam do niedawnego &lt;a href="http://plblog.danieljanus.pl/smyrna"&gt;postu na ten temat&lt;/a&gt;), i wyszło na oko prościej niż w Vaadinie. Może opowiem o tym na Warszawa JUG?&lt;/p&gt;&lt;p&gt;Nie zdążyłem się obejrzeć, a to już koniec konferencji! Do dotychczasowych bonusów dołączył kolejny: wśród wypełniających ankiety organizatorzy rozlosowali pięć książek. Los wytypował mnie jeszcze raz i schowałem do plecaka „Domain-Specific Languages” Martina Fowlera.&lt;/p&gt;&lt;p&gt;Pokonferencyjne after-parties bywają bodaj ważniejszymi nawet elementami takich spotkań niż same prezentacje. To tam toczy się najwięcej rozmów, to tam zawiązują się nowe znajomości i trwają nieskrępowane, długie dyskusje. Tak bywa z pizzą na &lt;a href="http://aulapolska.pl"&gt;Auli&lt;/a&gt;, tak było i teraz. Wielkie dzięki raz jeszcze organizatorom, wszystkim, których poznałem, z którymi udało mi się porozmawiać, i tym, którzy przebrnęli przez moje wystąpienie.  Do zobaczenia przy innej okazji!&lt;/p&gt;&lt;/div&gt;</content>
  </entry>
</feed>
