When comparing Julia vs F#, the Slant community recommends Julia for most people. In the question“What is the best programming language to learn first?” Julia is ranked 12th while F# is ranked 30th. The most important reason people chose Julia is:
Julia runs almost as fast as (and in fact in some cases faster than) C code.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Almost as fast as C
Julia runs almost as fast as (and in fact in some cases faster than) C code.
Pro Strong dynamic typing
Dynamic and high level, but does not isolate the user from properly thinking about types. Can do explicit type signatures which is great for teaching structured thinking.
Pro Great standard REPL
Out of the box Julia has a very good Read-Eval-Print-Loop, which both completes functions and types, as well as completion based on history of previous statements. It integrates well with the shell and has an excellent online help system.
Pro Nice regular syntax
Julia code is easy to read and avoid a lot of unnecessary special symbols and fluff. It uses newline to end statements and "end" to end blocks so there is no need for lots of semicolons and curly braces. It is regular in that unless it is a variable assignment, function name always comes first. No need to be confused about whether something is a method on an object or a free function.
Unlike Python and Ruby, since you can annotate the types a function operates on, you can overload function names, so that you can use the same function name for many data types. So you can keep simple descriptive function names and not have to invent artificial function names to separate them from the type they operate on.
Pro Written in itself
The Julia language is written in itself to a much larger extent than most other languages, so a budding programmer can read through the depths of the standard library and learn exactly how things work all the way down to the low-level bit-twiddling details, which can be englightening.
Pro Powerful n-dimensional arrays
Julia has built in n-dimensional arrays similar in functionality as Python's numpy.
Pro Function overloading
You can have multiple functions with the same name, but doing different things depending on function arguments and argument types.
Pro Amazing learning curve
Julia requires no boilerplate code – a beginner needs to write only the parts they care about. This combined with the REPL provides the best learning experience available.
Pro High-level code
Julia provides a high level of abstraction, making platform-independent programming trivial and easing the learning curve.
Pro Function and operator broadcasting
You can perform operations on scalars, for example 2^2 or [1, 2, 3].^2.
Pro Strong Metaprogramming
Julia allows you to edit Julia code in the language itself and write powerful macros. It is a great introduction to metaprogramming features
Pro REPL-based
The Julia REPL allows quickly testing how some code behaves and gives access to documentation and package management immediately in the REPL.
Pro Concise syntax
F#'s syntax tends to be terse while remaining very readable and easy to understand without being a chore to write.
Pro Easier transition from other paradigms
Since F# is not a purely functional language, it lends itself to being more easily picked up by programmers that have experience with other paradigms.
Pro .NET Interoperability
Since F# runs on the Common Language Runtime or CLR, it has access to the entire .NET Framework, as well as libraries written in other .NET languages such as C#, VB.NET, and C++/CLI.
Pro Multiplatform, it runs on .Net Core
Forget Xamarin and Mono. F# now runs on the multiplatform .Net Core!
Pro You can run F# in the browser
Thanks to a project like Fable, you can write and run your client app in F# and run it over JavaScript. It allows you to share code between your server and client.
Pro Natively supported by Visual Studio
This is a .Net language natively supported by Visual Studio. Though it is not as tooled up as C# the support is still substantial. In particular, C# deployment scenarios can be enabled for it with small C# wrapper projects. Integration with Visual Studio provides: IntelliSense, debugging, projects an other features.
Pro Fall into the pit of success
F# directs you into a workflow where the right way is the path of least resistance.
Coming from a C# background, its restrictions might feel arbitrary at first (e.g., what do you mean my code has to be in dependency order!? Arbitrary alphabetical or bust!), but you'll soon realize that your code is cohesive, concise and consistent in a way that it never was before - and you can compile and run with confidence!
Pro F# is supported by Xamarin
Thanks to Xamarin, F# is a functional language that you can use to build for iOS, Android and Windows.
Cons
Con Young language with limited support
Julia was released in 2012. Due to its short existence, there is a limited amount of support for the language. Very few libraries exist as of yet, and the community is still quite small (though growing quickly).
Con 1-based array and column major
This design probably comes from Matlab, but makes it unnatural to interface C and C++ and python.
Con Has no ad-hoc polymorphism (á la Type Classes)
You have generics, you have interfaces, you have inheritance, you have a lot of things at your disposal but you don't have Type Clases. They can be emulated using some clever constructs but there's nothing like having the real thing.
Con Infested with OOP
Still relying on .NET OOP libraries.