<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Julien on Medium]]></title>
        <description><![CDATA[Stories by Julien on Medium]]></description>
        <link>https://medium.com/@y_nk?source=rss-f8d0462c614d------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*DhVNgLKadEj9w0_rBwSbNQ.png</url>
            <title>Stories by Julien on Medium</title>
            <link>https://medium.com/@y_nk?source=rss-f8d0462c614d------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 19:58:53 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@y_nk/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[A tale of politeness]]></title>
            <link>https://medium.com/@y_nk/a-tale-of-politeness-f173aba2874f?source=rss-f8d0462c614d------2</link>
            <guid isPermaLink="false">https://medium.com/p/f173aba2874f</guid>
            <dc:creator><![CDATA[Julien]]></dc:creator>
            <pubDate>Fri, 31 Jan 2020 09:39:03 GMT</pubDate>
            <atom:updated>2020-04-01T07:12:38.892Z</atom:updated>
            <content:encoded><![CDATA[<p>Here are my 2 cents on “one of many” experiences about working abroad as a foreigner in Japan.</p><p><em>As my profile is public and I don’t hide my name, I see no point in hiding things which can be googled but less obvious details will be anonymized.<br>Edit: </em><a href="https://twitter.com/bemmu/status/1223930388491296768"><em>someone made</em></a><em> </em><a href="https://www.reddit.com/r/japan/comments/exn4te/what_working_for_the_japanese_company_line_was/"><em>a reddit thread</em></a><em> about it.</em></p><h4>A coin is attractive</h4><p>I joined LINE in May 2018. It’s funny you know, because I’d never had expected to work in Japan. I used to be kind-of-an <em>otaku</em> when I was 16, making furniture out of piles of manga, even put “Japanese” in my very first resume because I watched anime way too often and thought that was me understanding japanese (oh boy was I wrong).</p><p>I joined LINE after my previous office got closed for “group strategy pivoting” ; we (15 people) were all thrown away and I realized that “well, you’re (still) young and have no strings so the world is yours to explore.” ; and just like that, I started to punch LinkedIn’s “easy apply” button like an hardcore arcade pro-gamer.</p><p>The offer came in December 2017, just like a Christmas present. Everything was a green light : a decent salary, attractive perks <em>(including language school)</em>, and the promise to be part of the history of the company since they were opening a new office, and I’d be one of the firsts to push its doors.</p><h4>A coin is shiny</h4><p>The firsts months were <em>ecstatic</em>. Japan is such a nice country to be in, seriously! Coming from France, there’s an undeniable overwhelming sense of righteousness coming from the behavior of the population : everyone’s civilized and respectful of each other, queueing perfectly without yelling or outbursts. The outdoors are clean, quiet, and exult a peaceful feeling of security comparable to that gentle haze coming from an autumn tea cup. Japan’s sky’s blue, a blue I’ve never seen before ; the sun creates shades which are world famous and unique to the country as much as its Lego®<em>ish</em> architecture ; these combined forming a soothing sight to contemplate while biking through the endless number of small alleys, one-way streets, and blocks of the city. Transports are coming in numbers, <a href="https://twitter.com/cocteautriplets/status/1219770782198521857">often crazy</a>, always on time, and contribute generously to make the society feel like a swiss ticking clock. On the overall, things are convenient for the most of it ; sometimes <a href="https://www.bbc.com/news/technology-46222026">a bit old fashioned</a>, but even though it can be annoying it’s kinda cute.</p><figure><img alt="peaceful japanese evening" src="https://cdn-images-1.medium.com/max/500/1*oGhJEosir6r8VFhWvQUJWw.gif" /><figcaption><a href="https://1041uuu.tumblr.com/">https://1041uuu.tumblr.com/</a></figcaption></figure><p>At this time, LINE had been truthfully keeping up to the promise of hospitality and pragmatism I expected from my own impressions of the japanese society : since I’ve been coding for a decade, they asked me to join a quite big project already in progress which had some difficulties. They flew me overseas to support other teams, make presentations to help getting back on track ; I received trust and responsibilities from my firsts days, which I took as some pressure and also as a sort of honor and trust at the same time.</p><p>A few weeks after, my lack of japanese knowledge started to show up. It turns out you cannot really attend meetings and throw a casual なに once in a while. I cornered myself out of the meetings, and slid away since I couldn’t keep up with the 4 hours sessions of sprint plannings. <a href="https://jisho.org/search/%E9%A0%91%E5%BC%B5%E3%82%8B">But Japan is kind and doesn’t give up</a> ; the lead in charge still saw my value and decided to pivot my contribution into “a side project” which became the start of a design system, initiated from the need to have a component library for their big CMS project ; and there I was, alone, doing components and trying to figure out about the foundations of a design system while also discovering the dynamics of a japanese corporation’s politics.</p><p>I’ve been working in lonely environments before and I knew my tasks. I designed a plan, a roadmap, coded it, and proposed it to my hierarchy which, to my surprise, welcomed the idea… with a <em>cheerful</em> silence. No further actions were taken, neither to help me develop the idea or to take it down : it was a japanese silence of indecision, waiting to see what was to come.</p><p>Nevertheless, I kept pushing ; my assignment was still valid and the values of the company contain <strong>“Go Brave. No Fear. No Regrets.”</strong> which I deeply relate to. <em>Shouldn’t I continue?</em></p><p>My managers were impressed by my tenacity, and after few months finally decided to help. LINE didn’t have any design system and it was honestly quite easy to evangelize and convert people to the benefits of a component library. Eventually, I was making enough noise and demands that it came up <em>to our CTO</em>. I didn’t meet with her, but I was told she supported this initiative and offered to meet with a bunch of designers from the company. We organized a 2 days workshop to discuss about design systems and components, and at the end of it, every one felt amazing.</p><h4>A coin has two sides</h4><p>After my first year at the other side of the world, I felt amazing : Japan is kind, sunny and sooo <a href="https://jisho.org/search/%E5%84%AA%E3%81%97%E3%81%84"><em>yasashii</em></a><em>. </em>It almost feels like a gentle cocoon never meant to be left. It’s amazing how fast you get comfortable with the feelings of convenience and security, and how much weight they lift away from your daily life.</p><p>Of course, I’ve had some problems. In Japan, most of people can <em>only</em> speak japanese. It can be fun when you visit a temple where you’re called out by a group of cute laughing grandmas and try to communicate with them, ending in the weirdest hand gestures conversation in history ; but it can also lead to a stressful situation when you face officials, cops, but also doctors, or hospitals, emergency situations. Hopefully, as long as you didn’t break any law, Japan is kind and forgives your little foreigner’s ass for not speaking the mother tongue ; Just make sure you’ve got data and Google translate will turn into your instant god savior.</p><p>I went back from that workshop feeling like a king. “They loved it!” I said… “It’s gonna go big, it’ll be a huge success for our office!”. What a strike for a newborn office to imprint itself in bold in such a big group with such a critical project in such a short time, right?</p><p>Two days later was I surprised to receive an invitation which changed my experience for good.</p><blockquote>“The project’s direction will be moved to an other department for logistic purposes, but you’ll still be able to maintain your part as usual. And also, we decided to refactor the project and your part is no longer active and planned for sunset (termination).”</blockquote><p>The room went silent… <em>japanese silent</em>, and just like that my one year “go brave, no fear, no regrets” effort was reduced to a politically correct heap of ashes.</p><p>“なにそれ” <em>(What the …?) –</em> you may say. Or maybe “This happens all the time in big corporations, don’t take it personally.” …but the story doesn’t end up here.</p><p>You see, a while ago during my rush phase of conquer, I made a silent enemy. While working freely, alone on this design system, one day he gave me a mission to assert maintenance on some old project of the company.</p><blockquote>“Could you tell me if we can maintain this repository by looking at the codebase? It’s urgent, look quickly and give me your impression by tomorrow.”</blockquote><p>I honestly didn’t look much past the root folder. The tech stack was around 3 years old, a mix of pug static pages with optional Vue 2 micro instances built with grunt, so even if we could maintain it, I knew it was a very bad gift to whoever would be in charge.</p><blockquote>“No we can’t. and even if we could, we shouldn’t. If we were to continue this project, I’d advise to start again from scratch.”</blockquote><p>And so it happened ; that project restarted slowly at almost the same time that the pressure of the design system was raising, and just as expected I was the one given the responsibility to work on it. Being the only frontend engineer assigned, I said that “until specifications are stabilized, I’ll focus on the design system which will support this new project for when we start production.” My idea was “prepare the prod, nail the prod.” ; but even though my plan was clear and open from the beginning, my enemy was staring at it from the shadows.</p><p>After that terrible <em>silent</em> <em>meeting</em> which changed the course of my path in the company, I wanted to know.</p><blockquote><em>– </em>“What happened? Did I do something wrong? How’s that possible?”<em> I said to my manager.</em></blockquote><blockquote><em>– </em>“Man you pissed the big bad wolf! Why did you say you accepted the lead without asking him first? He got out of his mind!”<em> he replied.</em></blockquote><blockquote><em>– </em>“I can’t believe it omg! Could you arrange a meeting? I’d like to hear it from his mouth.”</blockquote><p>That meeting went surreal. I got accused of letting go of my assignment, even though I kept explaining my strategy, then, out of nowhere, this happened:</p><blockquote><em>– </em>“Anyhow, I don’t believe in that project of yours, or your ability to lead it.”<em> the wolf said.</em></blockquote><blockquote><em>– </em>“So you alone don’t believe that a design system is a good thing for a company of our size even though our CTO supports us, and as you think I’m not capable of handling it, you don’t even want to let me try and help me bring this home?”<em> I asked.</em></blockquote><p>He took a pause and replied:</p><blockquote><em>– </em>“Yeah. I believe for you, it’s impossible.”</blockquote><p>And that was it.</p><p>These words fell heavily on my shoulders. What kind of person would stop trusting his coworkers and their abilities to learn? Is <em>“don’t hope for and support your coworkers”</em> also part of the values of the company?</p><p>The shit fell twice this day. I was openly told that I won’t ever be no good to (learn to) hold on a project, and at the same time I also got told that my lack of focus for this new project in favor of the design system was unprofessional.</p><p>You see, as specs of the new project were not yet stable, I was still willing to go to production but under special conditions. We’d go slowly, review slowly, twice, and act as if we were walking on eggs. That’s how I learnt to deal with “poor/no-specs projects”. At each page, we’d deal with legacy/historical curiosities to a point that my project manager started to get pissed. But apparently, my burst against <em>computing functional specifications from reverse-engineering the source code of a previous version of the project</em> had been interpreted not as professional ethics, rather a refusal to comply to orders.</p><p>I passed through each phase that everyone would in that situation: confusion (is that real?), anger (omg it’s real!) and later on acceptance (yeah, it’s fucking real…). I tried to reach for help, but for months, no-one listened, and every-one went along.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*orYe9J-RXdXzTBSyWQU0aQ.gif" /><figcaption><a href="https://giphy.com/gifs/form-z9AUvhAEiXOqA">https://giphy.com/gifs/form-z9AUvhAEiXOqA</a></figcaption></figure><p>Of course, that project took a bad turn. It was decided to stop production for a full month to write the functional specifications of our project <em>from studying a previous codebase</em> ; as argued, at some point the team realized that we were indeed introducing bugs as specifications, but it was an “acceptable” truth. After listing the tasks to do from this new document, the team announced a release date that we missed by 2.5 months, even though the engineers knew and explicitly mentioned we’d miss it. And everything was my fault, because I was the one pointing at those issues.</p><p>From this time, every 2 months or so, I receive different kind of shit from the big bad wolf. He’s pissed at me with the dedication of your typical expectation of “japanese obsession”.</p><p>One time, a senior manager offered me to talk to a prime quality conference because he thought I was the best pick, but had to ask for higher approval since he wasn’t in my hierarchy. He asked the big bad wolf who <em>smoothly</em> declined saying that <em>I was busy on other tasks</em>. Even though, this manager thought that disclosing me the truth was the right thing to do and we decided to let it go. A few weeks later, when I innocently brought the topic of conference talk being in my wishlist, that same wolf proposed me to attend the said event luring me into thinking he was the very one picking me.</p><p>One time, I got sick and the big bad wolf tried to force me into cancelling my winter vacation to use my remaining paid holidays to cover for my absence. If you’re not familiar with Japan, you may be doubly outraged but you need to know that in here, there’s no standard for sick leaves. Companies don’t give them automatically, and it’s the duty of the worker to show responsibility and save holidays in the unfortunate event of sickness – yeah, you read me right.</p><h4>A coin as an edge</h4><p>Once more, as Japan is kind, after talking with the HR department, exceptional unpaid leaves were granted along with the promise that this event wouldn’t be taken in consideration during my yearly evaluation.</p><p>LINE’s evaluation system is quite good ; you can bitch all you want, its design is fair, but as much as you can design something good or bad, nobody can control how it’s used – even a teddy bear can be weaponized.</p><p>Every single step of an evaluation is once “written” by someone and later on “validated” by a higher rank. This prevents from actions for or against someone taken by a single individual. But what would happen if you didn’t have enough people to fill in the ranks of the review?</p><p>Due to the lack of layers in my own command line, the big bad wolf became judge, jury, and executioner for my evaluation. He was in all the layers, from reviewing me, to propose a salary decrease, <em>and later on to accept his own demand</em>.</p><p>He claimed my communication skills were low and that for around a semester he received complains, that my entire team was afraid of talking to me, thinking that I was “authoritative” and those were good reasons to punish me.</p><p>I started doubting. I started feeling bad. Was I such the monster everyone described? One thing for sure is that, after that meeting I was shocked. I couldn’t sleep. I couldn’t stop the train of thoughts, running everything down and try to pay attention to details again, imagining other ways to interpret my actions, and see where it could have gone wrong.</p><p>Somehow along the way, members of my team were still talking to me on a daily basis. Did they know that I knew? Do I threaten them now? Should I go home? Should I come out and apologize?</p><p>If that claim was true, I couldn’t live, come at the office and work knowing that I was terrorizing my coworkers. I did what I thought was right and talk to them and explained to them that I was sorry for being authoritative in my conduct.</p><blockquote><em>– </em>“Yeah ok but,… what’s the meaning of authoritative?”</blockquote><p>I started to realize that none of this was true. Neither my coworkers were thinking I was authoritative, but more than that they didn’t even know the word… Or maybe were they lying to me? <em>All of them?</em></p><p>I went to him and confronted him. He’s a wolf, not a sheep, so he dodged all questions to the best of his agility.</p><blockquote>“You knew things were going bad for around 6 months, but instead of solving the issue as soon as it came, you did nothing and later on target me with a salary penalty ; is it how you think you gonna solve the problem?”</blockquote><blockquote>“You didn’t believe in my first project ; but can you see the group pushes for conferences talk, updates and all… that it <strong>is</strong> real? that <strong>they</strong> want it?”</blockquote><p>The wolf is keen and dodged it all. He was thriving.</p><p>If you are awaiting for a happy ending, I’d like to spare the wait and spoil you a little : it doesn’t end good.</p><p>I’ve been filing for harassment, providing proofs, screenshots and timings for all the claims I’ve been doing, both for my project related problems and company ones. The human resource department received my complains seriously, but as Japan is kind, <strong>could</strong> <strong>not</strong> and <strong>did</strong> <strong>not</strong> take any actions.</p><p>I honestly expected more from one self-claimed “white” company such as LINE, but I guess I shouldn’t be surprised.</p><p>Japanese society, as kind as it is, is also built on strong unspoken rules which favors silence over outbursts, intimidation over honesty, always to keep the power away from trouble.</p><h4>A coin doesn’t buy happiness</h4><p>There were no other options for me than going crazy or leaving the company, making either way the wolf happy and sated.</p><p>“Life is short”, “pick your battles”. Those are stupidly hollywoodian advices you hear on Netflix everyday, and yet sometimes the dumbest sentences can knock you down whenever the time is right.</p><p><strong>So I decided to quit.</strong></p><p>More over, I’m quitting Japan. I will always love the country and its wonderful feeling of warm melancholy, has-been sophistication and delicacy. I will always remember the warmth of my friends there, their concern and kindness towards me, the laughters, the parties and the hangovers. I will carry along the memories of the seasons of Japan, each more different yet all so beautiful. I know for sure that I’ll be back one day, just to take a train and look at the landscape running through my eyes as the sunset goes.</p><p>If you recognize yourself in supporting me during this time, thank you. I can’t stress enough that your support kept me sane and away from loneliness ; you’re the reason why I didn’t turn like a crazy old grandpa yelling in the streets by himself. I’ll miss you deeply, and be you won’t be forgotten. Let’s keep in touch, and the traditional friends room has now your name on it.</p><p>This end is bitter. It’s like breaking up with someone because a third factor came in and you have no choice, and somehow I can’t help but thinking that my last words to this situation can’t be others than:</p><p>仕方がない。<br>残念。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f173aba2874f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Frontend used to be fun]]></title>
            <link>https://medium.com/@y_nk/frontend-used-to-be-fun-c0c5d945a8bf?source=rss-f8d0462c614d------2</link>
            <guid isPermaLink="false">https://medium.com/p/c0c5d945a8bf</guid>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[web-components]]></category>
            <category><![CDATA[history-of-technology]]></category>
            <category><![CDATA[flash]]></category>
            <dc:creator><![CDATA[Julien]]></dc:creator>
            <pubDate>Sat, 23 Nov 2019 05:00:56 GMT</pubDate>
            <atom:updated>2019-12-04T14:09:51.416Z</atom:updated>
            <content:encoded><![CDATA[<p><em>An opinionated 10 years retrospective of the evolving landscape of frontend technologies.</em></p><h3>Disclaimer</h3><p>Those thoughts are mine, and you may disagree ; that’s ok. I’m not a god, and certainly not own the Truth. My background surely defines my views, and as we have all different stories, your opinion may differ.</p><p>I’ve no CS degree. Like many, I’ve coded since I was a teenager, and eventually ended up in the frontend world because I was passionated about the blend of art and tech. I naturally started my career doing flash websites, and since “the death of Flash” I migrated to JavaScript.</p><h3>A huge waste of time</h3><p>You may find my view narrow, but as a growing “junior” coder I used to live by the moto “a lazy developer is a good developer” or rather said “don’t do the same thing twice”. That moto still drives me, but with time I’ve learnt to temper it as I learnt <a href="https://xkcd.com/1205/">automation isn’t always worth it</a>.</p><p>Sticking to it and still to this day, I personally believe that what happened in the frontend scene is a huge waste of our time : in today’s world, we still barely achieve in frontend what we could deliver when I was 10 years younger. I personally think <em>business war </em>killed Flash, as Apple would probably have lost its 30% share of app/game revenue if such a technology could run for free in their device’s browser ; it was nothing more than a trojan horse into their income plan, and they had no choice but to kill it.</p><p>3D accelerated graphics, video with DRM support, multi-lingual websites with blazing transitions, a typed-language out of the box, free IDE and compiler, you name it. This was all available for us to use, and it’s undeniable that <a href="https://www.vice.com/en_us/article/d3awk7/flash-is-responsible-for-the-internets-most-creative-era">this era was the most creative decade for frontend development</a>. This moment in time gave birth to <a href="https://thefwa.com/">awards websites</a>, boomed the web based game industry, popularized “motion designers” and “interaction designers” positions for the web, which eventually helped raising a global awareness about UX…even ad campaigns used to be amazingly fun!</p><p>When Apple pulled the trigger, the biggest mistake Adobe did was not to open-source the player (or the bytecode spec), which would have rendered the only valid argument of “owning the web with a closed source technology” void.</p><p>Adobe, this one’s on you.</p><h3>Reinventing the wheel, the political way.</h3><p>So, Apple brings the iPhone into the world and claims that Flash is shit mainly out of business reasons : they said they can’t really control performances, and thus mainly because the player was closed-source. Of course, Adobe tried to help… but Apple wasn’t <em>really</em> interested. The closed-source claim took off, and world-wide digital heat went on.</p><p>The argument alone sounds reasonable, but even if I was <em>somehow</em> concerned about was not knowing about the internals of the Flash Player, as I was still young in the field, it was still acceptable to me because it was empowering me on delivering great content ; now with a little more experience, I can see I’d be way much bothered about it. I can understand why it mattered to so many people.</p><p>Of course, the other big names found their way into it. Google and others had their chance to influence the market, so they didn’t <em>really</em> backed Adobe up and ultimately Adobe had to pivot its strategy towards HTML5.</p><p>But to what benefits and what costs?</p><h4>The runtime</h4><p>Hate it or not, while Adobe owned a closed source web content player, it took nearly 8 years (give or take) to stop whining about browser implementation differences in JavaScript.</p><p>After the death of Flash, I had to code for “IE7+” ; I know <strong>this</strong> time. Today our runtimes are Gecko, Chromium and Webkit, lead by organizations who <em>also </em>seats in the W3C. Of course this is a shortcut as some are independent open-sourced projects, but I do hope you can see the big picture : those organizations write the specs <em>and</em> implement the features in OSS repos.</p><p>This point is quite disturbing to me now, as I can see how one would implement a feature with an experimental flag and later force the hand of the W3C to consider it out of already spread popularity (like the recent Chrome XR api) – it’s no longer clear if the consortium is really objective, but it’s clear now that those who implement the engines and sit at the table won influence and the power to steer the spec towards their business goals.</p><p><strong><em>An other runtime.</em><br></strong>This part was also critical and changed the game forever : as Google made their JS engine &quot;v8&quot; available to the public (learn this Adobe), one <a href="https://en.wikipedia.org/wiki/Ryan_Dahl">hell of a clever guy</a> elevated it to a server-side engine – node.js – opening the path to all the modern tools we know today. As this is mostly a server-side revolution, I’ll pass quickly on it, but it had an undeniable influence on what happened – more on that later.</p><h4>The language</h4><p>Typed language, a long-lasting hatred argument against JavaScript, took 3~5 years to seriously take off, as TypedScript is now a thing. ActionScript (3), while debatable and improvable, was ok good. It had it all : real interfaces, accessors, getters/setters, proxies, and all the other things we still trying to implement today. A saver move for Adobe should have been to try elevating it as the next ECMA standard instead going solo. <a href="http://www.redtamarin.com/about/description">Some loved it so much that they’re still trying to make it land in a binary, similar to node.js</a>.</p><p>Out of all the competing solutions Microsoft won the game, but of course many tried before them ; most failed because they took on implementing an other language rather than a downward-compatible superset of it. That was clever sight from MS honestly, and probably the most obvious reason of its success. Still, when I moved away from a AS3 I remember clearly missing types, but now that I’m used to that freedom I can’t even see myself going back to it ; because Typescript acts as a pre-bundling safeguard, its utility (limited to DX) is still quite debatable.</p><h4>The features</h4><p>Other creative things, such as accelerated 3D, a decent video player (with DRM support), or a canvas specification took <em>years</em> to land. To this day, it isn’t as performant/convenient as it used to be, and I won’t even start with Adobe’s Flash CS, which is still unmatched when it comes to creative content authoring and animation.</p><p>Of course, Adobe wasn’t <em>always</em> doing it right. One would a be fool to say “Adobe Flex” and “mxml” were cool. Like most Flash developers, I used to hate it because I felt weird about having the view of my objects written in a markup language along with a script/style tags. It was far from perfect, but it was somehow the start of something visionary. Those who know this time can’t hardly deny the similarities with “Single File Components” or even component oriented libraries ; even now we can see the rise of &quot;render-less components&quot; somehow mocking what <a href="https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/mxml/HTTPService.html">mx:HTTPService</a> used to be. At this time, markup languages were assimilated to lower-class frontend, and writing it for the flash platform had a really bad aura… For me, it just felt somehow wrong, but I now changed my mind about it (components ❤️) :)</p><p>At this time, out all the persons I knew, all the projects I’ve seen, most of the people who were using Flex were producing UI with forms, and mostly came from a Java background.</p><h3>From “hacker” tech to “engineer” tech</h3><p>One of the things which pushed me into organizing my thoughts and writing this article was this particular argument.</p><p>Not so long ago, I met with <a href="https://twitter.com/sachagreif">Sacha Greif</a> online, and listened to some of his talks to get to know him better. In <a href="https://www.youtube.com/watch?v=iOUFkFQQW5w">one of his recent talk</a> <em>(around 3&#39;50)</em>, one sentence particularly hit me. He said:</p><blockquote>[…] because I have this theory that explains all the issues we had for the past couple of years ; and my theory is that JavaScript is slowly moving from one side of the spectrum [the easy tinkering jQuery “hackerish” side] to the other [the structured TypedScript “engineer” side].</blockquote><p>This striked me as an extremely simple, but “straight-to-the-point” view of the evolution of our job.</p><h4>What it meant to be a frontend guy</h4><p>Frontend has <em>always</em> been seen as odd. For a very long time in the frontend industry, you’d had 2~3 types of guys :</p><ul><li>Engineers who were doing server-side generated UIs. : they were comfy with their server language, and because most of those languages were more advanced than client-side technologies, they despised JavaScript and considered CSS as voodoo <em>(they still exist today)</em>.</li><li>Few countries (including France) had “HTML <em>Integrators</em>”, who were basically HTML/CSS gurus, sadly spending the most of their time doing e-mailing out of &lt;table&gt; because mail clients were shitty <em>(they’re slowing going extinct).</em></li><li>Flash guys, who thought themselves cooler than the rest because they were “closer” to design than the “black screen terminal” backend dudes, and were programming cooler things than the HTML/CSS crew <em>(they died)</em>.</li></ul><p>In short, for backend guys, we were that “non-engineer designer bff” ; for designers, we were “the black-screen coding boy”. Right in the middle, but never truely fitting : so was the job.</p><p>When doing Flash things, it was quite ok ; we had control over design <em>and</em> code and UI could be well coded, powerful and rich in features, but still creative and <em>fresh</em> looking.</p><p><em>Then</em>, when leaving Flash, you had to choose your side : either you’d be a CSS guy and cared about design stuff and cool rollover effects, or you’d be the JS guy and you’d find the best date-picker plugin for jQuery.</p><p>This contributed to a widely accepted thought that the mission of building UIs should now be separated into 2 parts : “the design” and “the code”, even if somehow Adobe’s ecosystem had succeeded into maintaining a fragile balance over the two and made it possible to work with each foot in both side.</p><p>While I’ve always been used to “quite advanced” development when writing ActionScript, the firsts years of going back to JavaScript were indeed painful : we had to support different browsers and tools to structure applications were to lack. It was the beginning of the JS era and instead of upgrading our JS eco-system, greater powers were trying to take over with initiatives like GWT or Dart. Some turned into Haxe or Processing and became “creative technologists”, but most embraced the pain of working with jQuery, or like me, coded as much “vanilla” as possible until the firsts tools arrived.</p><p>I remember clearly the <a href="https://github.com/mrdoob/three.js/commit/e43af53f1947e45ff336d0969dcf08699f04a15d#diff-b2f5393233be2b890961001a9c2eff11">firsts build scripts of three.js</a>, simply concatenating files and minifying them, the arrival of backbone, but most of it, the arrival of node.js.</p><h4>Engineers to the rescue</h4><p>No wonder why, when node.js arrived, “real” server engineers mocked it. It was a client-side (non-typed) language in the terminal : can you imagine? Even nowadays there’s still a shade around node not being capable to scale as much as a php website or not secure as a Java application. It’s getting better of course but the language still lacks of an equivalent of Symfony, .NET, RoR, or Spring, somehow showing a lack of interest for such tool.</p><p>At the beginning of it, it opened a door for frontend people to, and share code with a package manager instead of <em>“relying on CDNs to include jQuery into their pages”</em> and later on build command line tools. It naturally grew potentially as JavaScript was an easy language to learn. JavaScript was easier than ever, and the promise of a language which could run both in backend and frontend made a profound mark into company strategies to hire “fullstack developer”, a unicorn who could both handle database security and responsive design.</p><p>As more and more juicy job offers arrived, many powerful engineers were into it and JavaScript naturally grew more complex. They&#39;d be interested &quot;despite the shitty language&quot; and spent time fixing it by creating amazing tools such as Babel or Typescript, which are today used daily by millions of people. They helped building the new modern web, and probably Medium too ; but as they grew bigger in number (for good reasons), they also had an influence about what UI should be.</p><p>The tooling turned into engineering, and what used to be a tinkering fun language has now created jobs like “Frontend Dev Ops” to counter the complexity of <em>maintaining</em> a web application ; not to mention that this path doesn’t sound like the creative one Flash used to carry, ultimately leading to more “TODO-MVC” UIs and less of 2advanced polished quality. JavaScript owns now more &quot;Java&quot; than &quot;Script&quot;.</p><h3>Frontend is boring</h3><p>Few years ago, Polymer came from Google. It was one of the natural evolution of backbone, or more globally, a consequence of how the DOM is designed. After all, text inputs themselves are sort-of native components, so why not expanding the idea and give developers control?</p><p>Polymer wasn’t the first to implement the idea, but it’s interesting to see that it was the first to really implement the idea of web components – a concept brought by Alex Russel who also works at Google – which later on (surprisingly?) made its way into the W3C specifications.</p><p>Don’t mistake me : I think component-thinking is nice. It’s a good way to respect design and can have a variety of forms which makes sense for UX. The overall is a <em>great</em> thing. Single File Components are now a thing, <em>but isn’t it somehow what Adobe Flex used to be?</em></p><p>Again recently, Google released a new technology draft (which also contributed to my reflexion around this article): <a href="https://web.dev/web-bundles/">the web bundles</a>.</p><p>The idea is nice : bundling a web application into a single, sharable file ; there’s even a extension for it : .wbn. <em>But isn’t it exactly what a swf file used to be?</em></p><p><strong>It appears to me clearer than ever now that we’re coming back to where we were. My only regret is the cost of it. It’s been around 6 years of struggling to see that we’re not quite there yet, all because Apple was greedy, Google was lurking and Adobe decided to keep closed source a powerful piece of technology ; our services and the quality of life of our users went technologically frozen in time due to private greed, despite of all &quot;user-first&quot; public policy advertised by those tech giants.</strong></p><h3>A way out?</h3><p>There’s probably a way for those who wants to get back to where the things were, with the benefit of those 10 years of “wisdom” on top.</p><p>I didn’t mention it before, but one of the latest feature Adobe added to the Flash platform before dying as the capacity to compile “native” code : with some effort, you could add some libopengl to your swf file (so was AR in 2005).</p><p>It’s not surprising to see that if Adobe recognized that developers could leverage &quot;good old C&quot; libraries to push further the web experiences, in the very same fashion, our “evergreen” browsers recently started to do the same and have WebAssembly running wide.</p><p><a href="https://github.com/open-source-flash/open-source-flash">Some made online petitions for Adobe to release the specs</a> for a while, but somehow the company didn’t respond to it. The hope to reimplement the flash player in Web Assembly is thin, but still alive. More recently <a href="https://medium.com/leaningtech/preserving-flash-content-with-webassembly-done-right-eb6838b7e36f">some others decided to bring the flash player as a wasm module without recompiling it.</a></p><p>It’s funny how things turned out. The flash player was banned of the world because Apple decided that it wasn’t “performant” enough, and pushed HTML5 to become a powerful standard on the way ; all that to see WebAssembly as the unexpected trojan horse to reimplement the flash player back in the browser again.</p><p>I wished that it didn’t waste 6 years of everyone’s time, but it’s hopeful.</p><p>Hopeful for fun content again.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c0c5d945a8bf" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>