579 karma · joined January 14, 2018
Social media is sometimes toxic because people are sometimes toxic. Moreover, people are drawn to toxicity because it is grotesquely fascinating. This is also the case for movies, video games, and other media; much of it is anti-social and misleading.
Condemning Facebook for the toxicity of some of its users is like condemning the manufacturers of mirrors because you don't like what you see in them. If you are appalled by society's propensity for producing and consuming toxicity, then consider directing your attention to shortcomings of our education and healthcare systems rather than a company that is simply providing a useful service to its users and value to its stockholders.
This is true of all niche languages that are supposedly quicker to use than regular mainstream languages.
I don't understand why Tesla are still permitted to sell vehicles with this feature.
One of the troubles with having a single machine is that your service will become unavailable when you upgrade it.
It's also somewhat of a fallacy to claim that open-source software is the domain of hobbyists. A lot of open-source software nowadays is produced by paid programmers as part of their day jobs.
For longevity as a developer, it's important to become comfortable with picking up new languages and tools as necessary.
A better strategy for career planning is to decide which domains you find interesting, and then focus on the skills and tools that are used in those domains.
When you do this, you dehumanize the person, and minimize the positive aspects of their contributions.
If you are not a qualified doctor, please make a new year's resolution to stop doing this.
One massive advantage of protobuf for mainstream Google languages (C++, Java) is that Google has used them extremely heavily for many years, and you can trust that they've been extensively battle tested in Google's enormous high-traffic services, and scrutinized by Google's vast army of engineers. Kenton's experience notwithstanding, the same cannot be said of CP.
This argument doesn't apply for languages other than the ones that Google uses for production services.
(1) C++ has std::to_string nowadays. You don't need to roll your own.
(2) Environment::get would be more efficient if you used a hash table (e.g. unordered_map) instead of many ifs.
(3) It's better to pass std::string and std::vector by const reference, to avoid making a copy. Also take a look at std::string_view.
(4) const char[] is generally preferable to #define.