Cppfront, Carbon, and Qt
-
@brainchild said:
Perhaps someone has written software I may find useful, but also has adopted a broad range of lifestyle choices or political leanings I find objectionable. Should I avoid using the software?
I would. You don't have to.
I will avoid those projects. You don't have to.The name of the project reveals its purpose.
The name of the product is a way to sell whatever the authors want. cppfront brings warm fuzzy association with cfront and C++ syntax 2 sounds closer to what you know than C++/CLI for example. You can be ok with the product, that's fine, but please don't give into the pure marketing that is so transparent it's not even funny.
but I would just as well never have another mind-numbing fight with a C++ build tool chain
How would cppfront make the toolchains better? It actually makes it worse because it adds to its length.
We have too much of what? Alternative syntax for C++? What are other examples of active projects?
I don't mean other projects. I mean within C++ itself. There's couple dozens ways to initialize a variable. We don't need another.
What do you think Cppfront does, substantively, that is wrong?
- Markets itself as an alternative. It's not. It's an add-on at best, which complicates systems, not simplifies.
- Is owned by a single person. Has that ever turned out good?
- Introduces pointless syntax changes just because, like the
main
example above. - Introduces yet another step in the toolchain. Complicates already complicated ecosystem.
- Further fragments the already fragmented world of programming languages.
- Does not have any tooling backing associated with it or plan for it.
- Since realistically any existing project would hybrid this with C++ the different defaults, depending on which file you're in makes things harder, not simpler.
- I could go on, but I don't want to. I had this conversation many times already and I'm kinda tired of this topic to be honest.
Objecting to either project as such is like objecting to choosing an electric car because of some conventional car being available with different cup holders.
That's just completely random comparison that has nothing to do with the situation. Electric cars or other such technologies are necessary for sustainable future that doesn't rely on carbon (oh, the irony). These projects are not necessary or helpful. C++ can and does evolve. If you want a car analogy it's replacing a brand X for brand Y, because it has nicer headlights but smaller trunk.
-
@Chris-Kawa said in Cppfront, Carbon, and Qt:
Perhaps someone has written software I may find useful, but also has adopted a broad range of lifestyle choices or political leanings I find objectionable. Should I avoid using the software?
I would. You don't have to.
I will avoid those projects. You don't have to.You won't agree with anyone on everything, but you can still build on each other's work, and respect it. In fact, I doubt anyone has a choice of using tools and ideas created by others with whom one's own interests are not in perfect alignment.
The name of the project reveals its purpose.
The name of the product is a way to sell whatever the authors want. cppfront brings warm fuzzy association with cfront and C++ syntax 2 sounds closer to what you know than C++/CLI for example. You can be ok with the product, that's fine, but please don't give into the pure marketing that is so transparent it's not even funny.
Sure, but I found no evidence of incongruity between the stated and actual objectives.
but I would just as well never have another mind-numbing fight with a C++ build tool chain
How would cppfront make the toolchains better? It actually makes it worse because it adds to its length.
C++ is hard to use. Thoughtless technical mistakes lead to obtuse error message. It is a problem for the language, experienced when the tool chain is invoked.
We have too much of what? Alternative syntax for C++? What are other examples of active projects?
I don't mean other projects. I mean within C++ itself. There's couple dozens ways to initialize a variable. We don't need another.
Right, there are problems with C++ syntax. Why would the observation lead you to object to an alternative?
What do you think Cppfront does, substantively, that is wrong?
- Markets itself as an alternative. It's not. It's an add-on at best, which complicates systems, not simplifies.
- Is owned by a single person. Has that ever turned out good?
- Introduces pointless syntax changes just because, like the
main
example above. - Introduces yet another step in the toolchain. Complicates already complicated ecosystem.
- Further fragments the already fragmented world of programming languages.
- Does not have any tooling backing associated with it or plan for it.
- Since realistically any existing project would hybrid this with C++ the different defaults, depending on which file you're in makes things harder, not simpler.
- I could go on, but I don't want to. I had this conversation many times already and I'm kinda tired of this topic to be honest.
You're plainly just nitpicking. It is a small experiment currently owned by one person trying to prove a concept. Every objection you give has an alternative side.
That's just completely random comparison that has nothing to do with the situation. Electric cars or other such technologies are necessary for sustainable future that doesn't rely on carbon (oh, the irony). These projects are not necessary or helpful. C++ can and does evolve.
It is an analogy, of which you have missed the purpose. You may not think the concept of Cppfront adds value, but whether it does broadly is the question, not whether you like every nuance.
Vala has succeeded as a front end for GObject and GLib. Kotlin has succeeded as an alternative syntax for building Java classes. Whether Cppfront will succeed is an open question, but I fail to see a problem with the concept, especially in light of recent examples of comparable successes.
-
@brainchild said in Cppfront, Carbon, and Qt:
It is a small experiment currently by one person trying to prove a concept. Every objection you give has an alternative side.
Does anyone have thoughts, hopes, or reservations, about either project informing the future of development with Qt?
So you really want to tell us that any serious development of this size will switch to a one-man show? Wow...
-
@brainchild I mean I could respond to everything you said, but, like I said, I'm kinda tired of being the old guy screaming at clouds, while there's a party around the new shiny thing.
I'm ok with those things existing. It's not the first time. It's definitely not the last. I see a lot of markers of repeated history that people on with the hype just seem to brush off.
How about this - lets just wait it out couple years. You'll have your fun with it, then awkwardly fall silent when it fizzles out, and I'll have my fun murmuring "I told you so" to the deaf computer screen. Sounds ok to me.
-
@Christian-Ehrlicher said in Cppfront, Carbon, and Qt:
So you really want to tell us that any serious development of this size will switch to a one-man show? Wow...
I don't understand your comment.
I think my suggestion is that the current state of the project is a proof of concept. If it fails to gain interest, then it may never pass to another phase. However, if others are interested, then the scale of the project may expand. Is it not often the case, for many important projects, perhaps C++ itself, of beginning on a small and personal scale?
-
@brainchild said in Cppfront, Carbon, and Qt:
I think my suggestion is that the current state of the project is a proof of concept. If it fails to gain interest, then it may never pass to another phase. However, if others are interested, then the scale of the project may expand. Is it not often the case, for many important projects, perhaps C++ itself, of beginning on a small and personal scale?
So how does Qt come into play here?
If you want to try it out - try to compile Qt with it or port it to this and if it's working out in 5 years or so then It may be a valid compiler (or whatever) for Qt.
-
@Chris-Kawa I am not predicting success. I believe the future is open. The objections given so far have not seemed compelling. They have seemed to emphasize what the project is not, not what it is.
I am not aware of any project, ongoing or abandoned, quite like Cppfront, but would be happy to learn of any.
-
@brainchild Well, for an easy pick look no further than into Herb's past. Find anyone who has to maintain C++ C++/CLI C++/CX UWP hybrids to this day and ask how fun it is to deal with language evolutions that were too shiny to pass on. They were "just a little syntax sugar" too at the start. Just a little ^ here and there. And not even a single man projects. Had all the might and backing of Microsoft, Visual Studio tooling etc. Now they are husks on life support and burden to everyone who jumped on the hype train.
-
@Christian-Ehrlicher said in Cppfront, Carbon, and Qt:
So how does Qt come into play here?
As I stated, Cppfront may help support cleaner and faster development of applications based on the Qt. My view is it might be valuable as an option, though it may never fully replace C++, even for entirely new projects.
Carbon may also offer similar benefits, though the project is different.
If either fails to gain interest, or if its development stalls, then it will be irrelevant for Qt.
-
@brainchild if you do research, try anything you like. But you develop products for a long term, @Chris-Kawa is right about sticking to long lasting programming languages.
-
@JoeCFD Perhaps you misread my meaning. I am not suggesting beginning a project at this moment written in Cppfront or Carbon. To my knowledge, doing so is not even possible, as neither is complete.
I believe C++ is problematic for most development occurring today. Code is slow to write and hard to maintain. I also believe such a view is quite widespread. The idea of a viable front end is compelling, though of course any success is yet to be proved.
D, Rust, and Go emerged from a desire to replace C++, but each is a new language in its own right, not one that integrates cleanly into a system already begun in C++.
To represent the concept, and its potential, I return to Vala and Kotlin. Most developers prefer the design of more recent languages, all else equal, and C++ is almost singular among programming languages for its verbosity and redundancy.
-
@Chris-Kawa said in Cppfront, Carbon, and Qt:
@brainchild Find anyone who has to maintain C++ C++/CLI C++/CX UWP hybrids to this day and ask how fun it is to deal with language evolutions that were too shiny to pass on. They were "just a little syntax sugar" too at the start.
Microsoft is notorious for reinventing the wheel, even if it makes one as a hexagon just to be different from a circular one. I think it is not helpful to make comparisons to projects developed by Microsoft.
-
@brainchild These guys are veterans. Their ideas are accumulated from experiences. Not bad! Have you seen a big company tried to rewrite their code in another language? If you are a manager, better to be careful when you select programming language.
-
@brainchild said:
Microsoft is notorious for reinventing the wheel
Sutter works at Microsoft and was part of a lot of those wheel reinventions.
I think it is not helpful to make comparisons to projects developed by Microsoft
Why not? Carbon is Google people, D is Meta people, Rust is Mozilla people... and cppfront is Herb, who is a Microsoft guy. Companies are not some abstract entities. They are made of people. The same people that create those languages.
Most developers prefer the design of more recent languages
That's kinda bold statement. Can you back it up?
C++ is almost singular among programming languages for its verbosity and redundancy
Yes and it is evolving to simplify. See modules or even a modern hello world:
import std; int main() { print("Hello world\n"); }
That's not the same C++ you would write in '83. Got rid of preprocessor, include order problems, verbosity of streams, improved compile times etc. And those simplifications didn't require new language or new tools. Just hard work on existing.
-
@Chris-Kawa said in Cppfront, Carbon, and Qt:
Sutter works at Microsoft and was part of a lot of those wheel reinventions.
I think it is not helpful to make comparisons to projects developed by Microsoft
Why not? Carbon is Google people, D is Meta people, Rust is Mozilla people... and cppfront is Herb, who is a Microsoft guy. Companies are not some abstract entities. They are made of people. The same people that create those languages.'
Companies are made of people, and carry a further abstraction through history, culture, and convention that transcends any single person. If I worked at Microsoft, then surely I would work in a way different from how I would work at another company, or by myself, and surely any mistakes in my work, whether by my choice or another's, would be learning experiences.
Most developers prefer the design of more recent languages
That's kinda bold statement. Can you back it up?
Developers adopt newer languages because newer ones tend to resolve the problems of older ones, based on the experience that accumulated toward their creation.
C++ is almost singular among programming languages for its verbosity and redundancy
Yes and it is evolving to simplify.
Yes, but even so, the problematic characterizations remain overall largely the same. We still have a big mess with headers, class names prefixing function names in definitions, and the fake function definitions for templates placed in header files.
-
@brainchild said:
Companies are made of people, and carry a further abstraction
So you're saying we should discard anything we can learn from mistakes of companies because there's no single name to pin them on? That's a weird attitude. I disagree. Big tech companies create big tech we all use every day. That's, by far, the largest pool of experiences to learn from.
Developers adopt newer languages because newer ones tend to resolve the problems of older ones
Not in my experience. The way I've seen it in my career people usually switch because their manager/lead went to a conference or read a LinkedIn post and got the bug. People that do actual work have to deal with the realities of life and the fallout for years - transition, compatibility, tooling woes, growing pains, evolution beyond basic "let's improve syntax" ideas, while those decision makers move on to the new shiny every few months when those problems become too much to handle.
We still have a big mess
Yes, we can't clean everything up in an instant. What's your point? Throw away 40 years of evolution because you don't like class name in front of a method or some other style bit? Seriously? What's next? New language because ; is not optional like in "modern" languages and it confuses Python programmers?
-
@Chris-Kawa said in Cppfront, Carbon, and Qt:
Companies are made of people, and carry a further abstraction
So you're saying we should discard anything we can learn from mistakes of companies because there's no single name to pin them on? That's a weird attitude. I disagree. Big tech companies create big tech we all use every day. That's, by far, the largest pool of experiences to learn from.
Not even slightly.
I am saying each company has a culture that affects what is done inside of it, separate from the choices or preferences of any single member.
If I worked on a failed project for a company that had a certain culture, I might like the opportunity to try again, free from that culture, and also learning from the mistakes.
Developers adopt newer languages because newer ones tend to resolve the problems of older ones
Not in my experience. The way I've seen it in my career people usually switch because their manager/lead went to a conference or read a LinkedIn post and got the bug. People that do actual work have to deal with the realities of life and the fallout for years - transition, compatibility, tooling woes, growing pains, evolution beyond basic "let's improve syntax" ideas, while those decision makers move on to the new shiny every few months when those problems become too much to handle.
I understand. Some developers may use a language for reasons not one's own. Many developers prefer newer languages, however, for being more elegant and expressive.
We still have a big mess
Yes, we can't clean everything up in an instant. What's your point? Throw away 40 years of evolution because you don't like class name in front of a method or some other style bit? Seriously? What's next? New language because ; is not optional like in "modern" languages and it confuses Python programmers?
My point is we have a mess, and much of that mess is addressed by projects such as Cppfront. Such is largely the reason I personally might like to see it succeed. C++ itself may also address some of the mess in the future, if possible. In either case evolution would be occurring continuously, not discarded.
-
@brainchild said in Cppfront, Carbon, and Qt:
Many developers prefer newer languages, however, for being more elegant and expressive.
Did you ever worked in a company which had real projects?
Your sentence may be true for hobby stuff or a very small percentage of companies.
How will you even add a new language in a 20-year old product? Do you really think you can convince the manager that switching to a new shiny programming language will solve all your problems with the old code? Where do you live??? -
@brainchild said in Cppfront, Carbon, and Qt:
Two projects recently have emerged
I like to also include Jakt in this list. Not familiar with it myself, but interesting due to the people that are working on it.
@Chris-Kawa said in Cppfront, Carbon, and Qt:
As a pure syntax nitpick, how is auto main() -> int(Carbon) or main: () -> int =(cppfront) an improvement over int main()???
You picked the by far simplest example and the difference is just splitting hairs. Where it becomes more interesting is when (if) this idea of being able to read from left to right always can be applied to much more tricky syntax. (no, not going to repeat the examples here, DYOR).
@Chris-Kawa said in Cppfront, Carbon, and Qt:
Is owned by a single person. Has that ever turned out good?
To be fair, he has Microsoft behind him.
Anyway, Chris may disagree and try to convince people to not innovate. That is his right.
Ironically this topic of C++ transpiled languages got attention the other day because or severe problems in the industry. Problems that at least in part are due to the problems most of those projects are trying to solve. So, I don't care that Chris dislikes one guy and his repo. Or even dislikes Microsoft as a whole. As long as the research is done in the open and the code is available in an appropriate license, then we all benefit.
In the end the industry will use such a transpiled language or it won't. And more choice is good, competition of ideas is good, because then the chance is, usage is going to be more based on merit than on reputation.
To give my 2 cents on the initial question. I think its too early days to consider how this affects Qt or Qt using developers.
ps. first and probably last message on this thread, seems this is a hot topic ;-)
-
@TomZ said:
Chris may disagree and try to convince people to not innovate
That's just harmful exaggeration, please don't assume such things. Innovate away, by all means. I'm not against progress. I just don't believe that's it and I don't particularly look forward to cleaning up after this mess (by which I mean work in those hybrid workspaces if they do emerge), but have at it, I'll live.
So, I don't care that Chris dislikes one guy and his repo
I think you did grew to care a little bit, and I appreciate it :) I don't dislike the guy. Like I said in the other thread - he's a great presenter, community builder, facilitates a lot of work that is being done in the C++ space and does a lot of good work educating via blogs and whatnot. I just don't like the direction he's been trying to push C++ for the longest time, or the multitude attempts at replacing it with what I consider destructive processes and lesser options. I think it's misguided, fragmenting and harmful long term. Sure it's cool to play around with, like any tech is to me, but I just don't appreciate all that cheerleading that is currently happening around it. It's just a very limited toy, hyped up to high heavens, not a solution to all problems of C++, like some deem it to be.
I'm not chaining myself to a tree or anything like that. Do whatever you want. You asked about opinions in that other thread so I answered. OP asked the same here so I responded. If you don't want to see me talking about it that's fine. I'm a bit annoyed and tired of the topic anyway, so I probably will shut up if it reappears.