Na początku grudnia w Londynie po raz pierwszy odbyła się konferencja NDC. Kilka(naście?) dni temu na vimeo pojawiły się nagrania niektórych sesji z tego właśnie eventu (NDC London 2013 channel). We wrześniu opisałem z kolei swoje wrażenia z oglądania norweskiej edycji konferencji, a teraz pora na londyńską siostrzyczkę. Nagrań nie ma zbyt wiele i co prawda nie obejrzałem wszystkich, ale być może komuś się przyda do uzupełnienia listy “to watch” (albo “not to watch” :) ).
Jeszcze bajdełej: trochę wcześniej pojawiły się video z Oredev 2013, ale szczerze mówiąc żadnego z nich z czystym sumieniem polecić nie mogę, więc lepiej jest skupić się na porządnym mięchu z NDC.
I jeszcze Bajdełej No. 2: wiem, że Paweł podobnego posta puścił wczoraj, ale z tym zamiarem nosiłem się od tygodnia więc publikuję i tak.
NDC Cage Match: Testing! NodeJS vs. C# and .NET with Rob Ashton and Jeremy Miller
(http://vimeo.com/84677180)
To nagranie obejrzałem głównie ze względu na udział Roba Ashtona – bo uwielbiam tego kolesia (szczególnie po DevDay 2013). Wraz z Jeremym Millerem, jednym z twórców Fubu, spierają się o to, czy wygodniej jest testować kod w .NET czy NodeJS.
Mogłoby się wydawać, że wynik jest przesądzony już w momencie gdy Rob odpalił Vima a Jeremy czekał aż mu się załaduje VS. Pozamiatane? Niekoniecznie! Sam goły .NET, okrojony wyłącznie do narzędzi i bibliotek urodzonych w Microsofcie, prawdopodobnie nie miałby szans. Ale tutaj pojawia się niespodzianka. Jeremy używa Rake do buildów, a nie MSBuilda. Używa nUnit a nie MSTest (a zamierzają wkrótce przejść na dość interesujące Fixie). Używa Fubu a nie ASP.NET (jakżeby inaczej). I to wszystko prezentuje się bardzo porządnie. Więcej: widać, że sam Rob jest zaskoczony, że tak “się da”. W końcu swoje lata jako programista .NET spędził w “enterprise” (chociaż dziwne, że pracując u Ayende nie poznał alternatyw).
Ze strony Roba możemy usłyszeć zabawne teksty i podziwiać jego, jak zwykle, “cocky attitude”. Zbyt wiele nauczyć się niestety nie da, a jego brak wiedzy o ciekawych rozwiązaniach w .NET jest lekko drażniący. Mimo wszystko warto obejrzeć. Just for fun.
Ocena: 4/6
NDC Cage Match: Dynamic vs. Static with Gary Bernhardt and Jon Skeet
(http://vimeo.com/84674370)
Bardzo ciekawa pod względem merytorycznym sesja. Czy C# może konkurować z Ruby pod względem “dynamiczności”? Po raz kolejny zaskoczenie: tak!
A kto lepiej niż Jon Skeet to zademonstruje? Nikt, dlatego dobrze że właśnie jego oglądamy po stronie C#.
Każdy kto zębów nie zjadł na zgłębianiu tajników słówka kluczowego “dynamic” znajdzie tutaj coś nowego.
Ciekawie zapowiadało się mini-demo ze ScriptCS, ale niestety REPL się wywalił i nie dało się nic pokazać.
To video miało u mnie dwa skutki. Po pierwsze: zacząłem na co dzień używać Ruby do codziennych mikro-zadań, żeby w końcu go jako-tako opanować. A po drugie: dało mi do myślenia to, że jeszcze parę lat temu .NET i C# dostałyby w kość w jakimkolwiek porównaniu (no chyba że z Javą). A teraz… bardzo szybko “druga strona” zmienia swój lekceważący stosunek do “tej korporacyjnej platformy od potwora z Redmond”. Może i powoli (chociaż to pewnie zależy od punktu siedzenia), ale .NET naprawdę rozwija się w dobrym kierunku. Co cieszy. Jasnowidz ze mnie jak z koziej dupy rakietnica, ale kto wie… może kiedyś to do naszego podwórka będą przypływać programiści zmęczeni innymi platformami? I kto wie, może nie będzie to wzbudzało śmiechu i zdziwienia? Pewnie nie, ale kto wie…?
Ocena: 4/6
The Future of C# (Mads Torgersen)
(http://vimeo.com/84677184)
Roslyn – ktoś jeszcze o tym nie słyszał? Jeśli nie to niechaj wyciągnie łeb z jamy i czym prędzej nadrabia zaległości. Najlepiej – oglądając tą właśnie prezentację. Bo wymiata.
Staje na scenie koleś odpowiedzialny za sporą część C# jaką znamy dziś. I mówi (parafrazując): “wiemy, że po C# 5 można było spodziewać się czegoś więcej niż tylko async i mogliście odnieść wrażenie, że się obijamy, ale po prostu prawie wszyscy pracowaliśmy nad czymś innym”. A potem pokazuje co coś innego. Czyli Roslyn właśnie.
Kolejne Visual Studio (może nie już następna wersja, ale któraś w przyszłości) będzie współpracowało z całkowicie nowymi, napisanymi od zera, kompilatorami C# i VB. Nowymi, ale w pełni kompatybilnymi z tym co mamy dzisiaj. I co najważniejsze: wystawiającymi API! Wyobrażacie sobie coś takiego, zarządzane API do kompilatora? Może wreszcie Resharper przestanie być takim zamulakiem jeśli JetBrains zdecyduje się na wykorzystanie Roslyn zamiast analizować kod “obok”? A może nie będzie potrzeby używania R#, bo pisanie podobnych narzędzi stanie się tak banalne, że po prostu sami je sobie naklepiemy albo pojawi się milion pluginów open source? Demo mogliśmy zresztą zobaczyć na scenie: zintegrowany z Visualem “fix” pokazujący “ta zmienna może być zmieniona na stałą” i modyfikujący kod zajmuje raptem kilkanaście/kilkadziesiąt linijek!
Dodatkowo zobaczyliśmy co “może ale nie musi” pojawić się w kolejnej wersji C#. Tym razem nie będzie jednego wielkiego nowego ficzera, czym to charakteryzowały się wszystkie poprzednie odsłony języka (generic, linq, dynamic, async). Zamiast tego dostaniemy całą masę uproszczeń i skrótów składni, które potencjalnie bardzo uprzyjemnią naszą codzienną pracę i skrócą pisany kod. Opisywać szczegółów tutaj nie będę, kto chce niech sobie obejrzy nagranie. Albo przeczyta ten post: http://damieng.com/blog/2013/12/09/probable-c-6-0-features-illustrated . Wszystko to jest bardzo, ale to naprawdę bardzo, interesujące. Nie mogę się doczekać.
Ocena: 5/6
Introduction to Windows Azure Part I (Scott Guthrie)
(http://vimeo.com/84674372)
O Azure wiele czytałem, jeszcze więcej oglądałem, ale w praktyce się nim nie bawiłem. Jakoś tak wyszło. Często korzystam jednak z okazji, aby zobaczyć w jakiejś prezentacji – szczególnie jeśli prowadzi ją Scott Gu – co tam się zmienia.
To wystąpienie (będące jednym z czterech tego samego ziomka, wszystkie o tematyce Azure) jest wstępem mający pokazać “co można osiąganąć z Azurem”. Jak się okazuje, można wiele.
Myślałem, że niczego nowego się tutaj nie dowiem, a jednak! W skrócie, Scott pokazał jak: postawić wirtualkę, skonfigurować load balancing, postawić sieć wirtualną, podłączyć się do niej VPNem, w lokalnym Visualu debuggować aplikację desktopową uruchomioną w chmurze i zrobić sobie bazę. Oraz jak to wszystko wykonać skryptami, bez klikania po portalu Azure.
A co najważniejsze: uświadomił mi, że jako posiadacz MSDNa od lat dostaję od MSu coś koło 100$ miesięcznie do wykorzystania w dowolny sposób w Azure właśnie. Na pewno w jakimś mailu dostałem o tym info, ale zwykle wszystko z “microsoft mvp” w tytule od razu kasuję. I mi się to, kurde, marnowało. Może trzeba zacząć te maile czytać?:)
Tak czy siak teraz, jak zdaję sobie już z tego sprawę, nie mam wymówek. Chmuro, nadchodzę!
Ocena: 5/6
The Reasonable Expectations of your new CTO (Uncle Bob Martin)
(http://vimeo.com/84676528)
Uncle Bob ma to do siebie, że albo mnie wystąpieniem zachwyca (tak jest zazwyczaj), albo całkowicie odstręcza (tak jest rzadko). Tym razem było wyjątkowo, bo prezentacja jest… ni mniej ni więcej, tylko “całkiem spoko”.
Dość interesujące rozważania na temat naszej odpowiedzialności, jako programistów, za losy społeczeństwa (żeby nie powiedzieć “cywilizacji”) zostały poparte paroma przykładami wypadków/katastrof, z życia wziętych, gdzie winą było źle napisane oprogramowanie. Za tym szło stwierdzenie: niedługo, i to “sooner rather than later”, jakiś błąd w jakimś kodzie spowoduje prawdziwą tragedię, w której zginą tysiące ludzi. I zacznie się nagonka.
Jak do tego nie dopuścić? Uncle Bob wciela się w rolę CTO stawiającego wymagania przed swoim zespołem. A to “we will not ship crap”, a to “we will always be ready” i tym podobne, chciałoby się powiedzieć, banały. Banały banałami, ale ich uzasadnienia słuchało się bardzo przyjemnie. Nic odkrywczego, ale jednak może dać do myślenia.
Ocena: 4/6
Inne
Jak widać, jestem z opisanych prezentacji bardzo zadowolony. W planie mam obejrzenie jeszcze następujących pozycji:
- wszystko o Azure (http://vimeo.com/84674371, http://vimeo.com/84676531, http://vimeo.com/84676530) – bo zapowiadają się bardzo, bardzo dobrze
- wszystko o SignalR (http://vimeo.com/84677242, http://vimeo.com/m/84677185) – bo David i Damian dali takiego czadu w Oslo, że i tym razem musi być super
Zapowiada się ciekawie, ale mnie chyba bardziej interesuje Python niż Ruby. Odnoszę wrażenie, że programiści Rubiego, pracują tylko w Web Developingu.
Bajdełej: Będę oglądać!
NodeJS vs. C#: a ja odniosłem wrażenie, że Rob to wszystko wie. Tyle, że przeciwnik się dobrze przygotował i przewidział zarzuty. Problem w tym, że dla .NET to nie jest utarta ścieżka. Poza tym, jak znam życie, to ładnie wyglądało na pokazie, ale gdzieś tam w którymś punkcie trzeba jakieś XMLe rzeźbić. Tymczasem Rob poszedł prawie na żywioł, ale… produkcyjne aplikacje w JS wcale nie potrzebują aż tak dużo więcej setupu.