Skip to content

Comment on Comparison of XMPP based Group Chat and IRC based Group Chat

Comments

The author seems to lack the technical background to write about the topic.

All IRC messages are simple strings in the augmented BNF representation.

He does not know what a formal language is.

The difference between a command and a message is just the prefix that you type in the client. Any message that you type beginning with the "/" character is interpreted as a command.

He is confusing the IRC protocol with a user interface now.

Also this statement is quite awkward:

IRC messages are short because they are simple ASCII text strings in a specific format.

First of all, encoding issues are a major pain point in IRC. Luckily most people use UTF-8 now, but the transition from legacy 8-bit encodings was not easy. Considering the history of IRC, I don't believe that IRC ever used plain ASCII.

Secondly, what is XML but "text strings in a specific format"? That's incredibly vague statement to begin with.

I misunderstood the encoding in the IRC protocol. I reworded the section that both of you mention. Thanks!

How would you explain it?

1) BNF [0] is a notation [1] for formally defining languages [2], e.g. the syntax [3] of programming languages like C [4] or Java [5], or in this case, the IRC protocol. Every BNF definition is a bunch of strings. BNF is not a data model [6][7], a serialization format or a language for representing IRC messages (as XML is for XMPP). You are correct in that IRC is a much simpler protocol than IRC, though.

2) There is no difference between commands and messages in IRC, because to send a message, the command PRIVMSG [8] is invoked:

  JOIN #channel
  NAMES #channel
  PRIVMSG #channel :Hello interwebs!
The fact that commands in IRC clients begin with a slash is a UI convention, and unrelated to the protocol.

[0] http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form

[1] http://en.wikipedia.org/wiki/Mathematical_notation

[2] http://en.wikipedia.org/wiki/Formal_language

[3] http://en.wikipedia.org/wiki/Syntax_(programming_languages)

[4] http://www.cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%2...

[5] http://www.cs.au.dk/~stm/RegAut/JavaBNF.html

[6] http://en.wikipedia.org/wiki/Abstract_data_type

[7] http://en.wikipedia.org/wiki/Data_structure

[8] http://tools.ietf.org/html/rfc1459.html#section-4.4

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.