old hacker...low tolerance
-
@Chris-Kawa Good to know. Thanks for your info. I was kidding. But I do share what @Kent-Dorfman wrote.
-
-
Its actually nice to read this thread because the "software dev" profession has been so overrun and the 'if its not solved on stackoverflow, its not possible to fix" mindset, that its depressing. So, reading that actually good devs are hanging on, laying low, that is positive as that means that the profession isn't forever doomed :-)
Nearly a decade ago I joined a cpp company in Oslo which focused on financials, trading and that kind of stuff. I learned about that stuff as a matter of course and am forever changed. In short, the financial system we use is in great part responsible for a lot of problems in the world today. Understanding basic economics has been insightful, to say the least. (mandatory reading).
As systems like the financial system extract more and more value out of the hardworking people, the companies are having a harder time actually making a profit. First to go is longer term planning and investment in tech. If it doesn't produce results the next week, its not a priority.
Then the forever dropping interest rate (well, they went up slightly recently, but remember in your youth you'd get nearly 10%) means that companies that are really not making a profit can get loans to keep them afloat longer than they really should be.
This looks like its not a problem at first, less people fired, right? But good and honest companies are fighting those non-profitable companies for good people, so it actually is really a boon to the entire ecosystem if the bad companies go bankrupt. It allows a new one to start.There is light, though. I'm optimistic about possibilities and ways forward. Society is darn close to rock-bottom as a whole. It can only go up from here.
In the mean-time I'm happy working on open source software on my own terms, building fun stuff for real use. Though figuring out Android for the first time is harder than I expected.
-
@TomZ said:
Society is darn close to rock-bottom as a whole. It can only go up from here.
Every few years someone says that and every time there's someone with a shovel to prove them wrong.
-
I have low expectations for society, and despite that, I'm getting disappointed on a regular basis.
-
I've just read yet another article about how C++ needs to die because pointers, and no-code/low-code is the next big thing. Basically "computers too hard, need make businessmen move pretty pictures instead. We'll call it programming from now on"...
Depressed
-
@Chris-Kawa said in old hacker...low tolerance:
I've just read yet another article about how C++ needs to die because pointers, and no-code/low-code is the next big thing.
What are people's opinion about the effort called 'cppfront' (from hsutter).
Personally I'm thinking its quite interesting and does solve a lot of legacy issues with the language.
-
@TomZ My personal opinion: Herb is a good presenter and community builder, but he has spent decades trying hard to make C++ not C++. He tried with .Net, C++/CLI, C++/CX and a bunch of features that thankfully didn't make it into standard. He made a big presentation about memory management in C++ a few years back and the first Q&A question was "Did you just implement a garbage collector?". cppfront shows the same attitude, even in the different syntax, that's often different for the sake of it being different. At the point he presented it it didn't even have classes. It's under control of single person, would take decades to become production ready for even simple projects. I don't see anything useful for C++ coming out of it beyond maybe some trivial features tested early. For example he says the defaults in C++ are bad and it's a chance to see what would it look like to change them. We know defaults are bad and we know there's no way to change them without breaking the world, so what's the point? To me cppfront is basically a toy to play around with compiler. Just like Carbon, that was announced around the same time. Similar syntax even, because these guys hang around together.
-
@Chris-Kawa said in old hacker...low tolerance:
We know defaults are bad and we know there's no way to change them without breaking the world, so what's the point?
But that's the entire point of the project. It allows changing the defaults without breaking the world. Which is the most important point of the project.
Not sure why you think it would not be able to accomplish that.
See it in this light; ever new class you write from now on will be forced to have sane defaults and good practices enforced. Old code stays old code, no changes needed. You can even refactor and mix, but it would be frowned upon in your CI. And, naturally, it all gets compiled with the same compiler and links together.
@Chris-Kawa said in old hacker...low tolerance:
To me cppfront is basically a toy to play around with compiler.
Its not a compiler. As the name implies. You still use your normal cpp compiler in the end.
-
But that's the entire point of the project
Pretty much entire world runs on C++. Took it almost 40 years to get there. cppfront is not gonna have any relevance for at least the same. Now you have a complicated C++ language. If you introduce cppfront somewhere you're not dropping the old. You'll have to be an expert in both and in interop between them to get anywhere.
Tooling for C++ is abundant and often sucks. There's no tooling for cppfront whatsoever. There's no libraries, editors, toolchain support, test frameworks. Pretty much no infrastructure for it whatsoever beyond compiler explorer. The language itself is in a napkin draft stage and is owned by a single person.Its not a compiler
I know. I meant that it's a toy language to play with existing compiler to see what it can do if you drop legacy dependencies. Which you can do on a playground, but can't do in the real world.
-
@TomZ , @Chris-Kawa said in old hacker...low tolerance:
Its not a compiler
I know.
Reading and learning from you two. But it's amusing that the opening sentence from its author at https://github.com/hsutter/cppfront reads:
Cppfront is a experimental compiler from a potential C++ 'syntax 2' (Cpp2) to today's 'syntax 1' (Cpp1), to learn some things, prove out some concepts, and share some ideas. This compiler is a work in progress
[My bold.]
-
@JonB Right, I guess we got carried away. cppfront is the compiler for cpp2 or C++ syntax 2 language.
Btw. "C++ 'syntax 2'" is such a classic Herb move to make something new and call it C++. He knows that if you call it D or Rust most C++ people won't be interested. He's a good salesman.
The goal of that project is to see if we could evolve C++ if we dropped legacy dependencies. Let me spare you the trouble:
- Can we make a better language if we drop legacy dependencies? - Absolutely, it was done multiple times.
- Can we evolve existing code base into that new language? - It's been tried. Leads to local pockets of messy unmaintainable hybrids that bog down the system and eventually get rewritten in the yet next bigger thing or dropped entirely.
- Can we try it anyway because we know better? - Sure, have at it
It's curious to me that Stroustrup doesn't seem to comment on it (or at least I haven't noticed), yet Herb keeps using his cfront as an example to call cppfront the same thing. I wonder what he thinks of it.
-
@Chris-Kawa said in old hacker...low tolerance:
Pretty much entire world runs on C++. Took it almost 40 years to get there. cppfront is not gonna have any relevance for at least the same. Now you have a complicated C++ language. If you introduce cppfront somewhere you're not dropping the old. You'll have to be an expert in both and in interop between them to get anywhere.
Ok, this is factually a project that takes a cpp2 file, and "compiles" (ok, I guess he calls that compiling) it to regular C++, which is then put in your project to compile with all the other files.
Knowing this, I'm not sure why you have such worries. Indeed, nobody is going to suggest you drop the old, there is no reason to throw away any cpp tooling as it still works, there is no "interop" to worry about as its literally the same concepts, the same library and the method names you make up are still pure C++ methods.
Let me repeat that, your Qt library can be used with zero config, glue or interop-work from cpp-front. Because both are C++.
Now, I read you have doubts about the guy's motives. And that's fair, I don't know (or care) about the man. He is indeed a great presenter, I'll give you that.
But I don't give a hoot about the man, I care about the research and the open source code.Anyway, the reason this is on this thread is because there is a real industry push away from unsafe code. Out of bounds memory accesses (raw pointer arithmetic) are still near the top when it comes to exploits and similar issues. Dropping C++ is one way to go, but that 40 years of history is indeed a pretty big reason why that's not gonna happen. So, this is one way to go.
Maybe to avoid the politics; what about https://github.com/SerenityOS/jakt ?
-
Ok, this is factually a project that takes a cpp2 file, and "compiles" it to regular C++
Currently. Again, it's a napkin spec right now. There's already a talk about meta-classes and other stuff that doesn't have direct translation into standard C++.
there is no "interop" to worry about
Try calling a syntax 2 function from C++. Yes, you need glue.
Because both are C++
No, they're not. Just like JavaScript and TypeScript are not the same. You are buying into the marketing. It's not C++. It's a one direction translation. Bidirectional interop needs glue.
How about we focus on educating better and methodically improve existing C++ instead of inventing 42nd language for attention deficient people, who look for instant wins and can't be bothered to put any effort in? Because that's a rising and far larger problem than some syntax tidbits. Just look at any technical forum - next generation is perfectly well capable of f-ing up in syntax 2, just like they are in C++. It's a sociological problem to a far greater extent than a technical one.
Besides, there were bunch of other languages starting with good intentions like this - C++ without its legacy problems. D for example. The issue is that it starts that way, but when the language grows to the size that is actually useful, it gathers its own baggage of legacy problems. You end up in the same spot, just with lost time that you could've put into improving what you already had. The world is already spinning. There is no starting over.
-
@Chris-Kawa Oh, no, you are against the Great Reset.
One thing I do agree with you is: it makes more sense to make C++ better than to invent more other languages.
For example, I used to use a lot of Fortran. If C++ has efficient multi-dimensional array(will have in 23), Fortran can be dropped easily. -
The sad part for me is that a bunch of those new languages popping up are made by current or former C++ standard committee members, which sounds like "oh no, it's too hard, I'll make my own". And it's not even a joint effort. Everyone wants to be the inventor of the next big thing. I mean I don't mind people wasting time. It's their time to waste. It's just those are the people who are actually in a position to do something impactful. I wish they would've spent that time more productive for the sake of all of us.
-
@Chris-Kawa Actually not bad if they can come up with some good ideas.