# Programming Languages in the Wild 1) For discussion, you chose the programming language: Javascript 2) This language is: General Purpose (At least no) 3) Is this language Turing complete?: Yes ## Uses 4) For what killer app, projects, or historical reason is this language best known or used ?: This language has been historically used for web development and scripting on the web. It was originally designed to allow users to develop in a common language between the client and server, yet due to inadequate marketing it was relegated to mainly client side scripting and Java took over the backend. Now, because of how well integrated it is into modern browsers, many front-end engineers rely on the capabilities of javascript to handle client side rendering. Its popularity has sparked frameworks such as React and Angular for systematic manipulation of HTML and CSS. Although Java is still predominantly used for server side logic, Javascript(JS) has been making a resurgence lately with frameworks such as Node.js. 5) Is the answer to 4, which the language is known for, due to language features, community support or libraries, or something else?: Perhaps the main reason as to why Javascript is so ubiquitous stems from the fact that it is almost universally supported. Any _modern_ computer comes with a browser that has the interpreter pre installed. Given that web applications have practically relied on JS for decades, the incentive to use any other web language is pretty minimal. Currently there is massive support for JS, whether that be through thousands of community libraries or through constant revisions of the JS standard (as regulated by ECMAScript). The fact that their is also a JIT Compiler for it also makes the language practically fast as well! 6) As a programmer, what is easy to do in the language?: Using JS, it is fairly trivial to manipulate the DOM Tree and edit HTML properties. Furthermore, asynchronous requests are fairly easy to handle as the standard library supports many native functions for these. With its latest updates, JS provides users with a multitude of programming paradigms, so those comfortable with imperative, functional, Object Oriented are all able to leverage the benefits of those styles of programming. 7) What does the method to do the answer to 6 look like in general purpose languages like c or java?: With regards to DOM Tree manipulation, languages like c or java have legitimate difficulties accessing this data. I suppose it is possible to write a c program that curls a page, opens the html document and then does regex parsing to find sought after components, but this is excessive. With C it is also the responsibility of the user to adequately handle asynchronous behavior as much of this has been abstracted away for a JS user. 8) Does the programmer have to give up anything to gain the benefits of this language?: Due to the amount of abstractions it is remarkably difficult to do low-level memory manipulation in Javascript. In fact as it is run in the browser, access to working directly with the OS is likely disabled so the act of even opening or writing a file is unfathomable in the language.