{"id":921,"date":"2021-07-08T03:02:56","date_gmt":"2021-07-08T02:02:56","guid":{"rendered":"https:\/\/www.thesixsides.com\/blog\/?p=921"},"modified":"2022-07-29T17:01:31","modified_gmt":"2022-07-29T16:01:31","slug":"javascript-is-joyful","status":"publish","type":"post","link":"https:\/\/www.thesixsides.com\/blog\/2021\/07\/08\/javascript-is-joyful\/","title":{"rendered":"JavaScript is Joyful"},"content":{"rendered":"\n<p>When I introduce people to programming\u00a0they sometimes feel overwhelmed by having to make things just right. They find that you have to be much more explicit with a computer than they are used to\u2014in addition to the countless cryptic compiler messages. When you start throwing additional concepts at them, like type systems and memory management, it usually exacerbates their feeling of drowning. Then I tell them about JavaScript, there\u2019s suddenly not as much to worry about. You don\u2019t need to learn the command line, you don\u2019t need to worry about memory management and type systems, it\u2019s forgiving, it\u2019s joyful.\u00a0<\/p>\n\n\n\n<p>Yes, there is a compiler but it\u2019s verbose and you can get away with a lot. Okay, you really want a type system? Checkout TypeScript it gets you most of the way there. Memory management? Just don\u2019t go allocating million length arrays too often and you\u2019ll be fine! JavaScript presents an incredibly low bar that I think a lot of people don&#8217;t acknowledge. And the direction one can take JavaScript is too multi-numerous for beginners to ignore.<\/p>\n\n\n\n<p>There is simply a massive ecosystem for JavaScript, every computer runs JavaScript in its browser and through this universal portal one can deliver their idea however simple or complex it may be. Oh, you want a dedicated desktop application? Look no further than <a href=\"https:\/\/www.electronjs.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Electron<\/a> where \u201cif you can build a website, you can build a desktop app\u201d. You want to target phones? There\u2019s <a href=\"https:\/\/reactnative.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">React-native<\/a> and a slew of other *-native projects with the same aim. And you\u2019ll need a server for these too so check out <a href=\"https:\/\/nodejs.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">NodeJS<\/a>!&nbsp;<\/p>\n\n\n\n<p>JavaScript gets a lot a flak for being not thought through and insufficient for Real Engineering\u00ae. Yes, <a rel=\"noreferrer noopener\" href=\"https:\/\/thenewstack.io\/brendan-eich-on-creating-javascript-in-10-days-and-what-hed-do-differently-today\/\" target=\"_blank\">it was written in 10 days<\/a>, perhaps we shouldn&#8217;t have built so much around it. The tools and frameworks often evolve and change too quickly to reasonably keep up with. Despite being an ascribed JavaScript junkie I certainly acknowledge a lot of those criticisms and try to warn people about them. I\u2019m quick to share two talks from the early 2010\u2019s and laugh about them, \u201c<a href=\"https:\/\/www.youtube.com\/watch?v=3se2-thqf-A\">Wat &#8211; Destroy All Software<\/a>\u201d and \u201c<a href=\"https:\/\/www.youtube.com\/watch?v=et8xNAc2ic8\">WTF JS<\/a>\u201d.\u00a0<\/p>\n\n\n\n<p>When you get past these imperfections it feels as though the world opens up before you. The only expression that comes my mind when I give into this is that JavaScript is Joyful.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When I introduce people to programming\u00a0they sometimes feel overwhelmed by having to make things just right. They find that you have to be much more explicit with a computer than they are used to\u2014in addition to the countless cryptic compiler messages. When you start throwing additional concepts at them, like type systems and memory management, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[],"class_list":["post-921","post","type-post","status-publish","format-standard","hentry","category-code"],"_links":{"self":[{"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/posts\/921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/comments?post=921"}],"version-history":[{"count":2,"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/posts\/921\/revisions"}],"predecessor-version":[{"id":936,"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/posts\/921\/revisions\/936"}],"wp:attachment":[{"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/media?parent=921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/categories?post=921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thesixsides.com\/blog\/wp-json\/wp\/v2\/tags?post=921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}