Not sure there are any real communist nations left. It's one of those ideologies that looks good on paper, but falls apart, as soon as humans get added to the soup.
Idealists never seem to account for base human nature.
My question to the FOSS community is why Firefox is not used to build more independent browsers the way Chrome is? While I stand fast on the ground that Google wants to monopolize our web experience, it really seems like the community at large is just...letting it happen. The only strong contender that I've seen built from FF is Iceweasel/cat which works fine for my needs, but is definitely not winning any popularity contests despite actively knocking out those non-free parts of FF.
I actually looked into this. Say you consider yourself as part of the FOSS community, and want to build a new browser, and you start to look for your options. The only things readily available as libraries are webkit (currently owned and open sourced by Apple) and webkit-gtk (based on the former). Apple is like Apple and doesn't really want you to use their open source lib, so even though webkit-gtk team made it happen anyway, good luck if you want to do it yourself. If you decide to just use webkit-gtk, you've made a decision similar to lots of other members of the FOSS community in this area (luakit, the Rust webview crate, etc.). Another option is Qt WebEngine. It's based on Chromium. It's part of the Qt ecosystem and though I think you can use it as a standalone library, carving it out still requires some engineering. So these are the options that are available as libraries. And where are the Firefox ones? Servo makes it clear at the beginning of The Servo Book that it isn't available as a library yet. And Gecko? Firefox source doesn't even include a directory named gecko. It's so tightly coupled with the other parts that you'll need a lot of engineering to carve it out. And this is in contrast to Blink, the engine of Chromium, which is nicely placed in its own directory, having its own webpage with some learning resources.
> Another thing is the difficulty of using uninitialized data in Rust. I do understand that this involves an attribute in clang which can then perform quite drastic optimizations based on it, but this makes my life as a programmer kind of difficult at times. When it comes to `MaybeUninit`, or the previous `mem::uninit()`, I feel like the complexity of compiler engineering is leaking into the programming language itself and I'd like to be shielded from that if possible. At the end of the day, what I'd love to do is declare an array in Rust, assign it no value, `read()` into it, and magically reading from said array is safe. That's roughly how it works in C, and I know that it's also UB there if you do it wrong, but one thing is different: It doesn't really ever occupy my mind as a problem. In Rust it does. [https://news.ycombinator.com/item?id=44036021]
IIRC it's not that hard to convince the compiler to give you a safe buffer from a MaybeUninit. However, this type has really lengthy docs and makes you question everything you do with it. Thinking through all this is painful but it's not like you don't have to it with C.
Russia did not industrialize in the 1920s. They did collectivize agriculture, famine ensued. They turned back to free market farming, famine went away. They turned again to collectivization, and farming collapsed again. Eventually, the Soviets allowed farmers to farm small plots and sell what they could raise. These small free market plots kept the country from starving.
Russia did work hard at industrializing during WW2, but it was propped up by the US, who heavily supplied the Soviets. The US actually built factories in the US, dismantled them, and shipped them to the Soviet Union during the war. US engineers and craftsmen taught them.
When WW2 ended, the Soviets looted everything industrial they could find from the Soviet sector. Whole factories were moved east. Soviet industrial output grew during the war.
British industry was also untouched, because the German bomber fleet did not have the range to cover much of Britain, and because Hitler stupidly decided to bomb houses instead of factories. Britain had a pretty anemic recovery from the war - despite getting far more Marshall Plan money than Germany.
Japan did not have a free market before the war, and not much of an industrial economy. Curtis LeMay had a hard time finding industrial targets to bomb, as Japanese industry was characterized as "a drill press in every home". Japan turned to free markets after the war, and we know what happened next. Recall that Japan was burned into ash in WW2. They went from utter defeat to economic superpower, despite not having any natural resources, in just 30 years.
How much more of an "unequal" starting point could there possibly be?
The only common characteristic of prosperity is free markets. And the more free market an economy is, the more prosperous it is. Over and over. It goes back to the middle ages.
The other common characteristic is when countries turn towards socialism, things just get worse and worse for them.
These minus nukes and missiles plus battleships is pre-WWII Japan.
This may be helpful if you're curious why so many countries that choose free market instead of Communism after WWII are still not industrialized today.
Dead Comment
> they are better for most use cases of string templating where what you really want, is just a string.
I think use cases where you want to unconditionally bash a string together are rare. I'd bet that in > 80% of cases the "just a string" really is just a terrible representation for what really is either some tree (html, sql, python, ...) structure or at least requires lazy processing (logging, where you only want to pay for the expensive string formatting and generation if you run at the log level or higher that the relevant logging line is meant to operate).
"just a string" where the string really is just a string is really, really common though. Python is the go-to language for a lot of people (including me) if they just want to bash together a one-time-use script that will never see input from other people, and f-strings are incredibly useful in such cases for generating filenames, debugging messages, etc.