Hacker News new | ask | show | jobs
by m_nyongesa 1296 days ago
I'd like to point out two things I _don't_ like about Julia that seem to be idiosyncratic but nevertheless matter to me:

1. Rather than use something like reStructuredText or Texinfo they used Markdown, and then of course had to define a bunch of custom additional stuff to make it work for documentation, plus a custom program to publish the documentation to a limited number of formats. Unlike the two documentation languages I mentioned, the Juila "customized Markdown" isn't publishable to Info, so it can't be used in Emacs: rather, it's basically just a bunch of web pages.

2. Julia is completely dependent on LLVM. Even Rust (which was initially like that) now has a GCC-based implementation.

2 comments

It's funny, Julia used to use reStructuredText and I could _never_ get the syntax right when doing doc changes. Markdown is significantly more accessible in the common case of just writing prose and code examples.

Why do you care about LLVM?

Interesting. I've heard that complaint before and I'm not sure how to address it since I have only used reStructuredText in what are likely smaller projects.

I think it's strange for a language to absolutely rely on the architecture of one compiler. Ideally it should have at least two that are both under FLO (free/libre/open) licenses.

Regarding LLVM specifically, see here: https://gcc.gnu.org/legacy-ml/gcc/2014-01/msg00247.html

IMO chasing multiple compilers is a bad idea for almost any young language. It more than doubles the amount of time it takes to improve anything and while there are benefits, they are fairly minor. You essentially are asking a language to not fix anything in the compiler for a year for the advantage of making it harder to fix things in the future.
Sorry I wasn't clear enough before. I should have said "I wish Julia worked on a compiler licensed under the GPL." The only major one I know of is GCC. This is not just a "minor" benefit. To quote from the post I linked to:

"The nonfree compilers that are now based on LLVM prove that I was right -- that the danger was real. If I had "opened" up GCC code for use in nonfree combinations, that would not have prevented a defeat; rather, it would have caused that defeat to occur very soon.

...The existence of LLVM is a terrible setback for our community precisely because it is not copylefted and can be used as the basis for nonfree compilers -- so that all contribution to LLVM directly helps proprietary software as much as it helps us."

Regarding 1., Markdown is much more accessible to the average person, especially the average programmer, than the formats you mention. Markdown is basically becoming a common-knowledge thing where if a person is at least somewhat tech-savvy, you can assume they know at least some basic Markdown.
My point was that the Markdown format itself is not complete enough for the task at hand i.e. making documentation. So all the people involved have to 1) learn all the customized extensions specific to this one project (and remember to differentiate them from the other custom versions for other projects, e.g. Rust's one), and 2) learn a custom deployment system.

I'd rather just learn one thing and use it for many different projects.