> I don’t know about anyone else, but at least for me, when I’m building a new feature I usually don’t have all the data types, APIs, and other fine details worked out up front. I’m often just farting out code trying to get some basic idea working and checking whether my assumptions about how things should work are more-or-less correct. Doing this in, say, Python is extremely easy, because you can play fast and loose with things like typing and not worry if certain code paths are broken while you rough out your idea. You can go back later and make it all tidy and fix all the type errors and write all the tests.
> In Rust, this kind of “draft coding” is very difficult, because the compiler can and will complain about every goddamn thing that does not pass type and lifetime checking — as it is explicitly designed to do. This makes perfect sense when you need to build your final, production-ready implementation, but absolutely sucks when you’re trying to cruft something together to test an idea or get a basic foundation in place. The unimplemented! macro is helpful to a point, but still requires that everything typechecks up and down the stack before you can even compile.
This rings so true for me. I could "mock up" entire apps using interfaces in Java, without having to actually write impl code. I could be sloppy as hell around the edges, but that didn't matter, because I could get the large design right without the compiler screaming.
In Rust, there is the chasm between no code and anything that works, feels so draggy.
But it is not absurd. Facebook doesn't target ads at you, Bob Jones.
It takes all of Bob's activities and pushes them into bins based on how they characterize Bob; Male, lives in Iowa, 18-25, etc. a bin (Moves to LA, for example), his data will contribute to different bins. This activity is disconnected from Bob at this point; and the data is aggregated away from single interaction events. "Bob visited foo.com" as a single event is gone at this point.
The models grind on these aggregate data bins.
Then when ads are targeted at Males who live in Iowa, aged 18-25 -- those ads get shown to Bob, because he is tagged with those tags.
They don't "keep track of which webpages you visit", not for more than a day. Those events get pushed in large aggregate stores of activities pretty fast. These aggregate stores are vastly smaller than if you kept all the individual data, hence much cheaper.
2) Employee (non primarily stock compensated) pay, benefits, and well-being.
3) Society.
American capitalism has embraced #1 to the exclusion of all else, enabled by lax labor laws, corporate tax loopholes, and lower capitol gains taxing. ¯\_(ツ)_/¯
I didn’t mention anything after his first sentence. I’m not going to get into shareholder value, but I will get into his flippant disregard of the most important discoveries of finance.
Because the removal of widely used things that worked fine caught on for some reason. Apple has been doing this for a while now. Jack, USB, ESC key, whatever else I cannot recall.
I am with you as far as the headpone jack and escape key, but I am more than happy to embrace the USB-C only future. The main problem is peripheral manufacturers are slow to catch on.
I wish I had my HDMI and SD card ports back though.
Um, it caught on because there isn't room for 200 ports on the side of a computer. Eventually you sometimes have to ditch old standards to move on to newer, better standards.
Btw, Apple's reportedly putting the Esc key back on the new MB Pros. And they still have an audio jack. And they still have USB.
Is Pod Save the World better than Pod Save America? I gave the later a try and didn't like it at all.
Oh, also, 1A on NPR is pretty good too, I don't listen to it too much these days, since it's a bit hit or miss, but it was the first podcast I really got into :)
I find I only have bandwidth for 1-2 of the Crooked pods a week. PSA is good, PSW is for when a topic catches my eye. Hysteria is really good. LIOLI is sublime.