I am no Apple fanatic. I'm a die-hard Linux user and open source proponent. I wouldn't touch the M1 with a thirty-nine and a half foot pole.
But with all that said... I kind of like articles like these. I enjoy seeing people happy with good tech because I like good tech. It pleases me that there are people getting this much enjoyment out of innovative and (I'll admit it) quite impressive hardware. So rock on, Apple fans. But when there's a Linux computer that is even a bit better, I hope you can tolerate me shouting from the rooftops, because you bet I will be!
The author mentions that the Pfeilstorch was found
> in 1882 in Mecklenburg, Germany
which was surprised me as being relatively recent. But according to its Wikipedia article [1], the Pfeilstorch was actually found in 1822. Still quite recent, but decidedly less so. Wikipedia also mentions that bird migration has been known about (at least in some circles) since the late 18th century [2]:
> Thomas Bewick's A History of British Birds (Volume 1, 1797) mentions a report from "a very intelligent master of a vessel" who, "between the islands of Menorca and Majorca, saw great numbers of Swallows flying northward"
Does anyone else know further history on how we came to understand bird migration? It seems quite interesting.
That's true, and while I agree that it is a concern, is there ever a way to gain both ergonomics and optimization? In other words, aren't we always leaving it up to the compiler one way or another? You mention C++'s specialization, and I suppose that is a solution, but then you are (potentially, I can't say for certain) sacrificing compile times. Although I will admit that this is probably a fair trade for certainty of optimization, and it would be nice if Rust at least offered some amount of specializing.
Oh wow, that is interesting. Yeah, that probably speaks to Rust still being a relatively new language, although I would have expected LLVM to do something about that... In any case, that's certainly no zero-cost abstraction.
I know this is only responding to your one example, and perhaps your statement is still true generally, but I think that in this particular case it is not.
In this godbolt [0] I tried using the safe version of equals with two values (from stdin so it can't just optimize the computation away, though I don't think it would) and it seems that when the compiler inlines the equals function, the inefficiencies are removed (which can be seen in the example::main section of the output; lines 212-216 look nearly identical, if not identical, to equals_unsafe in your example).
Please let me know if I'm missing something or if there are any other safe APIs to be wary of.
But with all that said... I kind of like articles like these. I enjoy seeing people happy with good tech because I like good tech. It pleases me that there are people getting this much enjoyment out of innovative and (I'll admit it) quite impressive hardware. So rock on, Apple fans. But when there's a Linux computer that is even a bit better, I hope you can tolerate me shouting from the rooftops, because you bet I will be!