Why Serial.write() instead of Serial.print()

GolamMostafa:
The above code is not exactly correct though it works. It should be (in my opinion) like this:

Serial.write('<');

Again - this is showing misunderstanding of function signatures... The Print class defines 3 possible signatures for the write() method

size_t write(uint8_t);
size_t write(const char *str);
size_t write(const uint8_t *buffer, size_t size);

so if you call write(">") the compiler will take the second method (because in C or C++ the double quotes denote a char* type) whereas if you call write('>') then the compiler takes the first method (because the simple quotes denote a char type). Both are legit, the second one with simple quotes is of course more efficient.

What ends up being executed depends on the method signature, thus the type of the parameters.