>especially in embedded, where you might not get memory protection! Or where there's perfectly valid memory mapped to address 0
>Phone calls are predominantly direct, 1:1 exchanges >Since the internet is instead a broadcast medium, it is much easier for big players to saturate the lines The Internet is _not_ a broadcast medium. Data transfer…
>The standard delta-epsilon type of reasoning crucially depends on existence of arbitrary reals. What do you mean by "arbitrary?" Do you mean uncomputable? How does analysis require the existence of uncomputable reals?…
>The fact that we can only write down only countably many expressions for numbers doesn't mean that there are numbers that we may never write expressions for It depends, as they say, on what the definition of is is.…
>Instead of complaining about it, you should be elevating AES Energy Storage and other similar companies. No. I refuse to accept a standard of discourse where one cannot even point out a problem without having already…
>Then build a company if you think its so easy. If I had a dollar for every time I saw a legitimate complaint about a complex system met with, "Well just reinvent it yourself from the ground up if you're so fucking…
To expand on this, C++ fundamentally uses the same machine model as C (or at least one that's very, very close). Where C++ differs from C is the array of high-level language constructs, which map down to that common…
Haskell is also garbage-collected, and lazily evaluated to boot. It's not really an apples-to-apples comparison.
>if writing trivial data-structures in Rust is a great challenge, it shows that writing other, less trivial things in Rust will be much more challenging than might be preferred. Data structures are exactly the…
>The catch you're pointing out is that on x86 there are technically no 'invalid' addresses Depending on what you mean precisely by "x86," there is such a thing as an invalid address: the IA32e architecture (or whatever…
>In some sense the language is the compiler and the compiler is the language; the language is much like a human language, used for its utility in expressing things (ideas, programs). You can tell if your human language…
That's not entirely true. Regarding portability, the layout of structs for example is implementation-defined to allow faster (by virtue of alignment) accesses or more compact storage depending on the system, but it's…
The desire to reason about the precise behavior of a program and the desire to take advantage of different behavior on different platforms are fundamentally at odds. Like I said, there's a broad range of just how much…
Which is exactly the motivation behind implementation-defined behavior. There's a broad range of "how much detail do you put in the specification" between the extremes of "this is exactly how the program should behave"…
>the problem is with compilers (and their developers) who think UB really means they can do anything But that's exactly what undefined behavior means. The actual problem is that programmers are surprised-- that is,…
How difficult is it to add a "zero cost abstraction" like the ones used here? For example, what would it take to make this compile: for window in buffer.sliding_window(coefficients.len()) { let prediction =…
>Given the world we live in, right now, why does mathematics continue to insist on minified expressions? Because it is concise, precise, and widely accepted. >Given the option, most development teams would choose to…
Strictly speaking, it's possible for different sorting algorithms to produce different results if you sort using a weak order rather than a total order.
>And people wonder why C++ programs compile so slowly. People have been aware of this problem for some time. It's one of the reasons the C++ community is trying to develop a proper module system (or was the last time I…
>Pointers are another example of something that is obvious to some but a huge mass of confusion and frustration to others. I've taught programming (mostly Asm and C), and this is quite common. You're not stupid, but you…
I don't think the complaint is that the compiler won't accept a struct sockaddr_in* where the API expects a struct sockaddr* . I think the complaint is that the API is designed in such a way that obtaining the required…
>one of those things that divide programmers into two groups: one that instantly sees the elegance of this design and thinks it's so natural and obvious, and one that gets eternally confused by it. Believe it or not,…
>Bit twiddling, ANDing, and ORing are specific and absolute So what? You could implement addition using bitwise operators, but it makes for much more readable and less error-prone code to abstract it into an addition…
>It seems keywords are added to ensure serialization/atomicity, then compilers find a way to optimize it away/make it useless No, what happens is keywords (or more broadly, semantics) are added which provide certain…
Emacs gets a bad rap as a "kitchen sink" program, but it isn't really, any more than something like the Bourne shell or Python. The majority of Emacs' built-ins are things like an elisp interpreter, some text processing…
>especially in embedded, where you might not get memory protection! Or where there's perfectly valid memory mapped to address 0
>Phone calls are predominantly direct, 1:1 exchanges >Since the internet is instead a broadcast medium, it is much easier for big players to saturate the lines The Internet is _not_ a broadcast medium. Data transfer…
>The standard delta-epsilon type of reasoning crucially depends on existence of arbitrary reals. What do you mean by "arbitrary?" Do you mean uncomputable? How does analysis require the existence of uncomputable reals?…
>The fact that we can only write down only countably many expressions for numbers doesn't mean that there are numbers that we may never write expressions for It depends, as they say, on what the definition of is is.…
>Instead of complaining about it, you should be elevating AES Energy Storage and other similar companies. No. I refuse to accept a standard of discourse where one cannot even point out a problem without having already…
>Then build a company if you think its so easy. If I had a dollar for every time I saw a legitimate complaint about a complex system met with, "Well just reinvent it yourself from the ground up if you're so fucking…
To expand on this, C++ fundamentally uses the same machine model as C (or at least one that's very, very close). Where C++ differs from C is the array of high-level language constructs, which map down to that common…
Haskell is also garbage-collected, and lazily evaluated to boot. It's not really an apples-to-apples comparison.
>if writing trivial data-structures in Rust is a great challenge, it shows that writing other, less trivial things in Rust will be much more challenging than might be preferred. Data structures are exactly the…
>The catch you're pointing out is that on x86 there are technically no 'invalid' addresses Depending on what you mean precisely by "x86," there is such a thing as an invalid address: the IA32e architecture (or whatever…
>In some sense the language is the compiler and the compiler is the language; the language is much like a human language, used for its utility in expressing things (ideas, programs). You can tell if your human language…
That's not entirely true. Regarding portability, the layout of structs for example is implementation-defined to allow faster (by virtue of alignment) accesses or more compact storage depending on the system, but it's…
The desire to reason about the precise behavior of a program and the desire to take advantage of different behavior on different platforms are fundamentally at odds. Like I said, there's a broad range of just how much…
Which is exactly the motivation behind implementation-defined behavior. There's a broad range of "how much detail do you put in the specification" between the extremes of "this is exactly how the program should behave"…
>the problem is with compilers (and their developers) who think UB really means they can do anything But that's exactly what undefined behavior means. The actual problem is that programmers are surprised-- that is,…
How difficult is it to add a "zero cost abstraction" like the ones used here? For example, what would it take to make this compile: for window in buffer.sliding_window(coefficients.len()) { let prediction =…
>Given the world we live in, right now, why does mathematics continue to insist on minified expressions? Because it is concise, precise, and widely accepted. >Given the option, most development teams would choose to…
Strictly speaking, it's possible for different sorting algorithms to produce different results if you sort using a weak order rather than a total order.
>And people wonder why C++ programs compile so slowly. People have been aware of this problem for some time. It's one of the reasons the C++ community is trying to develop a proper module system (or was the last time I…
>Pointers are another example of something that is obvious to some but a huge mass of confusion and frustration to others. I've taught programming (mostly Asm and C), and this is quite common. You're not stupid, but you…
I don't think the complaint is that the compiler won't accept a struct sockaddr_in* where the API expects a struct sockaddr* . I think the complaint is that the API is designed in such a way that obtaining the required…
>one of those things that divide programmers into two groups: one that instantly sees the elegance of this design and thinks it's so natural and obvious, and one that gets eternally confused by it. Believe it or not,…
>Bit twiddling, ANDing, and ORing are specific and absolute So what? You could implement addition using bitwise operators, but it makes for much more readable and less error-prone code to abstract it into an addition…
>It seems keywords are added to ensure serialization/atomicity, then compilers find a way to optimize it away/make it useless No, what happens is keywords (or more broadly, semantics) are added which provide certain…
Emacs gets a bad rap as a "kitchen sink" program, but it isn't really, any more than something like the Bourne shell or Python. The majority of Emacs' built-ins are things like an elisp interpreter, some text processing…