{"id":7215,"date":"2020-03-02T16:37:19","date_gmt":"2020-03-02T16:37:19","guid":{"rendered":"https:\/\/www.thecoderschool.com\/?p=7215"},"modified":"2022-10-13T20:49:58","modified_gmt":"2022-10-13T20:49:58","slug":"the-julia-language-a-new-pillar-of-scientific-computing","status":"publish","type":"post","link":"https:\/\/www.thecoderschool.com\/blog\/the-julia-language-a-new-pillar-of-scientific-computing\/","title":{"rendered":"The Julia Language &#8211; A New Pillar of Scientific Computing"},"content":{"rendered":"<p><strong>By Camille D., Age 17<br \/>\n<\/strong><\/p>\n<p><img decoding=\"async\" style=\"float: right; width: 200px;\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/6\/69\/Julia_prog_language.svg\/1200px-Julia_prog_language.svg.png\" \/><br \/>\nDeveloped in 2009 and made available in 2012, Julia is one of the fastest-growing languages in the industry. As it routinely makes an appearance in language popularity rankings, there is a potentiality for the language to outshine languages such as Python in the realm of computational science and general programming.<\/p>\n<p>Julia was created by Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman, with a collective desire to unify the best amenities of all the big languages, from the \u201cspeed of C\u201d to the \u00a0\u201cdynamism of Ruby.\u201d It was crafted with flexibility and versatility in mind &#8211; the language boasts the ability of its users to \u201cwrite an algorithm \u2026 and apply it to an infinite lattice of types.\u201d<\/p>\n<p>No language is perfect; you are always making a trade-off when choosing a language to learn. A C++ pupil will enjoy the language\u2019s high speed, but will miss out on the straightforwardness and garbage collection capabilities of Java. There will never be such thing as a language that will solve every issue or be free of any shortcomings whatsoever. Nonetheless, programming languages have evolved rapidly, and Julia exemplifies how far they have come. Here are a few reasons to choose Julia.<\/p>\n<p>Julia is fast and high-performing. Applications created with Julia use the <a href=\"https:\/\/llvm.org\/\">LLVM Compiler Infrastructure<\/a> to efficiently compile the code to machine language for multiple different platforms. When writing code in a compiled language, you must explicitly define the types of variables you will use and the operations intended to be performed on them. Since the hardware will know exactly what to do as a result, the code will be executed quickly and efficiently. On the other hand, the CPU does not have a concept of the \u201cvariables\u201d you use when writing in an interpreted language. The interpreter must provide instructions to the CPU about what the variables contain (i.e. int vs. float data type), forcing the CPU to wait. This is what makes interpreted languages slow relative to compiled languages such as C. Julia falls somewhere in the middle of the spectrum of compiled and interpreted languages. Julia\u2019s compiler doesn\u2019t have to have the information previously mentioned, but it is prepared for when a function is called and acquires all the material promptly. From the information provided, the compiler puts together fast and precise CPU instructions.<\/p>\n<p>Julia is packed with immense capabilities in data science and numerical computing. When using Julia, it is evident that conventional mathematics become closely bound with programming. The Julia REPL (a programming environment in which a user types in a command and can easily see the result of their command) gives access to symbols often used in mathematics, including Greek letters and subscripts. The symbols are inserted by typing a backslash \\, followed by a string corresponding to the character. For example, entering \u201c\\Gamma\u201d will return the Gamma symbol \u0393.<\/p>\n<p>A rather unique feature that comes with Julia is function composition, which is achieved by the operator (\u2218). For example, writing (sqrt \u2218 *)(5, 2) will multiply two numbers, 5 and 2, and then find the square root of the result. Julia is also packed with external call support, and can link with a throng of languages including Python, Java, C++, and R. Python applications can call Julia through <a href=\"https:\/\/github.com\/JuliaPy\/pyjulia\">PyJulia<\/a>, and R applications can call it through through its interface, <a href=\"https:\/\/cran.r-project.org\/web\/packages\/JuliaCall\/index.html\">JuliaCall<\/a>.<\/p>\n<p>Julia is versatile, which is the principal reason why it is so ahead in the game. It provides a wealth of tools and frameworks for deep learning, data visualization, and graphs, and capabilities for clustering, trees, and generalized linear models. Even with a seemingly infinite capacity for mathematical transformations, however, Julia is excellent for general programming, as users can write UIs, statically compile code (even though it is generally dynamic &#8211; types of variables aren\u2019t known until runtime), and deploy it on a webserver.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Camille D., Age 17 Developed in 2009 and made available in 2012, Julia is one of the fastest-growing languages in the industry. As it routinely makes an appearance in language popularity rankings, there is a potentiality for the language to outshine languages such as Python in the realm of computational science and general programming. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.thecoderschool.com\/blog\/the-julia-language-a-new-pillar-of-scientific-computing\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;The Julia Language &#8211; A New Pillar of Scientific Computing&#8221;<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-7215","post","type-post","status-publish","format-standard","hentry","category-coder-blog","entry"],"_links":{"self":[{"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/posts\/7215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/comments?post=7215"}],"version-history":[{"count":1,"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/posts\/7215\/revisions"}],"predecessor-version":[{"id":11986,"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/posts\/7215\/revisions\/11986"}],"wp:attachment":[{"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/media?parent=7215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/categories?post=7215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thecoderschool.com\/blog\/wp-json\/wp\/v2\/tags?post=7215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}