Skip to content

Commit

Permalink
Merge pull request JuliaLang#79 from exercism/nextercism-blurb
Browse files Browse the repository at this point in the history
Add introductory blurb to config.json
  • Loading branch information
SaschaMann authored Oct 3, 2017
2 parents a607edd + 0b186b7 commit 5a34673
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 8 deletions.
1 change: 1 addition & 0 deletions config.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"language": "Julia",
"active": false,
"blurb": "Julia is an open-source high-level, dynamic programming language whose sweet spot is technical and scientific computing. It is convenient for day-to-day work and fast enough for high performance computing.",
"exercises": [
{
"uuid": "a668410d-41aa-4710-a68f-54521da6486d",
Expand Down
11 changes: 3 additions & 8 deletions docs/ABOUT.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
Julia is an open-source high-level, high-performance dynamic programming language designed for technical and scientific computing while also being effective for general-purpose tasks. It is convenient to use for daily work but also runs fast enough to be deployed for high-performance applications.
The creators of Julia want to eat their cake and have it too. As they describe in their blog post ["Why We Created Julia"](http://julialang.org/blog/2012/02/why-we-created-julia) they want the speed of C, the dynamism of Ruby, the familiar mathematical notation of Matlab. They want it to be their favourite things from their favourite languages. String processing like Perl. Glue like the shell. Powerful but not impenetrably complex.

Interesting features include:
- Large parts of [Julia's base library](https://github.com/julialang/julia) are written in Julia itself. Understanding and contributing to the Julia core does not require knowledge of another language.
- Easy to use interfaces to call libraries written in other languages, such as [C, Fortran](http://docs.julialang.org/en/stable/manual/calling-c-and-fortran-code/) and [Python](https://github.com/JuliaPy/PyCall.jl), directly.
- [Multiple dispatch](http://docs.julialang.org/en/stable/manual/methods/#man-methods)
- A dynamic, nominative and parametric [type system](http://docs.julialang.org/en/stable/manual/types/).
- Homoiconicity: Julia code can be represented in Julia itself, making it a good language to learn about [metaprogramming](http://docs.julialang.org/en/stable/manual/metaprogramming/).
Julia has a dynamic, nominative and parametric [type system](http://docs.julialang.org/en/stable/manual/types/). This allows writing dynamic code and specifying types if additional expressiveness is needed for simplification or performance increases. The language features multiple dispatch, meaning it chooses which method is called based on the types of each argument. This lets you write specific methods for certain types while providing generic fallbacks and is particularly useful for mathematical code, where it is not clear why an operation should belong to a specific argument.

The first public release was in 2012. You can find out more about the motivation behind it in the blog post ["Why We Created Julia"](http://julialang.org/blog/2012/02/why-we-created-julia) by the core developers.
[Metaprogramming](http://docs.julialang.org/en/stable/manual/metaprogramming/) is easy in Julia due to its homoiconicity, i.e. Julia code can be represented in Julia itself. Large parts of [Julia's base library](https://github.com/julialang/julia) are also written in Julia. Understanding and changing it does not require knowledge of another language. If a library you need to use is written in another language, such as [C, Fortran](http://docs.julialang.org/en/stable/manual/calling-c-and-fortran-code/) or [Python](https://github.com/JuliaPy/PyCall.jl), you can use simple interfaces to call them directly from your code.

Despite its young age, Julia is already being used in the real world in a variety of fields, such as but not limited to Finance, Data Science and Scientific Computing. You can find many showcase applications on [juliabloggers.com](http://www.juliabloggers.com/) and a list of publications about the language and its technical computing applications [here](http://julialang.org/publications/).

0 comments on commit 5a34673

Please sign in to comment.