News for hackers. Stuff that matters.
Re:Not only for technical computing: changing the narrative ... by choeger on Thursday January 24, 2019 @02:16PM (#18991941)
But it has no (sound, complete) static typing!

Tbh, u think we kind of see a new generation here:

* Rust improved over C++ and C

* Julia improved over python

But if you take a closer look you see that neither actually approach the radical completeness of their actual competitors:

* Julia does not fully embrace its lisp heritage (I was told the developers where old lispers)

* Rust does not fully embrace Haskell's type discipline

So what do you think, is there enough room between rust and Haskell and Julia and lisp for yet another iteration?

Re:Not only for technical computing: changing the narrative ... by ninjaaron on Thursday January 24, 2019 @04:42PM (#18993288)
There are four guys credited as the creators of Julia, but the guy who sort of had the initial idea, Jeff Bezanson, is definitely a lisp enthusiast. He created his own dialect of scheme (like every lisp enthusiast), femtolisp https://github.com/JeffBezanson/femtolisp

This lisp is still used as part of the Julia parser.

Julia isn't really a lisp and it isn't trying to be, though it does have some things in common:

* AST macros

* everything is an expression and has a value

* while infix notation is supported for operators, they are just normal functions.

Still, the language is very much array-oriented and, as far as I know, there isn't even a linked list implementation in the standard library. It's a side-effect of trying to be fast. (pun strongly intended.)

Re:Not only for technical computing: changing the narrative ... by jjnoakes on Thursday January 24, 2019 @03:26PM (#18992567)
For the uneducated among us who are considering learning Julia (and who have decent type system knowledge), where does Julia fall short for static type enthusiasts?
Re:Not only for technical computing: changing the narrative ... by ninjaaron on Thursday January 24, 2019 @04:32PM (#18993211)
You don't have to declare types, but they are enforced when you do declare them. I'm not exactly how this is bad. Anyway, you can get into a scenario like you do with Python where type errors occur at runtime if you're not using a typed function.

I'm fine with it, as you might expect from the fact that I'm the author of the linked post.

Re:Not only for technical computing: changing the narrative ... by choeger on Saturday January 26, 2019 @06:34AM (#19005881)
Julia checks types dynamically. It's type system depends on the evaluation first. So any errors are catched eventually, but not on your desk.
Re:Not only for technical computing: changing the narrative ... by ninjaaron on Tuesday February 05, 2019 @05:29AM (#19084133)
This is only partially true. Almost all types are known at compile time because Julia was designed with static evaluation in mind. Many type errors are caught at compile time.