![]() | This is an archive of past discussions about List of C-family programming languages. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
Archive 1 |
How about adding TypeScript to the list? --Mortense (talk) 16:21, 3 April 2014 (UTC)
Apple's Swift_(programming_language) seems like a correct addition here. — Preceding unsigned comment added by Adamnelson (talk • contribs) 09:00, 28 August 2014 (UTC)
SpecC is extension of the ANSI-C programming language. — Preceding unsigned comment added by Lostdistance (talk • contribs) 18:11, 1 October 2016 (UTC)
I propose that we limit the scope of this list to programming languages explicitly derived from the C standard and rename the list accordingly. Sizeofint (talk) 16:11, 21 April 2015 (UTC)
Reason:
Dannyniu (talk) 11:42, 13 July 2015 (UTC)
Further reasons: It's like we breathe air every day that we don't have to make a list of different kinds of airs, while subcategorization such as smell, wind strenghth, foggieness would be useful. And if I didn't say well enought, I guess this is what I mean it's the "model" programming language.
But a little embarassing question here. How do I nominate it for deletion formally? Like, how do I put that red little tag on the page?
Dannyniu (talk) 08:20, 15 July 2015 (UTC)
var1 = var2 - (1 - function1(var3 - 5, function1(1.2, -5.6))) * 2;
/* here vars are defined variables of the same floating point type
and function1 is a defined function that takes two floating
point arguments and returns one floating point argument of the
same type. */
I actually like this article-topic, and don't believe it needs deleting. However, it could use a cleanup, and an additional column that explicitly indicates the relationship each language has with C. Specifically:
Point being, I do think there is a point to this article. Many languages attempt to imitate one or more features of C-family-syntax, so that programmers trying to use the 'new' language will see familiar constructs when they type code. Compare with the use of Java-syntax (but not Java-compatible standard libraries!) by google when they created android; they didn't re-use Java-syntax for no reason, it was to ease the transition to the new platform by giving programmers a familiar environment. However, syntax-mimicry is not the end of it. Some languages like C++ are actually backwards-compatible with C programs... and Java with JNI, plus to a lesser extent PHP with their tight integration for C-binding-based subroutines, can also be considered partially members of this group. Those languages are designed so that 1) you can still program in C/C++ if you need or want to, and 2) you can switch to the new language for most things, and then switch back to C/C++ when needed. The languages are designed to make it *easy* for programmers to use existing code they have in C/C++ (either their own or third-party-modules from the internetz or whatever). The languages are also designed to make it easy for programmers two switch back and forth between Java and C/C++ , because not only is the C-binding-JNI-stuff easy, the syntax of Java purposefully mimics the syntax of C/C++ , so the mental switchover is not *too* painful. Ditto for the way PHP tries to let you have easy C-bindings, and reasonably-similar C-like-syntax.
So, in order to make the list-article more useful to the readership, I suggest adding one or maybe two columns to the table. I'll assume two added columns, since that makes the most sense for me: one which lists superficial similarities such as the use of curlies and other syntax-things (see somewhat-more-complete list above), and a second column which lists "deeper" features that make the language C-family-friendly, like ability to 'compile' from language X into foo.C intermediate-language-output-files, or the ability of language X to contain embedded inline snippets of C/C++ code. I'd lean towards putting the ease-of-C-bindings-characteristic into the superficial-column, since almost every language has *that* feature (even ones like LISP which don't have any C-family-syntax-mimicry to speak of can make foreign funcalls to C/C++ libraries and executables). Once the two new columns have been populated, I think the languages that don't really belong here ... because the just have curlies and fail to support += and zero-based arrays and other 'standard' features of C-family-languages ... will become far more clear. 75.108.94.227 (talk) 01:23, 22 July 2015 (UTC)
This article is ridiculous in it's inclusion of languages that bear no relation to C. A block structure, such as Python does not equate to the block structure of C. Python strictly enforces indentation whereas C-family languages ignore all white space. AMPL is a modelling language not a programming language. Those two examples alone are enough to force an objective rethink about what is in or out. As for including languages that can call C routines - that is a fatuous criteria, as that capability is determined by the ABI of the target platform and the capability of the involved compilers. There is a logical fallacy in the introduction which states "The family spreads out over several programming paradigms, including procedural programming, object-oriented programming, functional programming, and generic programming, as well as having both native code and virtual machine runtime environments." No! Just because C and C++ and (nearly in every case) Java, can produce compilations that run in these spaces does not mean that everything that runs in any of these spaces is part of the family. It is a clear error in equating programming paradigms with programming languages. Further, I would point out that the reference http://cdn.oreillystatic.com/en/assets/1/event/45/Go%20Presentation.pdf should not be a Wikipedia source. It is a apostolic document, written by one of the authors of the language it propounds, whence we get a lot of unsupported assertions. The first point of call should be this interview Java Report, 5(7), July 2000 and C++ Report, 12(7), July/August 2000.
As for some of the other silly comments regarding additional inclusions - to paraphrase, "PHP can be translated to C therefore it is C like." What a joke. The concrete syntax tree of my home grown context-free grammar can be translated to C so shall we include that. C-Family means looks and smells a lot like C and none of the scripting languages included fit that criteria. Something could be written to parse "Moby Dick" into code that looks like C. It probably wouldn't compile or run but it would meet the low threshold set by some of the comments above.
And most of the other criteria and comments are mistaking "C-family" for "interoperability". No wonder the world is full of bugs with such flawed logic being written.
To summarise,
C, C++, Java, all authored by recognised experts in their field. PHP written by amateurs Most wiki articles on programming written by students.
The criteria for inclusion in this list should be very simple: a language is part of the C family if and only if a reliable source has described the language as part of the C family. This is consistent with Wikipedia's core guidelines of verifiability and no original research.
Interoperability with C is irrelevant. A basis in the C specification is irrelevant. Style and choice of braces is irrelevant. Defining what it means to be part of the C family should not be our concern. The only thing we should worry about is whether reliable sources say that a language is part of the C family. Pburka (talk) 19:34, 7 December 2015 (UTC)
I agree completely this list needs objective criteria for inclusion, but without deciding right here what we mean by "C-family", even when we lean on "reliable" sources, it's like chasing a ghost. Above, in the deletion request, I described a syntax-based distinction, which would make this article properly a "C-syntax family" list, which is narrower in scope, but still useful (to me at least), so may be better than the pile of loosely related languages we have now. melikamp (talk) 00:28, 19 January 2016 (UTC)
I agree with Melikamp - basing inclusion on external sources is too nebulous a criteria. (I do agree with Pbruka that interoperability with C and basis in the C specification are both irrelevant concerns, though.) There needs to be some strict criteria, even if it means renaming the page, and to me, a syntax-based criteria based on the style of braces makes the most sense. If a reliable source does claim a braceless language is part of the C language family, then maybe that language could be included with a footnote, but a requirement to source every single entry seems a bit too much. Celtic Minstrel (talk • contribs)
This list still has no clear inclusion criteria and some ridiculous entries. (By what stretch of the imagination are AWK, R, and Fortress in the C family??) I'm an inclusionist, but I don't think I could !vote keep if this was brought to AFD again. pburka (talk) 23:24, 26 August 2020 (UTC)
I doubt that JavaScript is a C-like programming language. It is a scripting language that resembles more Python.--81.217.135.32 (talk) 17:29, 18 November 2022 (UTC)