This is a nifty little gadget, not a production level feature. C++ lacks a lot of things, but it's objectively cool that you can hack some of them yourself (like kwargs). No one should use this in important code. This is just fun.
I have income and I have costs. Why is my income not completely offset by my costs? I'd love to spend more money to pay fewer taxes.
My labor is turned into profits for my employer and similarly their profit is eventually taxed. In that sense my labor doesn't have to be taxed directly either. Why is it? I think it's absurd that one the hand they are reporting revenue to shareholders and on the other hand they are reporting no profits to tax authorities. Am I misunderstanding something here? I think it's an arbitrary choice that people are supposed to pay for the expenses of the state and corporations are not. I don't think that's a good choice, but that's partially subjective.
I think Zed is very close to being amazing, but it might be premature. Just recently I think they fixed a bug where undo broke somehow when you pasted something? I could never quite reproduce it, but I ran into it a couple times a week. You still can't specify indentation settings per-file, which I consider essential. For some reason the GPU acceleration is very fast on computers with good hardware, but very slow on bad hardware. I get that it's current year, but a text editor should run well on a T480 imho. Frequently Zed just starts up and shows some of the other windows. I.e. it just renders like another existing Firefox window and I can't do anything to fix it, but restart. Yesterday multiple Zed windows all just showed my login screen (when I was already logged in). And a very recent problem is that Zed will just not format certain files. I think they switched to formatting via the language server by default? It will just format some files like it's supposed to and other (seemingly randomly chosen) files will just result in an error that tells me it could not format the file.
I have been using Zed for a few months now and I think it's better than anything else, but not good (yet). I feel like it's still young enough that the number of problems is not just decreasing, but there seem to be new problems regularly.
Multiplayer game development just stinks. It's not because of the networking and the tricky bugs and cumbersome testing setups (fake latency, packet loss, a bunch of open game clients) if you like these sorts of things (though of course that can suck sometimes and does frequently), but if you get far enough, you just depend on everyone you know for play testing constantly. The more people you need per game the worse it is. I worked on a 3v3 game for a couple months and it got really hard to find people to test towards the end. Just imagine making any plans for a group of 6 people. That's almost always annoying. Now try to do that once a week and some of those people don't really know you, so they don't care about being late or flaking out. This is not just annoying, but it really impacts the game. The game requires design and tweaking and experimentation just like any other, but if you can properly play test your game once a week for an hour or two, game design progress is very slow and tedious. I'll never work on a multiplayer game again solo, only with a team at least as large as the number of players the game is designed for.
I think putting off polish for later as the OP and multiple comments here recommend is a fallacy. There are many popular, successful games that would just not be fun if they didn't have good animations, no effects and everything was boxes. Every game that relies on "feeling good to play". It might be fine for an RPG or an RTS, but it's probably not for something like Overwatch or Doom (the new ones). Just imagine Vampire Survivors without sound or effects. Some games live off the art style alone. This is a very controversional opinion, but I think if e.g. Ori and the Blind Forest had bad art, no one would have played the game. Some games you can evaluate really well with bad art and no juice or polish, other games need some and there are even games that need a lot of it, before you know if they can be fun. It's not that simple imho. I remember working on games that were not really fun until I added some effect and suddenly it was really addicting. People like flashing lights and noises and pretty pictures. If good, unique or interesting art was irrelevant, no one would invest in it, but people do.
> “There may be structures without any symmetry at all,” said Gabriele Nebe (opens a new tab) of RWTH Aachen University in Germany. “And no good way to find them.”
She taught Lineare Algebra II when I took it! It was one of the toughest lectures I took during university. I remember looking to the person next to me and one of us asked "do you understand anything?" and the other said "no! I haven't understood anything for like 20 minutes" and we burst out laughing and couldn't get it together until we were asked to quiet down. Wadim if you hang out here, send me a mail or something!
I have very similar, strong opinions about game engines and I think this is a great project. I am definitely going to mess around with this after work today.
Currently a lot of my work consists of looking at large, (to me) unknown code bases and figuring out how certain things work. I think LLMs are currently very bad at this and it is my understanding that there are problems in increasing context window sizes to multiple millions of tokens, so I wonder if LLMs will ever get good at this.
I may sound very arrogant and I am, but I am shocked how clueless one can be about themselves and what they want, while still being clearly very competent and intelligent.
When you have no job and "infinite" money (for most purposes) and you don't even know what you like doing, you should really spend some time just thinking. It's telling how the next arbitrary opportunity presents itself and the author is immediately 100% on it, possibly changing their entire life immediately after it. As someone that likely thought too much and did too little (I don't have millions), I think this is a case of someone that does too much and thinks too little.
Sitting on a beach and studying physics is probably good start, but it might be better to study nothing and just think about what you like and why you do things. And when you figured it out, keep sitting there a while more (weeks, months, I don't know).
It's a bit disappointing that we live in a system that rewards behavior like this so much and unfortunate for everyone that they often end up with power.
A tomorrow like that will probably exist, but I think many people also expect a tomorrow to exist where people have no electricity at all and no memory of ever living in a world with something like the internet. It's especially those people that would require protection.
I think at least part of it is that there are so many solutions for Python packaging, which are often intermixed or only half-supported by developers. It's a tough ask to provide dedicated support for pip, conda, poetry and what else is there plus a couple different ways to create virtual environments. Of course if you do everything right, you set it up once (if even that) and it just keeps working forever, but it is never like that. Someone will use a tool you haven't and it will not work correctly and they will find a workaround and the mess starts.
Also I think that Python packages are sometimes distributed as shared libraries is a problem. When I think about conan or vcpkg (package managers for C and C++), they usually suck because some dependencies are available on some platforms and not on others or even in one version on one platform and in another version on another and you get messes all around if you need to support multiple platforms.
I think generally binary package managers are almost always bad* and source based package managers almost always work well (I think those are essentially easy mode).
*: unless they maintain a source package of their own that they actually support and have a fixed set of well-supported platforms (like system package managers on most Linux distros do).
I am not an expert, but I would expect on the order of thousands of years, stuff moves around and you will likely not keep the distribution you created in the first place. And it needs to be kind of close for anyone to notice at all, which would possibly be close enough to leak out if unattended for a couple hundred years.
You mention a really interesting point. My heart also sinks in my stomach whenever I see "X announces Y" and X is in a set of names such as "Electronic Arts", "Activision", and many more. I really wonder if these companies are aware that their customers have this reaction, but I doubt they see it as a bad thing.
Hiragana (or rather Katakana) alone could never be enough to allow businesses and government institutions to use computers for their daily tasks. These scripts are not just different ways of writing the same things, but rather certain classes of words or certain words in certain contexts tend to use certain scripts. I doubt a fairly conservative society like Japan's would have switched to Katakana for legal documents just to accomodate computers.
I use multiple cursors all the time and rarely use the mouse to create them. Either it's "Add cursor to line ends" (VSCode)/"Split into lines"(Sublime) or just Ctrl+D.
I use multiple cursors multiple times per hour when programming. I do not like vim and I don't use regex. And I am convinced I am faster this way than I could ever be using vim or regex for common editing operations. They are ubiquitous but imho still underrated.
And yet a staggering percentage of them are incompetent (both in their subject and as educators generally).
"and then a bunch" is somewhat misleading. They in fact take easier and fewer classes in the subjects that they are studying for, but they have to take extra classes on education, which afaik are not that hard to pass. Getting a "Lehramt" degree is much easier than getting the regular degree in a subject, which is why many people that are simply not good enough for the real thing do it.
Also we have a teacher shortage and more and more teachers are not in fact people that received an education you usually have to get as a teacher, but are just regular people with either a degree in the subject they are teaching or a degree in almost anything (depends on how desperate the schools are and what subjects they are hiring for).
You can't just put a language in the bin that has been used for 50 years and that a huge percentage the present day software infrastructure is built on.
I see comments like yours everywhere all the time and I seriously think you have a very unhealthy emotional relationship with this topic. You should not have that much hate in your heart for a programming language that has served us very well for many decades and still continues to do so. Even if C was literally all bad (which imho isn't even possible), you shouldn't be that angry at it.
Germany has a pretty high population density and the metropolitan areas have evolved around medieval cities, so they are sometimes very bad a carrying a lot of traffic. Getting around by car in lots of major German cities is a major PITA and parking your car there (if you live there) is just as horrible. Inside cities, public transport is much more efficient.
Frankly the C++ version is lacking whitespace and is shorter than it needs to be and as someone who uses C++ daily and has used simdjson before it is still much easier to read than the Rust version. Have you considered that this is somewhat subjective?
How do you know the drummyfish person doesn't have a mental illness either? Arguably most personality "quirks" are caused by either some medical issue or events in childhood, some of which can be addressed as an adult and "sorted out", but some of which cannot.
It's entirely possible that drummyfish is a victim of some childhood trauma, which is likely easier to get into control than severe schizophrenia in the case of Terry Davis.
To be clear I totally agree with you, but I am arguing that you never quite know where illness ends and identity starts and we should try to attribute less bad behavior to identity for everyone.
Coroutines themselves are a really simple concept. But in practice they give you all the headaches async stuff generally gives you. And in C++ there is a ton of extra complication, especially because there is no support library. I wrote this in a tutorial a while ago:
> they are functions that can suspend themselves, meaning they stop themselves without returning, even in the middle of their body and then can later can be resumed, continuing execution at the point they suspended from earlier.
It essentially tries to explain how to build a coroutine support library yourself, but if you don't care about that, skip it and just use libcoro or cppcoro. They have examples too. My little async io library has some examples as well if you want to get an idea.
I guess those people were parts of the embedded software industry before 2000 (maybe today, I don't know). It's a very good thing that C, the lingua franca of modern computing, actually runs on everything and not just on the stuff we use to browse the internet.
I feel like actually good indie games have a much better chance, because from all I have heard the Steam algorithm actually wants to make money. It will show the game to a bunch of people regardless of the number of wishlists and if it does well, it will show it to more people. Of course Steam can not even do half the work for you, but it's still a much better system than just needing to have enough followers on Twitter or knowing someone at Kotaku or IGN.
Concepts are well supported and have been for a while and they are so great. Those alone make C++20 worth it. But Coroutines also make it worth it, if you build software that can use them well. Designated initializers change how I write code (for the better - by a lot). And of course std::span.