3,755 karma · joined June 7, 2015
[1]: I personally think that JSON is plenty readable, but a lot of people seem to disagree.
[1]: https://codeblog.jonskeet.uk/2019/03/27/storing-utc-is-not-a...
EDIT: Sorry, I'm a dum-dum, it's written in the README:
> No support for Unicode / UTF-8 / wide character display
> Multibyte support is planned, but is unfortunately non-trivial, […]
About five years too late, heh.
> […] Similarly, function pointers should be used only if there is a very strong justification for doing so because they can seriously restrict the types of automated checks that code checkers can perform. For example, if function pointers are used, it can become impossible for a tool to prove the absence of recursion, requiring alternate guarantees to make up for this loss in checking power.
In other words, static analysis beats code cleanliness, in this perspective.
With that said, the label seems to “work” by allowing people to first think of a backwards-incompatible way to solve a problem and then, possibly, arrive at a much more compatible solution in the process of discussion.
Death may not come as swiftly (heh) as you think. I know a few people (including myself) who, when deciding which language to add to their toolbox, had decided against Swift because of its reputation as “that language that always breaks code”, among other reasons. There are just a few anecdotal data points, of course, but I don't think it's controversial to say that a history of messy updates definitely makes new people less likely to learn a language without an absolute necessity.
[1]: https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Dev...
They did, five years ago. Albeit with an “if”.
https://github.com/golang/proposal/blob/d661ed19a203000b7c54...
> If the above process works as planned, then in an important sense there never will be a Go 2. Or, to put it a different way, we will slowly transition to new language and library features. We could at any point during the transition decide that now we are Go 2, which might be good marketing. Or we could just skip it (there has never been a C 2.0, why have a Go 2.0?).
> Popular languages like C, C++, and Java never have a version 2. In effect, they are always at version 1.N, although they use different names for that state. I believe that we should emulate them. In truth, a Go 2 in the full sense of the word, in the sense of an incompatible new version of the language or core libraries, would not be a good option for our users. A real Go 2 would, perhaps unsurprisingly, be harmful.
> Nyxt is a browser with deeply integrated AI and semantic document tools that work as a second brain to help you process and understand more, more quickly.
It'd be nice if they elaborated on what this “integrated A.I.” thing actually is in that or another FAQ entry.
On a related note, one could say that the C++ Core Guidelines[1] at least partially represent such a list. 55 matches for “don't use” and 247 for “avoid”, although not all of them are about language features, obviously.
[1]: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
As a devoted Unix fanatic, I used to hate PowerShell, because I initially came in with the expectation that it's going to be “just another POSIX-like shell”. After all, it's right in the name! And it uses dollar signs! So every little thing that differed from my unixey expectations made me angry. (Them using awful aliases like wget and curl didn't help. Seriously, what were they thinking?)
But once I've realized that PowerShell is much closer to AWK and Perl, I kind of started to almost enjoy it. Don't get me wrong, it's not my favourite language or anything. But these days I think that it is a formidable scripting language with most of the stuff you'd normally need in place, at least in the recent versions.
One thing that I still dislike is the absence of something like the Unix manual pages. For some reason, help pages require additional installation, and the learn.microsoft.com search is so awful that it's often quicker to use DDG with "site:learn.microsoft.com".
YMMV, obviously, but in companies within my personal bubble Go is still the go-to (heh) tool for creating both CLI tools and all kinds of API services. These kinds of choices, in my experience, mostly boil down to what kind of personnel a company has at the time, as well as personal preferences of the tech leads. And while some of them do appreciate Rust, finding good Rust devs still seems harder than good Go devs.
> Will people be as excited in building new applications with it, or will it niche itself into "that cloud and microservice thing" made by Google that we have to maintain, because a few large projects decided to use it a decade ago?
I love Go, and has been working with it for about ten years now, but I don't think it was ever an “exciting” language, once you remove the initial hype. Go has always been reductive and boring, and that has always been its greatest strength (and, in the eyes of many, its greatest weakness). You've mentioned Java and .NET, and I feel like Go has almost entered that company of languages. Boring technology, with good tooling and lots of libraries, supported by large corporations, that can deliver results within predictable time scales.
So if I had to predict the future of Go based on the current trends, I'd say it's almost definitely “more of the same”, which is, in a way, the “bright future” for the language. The tooling is going to be improved. The type system is going to get improvements too, but very slowly (my personal prediction is that we'll get sum types around 1.22–1.24; long overdue, imo). The stdlib is going to be expanded to accommodate these changes. Nothing exciting, but that's how a lot of people want it.
For anything that requires more complex structures, JSON5 (https://json5.org/) has been gaining traction. It's basically JSON that allows a couple of more things, including comments, trailing commas, and even unquoted keys, if you're into that.
In my personal opinion, unless you're doing the project just for fun, it seems better to stick to C11/C17, at least for the next few years.
[1]: https://en.cppreference.com/w/c/23#C23_core_language_feature...
It's one thing to implement something. It's another thing to implement it in a way that makes other people want to use it.
The historical reasons of why UTF-16 exists are fully understandable, but by now it is clear that it's the worst of both worlds.
pkg_info -Q str
It allows searching for packages with substring str in their name. Very useful when you want to see, which additional packages are available for a thing, for examlpe: pkg_info -Q xfcehttps://icube-forge.unistra.fr/icps/c23-library/-/blob/main/...
Raw Markdown, for no-JS readers:
https://icube-forge.unistra.fr/icps/c23-library/-/raw/main/R...