I cold turkeyed once and did not feel much except for the first few days, probably because I am not a heavy drinker.
However, I picked it up later because I always want to drink something with taste, and the mix of coffee, some milk and sometimes a bit of sugar does provide satisfaction without feeling the guity of gaining weight.
I'm surprised Windows 2000 was not mentioned. That was the first Windows that doesn't crash very often and I kept it for many years, until like 2007 I think.
Yeah I agree with that. And I'd argue that it is still the same nowadays. People at the top probably knows clearly which interest group they are in, and which group they can rally up, and which ones they need to fight to the death -- even if they all belong to the same nationality -- and I'm not surprised if local interest groups ally with "foreign" interest groups to fight another local interest group. It is blurred.
I'm curious if there if any book or blogs that detail the design decisions, or the lack of, for some popular languages, from the perspective of language design and industry usage.
I could and have written a few toy interpreters, but I have no academic or industrial background (on the matter of language design), so it is useful to know why they put some features into a language, and why they don't. It is actually one of the most confusing parts of writing an interpreter for a toy language -- in all of my projects I simply pick a subset of an existing language I know about, e.g. Python or C.
For Python, you can read the PEP documents - Python Enhancement Proposals - and see the discussion of what was suggested, pros and cons, work done to determine the preferred implementation, and the final decision.
To get the best historical sense, pick a language feature that has evolved in several steps over a number of years, e.g. async/await, type annotations, the GIL, etc.
For ordered dicts, for instance, which is topical because of [1] posted two weeks ago, the relevant PEPs are:
- PEP372: The original collections.ordereddict proposal in Python 3.1 [2]
- PEP468: Making kwargs ordered in Python 3.6 [3], which also made standard dicts ordered.
It's pretty far back on my blog to-do list, but the key order guarantee that was solidified in 3.7 lost the opportunity for a further space optimization (for dicts where keys are frequently removed).
The Ada programming language has documentation about its design rationale that discusses the tradeoffs/options considered and why they made certain decisions. Really interesting even if you don’t use Ada since a lot of these decisions are made by every language’s designers.
The Design and Evolution of C++ by Stroustrup is a fascinating book. It only covers the early years of C++, but that's perhaps what you're most interested in.
Linux definitely has others to catch up. The only reason I switched to a Linux box is not how great it is for users, but 1) it is a dev box for system programming studies, 2) MSFT willingly trash Windows
NT kernel is pretty solid and thr earlier NT kernel OS such as Win 2000 and XP are solid too. They definitely did not have the security features modern OSes have but security always evolves.
I mean NT is still way more advanced and modern than Linux will ever be, per definition. NT implements a lot of modern security architectures right into the kernel, while Linux inherently just lacks a lot of them.
But apart from NT I can't think of a lot more solid products that came out of Microsoft.
I think MS SQL Server is fine? Office is good if you ignore anything after 2013...VS debugger is good, but VS itself is bloated.
Meh, not many indeed. Anyway they adopted the beta to user and improve on the way mindset long time ago. Windows terminal was not very good back then but now it is OK.