# Programming Languages in the Wild 1) For discussion, you chose the programming language: Julia 2) This language is: Domain Specific 3) Is this language Turing complete?: I'm not sure ## Uses 4) For what killer app, projects, or historical reason is this language best known or used ?: Julia was first released in 2012 to be a high performing and expressive language for scientific computing, which involves understanding complex relationships of large amounts of data. The Julia benchmarks show it to be slightly slower than the general purpose language Rust and significally faster than other languages designed for mathematical computation, such as FORTRAN, Python, Matlab, R, and Mathematica. Recently it was used by researchers at the University of Copenhagen, Peking University, and Imperial College London to map global genetic diversity. This involved over 90,000 mitochrondial dna sequences for over 4,500 species. This project is important in the context of understanding the loss of biodiversity on earth. 5) Is the answer to 4, which the language is known for, due to language features, community support or libraries, or something else?: Yes! The reasearchers of this and other projects explicity say they chose Julia for its high level syntax and speed. High level programming is easy to understand because it is closer to human speech rather than procedural machine code. Because the speed of a program handling this much data can cost significally less money and product results faster, Julia is an attractive option. Also, its simple syntax means that it can be easy for new developers to use and create projects that are accessible for others to learn from and expand. 6) As a programmer, what is easy to do in the language?: It is easy to build complex data structures from its base strucutes of tuples, arrays, and dictionaries. This is well suited for its designed domain in scientific computing. 7) What does the method to do the answer to 6 look like in general purpose languages like c or java?: All data structures in c must directly manage the memory of the computer or involve outside libraries that implement them. The second option would then involve including the proper header files and compiling the dependencies properly. 8) Does the programmer have to give up anything to gain the benefits of this language?: Because Julia is a relatively new language, it does not have the same community as other older languages. Therefore, there is less support and stack overflow posts of fixing bugs. In addition, there are less libraries, which means that if you want to solve a more complex problem, you may the first person writing the solution in Julia.