Talk:Carbon (programming language)
Latest comment: 8 months ago by Mathnerd314159 in topic Modern C++
This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||||||
|
Resources
editSince the article in an early stage, It will be nice to list the resources related to the language Charmk (talk) 01:19, 22 July 2022 (UTC)
A Commons file used on this page or its Wikidata item has been nominated for deletion
editThe following Wikimedia Commons file used on this page or its Wikidata item has been nominated for deletion:
Participate in the deletion discussion at the nomination page. —Community Tech bot (talk) 15:07, 25 September 2022 (UTC)
- As I wrote in the nomination, per [1] and [2] there is no Carbon language logo and they are deliberately avoiding creating one. So even if the image isn't deleted it should still be removed from here as pretending it is the logo is just misleading. Mathnerd314159 (talk) 01:59, 28 September 2022 (UTC)
Modern C++
editIn modern C++ you can also use the -> for return type and specify it as int32_t (since 2011's C++11). https://godbolt.org/z/9vr9f9hzq
#include <iostream> auto main() -> int32_t { auto s = "Hello, World!"; std::cout << s; return 0; }
194.207.86.26 (talk) 17:18, 11 December 2022 (UTC)
- Since there seems to be a lot of disagreement about the C++ version maybe we should just remove it and have only the Carbon version. Mathnerd314159 (talk) 05:26, 13 December 2022 (UTC)
- I can understand the desire to have the code listing copied from somewhere else to avoid endless code adjustments from disagreeing coders, but the C++ code just wasn't written in a way conducive to comparison, nor was it even conforming C++ code. I don't think it's acceptable to embed that comparison on this website, (a link to it would be fine if we must). (For context for future talk readers, here was my proposed equivalent C++ code).
- P.s. it's not OK to specify the return type as int32_t, that type is neither required to be int, nor is it even required to exist (it's an optional type alias). The return type of main must be int --Ybab321 (talk) 10:42, 23 February 2024 (UTC)
- The code seemed comparable enough. it has the same functions and control flow. And it compiles with
gcc -std=c++20 -Wall -Wextra -pedantic
with only some unused argument warnings. As far as MSVC, you just have to add#define _USE_MATH_DEFINES
to getM_PI
. Or you could define M_PI directly. But I don't think changing the code like that would make it any more clearer. I would say it is the clearest information the Carbon developers have given as to what they don't like about C++. I guess what you're saying is that the content is not allowable under WP:SELFSOURCE because it is self-serving and makes false claims about what a typical C++ program looks like. I'm not seeing that though? Many C++ programs use M_PI, e.g. in this Github search, generally defining it themselves but there are also a lot of programs doing use_math_define. - Now as a contrary point, I have looked at various programming language articles on Wikipedia and generally they don't do language comparisons, merely language examples. But cc @Nexxl who added the comparison. Mathnerd314159 (talk) 00:03, 24 February 2024 (UTC)
- Perhaps I spoke too brazenly, my apologies. It is true that a lot of C++ code is written that is, lets say, suboptimally portable (an implementation is allowed to declare M_PI in a header, it's just not a standard requirement. It's also true that the vast majority of C++ code in the wild currently won't be using the C++20 and C++23 features that would make the comparison as direct as I would like it to be. I certainly don't mean to imply that the carbon folk are selling a maliciously self serving example, though it seems a bit silly to me to compare new carbon code with old C++ code. When comparing new carbon code with new C++ code, one can see that the differences are purely syntactic, which I think is a great and meaningful result of comparison between programming languages. With all that said, I'm amenable to restoring the comparison as it was, but obviously my preference remains otherwise. --Ybab321 (talk) 22:54, 27 February 2024 (UTC)
- Now that I think about it, the best solution would be to update the C++ code in the Carbon repo with your code. Then Wikipedia can cite it and also you will be happy. So I would say, open a PR and see what happens. At least that way there will be an official response / nonresponse. Mathnerd314159 (talk) 18:16, 28 February 2024 (UTC)
- Perhaps I spoke too brazenly, my apologies. It is true that a lot of C++ code is written that is, lets say, suboptimally portable (an implementation is allowed to declare M_PI in a header, it's just not a standard requirement. It's also true that the vast majority of C++ code in the wild currently won't be using the C++20 and C++23 features that would make the comparison as direct as I would like it to be. I certainly don't mean to imply that the carbon folk are selling a maliciously self serving example, though it seems a bit silly to me to compare new carbon code with old C++ code. When comparing new carbon code with new C++ code, one can see that the differences are purely syntactic, which I think is a great and meaningful result of comparison between programming languages. With all that said, I'm amenable to restoring the comparison as it was, but obviously my preference remains otherwise. --Ybab321 (talk) 22:54, 27 February 2024 (UTC)
- The code seemed comparable enough. it has the same functions and control flow. And it compiles with
- P.s. it's not OK to specify the return type as int32_t, that type is neither required to be int, nor is it even required to exist (it's an optional type alias). The return type of main must be int --Ybab321 (talk) 10:42, 23 February 2024 (UTC)
Attempting the best solution sounds like a good idea to me, opened a PR as suggested --Ybab321 (talk) 21:24, 29 February 2024 (UTC)
- OK my PR has been merged now. I'm still OK with the C++ code not being there per the "generally they don't do language comparisons" observation, though Carbon's relationship with C++ is a special one. I'm not really sure what makes the most sense, but I'll add the code comparison back in seeing as we went down this route --Ybab321 (talk) 23:55, 4 March 2024 (UTC)
- I would say at present, the article's biggest issue is the lack of material. There are just not many sources. But the code comparison at least makes it not look like a stub. I would say it's fine for now. Mathnerd314159 (talk) 03:57, 5 March 2024 (UTC)