old hacker...low tolerance
-
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.
-
-
-
@mzimmers said in old hacker...low tolerance:
Right...and robots will eliminate the need for human labor in 10 years. signed, a lot of smart people c. 1960.
Well, those idiots on the left coast (SanFransisco) just approved the use of "lethal force" robots against civilians. Yet another step closer to sky-net, but what do those of us wearing tin-foil hats know, right?
-
@Kent-Dorfman When were weapons not used against civilians? The latest technology has always been used for weapons if possible in the history. The first computer was made to calculate the trajectory of projectiles. The nuclear energy was first applied for a bomb against civilians. I recently watched Hiroshima in youtube and it is a good movie.
-
@JonB said in old hacker...low tolerance:
Programming (languages, humans writing code) will be over in 20 (50?) years. Discuss.
sure, same as self driving cars, just right around to corner!
-
Looks like I'm a little late to the party about cppfront. In general, I like some of the idea. There's recently been some talks (some by Herb himself) that passing argument by const reference is not always the most performant way to do it. You would actually need 3 different version of the same function for best performance. If you have two parameters that need to be optimized this way you'd have to write every combination of those, i.e. 9 different version. His C++ syntax 2 would solve this problem. That's the part I like. Concerning interoperability his approach is way superior to Carbon. Within the same file you can mix syntax 1 and syntax 2 if you are using cppfront as a compiler. This means as long as cppfront is your compiler you can still write classic C++ code and call functions written in syntax 2. There is no extra interoperability layer you have to write or be concerned with. Someone already mentioned that experts in C++ would need to know syntax 1 & 2 which is an extra burden added. Understanding syntax 2 at will tell you about the pitfalls when using syntax 1. Only problem with cppfront: I don't particularly like the syntax. Though for some of the features I might still be persuaded to swallow the pill and switch over if this would become standard.
-
@mzimmers said in old hacker...low tolerance:
Let's all quit, move to Florida and go golfing.
I retired some years ago (never been busier, though), I would not move to the USA, but the Caribbean looks interesting.
Especially when they are turning their backs on the dollar system (which turned its back on them years ago).
https://www.stvincenttimes.com/st-kitts-nevis-to-make-bitcoin-cash-legal-tender-by-march-2023/