dotCSS & dotJS 2015

29.12.2015
It's been three weeks since the conference combo dotCSS and dotJS took place in Paris. Better late than never; here is our review.

Overall both conferences were delightful experiences with plenty of learning possibilities. Both venues were actual theaters which made the seating, view and acoustics first-class. Only legroom space was sparse, luckily the session timings were kept short enough to prevent stiff legs.

The session duration is what distinguished these conferences from many others: each talk lasted approximately 18 minutes. That made an even less interesting talk digestable, the next one being only a few minutes away. Despite— or arguably because of the condensed timings, most talks were information-packed. My note-keeping-skills were put under serious duress. To keep focus on the talk, the organisation decided not provide WiFi and ban notebooks everywhere except on the upper floors.

In between talks, MC Sylvain Zimmer kept us entertained with short games. In doing so, speakers as well as participants became acquainted with each other. Each conference started with introducing yourself to your seating neighbours. At other occasions, the geographic location of the participants was shown — or the main topic of interests were visualized. Most people coming from Europe yet not from France, so English was the primary language throughout the conference, including the breaks.

What happens in Paris doesn't stay in Paris: recordings of all talks are viewable as they become available. Additionally, sessions of past conferences are listed as well.



dotCSS

dotCSS was offered as a bundle with dotJS and much more technical than I thought it'd be. In context of my personal preferences, it was definitely worth to take the offer and enjoy the added experience. The only thing I would like to see changed is the weekend between dotCSS and dotJS. Having a two days holiday in Paris is definitely something to enjoy but not everyone might have the time for a weekend off.

Now straight to the talks, not in chronological order, but the three main themes.


CSS Features

There were three talks showing what can be done with CSS in the browser now or in the near future.

Tom Giannattasio showed us how he's pushing the limits of what's possible with CSS transformation. While some stuff looks awesome he also didn't hesitate to recommend not doing to much in CSS, as it might get quite complicated, especially with 3D effects.

Una Kravets predicted the death of photoshop, now that CSS is catching up - tongue-in-cheek. Blend modes and filters allow to create some previous hard to replicate effects directly in CSS. One example is her library of instagram filters, CSSgram, altough I'm not sure if static filters aren't better left outside the browser.

Rachel Andrew guided us through the existing flexbox features and what's coming up with CSS grid and the even more general CSS box alignment module. Afterwards we were more than ever craving for these modules to become available across browsers.


better css

The next block of talks were trying to help us become better CSS developers.

Daniel Eden had some numbers of CSS shame. Dropbox with its many developers has too many CSS rules in too many source files and even "fifty shades of grey", surely a common theme for most of us. To improve things Dropbox created a style guide and a SCSS component library and use CSS Stats or Parker to analyze the produced CSS.

Andrey Sitnik of PostCSS showed us some useful PostCSS plugins which let us focus on the important things in CSS, like autoprefixer. It's also quite easy to write modular CSS (without hand coding unique selectors) using plugins like postcss-modules. In addition, writing your own extensions for CSS should become easy with PostCSS.

In the only lighting talk of the conference, Ben Briggs presented another use of PostCSS: the language aware CSS minimizer cssnano.


CSS & Programmers

Chris Eppstein of SASS gave us a rant about why anyone doing CSS is in fact a programmer and how the denial of this blocked a couple of useful features in CSS - after all real programmers were all using DSSSL, right?

Daniel Glazman, ex co-chairman of the CSS working group, continued the ranting by pointing out how the language of CSS and the CSSOM haven't really improved since the 90ies. Many ideas got stuck or weren't the priority of browser vendors, preventing even features that were already agreed upon. In addition, he suggested CSS as solution to some of the complex standards created in the W3C like XSLT, as it's easier to understand and write.

Alan Stearns told us to contribute more - after all, he also just got sucked in the CSS community by other contributors, leading him to his current role as CSS co-chair - be it through discussing or help testing. Or even more by getting behind the magic of CSS with Houdini, which everyone seemed to be crazy about.



dotJS

Another day, another conference - or the big and older sister. dotJS had over 1000 attendees, but didn't felt packed, except at the food and drink bar.

Again the talks grouped by themes.


Future JS

The first group of talks gave us things to be excited about in the Javascript future.

Nicolas Bevacqua, better known as the Pony Foo guy, had a walk through the ES6/ES2015 features, so for me it was more a recap of what I already knew. He has a really nice overview of what's new on Pony Foo.

Christophe Porteneuve started his talk in the past that was callback hell, passed the nicer present with promises everywhere, and gave us a glimpse in a future of how that, combined with generators, will lead to async/await and much more comprehensible asynchronous Javascript code.

Andre Medeiros of RxJS had a story of auto-updating variables, like in spread sheets, having changes streamed across the code, which led to reactive programming. Reactive programming paradigms let data flow with array like filters, mappings and so on. While part of that is possible today with libraries it should become part of ES7/ES20xx offering an alternative for asynchronous programming.

Eric Schoffstall shared his story of trying to use WebRTC today in a real product. Following the mantra "if it only works in chrome it's a demo" had to use many different libraries to support mobile devices and all browsers. To help others he created a library including all the necessary plugins, polyfills, ...

Brendan Eich, the father of Javascript, had the last talk of the day, which unfortunately I had to leave midway, while he bashed about Douglas Crockford. I read he continued his talk with some WebAssembly stuff.


Projects & Demos

dotJS also had its fair share of javascript project.

Mathias Buus took his role as mad scientist to present hyperdrive, a "file sharing network based on rabin file chunking and append only feeds of data verified by merkle trees". Very interesting stuff and algorithms if you're into stuff like that. If not the demo of streaming a video file across browsers and being able to skip to any position is cool in itself.

Forbes Lindesay showed the new compiler pipeline of Jade 2, now being called Pug and how anyone can extend it for HTML templating.

Tim Caswell had his kid with him, programming a robot in a self created assembly language. I guess he was short on time, because there wasn't anything about Javascript.

In the lightning talks we also had a couple of project presented. Johannes Fiala had Swagger generating API codeEntienne Margraff showed how remote browser debugging is made possible with Vorlon.js, and Nicolas Grenie had AWS lambda as a microservice platform.


How To

The last group of talks is about how to make stuff better on the web.

Samuel Saccone started with a bug report he got, about a webpage that "gets slow after using for 10 days". Surley not an easy thing to test he went on a hunt for leaks. His walkthrough is best seen in the upcoming video, but beside using browser dev tools he also created Drool to automate leak testing.

Rebecca Murphey talked about her progress in using HTTP2 today. One of the biggest problems is the current state of server push configuration, which isn't really supported by any common web server yet. But we also learned that all of the browser are currently not showing pushes in the network timelines correctly, so she created chrome-http2-log-parser. More about HTTP2 can be found on her blog.

Henrik Joreteg - last but not least: my highlight of dotJS. While programmers have many Javascript frameworks to choose from none of them is small enough for really performant webapps across mobile devices. His solution: talking the best of ReactJS, virtual dom and JSX, and replace it with small npm modules. The result is feather-app, doing everything that's possible during the build process and less than 10kB of Javascript left for the browser to download, while being easy to use for developers and even supporting HTML pre-rendering.