I, as a Hong Kong citizen, prefer to say that Cantonese is a language because it is a well formalized language: Cantonese can be spoken and written, although we seldom write Cantonese in formal situations; and there are Cantonese dictionaries. The word ‘dialect’ sounds exotic and about minority, which I think is not the case in Cantonese.
In the old days, before 1997, we always said that Cantonese is a language. No one would think it is a problem to say it as a ‘language’. We said Cantonese is our official language, as from an old document (1996) in United Nations, it says:
“In 1992, 77 percent of Hong Kong residents were literate. English and Cantonese are the official languages, but Mandarin is gaining popularity.”
However, nowadays people prefer to say that Cantonese is a dialect of Chinese, for example, from the Hong Kong Tourism Board, it says:
“Cantonese is the Chinese dialect spoken by over 95% of the people in Hong Kong.”
I believe that Cantonese cannot be legitimately spoken as a standard language nowadays is largely because of political considerations. There seems an intangible political force pushing me to think that Cantonese is subordinate to Mandarin.
It is good to learn the word ‘variety’. If a professor asks me to write about “is Cantonese a language or a dialect?” I can say: neither both of them. They are varieties.