Why are comments not a node content type? So Drupal has a 'special' commenting system.


  Comments are second-class citizens in Drupal compared to nodes...


But why did the core team not just create a default Content Type, Block and View for comments, and allow the site administrator add in a comment block as necessary? Just like the 'Article' and 'Basic Page' content types, which we can create blocks and views for. Why are comments so different?
To answer this, I first had to understand one thing: Entities are not nodes.

Entity Types are special groupings of fields.

Node is an entity type, which requires some fields, such as 'Title', 'Author' and 'Publish Date'.

Content Types are instances of Node which further define more fields. So a 'blog post' content type can have 'Hook', 'Introduction', 'Summary' and 'Related posts' fields, in addition to 'Title', 'Author' and 'Publish Date'.

Node is an entity type specialized for content. A comment is not designed to be a node because it is too different from a typical content. It's not necessary to have a 'Title', 'Author' or 'Publish Date' field in a comment. Because it is so different, it is created as another Entity type instead.

For more details, see this article on Drupal.