CppCoreGuidelines
learnxinyminutes-docs
| CppCoreGuidelines | learnxinyminutes-docs | |
|---|---|---|
| 324 | 234 | |
| 44,607 | 12,120 | |
| 0.6% | 0.5% | |
| 7.5 | 8.9 | |
| 20 days ago | 7 days ago | |
| CSS | Markdown | |
| GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
CppCoreGuidelines
- Rust's Block Pattern
C++ lambdas can be used to achieve a similar result, not as pretty though https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines... But in general I agree!
- Obscure feature and obscure feature and obscure feature = compiler bug
- Safe C++ proposal is not being continued
If that is what profiles were actually doing, it would probably make sense. But it's not what profiles are doing.
Instead, for example, the lifetime safety profile (https://github.com/isocpp/CppCoreGuidelines/blob/master/docs...) is a Rust-like compile time borrow checker that relies on annotations like [[clang::lifetimebound]], yet they also repeatedly insist that profiles will not require this kind of annotation (see the papers linked from https://www.circle-lang.org/draft-profiles.html#abstract).
Their messaging is just not consistent with the concrete proposals they have described, let alone actually implemented.
- Essential White Papers for Senior Software Engineers: Advanced Reading for Technical Leadership
"C++ Core Guidelines" by Bjarne Stroustrup and Herb Sutter Read the guidelines
- Distributed Systems Programming Has Stalled
I've found both explicit future/promise management and coroutines difficult (even irritating) to reason about. Co-routines look simpler at the surface (than explicit future chaining), and so their the syntax is less atrocious, but there are nasty traps. For example:
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines...
- A Tail Calling Interpreter for Python
I liked "Effective Modern C++" although that is a little bit out of date by now. Stroustrup's recent article "21st century C++" https://cacm.acm.org/blogcacm/21st-century-c/ . There are also the C++ core guidelines though maybe those are also out of date? https://github.com/isocpp/CppCoreGuidelines
I've been looking at Rust and it's an improvement over C, but it still strikes me as a work in progress, and its attitude is less paranoid than that of Ada. I'd at least like to see options to crank up the paranoia level. Maybe Ada itself will keep adapting too. Ada is clunky, but it is way more mature than Rust.
- 21st Century C++
I haven't read much from Bjarne but this is refreshingly self-aware and paints a hopeful path to standardize around "the good parts" of C++.
As a C++ newbie I just don't understand the recommended path I'm supposed to follow, though. It seems to be a mix of "a book of guidelines" and "a package that shows you how you should be using those guidelines via implementation of their principles".
After some digging it looks like the guidebook is the "C++ Core Guidelines":
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
And that I should read it and then:
> use parts of the standard library and add a tiny library to make use of the guidelines convenient and efficient (the Guidelines Support Library, GSL).
Which seems to be this (at least Microsoft's implementation):
https://github.com/microsoft/GSL
And I'm left wondering, is this just how C++ is? Can't the language provide tooling for me to better adhere to its guidelines, bake in "blessed" features and deprecate what Bjarne calls, "the use of low-level, inefficient, and error-prone features"?
- Ray Tracing in One Weekend
See this: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines...
Technically, headers are just copy-paste, obviously. However, there's value to keeping them as standalone as possible.
- Rust in QEMU Roadmap
- Don't defer Close() on writable files
> close a file (which ironically is the poster child for RAII)
Yes, I call this "RAII is a lie" (T-shirt pending).
Closing file descriptors is univerally used to showcase RAII, but it should never be used for that.
C++ has the same problem:
https://github.com/isocpp/CppCoreGuidelines/issues/2203
In there, it is acknowledged that a manual Close() should always be provided, and used if you want guarantees.
> is a bad pattern
Good that Rust at least figured it out early that it's a bad pattern!
Never use RAII in situations where the cleanup can fail!
learnxinyminutes-docs
- Nova Programming Language
Nice. The learn page reminded me of https://learnxinyminutes.com/ which I really liked as a quick way to get a tour of a language.
- Building a Mac app with Claude code
Yes, for example that's why https://learnxinyminutes.com/ exists. Like, I don't remember the particulars of JavaScript syntax or the core library after a year of not touching it, so before I had to reconstruct it in my head even for small tasks. Now LLMs solve this issue.
- How would you start to learn coding today?
I can't fathom it, but if I had to start over today, I'd:
- Pick something I want to build
- Pick the tools -- whatever's at the top of the latest SlackOverflow survey, though I'm not sure SO matters anymore
- Peruse the https://learnxinyminutes.com link for the chosen tools
- Use an LLM with good prompting to assist me in making what I decided. I'd use chat and hand type the code from the LLM and try to understand what I'm typing and see how it all fits together
- The Thrax Programming Language
- Is there a "distrowatch" like site for programming languages?
Not exactly what you're looking for, but I like to monitor changes[1] to https://learnxinyminutes.com/ to find out about new languages.
1. https://github.com/adambard/learnxinyminutes-docs/pulls
- Tlsd: Generate (message) sequence diagrams from TLA+ state traces
- Lua: The Modular Language You Already Know
This is a small code example to get the basic idea. If you want a bit of a bigger file to play around yourself or ever want to learn about a new language you can use LearnXinYMinutes which is a great starting point to learn any language you desire.
- Scripts should be written using the project main language
> Sure, maybe for some esoteric edge cases, but 5 mins on https://learnxinyminutes.com/ should get you 80% of the way there, and an afternoon looking at big projects or guidelines/examples should you another 18% of the way.
Not for C++, and even for other languages, it's not the language that's hard, it's the idioms.
Python written by experts can be well-nigh incomprehensible (you can save typing out exactly one line if you use list-comprehensions everywhere!).
Someone who knows Javascript well still needs to know all the nooks and crannies of the popular frameworks.
Java with the most popular frameworks (Spring/Boot/etc) can be impossible for a non-Java programmer to reason about (where's all this fucking magic coming from? Where is it documented? What are the other magic words I can put into comments?)
C# is turning into a C++ wannabe as far as comprehension complexity goes.
Right now, the quickest onboarding I've seen by far are Go codebases.
The knowledge tree required to contribute to a codebase can exists on a Deep axis and a Wide axis. C++ goes Deep and Wide. Go and C are the only projects I've seen that goes neither deep nor wide.
- 100+ FREE Resources Every Web Developer Must Try
Learn x in y minutes: Concise tutorials to learn various programming languages and tools quickly.
- SQL for Data Scientists in 100 Queries
What are some alternatives?
github-cheat-sheet - A list of cool features of Git and GitHub.
flexboxfroggy - A game for learning CSS flexbox 🐸
dmd - dmd D Programming Language compiler
missing-semester - The Missing Semester of Your CS Education 📚
Crafting Interpreters - Repository for the book "Crafting Interpreters"
learn-x-by-doing-y - 🛠️ Learn a technology X by doing a project - Search engine of project-based learning