Besides the main track some an parallel unconference, called DeepDive sessions had been held. Those session are the ones that this post will focus on. I will try to recap the things (I) learned there and that I feel need to be stated (again).
Unfortunately the location was not easy to find from the main location and it was announced only around noon of the first day. The people who found it and knew what an unconference has to offer did appreciate it a lot, I believe.
At JS Kongress last year in Munich the InDeep Track, the parallel unconference, was a great success. David Pich had been there too. I believe this fact and the JSCamp's roots being a BarCamp convinced David to also run a parallel unconference at JSCamp. He called it #DeepDiveInJS.
Because the DeepDive track did not start until the afternoon of the first conference day, it meant we had enough time to put up signs and announce it on the big stage. Efficiently this had left two time slots for day one. Two rooms, so we had four session slots. So we did a quick marketplace and filled the time slots. Johannes had a genious idea of building a backlog column for the next day, so people could propose sessions but run them the next day. That had two really cool advantages 1) the people saw what might come up on the second day and 2) the urge to find a slot for day 1 was gone.
On day two we had a marketplace in the morning. Daniel Ehrenberg had already announced a lot of interesting topics in the backlog the day before, so we got a day planned with interesting TC39 insights.
The market place in the morning ended up with the following session
- 12:00 TC39 community involvement, by @littledan
- 12:40 Class fields and private methods, by @littledan
- 14:40 Decorators, behavior injection, by @k1r0s
- 15:20 Decorators by @littledan
- 16:30 Typescript AND/OR Flowtype, which I proposed (but didn't take place due to ongoing interest in TC39 sessions started before)
- 17:00 Observers, Proxies, Object.observe, by Alfonso Coretti (session has been moved)
And things had been left in the backlog, so there was enough room for more sessions and potential to ramp up this format. Let's try again!
Session: How to contribute to TC39
Dan gave a presentation about the TC39 process. He explained how proposals go through stages (from stage 1 to stage 4) and what those stages mean. My biggest take away was when he said "contributing can not only be done by writing a new proposal". This was eye-opening for me. Because I also kinda thought this is the best I could do. He kept going by suggesting that people who like to contribute could also think about:
- commenting on existing proposals, open issues, discuss on issues, participate, give the community of users a voice and make it visible, and
- write tests for a new proposal.
Writing tests sounds boring? No, not at all, I believe we all write tests in our heads and just do not often enough dump them into code. All the time we try to play through a feature or (TC39) proposal, we try to exectue it in our heads and try to see what might fail, what edge case we might discover or try to feel what using it will be like. The same will be needed for a proposal to go to stage 3 anyways. Dan also mentioned that unfortunately tests get written last mostly. The proposal authors do need support there, that's why this is one way we can help and contribute. How to write a test? There is the repo test262 where you can also find lots of insightful PRs, some also for proposal. Unfortunately I don't remember exact details about the process in this repo.
Session: New class features
Session: Observers, Proxies, Object.observe
Alfonso had a real life example, where he had the issue that
Object.observe would have been his solution, but had been removed from the standard, unfortunately. He had an
Aren't customized built-in elements the solution for it or MutationObserver? /me calling Alfonso ...