{"id":260,"date":"2011-12-21T08:20:17","date_gmt":"2011-12-21T08:20:17","guid":{"rendered":"http:\/\/gusclass.com\/blog\/?p=260"},"modified":"2011-12-21T17:15:57","modified_gmt":"2011-12-21T17:15:57","slug":"javascript-the-programming-language-of-the-future","status":"publish","type":"post","link":"http:\/\/gusclass.com\/blog\/2011\/12\/21\/javascript-the-programming-language-of-the-future\/","title":{"rendered":"JavaScript: the programming language of the future"},"content":{"rendered":"<p>I have recently been gushing about how JavaScript is changing everything for developers and typically am greeted with an odd glare when I do this.\u00a0 So, I am going to summarize the reasons my mind has been blown by JavaScript:<\/p>\n<ul>\n<li>Performance<\/li>\n<li>Simplicity<\/li>\n<li>Flexibility<\/li>\n<\/ul>\n<p><strong>Performance<\/strong><\/p>\n<p>Back in the day, JavaScript was doggedly slow.\u00a0 Now, people are MOVING to JavaScript when they need better perf.\u00a0 Seriously, if you haven&#8217;t checked it out already, read more about <a href=\"http:\/\/nodejs.org\">Node.JS<\/a>.\u00a0 In short, Node.JS is a server side JavaScript server.\u00a0 It may sound counterintuitive, but Node.JS is bloody fast and can handle tons and tons of connections. Ryan Dahl does a much better job than I do at explaining the performance and benefits of Node.js<\/p>\n<p><iframe loading=\"lazy\" src=\"http:\/\/www.youtube.com\/embed\/jo_B4LTHi3I\" frameborder=\"0\" width=\"640\" height=\"360\"><\/iframe><\/p>\n<p>Bonus nerd tip: as of December 12th, you can now deploy Node.JS to Azure.<\/p>\n<p>The next big thing that is driving perf up is hardware accelleration in JavaScript.\u00a0 As of IE9&#8217;s release, you have hardware accellerated graphics in the browser, particularly with SVG.\u00a0 Put simply, &#8220;dude, you get GPU shaders in JavaScript&#8221; &#8211; it&#8217;s probably only a matter of time until we have GPGPU in browser.<\/p>\n<p>The final special perf thing worth mentioning about JavaScript: it&#8217;s totally asynchronous.\u00a0 Calling a\u00a0function will immediately begin execution of that function and the calling code will continue to execute!\u00a0 Simple idea, but a big big deal.<\/p>\n<p><strong>Simplicity<\/strong><\/p>\n<p>JavaScript is a dead simple language.\u00a0 It&#8217;s particularly simple in that:<\/p>\n<ul>\n<li>Nothing is strongly typed &#8211;\u00a0no casts<\/li>\n<li>Objects serialize to JSON &#8211; your data travels for free, no baggage fees!<\/li>\n<li>Errors are forgiven &#8211; you can put code into a function that will not correctly execute&#8230; call the function, and your code does not crash!\u00a0One more thing that makes the asynchronous nature of JavaScript magical.\u00a0 Execution continues.<\/li>\n<\/ul>\n<p>Designers love working in JavaScript, heck, JavaScript was created <em>for<\/em> them.\u00a0 This is not just dumb luck, JavaScript is a simple language that non-developer types can use and tinker with because the tools for using and tinkering are the same ones they create in.\u00a0 The marriage between HTML and JavaScript also encourages clean separation of presentation from function and application logic.<\/p>\n<p><strong>Flexibility<\/strong><\/p>\n<p>Write once, run everywhere.\u00a0 This promise came from Sun when they released the Java language and then developers responded, &#8220;write once, rewrite everywhere,&#8221; Java took a while to live up to Sun&#8217;s aspirations.<\/p>\n<p>But I digress, JavaScript, for better or worse, will run on anything that has a Web browser.\u00a0 This is a big deal.\u00a0 Really big deal.\u00a0 There&#8217;s no other language that you can code in that doesn&#8217;t require any setup on the client and that will execute in all clients, and can dynamically get its components from the cloud.<\/p>\n<p><strong>Conclusions<\/strong><\/p>\n<p>OK, so you can&#8217;t do everything in JavaScript.\u00a0 You can&#8217;t.\u00a0 But, JavaScript is showing so much promise&#8230; There are\u00a0more and more\u00a0applications that are built entirely from JavaScript and HTML and the translatability of these tools to developers means that this trend will continue.\u00a0 I&#8217;m keeping my eye on you JavaScript, sneaky, sneaky, JavaScript.\u00a0 One more video worth watching &#8211; <a href=\"https:\/\/codebits.eu\/intra\/s\/session\/178\">My Programming Language is better than yours<\/a>\u00a0by Artur Ventura. In that presentation, some dude who is much smarter than I am explains the history of programming languages. When he gets to JavaScript, he pauses, &#8220;this language is cute&#8221;.\u00a0 Just sayin&#8217;, go out there, play with JavaScript, it is going places.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have recently been gushing about how JavaScript is changing everything for developers and typically am greeted with an odd glare when I do this.\u00a0 So, I am going to summarize the reasons my mind has been blown by JavaScript:&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,16],"tags":[46,279],"amp_validity":null,"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/posts\/260"}],"collection":[{"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/comments?post=260"}],"version-history":[{"count":5,"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/posts\/260\/revisions"}],"predecessor-version":[{"id":276,"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/posts\/260\/revisions\/276"}],"wp:attachment":[{"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/media?parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/categories?post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/gusclass.com\/blog\/wp-json\/wp\/v2\/tags?post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}