To be fair, that's really an argument in Dan's favor, unless Dan is not a researcher, in which case you might be able to say that Julia is better for you because you're a researcher and Dan is not. But that would imply a domain mismatch.
To say that one likes and understands a language, warts and all, is like defending something because I know it and love it, rather than because it is objectively the best tool. On Mon, Dec 29, 2014 at 2:58 PM, Tobias Knopp <tobias.kn...@googlemail.com> wrote: > So you dislike Julia and encountered several bugs. Reading your posts is > like you want to blame someone for that. If you are not satisfied with > Julia simply do not use it. > > And seriously: You cannot compare Julia with a project that has Google in > the background. Its clear that they have a "more clear" development model > and more documentation. Some goes for Rust. Julia is from and for > researchers. And there are several people very satisfied with how Julia > evolves (including me). > > Tobias > > > Am Montag, 29. Dezember 2014 21:37:33 UTC+1 schrieb Dan Luu: >> >> Here are a few responses to the stuff in this thread, plus Keno's comment >> on HN. >> >> The Travis stats are only for builds against master, i.e., only for >> things that got merged. BTW, this is mentioned in the linked post. For >> every project listed in http://danluu.com/broken-builds/, only the >> "main" branch on github was used, with the exception of a couple >> projects where that didn't make sense (IIRC, scala has some weird >> setup, as does d). "Using travis less" doesn't really make sense in >> that context. I heard that response a lot from people in various >> communities when I wrote that post, but from checking the results, the >> projects that have better travis results are more rigorous and, on >> average, the results are biased against the projects with the highest >> uptimes. There are exceptions, of course. >> >> I have a "stable" .3 build I use for all my Julia scripts and IIRC >> that's where I saw the dates issue with Gadfly. I dunno, maybe I >> should only use older releases? But if I go to the Julia download >> page, the options are 0.3.4, 0.2.1, and 0.1.2. This might not be true, >> but I'm guessing that most packages don't work with 0.2.1 or 0.1.2. I >> haven't tried with 0.3.4 since I haven't touched Julia for a while. >> It's possible that the issue is now fixed, but the issue is still open >> and someone else also commented that they're seeing the same problem. >> >> Sorry, I'm not being a good open source citizen and filing bugs, but >> when you run into 4 bugs when writing a half-hour script, filing bugs >> is a drag on productivity. A comment I've gotten here and elsewhere is >> basically "of course languages have bugs!". But there have been >> multiple instances where I've run into more bugs in an hour of Julia >> than I've ever hit with scala and go combined, and scala is even known >> for being buggy! Between scala and go, I've probably spent 5x or 10x >> the time I've spent in Julia. Just because some number will be >> non-zero doesn't mean that all non-zero numbers are the same. There >> are various reasons that's not a fair comparison. I'm just saying that >> I expect to hit maybe one bug per hour while writing Julia, and I >> expect maybe 1 bug per year for most languages, even pre-1.0 go. >> >> I don't think 40 vs. 50 really changes the argument, but of course >> I've been drifting down in github's ranking since I haven't done any >> Julia lately and other people are committing code. >> >> I don't think it's inevitable that language code is inscrutable. If I >> grep through the go core code (excluding tests, but including >> whitespace), it's 9% pure comment lines, and 16% lines with comments. >> It could use more comments, but it's got enough comments (and >> descriptive function and variable names) that I can go into most files >> and understand the code. >> >> It sounds like, as is, there isn't a good story for writing robust >> Julia program? There are bugs and exceptions will happen. Putting >> aside that `catch` non-deterministically fails to catch, what's a >> program supposed to do when some bug in Base causes a method to throw >> a bounds error? You've said that the error handling strategy is >> go-like, but I basically never get a panic in go (I actually can't >> recall it ever having happened, although it's possible I've gotten one >> at some point). That's not even close to being true in Julia. >> Terminating is fine for scripts where I just want to get at the source >> of the bug and fix it, but it's not so great for programs that >> shouldn't ever crash or corrupt data? Is the answer just "don't write >> stuff like that in Julia"? >> >> On Mon, Dec 29, 2014 at 1:38 PM, Stefan Karpinski <ste...@karpinski.org> >> wrote: >> > There's lots of things that are very legitimate complaints in this post >> but >> > also other things I find frustrating. >> > >> > On-point >> > >> > Testing & coverage could be much better. Some parts of Base were >> written a >> > long time ago before we wrote tests for new code. Those can have a >> scary >> > lack of test coverage. Testing of Julia packages ranges from >> non-existent to >> > excellent. This also needs a lot of work. I agree that the the current >> way >> > of measuring coverage is nearly useless. We need a better approach. >> > >> > The package manager really, really needs an overhaul. This is my fault >> and I >> > take full responsibility for it. We've been waiting a frustratingly >> long >> > time for libgit2 integration to be ready to use. Last I checked, I >> think >> > there was still some Windows bug pending. >> > >> > Julia's uptime on Travis isn't as high as I would like it to be. There >> have >> > been a few periods (one of which Dan unfortunately hit), when Travis >> was >> > broken for weeks. This sucks and it's a relief whenever we fix the >> build >> > after a period like that. Fortunately, since that particularly bad >> couple of >> > weeks, there hasn't been anything like that, even on Julia master, and >> we've >> > never had Julia stable (release-0.3 currently) broken for any >> significant >> > amount of time. >> > >> > Documentation of Julia internals. This is getting a bit better with the >> > developer documentation that has recently been added, but Julia's >> internals >> > are pretty inscrutable. I'm not convinced that many other programming >> > language implementations are any better about this, but that doesn't >> mean we >> > shouldn't improve this a lot. >> > >> > Frustrating >> > >> > Mystery Unicode bug - Dan, I've been hearing about this for months now. >> > Nobody has filed any issues with UTF-8 decoding in years (I just >> checked). >> > The suspense is killing me - what is this bug? Please file an issue, no >> > matter how vague it may be. Hell, that entire throwaway script can just >> be >> > the body of the issue and other people can pick it apart for specific >> bugs. >> > >> > The REPL rewrite, among other things, added tests to the REPL. Yes, it >> was a >> > disruptive transition, but the old REPL needed to be replaced. It was a >> > massive pile of hacks around GNU readline and was incomprehensible and >> > impossible to test. Complaining about the switch to the new REPL which >> is >> > actually tested seems misplaced. >> > >> > Unlike Python, catching exceptions in Julia is not considered a valid >> way to >> > do control flow. Julia's philosophy here is closer to Go's than to >> Python's >> > - if an exception gets thrown it should only ever be because the caller >> > screwed up and the program may reasonably panic. You can use try/catch >> to >> > handle such a situation and recover, but any Julia API that requires >> you to >> > do this is a broken API. So the fact that >> > >> >> When I grepped through Base to find instances of actually catching an >> >> exception and doing something based on the particular exception, I >> could >> >> only find a single one. >> > >> > >> > actually means that the one instance is actually a place where we're >> doing >> > it wrong and hacking around something we know to be broken. The next >> move is >> > to get rid of that one instance, not add more code like this. The UDP >> thing >> > is a problem and needs to be fixed. >> > >> > The business about fixing bugs getting Dan into the to 40 is weird. >> It's not >> > quite accurate - Dan is #47 by commits (I'm assuming that's the metric >> here) >> > with 28 commits, so he's in the top 50 but not the top 40. There are 23 >> > people who have 100 commits or more, and that's roughly the group I >> would >> > consider to be the "core devs". This paragraph is frustrating because >> it >> > gives the imo unfair impression that not many people are working on >> Julia. >> > Having 23+ people working actively on a programming language >> implementation >> > is a lot. >> > >> > Ranking of how likely Travis builds are to fail by language doesn't >> seem >> > meaningful. A huge part of this is how aggressively each project uses >> > Travis. We automatically test just about everything, even completely >> > experimental branches. Julia packages can turn Travis testing on with a >> flip >> > of a switch. So lots of things are broken on Travis because we've made >> it >> > easy to use. We should, of course, fix these things, but other projects >> > having higher uptime numbers doesn't imply that they're more reliable - >> it >> > probably just means they're using Travis less. >> > >> > In general, a lot of Dan's issues only crop up if you are using Julia >> > master. The Gadfly dates regression is probably like this and the two >> weeks >> > of Travis failures was only on master during a "chaos month" - i.e. a >> month >> > where we make lots of reckless changes, typically right after releasing >> a >> > stable version (in this case it was right after 0.3 came out). These >> days, >> > I've seen a lot of people using Julia 0.3 for work and it's pretty >> smooth >> > (package management is by far the biggest issue and I just take care of >> that >> > myself). If you're a normal language user, you definitely should not be >> > using Julia master. >> >