Hacker News new | ask | show | jobs
by ultrahate 3407 days ago
I'm really anxious for Julia to start taking packaging more seriously. Pkg2 situation is pretty terrible imo, and the pkg3 whispers just sort of strike me as offputting, since there's basically no timeline of when they'll make it to a stable 0.x release and the 1.0 is just a "when it's ready" situation.

Julia is one the most pleasant programming experiences I've had otherwise. It's the Lua I've always wanted, with just the right mix of Scheme, but not too much that it tastes Haskell-y.

But yeah, current packaging situation is awful.

Oh, that reminds me though, Julia has a lot of really incredible packages already. It's mindblowing how quick Julia went from "new technical computing language" to "general purpose, performant language with a ton of useful packages readily available and they actually work"

Leveraging the technical computing open source community turns out to work really well!

3 comments

"... and the 1.0 is just a "when it's ready" situation"

The Julia developers have communicated very clearly for more than a year now their timeline for 0.6 and 1.0. Expect Julia 1.0 this year [1].

[1] https://www.moore.org/article-detail?newsUrlName=bringing-ju...

the metaprogramming resources in Julia are very slick. I wrote a DSL that lets you write functions in that are then turned into synthesizable verilog modules. Implementing combinatorial logic (I haven't gotten to sequential yet) took about three days.
Yeah, meta is something I always struggled with in Lua, as you're completely constrained to the table structures, but just that little extra power of being able to metaprogram over whatever data I want, is absolutely incredible, and it's a bit easier to think about imo than Scheme macros just in the sense of trying to macroexpand in your head.
> Julia has a lot of really incredible packages already. It's mindblowing how quick Julia went from "new technical computing language" to "general purpose, performant language with a ton of useful packages readily available and they actually work". Leveraging the technical computing open source community turns out to work really well!

Yep, it turns out that a lot of scientists are great programmers :)

Regarding packaging, I completely agree that Pkg2 is a mess; there's a Julep (RFC) out for Pkg3 and it opens with a sobering list of the problems with Pkg2's design, and continues with a new design which is already in the works:

https://github.com/JuliaLang/Juleps/blob/master/Pkg3.md

The Julep is a rough cut of what Pkg3 will look like (see issues on that repo for some modifications), but I'm actively working on an implementation. For example, yesterday, I was working on a script to translate the current METADATA repository to a Pkg3 registry file.

I'm not sure what "make it to a stable 0.x release" means – every 0.x release is stable and usable, we're just not 100% happy with the language design and APIs yet – at least not satisfied enough to commit to supporting them for the next decade. But that's coming soon... Julia 1.0 will be released this summer (2017), which I announced during the talk I gave at JuliaCon last summer:

https://www.youtube.com/watch?v=5gXMpbY1kJY

That outline of features is on track, as is the release date. There is also a detailed 0.6 release timeline on Discourse:

https://discourse.julialang.org/t/0-6-release-timeline/836

The 0.6 release has slipped by 1.5 months, but it also includes more features, so it doesn't actually push the 1.0 release schedule back. During this release cycle, we realized that a number of changes we want in 1.0 need to be at least partly in place in 0.6 so there's a smooth upgrade path to 1.0 that doesn't break people's code without deprecation warnings. We decided that it was worth letting this release slip a bit in order to have a clear path forward to 1.0. Once 0.6 is out, I will post a 1.0 release timeline.