5 ms·
The CL 1994 standard has close to 1400 pages; the C++11 standard had the same size and doubled the number of pages compared to C++03. In comparison to that, the
by Rochus 5y ago
The CL 1994 standard has close to 1400 pages; the C++11 standard had the same size and doubled the number of pages compared to C++03. In comparison to that, the original Oberon language specification in 1990 had less than 20 pages. CL might be "small" in terms of syntax; but the number of constructs to take into account in practice is still large.
- 4ad 5y agoThe CL standard describes the standard library. The language is described in about 40 pages of said standard.
- Rochus 5y agoAlso the C++ standard includes the standard library. The standard library can be considered part of the language. If you include the standard library for C# this adds up to several thousand pages. Lisp like Smalltalk have very little syntax, but this is mostly because constructs which are part of the syntax in bigger languages are constructed in Lisp and Smalltalk on the simple syntax; and you still have to know how to write loops or closures or the like; or if you want OO in Lisp you have to know CLOS, which has many pages.
- kryptiskt 5y agoThe Common Lisp standard library includes most of the control flow constructs, the object system, and ways to bind values. Things that in another language would have been in the core language. You can't learn CL in any meaningful sense without in-depth knowledge of the standard library.
- adrian_b 5y agoIt is true that the CL standard is not much smaller than the C+11 standard but the number of pages on my (officially bought) standard copies are: Common Lisp 1994 (2004 edition): 1153 pages C 1999: 554 pages C++ 1998: 776 pages C++ 2011: 1356 pages C++ 2014: 1375 pages C++ 2017: 1618 pages C++ 2017(2018): 1620 pages In comparison, the reference manual for Ada 1983 had only 336 pages and the Algol 68 report had only 146 pages, these 2 being considered very large languages at their time. It is true, however, that the Algol 68 report would have required a double length to include enough explanations to make it intelligible for everybody.
- Rochus 5y agoI referred to the ANSI CL draft standard; the PDF has 1356 pages; the syntax section has 42 pages, but for CL code of real world applications at least 800 of the remaining pages are relevant.
- WalterBright 5y ago> Ada 1983 had only 336 pages I have a copy of MIL-STD-1815, the first Ada spec, and it's 242 pages!
- adrian_b 5y agoI also have the even earlier "Preliminary Ada Reference Manual", from June 1979, which has only 150 pages. At that stage, Ada had already won the DoD competition, but until it was published as a military standard a few more features were added and some sections of the specification were rewritten, for increased precision. In any case, the June 1979 Ada version already included what I consider as the most useful Ada innovation, even if it is just a small detail: allowing underscores inside numbers, for better readability. It always annoys me when I have to use some programming language or software tool that happens to miss this feature, even now, more than 40 years after it became known that this is a good idea.
- buescher 5y agoUnderscores inside numbers! I had no idea. Yes, it's a very good idea. I bet someone out there hates it though. It's in Python, Javascript, and Java at least now... what others?
- pjmlp 5y agoYou missed C# and C++.
- adrian_b 5y agoWhile C++ 2014 added a digit separator, in my opinion using a single quote instead of an underscore as in Ada and in all the other languages following Ada was an extremely stupid decision. The rationale for this surprising choice was that a number starting with an underscore could be interpreted as an identifier. ??!! Why would anyone want to start a number with an underscore? Underscores are needed only inside long numbers. The syntax should have allowed underscores only inside numbers and there would have been no problems with backward compatibility, as such numbers would have been illegal before. The single quote cannot have been easier for parsing as the new use must not be confused by the parser with character literals, which can appear in the same context. The underscore was first introduced in a programming language by IBM PL/I (in 1964, when it was still named NPL) with the precise purpose of improving the readability of identifiers. Ada has extended this use to also improve the readability of long numbers. Why C++ has chosen a different character, which is normally used for completely different purposes, without having any decent justification for such a baffling decision, I cannot understand.