otsukare Thoughts after a day of work

JSConf JP 2019 - Tokyo, Japan

I do not step often in JavaScript conference. The language is not my cup of tea. I go through minified, obfuscated broken code every day for webcompat work. JavaScript switched from language that "makes Web page inaccessible and non performant" to "waste of energy, cpu, and nightmare to debug".

But this last week-end, I decided to participate to JSConf JP 2019 and I had a good time. I met cool and passionate people. I also felt old. You will understand later why.

JSConf JP - Day 1 and Facility

The conference was organized at 3331 ARTS CYD. It was previously a junior high school. It is now a space for artists and galleries. On the roof, there is an organic garden. Before the conference starts, I have seen an exhibition presented by Kyoto Design Lab about a Kyoto shrine: Recombinant Imamiya. One part of the exhibition was the reconstruction of a full VR model of the shrine and a walk through this VR model. It was quite astonishing, specifically the part where they removed the people who were in the scene at the time of the capture. They were here and there digital ghosts of existences who still carry on with their life (or not) in the physical world.

The main room for the conference was the gymnasium. It was slightly fresh for the rest of the two days. I had to keep my jacket.

The State of JavaScript

This was a preview of 2019 JavaScript survey probably seen from the angle of JavaScript developers themselves. It's always a bit the issue with these surveys, they self select the audience replying to them. You may want to take the 2019 survey. And it would probably be good to increase the diversity.

Visualizing Connections

I intended to go to Building secure and seamless sign-in experience using WebAuthn (brain choice), but the room was too full. It was not even possible to see/hear anything from the corridor. So I ended up going to my heart choice. Nadieh Bremer studied in Astronomy, I did Astrophysics, so that was an interesting common path and I love data visualization.

Take away:

Defining Open Source

A narrative journey accross the meaning of open source land and its constituents by Henry Zhu. Going through personal experience, the struggles of maintaining a project, etc.

Take away:

Building and Deploying for the Modern Web with JAMstack

Guilllermo Rauch introduced the movements of JavaScript development from backend to client side, then back to backend with isomorphic SSR-CSR, then back to the client and how JAMStack will save the day.

Take Away:

Write What Not How

Jorge Bucaran gave the most interesting talk of the two days with a very cool simple set of slides. Yes, just a simple markdown file with the content. After going through a list of differences in between imperative and declarative, he introduced his framework JS hyperapp.

Take Away:

So instead of:

<body>
  <!-- empty content -->
  <p id="hello"></p>

  <script type="module">
    import {h, app} from "https://unpkg.com/hyperapp?module";
    app({
        node: document.getElementById('hello'),
        view: state => h('p', {id: 'hello'}, 'Bonjour tout le monde')
    })
  </script>
</body>

I would prefer seeing things like:

<body>
  <!-- oh content! -->
  <p id="hello">Hello world!</p>

  <script type="module">
    import {h, app} from "https://unpkg.com/hyperapp?module";
    app({
        node: document.getElementById('hello'),
        view: state => h('p', {id: 'hello'}, 'Bonjour tout le monde')
    })
  </script>
</body>

So even if the JS is blocked for any reasons, there is a meaningful content.

Then I had to leave in hurry because I had another commitment, so I missed the rest of the evening talks.

JSConf JP - Day 2

Morning sun. Sitting outside waiting for day 2 to start. Children playing in front of the venue.

After day 1, the JS community is bustling with so many ideas, concepts, restless, crushing everything and reinventing itself every day. The same way that internet users were mistakenly confusing internet with ie, js developers assumes chrome for front end programming. It would be probably be interesting to understand the browser market share in that specific cultural group.

Time is an illusion in JavaScript

Another very cool talk, this time by Jennifer Wong about JavaScript and Moment, and how to deal with dates in code.

Take Away:

Life of Streams

Dominic Tarr discussed about the different implementations of streams in JavaScript, their complexity, and the solution he proposed.

Take Away:

Self volume of web

Jxck talks about the Web. I'm not sure I understood what the purpose of the talk was. So I don't really have any take away nor explanation for it. Just strange.

JavaScript, Rust and Wasm Walk into a Ramen Shop…

Irina Shestak walked us through the journey to JavaScript to Rust, then to WASM.

Take Away:

Panel

There was a panel mainly speaking about JSConf, and the struggles to organize such a conference. Lena Morita was on the panel. She had a talk about accessibility in Wordpress. I think she should speak at Paris Web. She would be the perfect fit.

Browser APIs: the unknown Super Heroes

Rowdy Rabouw introduced some of the recent APIs in browser.

Take Away:

Anatomy of a click

Benjamin Gruenbaum gave another good talk on what was really happening when we click in a Web page. All the transitions from the USB device to the actual JS and native code in the browser.

Take Away:

Discovering Animals with AI and Javascript

Jonny Kalambay is another way to reconcile yourself with JavaScript. He went through the development of a simple AI for understanding your own photos. Nicely done, simple, straight to the point with good examples. Loved it.

Take Away:

Pika: Reimagining the Registry

A nice overview of another registry, pika by Fred K. Schott

Take Away:

Developer Mind Browser Market Share

So my biggest shock during this conference was the speakers and their assumptions for developing. It's like the term "browser" doesn't really exist. It is synonymous of Chrome. They show their presentations, their demos in chrome, they talk about the issues in chrome, they assume chrome as a target of the code being developed, they demonstrate only the chrome devtools.

This is quite sad all in all. And probably there is a major effort to do to show the other browsers tools be Safari or Firefox.

And bear with me, it's not malice or because they want to promote a specific tool, no it's just that it became an habit. It's not even a question which crosses the mind. It's almost like in the past general users were thinking the "e" logo on Windows meant internet. So for JavaScript devs, it seems that "chrome" means browser.

Trivia

Otsukare!