Hacker Newsnew | past | comments | ask | show | jobs | submit | hepek's commentslogin

Slightly offtopic: French guerilla artist invading the world with iconic graphics from the game:

https://space-invaders.com/world/


Yes and no: despite the very visible inspiration it's rather NOT coming from the game anymore, as stated in the https://space-invaders.com/about/ section:

  This said, my initial source of inspiration was the Space Invaders and a few other video games but I have rapidly developed new models and created totally original icons.
I remember he also said before that was an effort to avoid any copyright infringement. Taito seems to be pretty nice with him though, which is not granted these days!


Is this a Žižek pun?


the second etc. is


Joe Armstrong gives a very good talk about ideas in the article in "The Mess We're In" (2014):

https://youtu.be/lKXe3HUG2l4?t=26m12s


After strip it is 1.1M.


For comparison, ls is 38k on macOS (edit: and coreutils’ ls is 138k).


Rust links all its runtime statically by default. Your /bin/ls is probably dynamically linked to libc and a few others.

That being said that the argument of size is a bit silly to begin with, especially for a 3MB binary.


> That being said that the argument of size is a bit silly to begin with, especially for a 3MB binary.

For a single app, sure it's no problem, but what about when the thousands of other programs in bin introduce similar levels of bloat? Another one is ripgrep, weighing in at 5MB compared to greps 204kb.

And this is just for fairly simple command line tools, Imagine what life will be like when we have UI toolkits like QT statically compiled into everything.


> Another one is ripgrep, weighing in at 5MB compared to greps 204kb.

Did you strip both binaries? If I strip rg after compiling it, it shrinks to 2.7MB on Linux. If I strip the distributed binary on Github (which is statically linked with musl), then it shrinks to 2.4MB.

> Imagine what life will be like when we have UI toolkits like QT statically compiled into everything

I imagine Qt will be dynamically linked, so I'm not sure why you'd say that.

Of course, if you want to statically link something like Qt because it makes distribution easier for $reasons, then that's a different story. But that has nothing to do with Rust.


> Did you strip both binaries?

No, should I have to? I'm just looking at the published binary sizes.

> I imagine Qt will be dynamically linked, so I'm not sure why you'd say that.

I said like Qt, as in something similar written in rust. The Qt5 GUI module weighs in at about 10MB, if every gui program included it plus all the other libs then the bloat quickly adds up.

> But that has nothing to do with Rust.

Until rust has a stable ABI that doesn't require everything be statically linked it's a rust problem.

Love the brigading the rust community always does btw. Apparently someone was triggered enough to go through my comment history downvoting.


> No, should I have to?

You don't have to do anything, including publishing misleading comparisons.

> Until rust has a stable ABI that doesn't require everything be statically linked it's a rust problem.

Qt can be dynamically linked into a Rust application. For example, the default is to dynamically link glibc on Linux x86_64.


I'm comparing the file size of one tool to the published sized of a similar tool, how is that misleading? If the size can be reduced then why isn't it done when you publish it? Considering one is on disk size and the other is zipped I think I'm being more than fair.

>Qt can be dynamically linked into a Rust application. For example, the default is to dynamically link glibc on Linux x86_64

Again, it was an example. Show me a similar rust library that can be dynamically linked to like this? A rust equivalent will have to either use a c interface or be statically compiled.


> how is that misleading?

I explained how. Take it or leave it.

> If the size can be reduced then why isn't it done when you publish it?

Because it's not a big deal? The only people who complain about this are people debating holy wars on HN, as if the static vs dynamic trade offs haven't been well understood by now.

> Again, it was an example. Show me a similar rust library that can be dynamically linked to like this?

Rust's standard library.


The performance difference between grep and ripgrep is stark, ripgrep is blazingly fast, isn't that worth some "bloat"?


Small correction: the performance difference between ripgrep and GNU grep on single large files isn't that great for common use cases. For some more complex cases involving Unicode (and specifically, predominantly non-ASCII files), ripgrep can do a lot better.

(That statement changes a lot if you're looking at another grep like BSD grep, or if you're directly comparing `grep -r pattern` with `rg pattern`, which is always subject to caveats, because the latter is doing some guesswork and parallelism where the former isn't.)


Interesting; du reports on mine at 20k.

    % du -h /bin/ls
     20K	/bin/ls

Although as you mention...

    % ls -laF /bin/ls
    -rwxr-xr-x  1 root  wheel  38624 Jul 15 00:29 /bin/ls*


my work macbook's ls is 16k. huh


./exa-linux-x86_64: error while loading shared libraries: libhttp_parser.so.2.1: cannot open shared object file: No such file or directory

Couldnt all the dependencies be statically linked for max portability?


This took me by surprise too. For some reason it isn't happening in the Vagrant VM I develop on, but now I've run it on my VPS, it's totally there! exa uses libgit2 which must be requiring it somehow.

The GitHub issue offers a fix for Ubuntu: https://github.com/ogham/exa/issues/194


Just make sure you update exa when there's a vulnerability in whatever got statically linked to it.


In general, they could. As always, it's a tradeoff. See the above thread about binary size...


Is there a reason it has an http parser?



I believe POSIX defines vi as mandatory visual text editor, which makes it present on any compliant OS and thus a sane default value for EDITOR.


Technically it's part of the optional "User Portability Utilities" feature group, and so is ex, the only mandatory editor in POSIX is "ed".


I have this keyboard. Mine was made in 2008.


This text reminds me of row polymorphism in OCaml object system. Or maybe I got it all wrong.


Whenever there's a question mark in the title, the answer is usually no, and the article is linkbait.

I don't know if this rule of thumb applies to this article.


Betteridge's law of headlines [0]. The answer to the question is generally no - that doesn't make the article useless link bait though.

[0] https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines


You guys know scientists are supposed to ask questions, right?


Scientists are supposed to ask GOOD questions.


I think the article resonates more with the goals of freenetproject.org, but for some reason has this fixation with the blockchain.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: