<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anthony Le Goas</title>
    <description>The latest articles on DEV Community by Anthony Le Goas (@anthony_legoas).</description>
    <link>https://dev.to/anthony_legoas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F360079%2F02d0d153-c150-481a-8e17-fc20d289b188.jpg</url>
      <title>DEV Community: Anthony Le Goas</title>
      <link>https://dev.to/anthony_legoas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anthony_legoas"/>
    <language>en</language>
    <item>
      <title>My tech trends of 2020</title>
      <dc:creator>Anthony Le Goas</dc:creator>
      <pubDate>Mon, 18 Jan 2021 10:21:54 +0000</pubDate>
      <link>https://dev.to/anthony_legoas/my-tech-trends-of-2020-cjn</link>
      <guid>https://dev.to/anthony_legoas/my-tech-trends-of-2020-cjn</guid>
      <description>&lt;p&gt;That’s it! 2020 is over and it's time for me to share my trending topics of the past year.&lt;br&gt;
Here is the list of technologies about which I spent a lot of time reading, watching videos or listening to podcasts. It does not include all technologies I worked with but only the main, those at the heart of my tech watch.&lt;/p&gt;
&lt;h1&gt;
  
  
  Svelte
&lt;/h1&gt;

&lt;p&gt;For sure my top 1! 🏆&lt;/p&gt;

&lt;p&gt;I've been very interested in &lt;a href="https://svelte.dev/"&gt;Svelte&lt;/a&gt;  for two years now, in fact since the release of version 3. I like the syntax, the simplicity and the technological choices that have been made, mainly to improve the developer's experience. I also like the way it grows and the emulation that surrounds it. The community is great and growing every day. Just take a look at &lt;a href="https://discord.gg/9pU4wRJz"&gt;the discord server&lt;/a&gt; ;)&lt;/p&gt;

&lt;p&gt;I spent a lot of time working with Svelte on side projects and also in the Svelte source code! I really enjoyed diving deep into it and discovering how a project like this is built. Obviously, it also helps me a lot to understand how it works and makes me appreciate the project even more.&lt;/p&gt;

&lt;p&gt;During this year, I also wrote and spoke about Svelte :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📝/🏴󠁧󠁢󠁥󠁮󠁧󠁿 &lt;a href="https://dev.to/zenika/svelte-why-so-much-hype-2k61"&gt;Svelte, why so much hype ?&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;🗣️/🇫🇷 &lt;a href="https://www.youtube.com/watch?v=b4U2vxdADg4&amp;amp;ab_channel=ZenikaTV"&gt;Svelte, pourquoi tant de hype ?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🗣️/🇫🇷 &lt;a href="https://www.youtube.com/watch?v=p9KZILKv5E4&amp;amp;ab_channel=SvelteSociety"&gt;Svelte, le framework qui sauve les bébés phoque&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I even organized with my colleague &lt;a href="https://dev.to/karinesabatier"&gt;Karine Sabatier&lt;/a&gt; the French chapter of the &lt;a href="https://france.sveltesociety.dev/"&gt;Svelte Society Day&lt;/a&gt; in september. It was such a great event and so fun to organize! We held a 4-hour event with 11 talks for the Svelte's French-speaking community and even a quick video in French from Rich Harris himself, the creator of Svelte! 😍&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/chATDP95QCw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  Vue.js 3
&lt;/h1&gt;

