Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror

Comment Re:Economists please break it down (Score 1) 82

If you set up a market, and multiple people who actually had $1e100 put in a bid of that amount for your stupid crypto, then at least for that instant it was worth that much. It may not be worth that much later, but it would be NOW.

FFS, how can you have such a hard time understanding such a basic concept?

Comment Re:Curious catch 22 (Score 1) 216

If you automate everything then you break the social contract. Millions of unemployed people lead to unrest in the land.
Winning is losing.

Luckily for the Chinese, they're allegedly communists.

"From each according to his ability" - that would be the robots.

"To each according to his need" - those millions of people.

We'll see whether it pans out.

Comment Re:$66? (Score 3, Informative) 107

I assumed that they're dividing the entire cost of creating, testing, packaging and delivering updates by the number of GB distributed. ISP fees would be a tiny fraction of that.

Why would anyone calculate such a silly metric in the first place? It sounds to me like the kind of thing an accountant would think up.

Comment Re:Do it yourself (Score 3, Interesting) 86

So don't use STL

Indeed, No True Scotsman would use STL with C++.

clang-tidy and Cppcheck and flaw finder and Sonarqube

The last job I had where I had to use C/C++, we automatically ran an expensive static analysis tool every time we checked in code. I'd estimate that it only found about half of the potential segfaults, and it made up for that by finding twice as many false positives.

Comment Re:Do it yourself (Score 3, Insightful) 86

The "rules" of mutable collections in STL state that collections may not be mutated while being iterated.

Nope. If I had used st::list instead of std::vector, it would have been perfectly fine and officially supported. (Assuming I changed "i+10" to "i+11" in order to make the algorithm actually terminate, although that change wouldn't affect the vector crash.).

The problem is that there are dozens of different rules you have to remember to apply to the different types of lists and iterators. And that's only talking about that one topic. There are hundreds of other rules covering a multitude of language aspects that you have to mentally apply against every single line of code you write, many of which can potentially cause memory corruption.

Comment Re:Do it yourself (Score 4, Interesting) 86

You don't need the language to enforce memory safety to program memory-safe. The most important thing is, for example, to never touch raw pointers. C++ makes it very easy to avoid this. Rust forces you to avoid it, but just because C++ gives you the loaded gun, it doesn't mean you have to use it. In particular not on your own foot.

That is a dangerous misconception. You don't need to use any pointers to get memory errors in C++:

#include <stdio.h>
#include <vector>
 
int main() {
    std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    for (auto i : v) {
        if (i % 2 == 0) {
            v.push_back(i + 10);
        }
        printf("%d\n", i);
    }
 
    return 0;
}
 
$ g++ -Wall -pedantic t.cpp
$ echo $?
0
$ ./a.out
 
1
2
-947527061
1600570778
5
6
7
8
9

Comment Re:There is already a safe subset of C++ (Score 4, Insightful) 86

languages like Rust exist to put ignorant programmers in straight jackets for their own good

Are you seriously trying to suggest that never allocating memory is not also a "straight jacket"?

You seem to be saying that a currently existing bowdlerized version C++ is safe for close-world problems. Possibly so, but that still leaves C++ unsuitable for open-world problems. That makes C++ only suitable for niche applications. Why learn it?

If you just use Rust or any other memory safe language, you won't have to worry about what kind of "world" you're writing for, or about choosing from a range of increasingly dangerous "profiles".

Comment Re:Transitions (Score 2) 243

Someone didn't live through the loss of the floppy drive, DB9 ports, and parallel ports.

In my day, to plug in a mouse: We took the box apart, installed a proprietary bus card, and then tried to figure out non-conflicting spots for the I/O and IRQ jumpers. Then we typed a bunch of gibberish into AUTOEXEC.BAT. And we liked it!

Slashdot Top Deals

Nothing will dispel enthusiasm like a small admission fee. -- Kim Hubbard

Working...