old hacker...low tolerance
-
@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.
-
-