Skip to content
pannous edited this page Oct 22, 2020 · 20 revisions

Julia is by far the most beautiful, powerful and promising new language on the horizon.

It does many things right like swift, but based on more mathematical and thus sounder fundamentals.

It even runs in wasm, 42MB with batteries included, tree shaking in AOT builds on the radar.

However it is struggling with some functional concepts such as currying: https://github.com/JuliaLang/julia/pull/24990#issuecomment-605531476

As noted by the zig community this is mostly the result of mixing imperative with functional principles. This need not be seen as problematic yet warrants further investigation.

Once they have decided upon which of the four proposals is most suitable it's time to introduce the it keyword as synonym or implemented as an alternative variant so that one gets the best of both worlds.

Things that could be better in Julia

Speeed

While Julia is potentially much faster than Python, practically it is very lagging, (using Unitful.DefaultSymbols takes 5 sec) ...

Nice pythonesque names

and / or keywords for the ugly && || (standard now in c++, swift)

data as first class citizen

Sadly, Julia does not treat general data as first class citizen, at least not as beautifully as js, where you can just define an object like

address={street:"blapath 1"}
contact={name:"James" address}
contact.number=12345

Such data definition an manipulation facilities look rather ugly in Julia with either immutable tuples, or horrible contact=Dict( :name => "James ) , where you can't even access the name with contact.name or contact["name"].

Proper/sane inheritance

Pair{String,String} isa Pair == false WTF

Types are not Covariant!
Point{Real} <: Point{Number} NOT!!

This leads to many GO like re-implementations!

Discoverability

dot syntax https://github.com/JuliaLang/julia/issues/37993

Use objects to find functions, FFS

using Dates
t=DateTime(2013,7,1,12)
Dates.year(t)

should be t.year

Other

include("lexer.jl") => include lexer.jl or just include lexer

Home

Philosophy

data & code blocks

features

inventions

evaluation

keywords

iteration

tasks

examples

todo : bad ideas and open questions

⚠️ specification and progress are out of sync

Clone this wiki locally