&lt;p&gt;The release of &lt;a href="https://v3.vuejs.org/"&gt;Vue.js 3&lt;/a&gt; has been for me one of the best news in the front-end ecosystem this year! There are so many great features that make me love the project more than I did in the past: reactivity, composition API, multiple v-model, Suspens, Portal, ...&lt;br&gt;
The project is still led by Evan You -who is still at the cutting edge- always looking for improvements for the framework he created 6 years ago.&lt;br&gt;
Moreover, he seems to be inspired by Svelte (see &lt;a href="https://github.com/vuejs/rfcs/pull/222"&gt;RFC#222&lt;/a&gt;, &lt;a href="https://github.com/vuejs/rfcs/pull/227"&gt;RFC#227&lt;/a&gt;, &lt;a href="https://github.com/vuejs/rfcs/pull/228"&gt;RFC#228&lt;/a&gt;). Based on the feedback from the community, this could be quite controversial but to me it's good news because it might beautify the syntax.&lt;/p&gt;

&lt;h1&gt;
  
  
  Nuxt.js
&lt;/h1&gt;

&lt;p&gt;Part of the Vue.js ecosystem, &lt;a href="https://nuxtjs.org/"&gt;Nuxt.js&lt;/a&gt; is a framework built on top of Vue.js that allows Server Side Rendering and Static Site Generation.&lt;/p&gt;

&lt;p&gt;Server-side techniques are becoming more and more important in the web ecosystem for obvious performance reasons. And when it comes to optimizing web performance, here I am! I think that frameworks like this one, that care about performance without neglecting the developers experience push the web in the right direction. That's why I tried Nuxt.js this year. I loved it and can't wait for version 3! By the way, you can watch this video, &lt;a href="https://www.youtube.com/watch?v=NyeFQ3JmDEk&amp;amp;ab_channel=VuejsAmsterdam"&gt;the State of Nuxt&lt;/a&gt;, if you want information about Nuxt v3.&lt;/p&gt;

&lt;h1&gt;
  
  
  Web Components
&lt;/h1&gt;

&lt;p&gt;Year after year, it's still a subject which is at the heart of my tech watch. I have worked with them a lot in the past and I continue to follow how the Web Components ecosystem evolves.&lt;/p&gt;

&lt;p&gt;In particular, I follow the &lt;a href="https://lit-element.polymer-project.org/"&gt;LitElement project&lt;/a&gt; (and &lt;a href="https://lit-html.polymer-project.org/"&gt;lit-html&lt;/a&gt;), which is part of the &lt;a href="https://www.polymer-project.org/"&gt;Polymer Project&lt;/a&gt;. I'm also interested in the adoption of Web Components. It doesn't seem to be used as much as I thought a few years ago, but a dedicated post would be needed to analyze why. However, some companies use them a lot. And this year, I've especially noticed the fact that SpaceX sent Web Components into space (see &lt;a href="https://www.reddit.com/r/spacex/comments/gxb7j1/we_are_the_spacex_software_team_ask_us_anything/ft6bydt/"&gt;this Reddit thread&lt;/a&gt;). &lt;/p&gt;

&lt;h1&gt;
  
  
  TypeScript
&lt;/h1&gt;

&lt;p&gt;I’ve been using it for many years now, since 2014 and the release of the alpha of Angular 2 in fact. TypeScript continues to grow in popularity (see &lt;a href="https://2020.stateofjs.com/en-US/technologies/javascript-flavors/"&gt;StateOfJS 2020&lt;/a&gt;) and I recommend his usage in many contexts because, to me, it facilitates teamwork and helps JavaScript developers build more robust applications.&lt;br&gt;
The Microsoft team released 4 versions of TypeScript in 2020: &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-3-8/"&gt;3.8&lt;/a&gt;, &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-3-9/"&gt;3.9&lt;/a&gt;, &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-0/"&gt;4.0&lt;/a&gt;, &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/"&gt;4.1&lt;/a&gt;, including many very interesting features. Check out the &lt;a href="https://github.com/Microsoft/TypeScript/wiki/Roadmap"&gt;roadmap&lt;/a&gt; for incoming features!&lt;/p&gt;

&lt;h1&gt;
  
  
  Cypress
&lt;/h1&gt;

&lt;p&gt;How to get a really nice end-to-end testing experience? Easy: just use &lt;a href="https://www.cypress.io/"&gt;Cypress&lt;/a&gt;. What a nice testing framework! I really enjoy using it and I advise all front-end developers to give it a try. In the past, end-to-end testing was a bit difficult and this has influenced the way we test applications. Today, with the help of tools like Cypress, I'm pretty sure we are going to change our testing approach to make it more end-to-end focused.&lt;/p&gt;

&lt;p&gt;The Cypress Team did an incredible job in 2020 and released new versions at a very steady pace: from version &lt;a href="https://docs.cypress.io/guides/references/changelog.html#3-8-2"&gt;3.8.2&lt;/a&gt; to... &lt;a href="https://docs.cypress.io/guides/references/changelog.html#6-2-0!"&gt;6.2.0&lt;/a&gt;. The announcement of a &lt;a href="https://www.cypress.io/blog/2020/12/17/cypress-raises-40m-series-b-round-led-by-openview/"&gt;$40M raise&lt;/a&gt; is good news and I wish Cypress an awesome year 2021.&lt;/p&gt;

&lt;h1&gt;
  
  
  Tailwind CSS
&lt;/h1&gt;

&lt;p&gt;I'm not a big fan of CSS frameworks, mainly because using a CSS framework feels like removing a part of my work that I really love: writing CSS. I like CSS, I'm good at using it, I'm efficient and using something that I didn't build is always more difficult. However, I know that writing CSS is not a piece of cake for all developers and that's why I also look at CSS frameworks. In 2020, I saw the emulation around &lt;a href="https://tailwindcss.com/"&gt;TailwindCSS&lt;/a&gt; (see &lt;a href="https://2020.stateofcss.com/en-US/technologies/css-frameworks/"&gt;StateOfCSS 2020&lt;/a&gt;) and I decided to lift the hood to understand the hype and to be able to help teams I work with.&lt;/p&gt;

&lt;p&gt;It was a great surprise, I enjoyed using it more than I thought even if I'm still not super convinced, not enough to use it on my own projects. I'm still thinking that I'm more efficient with my own CSS 😅. But, I have to recognize, it's a good product. I understand why people use it: it's easy to use and lets you quickly prototype an application without writing a line of CSS.&lt;br&gt;
Well done &lt;a href="https://adamwathan.me/"&gt;Adam Wathan&lt;/a&gt;! 💪&lt;/p&gt;

&lt;h1&gt;
  
  
  Gitlab CI/CD
&lt;/h1&gt;

&lt;p&gt;Out of the frontend ecosystem, I worked a lot with &lt;a href="https://docs.gitlab.com/ee/ci/"&gt;GitLab CI/CD&lt;/a&gt; in 2020. Before that, I was used to working on it but only as a "simple user", I didn't expect all the empowerment it brought to me nor how fun it could be to work with. I added it to my tech watch and dove into some advanced features. It was really cool and I will continue to work with it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Flutter
&lt;/h1&gt;

&lt;p&gt;I tried &lt;a href="https://flutter.dev/"&gt;Flutter&lt;/a&gt; during the first lockdown in France, in March, and it was a great discovery. I wanted to try something different, another language than JavaScript that I used a lot. I was quite afraid about Dart and the way we do templating in Flutter but finally, I liked it! I quickly found my marks and interesting resources in the &lt;a href="https://flutter.dev/docs"&gt;Flutter documentation&lt;/a&gt; to effectively increase my Flutter competence.&lt;/p&gt;

&lt;p&gt;Yet, I did not have the opportunity to work with it professionally (I hope I will) but I continue to use it on side projects, I still read about it and check the news regularly: the &lt;a href="https://medium.com/flutter"&gt;Flutter Medium&lt;/a&gt; is a good place to find many interesting articles.&lt;/p&gt;

&lt;h1&gt;
  
  
  Sustainable IT
&lt;/h1&gt;

&lt;p&gt;During 2020, I have read a lot about Sustainable IT, at first seeking answers on websites' environmental footprint. Then, I looked for guidelines to make the applications/website I built more "green".&lt;/p&gt;

&lt;p&gt;I enjoyed what I've read because it brings me back to the web fundamentals. To me, it's satisfying to build websites while trying to have the minimal environmental footprint possible. It is of course because of the sustainable goal but also because of the technical challenge: working out of the complexity of the front-end ecosystem, with the minimum of JavaScript code, without frameworks, makes you think differently and leads to focusing on essentials.&lt;/p&gt;

&lt;p&gt;If I can sum up in just one sentence what I've learned about building low impact websites in 2020, it could be "Do I really need this website/feature ?".&lt;/p&gt;

&lt;h1&gt;
  
  
  The rest
&lt;/h1&gt;

&lt;p&gt;I had many other technologies in my tech watch in 2020:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt;, because it's still a framework I like to work with.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://angular.io/"&gt;Angular&lt;/a&gt;, mainly because I wanted to understand precisely how &lt;a href="https://angular.io/guide/ivy"&gt;Angular Ivy&lt;/a&gt; works (based on incremental DOM).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rollupjs.org/"&gt;Rollup&lt;/a&gt;, because I wanted to explore an alternative for &lt;a href="https://webpack.js.org/"&gt;Webpack&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.snowpack.dev/"&gt;Snowpack&lt;/a&gt;, because of &lt;a href="https://svelte.dev/blog/whats-the-deal-with-sveltekit"&gt;SvelteKit&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://web.dev/vitals/"&gt;Core Web Vitals&lt;/a&gt;, because it combines web performance and user experience, two important subjects for me.&lt;/li&gt;
&lt;li&gt;Web accessibility, more and more a subject I'm passionate about, pushing the front-end developer experience even more.&lt;/li&gt;
&lt;li&gt;CSS, SEO, &lt;a href="https://github.com/features/actions"&gt;Github actions&lt;/a&gt;, &lt;a href="https://developers.arcgis.com/javascript/"&gt;ArcGIS JS API&lt;/a&gt;, &lt;a href="https://www.warp10.io/"&gt;Warp 10&lt;/a&gt; and more...&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>svelte</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Improve your styling with Chrome DevTools - v86-87</title>
      <dc:creator>Anthony Le Goas</dc:creator>
      <pubDate>Wed, 16 Dec 2020 11:09:06 +0000</pubDate>
      <link>https://dev.to/zenika/improve-your-styling-with-chrome-devtools-part-1-4ogm</link>
      <guid>https://dev.to/zenika/improve-your-styling-with-chrome-devtools-part-1-4ogm</guid>
      <description>&lt;p&gt;Regularly, interesting features are added to Chrome DevTools. They all have a common goal: to improve the developer's experience, to make his life easier by adding tools that make him more efficient. Some of them are useful for CSS development and debugging and this is what interests us here. This post is about the new DevTools features of Chrome 86 and 87.&lt;/p&gt;

&lt;p&gt;Now let's see what these new features can help us do!&lt;/p&gt;

&lt;h1&gt;
  
  
  Fix non-accessible colors
&lt;/h1&gt;

&lt;p&gt;In Chrome 86, DevTools now proposes a color suggestion feature in the &lt;strong&gt;Styles&lt;/strong&gt; pane. &lt;br&gt;
Here we have a low-contrast problem for &lt;code&gt;h1&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open the color selector of the color property &lt;/li&gt;
&lt;li&gt;in the expanded &lt;strong&gt;Contrast Ratio&lt;/strong&gt; section, look at suggestions - to make the contrast AA or AAA compliant &lt;/li&gt;
&lt;li&gt;just click on the suggestion to apply it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--loXJwhUA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ld6oi1g05uox17y2kf58.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--loXJwhUA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ld6oi1g05uox17y2kf58.gif" alt="Alt Text" width="880" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Identify color contrast problems
&lt;/h1&gt;

&lt;p&gt;Here's another feature that helps us make websites more accessible. Since Chrome 87, we now have an easy way to identify color contrast problems in the &lt;strong&gt;CSS Overview&lt;/strong&gt; panel:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;access a list of texts on the page with low color contrast &lt;/li&gt;
&lt;li&gt;click on the low color contrast problem and the list of items with this problem is displayed at the bottom&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P0eKm_e9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fil4tg9fcn8j9wwg1425.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P0eKm_e9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fil4tg9fcn8j9wwg1425.png" alt="Alt Text" width="880" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that the &lt;strong&gt;CSS Overview&lt;/strong&gt; panel is still experimental. If you wish, you must activate it as described below :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;⚙️&lt;/strong&gt; Open the &lt;strong&gt;Settings&lt;/strong&gt; of the Chrome DevTools.&lt;/li&gt;
&lt;li&gt;🧪 Open the &lt;strong&gt;Experiments&lt;/strong&gt; tab from the left sidebar.&lt;/li&gt;
&lt;li&gt;☑ Check the &lt;strong&gt;CSS Overview&lt;/strong&gt; checkbox.&lt;/li&gt;
&lt;li&gt;🎉 The &lt;strong&gt;CSS Overview&lt;/strong&gt; panel is now available in your DevTools, enjoy his features !&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Debug grid layouts
&lt;/h1&gt;

&lt;p&gt;Since version 87, Chrome DevTools provides better support for debugging CSS grids. We can now access a &lt;strong&gt;Grid&lt;/strong&gt; section in the &lt;strong&gt;Layout&lt;/strong&gt; pane of DevTools. This section contains 2 sub-sections:&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;Overlay display settings&lt;/strong&gt;, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Show/hide the line labels for each grid overlay&lt;/li&gt;
&lt;li&gt;Show/hide the line numbers for each grid overlay&lt;/li&gt;
&lt;li&gt;Show/hide the line names for each grid overlay (in the case of grids with line names)&lt;/li&gt;
&lt;li&gt;Manage more precisely what should be displayed: track sizes, area names, extend grid lines.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Grid Overlays&lt;/strong&gt; section contains a list of all the grids present on the page with a checkbox to select the ones to debug.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uRYmHS4x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8ad2xb7mb76av2sqz1zs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uRYmHS4x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8ad2xb7mb76av2sqz1zs.png" alt="Alt Text" width="880" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that, in the &lt;strong&gt;Elements&lt;/strong&gt; panel, all HTML elements with &lt;code&gt;display: grid&lt;/code&gt; or &lt;code&gt;display: inline-grid&lt;/code&gt; applied now have a &lt;code&gt;grid&lt;/code&gt; badge next to them, you can click on these badges to display grid debugging labels, lines, names and so on.&lt;/p&gt;

&lt;h1&gt;
  
  
  Group CSS properties
&lt;/h1&gt;

&lt;p&gt;Chrome 87 also introduced a nice little feature: in the &lt;strong&gt;Computed&lt;/strong&gt; pane, it is now possible to group CSS properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;check the box &lt;strong&gt;Group&lt;/strong&gt; in top right corner&lt;/li&gt;
&lt;li&gt;all properties of the focused HTML element are now grouped by type : Layout, Appearance, Grid, ...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5HhH2Y3J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4aaam7wv7f9rl1ysl5ly.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5HhH2Y3J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4aaam7wv7f9rl1ysl5ly.png" alt="Alt Text" width="880" height="493"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Stay tuned for the next tips and thanks for reading 😉&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>chrome</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Svelte, why so much hype ?</title>
      <dc:creator>Anthony Le Goas</dc:creator>
      <pubDate>Mon, 18 May 2020 15:06:14 +0000</pubDate>
      <link>https://dev.to/zenika/svelte-why-so-much-hype-2k61</link>
      <guid>https://dev.to/zenika/svelte-why-so-much-hype-2k61</guid>
      <description>&lt;p&gt;Since the release of version 3 in April 2019, Svelte has been in the news all the time. But why? What fuels this popularity? What is new about it? Can Svelte be seen as the successor to the trendy front-end JavaScript frameworks? So many questions that I will try to answer through this article.&lt;/p&gt;




&lt;h1&gt;
  
  
  What is Svelte ?
&lt;/h1&gt;

&lt;p&gt;Svelte is a component-oriented JavaScript library like React and VueJS for example. Like most popular front-end JS libraries, Svelte offers a lightweight framework, with powerful features and syntactic sugar to make the developer's job easier. The main difference with Svelte is the library internal engine, because &lt;strong&gt;Svelte is primarily a compiler&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Rich Harris
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyotun7kca9qhcx467fd2.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyotun7kca9qhcx467fd2.jpeg" alt="Rich Harris, creator of Svelte"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  An outstanding personality
&lt;/h2&gt;

&lt;p&gt;Svelte was developed by Rich Harris, Graphics Editor at the New York Times. He is best known for developing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://ractive.js.org/" rel="noopener noreferrer"&gt;Ractive&lt;/a&gt;, a template-driven UI library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rollupjs.org/guide/en/" rel="noopener noreferrer"&gt;Rollup&lt;/a&gt;, a module bundler&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://buble.surge.sh/" rel="noopener noreferrer"&gt;Bublé&lt;/a&gt;, an ES2015 compiler&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Svelte, Rich Harris is not at his first attempt at creating a JavaScript library.&lt;/p&gt;

&lt;p&gt;On top of his developer skills, Rich is also very active in the JavaScript community. Very active on &lt;a href="https://twitter.com/Rich_Harris" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, he participates in discussions about the JavaScript ecosystem, often with a very strong opinion and good repartee. He's also an excellent and inspiring speaker who travels to meetings and conferences to talk about Svelte. I highly recommend his talks, especially this one about reactive programming:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/AdNJ3fydeao"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Undeniably, his presence on social media and in meetups greatly contributes to Svelte's fame and make people talk about it (for good or ill), bringing the most interested ones to discover Svelte.&lt;/p&gt;

&lt;h2&gt;
  
  
  History
&lt;/h2&gt;

&lt;p&gt;Svelte has been the talk of the town in recent months, and its popularity has risen sharply since April 2019, when version 3 was released. The project has now reached 34k stars on &lt;a href="https://github.com/sveltejs/svelte" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; ! 🤩&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bestofjs.org/projects/svelte" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftqbr2look92v0xfyteyl.png" alt="https://bestofjs.org/projects/svelte"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But Svelte is nothing new. Though much reactions focus on version 3 these days, the project started in 2016. Why did we have to wait for version 3 to hear about it? Well, because Svelte version 3 focuses on two key points that most developers worry about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simplicity of syntax&lt;/li&gt;
&lt;li&gt;Reactivity&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Rich Harris criticizes about frameworks
&lt;/h2&gt;

&lt;p&gt;When version 1 of Svelte was released, Rich Harris published an article "Frameworks without the framework: why didn't we think of this sooner?" in which he points out a number of problems with current frameworks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Weight of applications&lt;/li&gt;
&lt;li&gt;Poor performances&lt;/li&gt;
&lt;li&gt;Lack of interoperability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://svelte.dev/blog/frameworks-without-the-framework" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fww03afoipe2xl70nep7n.png" alt="https://svelte.dev/blog/frameworks-without-the-framework"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this 2016 article, he imagines that in 2018, front-end developers would  have entirely given up frameworks that work at runtime.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Wait, this new framework has a runtime? Ugh. Thanks, I'll pass.  -  &lt;em&gt;front-end developers in 2018&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From where he stands &lt;strong&gt;web applications embed too much code. This is a reality and it has a big impact on their performances&lt;/strong&gt;. The time lapse before a possible interaction with the web application you want to access, the famous "&lt;a href="https://web.dev/interactive/" rel="noopener noreferrer"&gt;time to interactive&lt;/a&gt;", is not only related to the network time needed to download the application's content but also to the time spent by the JavaScript engine to parse and interpret the code. &lt;strong&gt;Motivated by this observation, Rich Harris decided to create Svelte and make it a compiler and not a runtime framework.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rich Harris likes to compare Svelte to React or VueJS, he especially likes to provoke them a little and remind that they are not really reactive and that on this point, Svelte has a head start. This seems to be part of his communication strategy to promote Svelte and maybe that's also why we talk about it so much. But why does he feel that React and VueJS are not reactive?&lt;/p&gt;

&lt;p&gt;Reactivity is what occurs when an event happening in our application (for example a button is clicked or a value is saved) triggers another action (update the display for example) : a piece of code reacts accordingly and updates the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model" rel="noopener noreferrer"&gt;DOM&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The reactivity of React and VueJS is based on a virtual DOM system.&lt;/strong&gt; It is actually a JavaScript object that contributes to the internal functioning of these two libraries. It is a virtual representation of the real DOM and is used to make comparisons without having to manipulate the DOM API. Thus, frameworks can detect if there are changes to be made to the real DOM and generate a new rendering for the user.&lt;/p&gt;

&lt;p&gt;In React and VueJS, reactivity works as follows: when a change is detected in the state of a component, the Virtual DOM is updated accordingly and compared to its previous version. If a difference is detected, then an update of the real DOM must be done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The virtual DOM works well&lt;/strong&gt;, the comparison algorithm is well optimized, &lt;strong&gt;its use is suitable for the majority of uses&lt;/strong&gt; but when we have performance needs in terms of rendering, especially if we work around data visualization (&lt;a href="https://en.wikipedia.org/wiki/Data_visualization" rel="noopener noreferrer"&gt;DataViz&lt;/a&gt;) as Rich Harris does at the New York Times, then it is not enough. He also presents the limits of the virtual DOM in a blog article:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://svelte.dev/blog/virtual-dom-is-pure-overhead" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frxg2mwoxyd7yojqm6r50.png" alt="https://svelte.dev/blog/virtual-dom-is-pure-overhead"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Svelte's stances
&lt;/h1&gt;

&lt;h2&gt;
  
  
  A compiler to embed only the essentials
&lt;/h2&gt;

&lt;p&gt;React, Vue, Angular, to name a few, work at the runtime. So for your application to work, a large amount of the framework code is embedded in the bundle sent to the user, even for a basic "Hello World". The code written by the user is somehow embedded in an application to work with the code of the framework.&lt;/p&gt;

&lt;p&gt;Svelte has a different approach, and that's what compilers are all about. What Svelte offers is the ability for developers to write code using a particular syntax, and Svelte will only be the tool that can understand that code and generate standard browser-optimized JavaScript. Since it is a compiler, no unessential code will be embedded in the application. The final bundle will only contain what the developer has written following the Svelte syntax, translated by the compiler. &lt;strong&gt;Svelte only translates instructions into browser-optimized code during the build phase.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Write less to produce more
&lt;/h2&gt;

&lt;p&gt;Svelte's foremost promise is &lt;strong&gt;to allow developers to write less code&lt;/strong&gt;. We, developers, spend most of our days reading and writing code. Every line of code we write contributes to the technical debt we accumulate on our projects and generates new bug possibilities. In fact, it is common to hear that the best possible code is the code that isn't written.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The more code a file contains, the greater the cognitive effort required to understand what is being done.&lt;/strong&gt; To remedy this, we take time to do some refactoring to simplify understanding: we mutualize pieces of code, add comments, etc. Sometimes, all this leads to writing even more code, and then, we enter a kind of vicious circle that hurts productivity.&lt;/p&gt;

&lt;p&gt;Finally, and everyone will agree on this fact, &lt;strong&gt;writing more code takes more time&lt;/strong&gt;, leaving less time for other tasks, especially optimization. That's why &lt;strong&gt;one of Svelte's goals is to allow developers to write as little code as possible&lt;/strong&gt; while still ensuring high readability.&lt;/p&gt;

&lt;p&gt;Rich Harris wrote about it on Svelte's blog. He presents the syntax of Svelte v3 and has fun comparing it to React and VueJS:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://svelte.dev/blog/write-less-code" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Foi7vus4ps8jobhffkhxy.png" alt="https://svelte.dev/blog/write-less-code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Increased reactivity
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Reactivity is at the heart of Svelte&lt;/strong&gt;, it is certainly the main point of this version 3 and the feature that caused this sudden rise of popularity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Svelte, the idea is to put reactivity back into the language.&lt;/strong&gt; Reactivity in Svelte is based on the assignment of variables, which means that &lt;strong&gt;defining a variable in Svelte already makes it reactive&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let's not forget that Svelte is a compiler and thanks to this, &lt;strong&gt;it can, in the build phase, insert instructions in the code that will be used for reactivity&lt;/strong&gt;. The added instructions simply say "each time an assignment occurs, calculate the dependencies or side effects, and update the DOM accordingly". Svelte being a compiler, &lt;strong&gt;it can calculate the side effects of each user action at the build phase, something its competitors working at runtime can't do&lt;/strong&gt;. Thanks to this, Svelte directly targets the places in the DOM where to make changes. The responsibility for reactivity is finally borne by the compiler, not by the browser. It's very efficient and above all it's extremely powerful!&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Almost a year after the release of its version 3, Svelte continues to make people talk. Rich Harris, especially through his communication, is obviously the main architect of this. He initiated a project that, at a time when developers are looking for new ways to optimize, allows to reduce the size of web applications and enjoy high performance rendering. &lt;strong&gt;Svelte keeps its promises of simplicity of writing and reactivity; this contributes to its continuous notoriety.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compiler frameworks uncover new horizons for the future of the web.&lt;/strong&gt; Are we heading towards a decline of front-end frameworks as we know them today to make way for compilers? When will this happen? How? Who will be the main actors? It's far too early to say, all this will take time, but one thing is sure, &lt;strong&gt;Svelte contributes strongly to this new momentum and makes the web move forward&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
