FullstackFest 2016

Note

This article was originally posted on servicedenuages.fr

I had the chance to go the Fullstack Fest 2016 and really enjoyed it — thanks Mozilla!

This blog post is an attempt to give you a summary and some feedback of what happened during this 4+1 days conference!

Huge applause!

The Codegram team did really really well! They raised the bar for tech conferences; all the feedback I heard was extremely positive! Plus, Barcelona is a pleasant destination :)

Former RubyCon and FutureJS events were merged into one fullstack event, 2 days of backend talks, 1 gap day with social activites, and 2 days of frontend talks.

Problems of Today, ideas from the future. — FullstackFest motto

I must congratulate the organizers for the choice of speakers and topics. It's a huge challenge to captivate 500 persons during 5 days, and they did really well! And also a big up for the impressive performance of the captioners!

CC-BY @fullstackfest

One sentence summaries

The videos are already online! In order to help you choose which one to watch, here is the shortest summary I could come up with for each talk, videos are linked on authors names:

CC-BY @fullstackfest

Some thoughts

The challenges of Web content durability and decentralization are very concerning. The Web of today has too many points of failure, Web engineers are responsible for making it better. For example, 500 attendees cannot collaborate on a document without going through servers outside the room! My great-great-grandchildren might not be able to find a picture of me on the Web! But read this page and you'll realize this is not only about the future!

You are cyberwizards! — Juan Benet

Both frontend and backend talks seem to agree on the fact that REST has strong limitations for high latency connections like on the mobile Web. GraphQL and Falcor are good candidates today, and can be complementary to our usual REST/CRUD endpoints.

Google and Microsoft are following Amazon and its Lambda to provide a platform of nanoservices for which you don't pay when idle, and that scale on trafic peaks. A whole app can be decomposed into functions and designed using internal events. Orchestration of those tiny pieces of code is another story (for a CRUD endpoint, each verb is bound to a function), but Serverless wants to tackle that.

CC-BY @fullstackfest

Functional programming is in the air. Pure (stateless) functions scale because they can be executed anywere without context. Without side effects, it also becomes obvious to test them. They give backend developers some good pattern for highly available services, and provide the necessary constraints for immutability to frontend developers. I believe that if functional programming is not adopted as much as it could, it is not because of the paradigm and concepts, but because of the disconcerting syntax!

There is no architecture nirvana! — Lee Byron

Angular/TypeScript was almost absent from the conference, but we could see a trend around type inference/checking. It really improves developer experience and reduces runtime errors in the end. With projects like Elm, developers feel safe while coding: the compiler is smart and polite, refactoring is fun! The concept of null is replaced with a notion of maybe <type> which makes apps robust.

Everybody seemed to agree that JavaScript transpilation will last for a long time. The language will evolve, and we shouldn't hope for feature freeze. Plus, it really helps developers focus on modern stacks, leveraging modern features like cancelable promises. And nowadays it is rather easy to build your app for legacy versions of JavaScript like ES5. But hey, it is a bit absurd that modern browsers have to download big bundles of code full of polyfills! It would be a lot nicer if they were delivered to legacy browsers only — <!--[if IE 10]> oh yeah :) — or even better: shipped as something like a browser addon :)

The old times where we could inspect the source code of a page ­— and learn from it — is far! It is sad, but we may have to accept it because WebAssembly goes a lot further and ships code that looks closely to assembler! It's far from the Web we know, but it's still the open Web! Note that it is very different from what we saw in the past with plugins like Java applets, now a WebAssembly function can be called from a usual JS script!

The physical Web is awesome and I'm really excited about this revolution, especially how it could bring a peer-to-peer local Web, using Web bluetooth for example. Scott told me that the Mozilla approach with FlyWeb is slightly different because it goes through Wifi, but both teams in contact. The physical Web is an open project, and Google is pushing it strongly. I'm bothered by the URL redirections strategy though because it puts the redirection intermediary in a very strong position. I believe that Google wants to be that intermediary.

Personal feedback

I never attended a conference that was so close to my flat! 3min walking! It was kind of weird to meet so many prestigious IT talents in my neighbourhood! ...and so many floppy disks :)

CC-BY @fullstackfest

The venue was great, and very well setup for the show (see the introductory video clip!). The coffee was not so good though.

I really enjoyed the fact that there was only one track. I never had to divide myself between two interesting talks, and could just sit and enjoy :)

Almost every topic resonated with the challenges we face at work. We are one of the few teams at Mozilla that do both backend and frontend, and that's awesome to feel in the same boat as the whole room of attendees. For example, we implemented something on Amazon lambda recently, we are well aware of the frontend architecture challenges through our Kinto-admin, Ethan has a functional programming background in Haskell, and Nico and Mathieu are playing with Elm. That's why I strongly regretted that my teammates were not with me!

Also, I had the opportunity to meet Luca and Anthony from the Kuzzle team! We had a lot of fun together and our conversations about generic reusable backends were super insightful — see my post on kinto ML.

Last, but not least, I would like to thank Pusher.com for organizing a hack contest using their API! They had a physical button in their booth, and I made a kind-of video booth that records the webcam when the button is pressed. I could not have won this BB8 droid without Soledad's insights on MozillaHacks, and I thank her again :)

Me holding the prize proudly!