c.1200, "inferior in quality;" early 13c., "wicked, evil, vicious," a mystery word with no apparent relatives in other languages.* Possibly from Old English derogatory term bæddel and its diminutive bædling "effeminate man, hermaphrodite, pederast," probably related to bædan "to defile." A rare word before 1400, and evil was more common in this sense until c.1700. Meaning "uncomfortable, sorry" is 1839, American English colloquial.
Comparable words in the other Indo-European languages tend to have grown from descriptions of specific qualities, such as "ugly," "defective," "weak," "faithless," "impudent," "crooked," "filthy" (e.g. Greek kakos, probably from the word for "excrement;" Russian plochoj, related to Old Church Slavonic plachu "wavering, timid;" Persian gast, Old Persian gasta-, related to gand "stench;" German schlecht, originally "level, straight, smooth," whence "simple, ordinary," then "bad").
Comparative and superlative forms badder, baddest were common 14c.-18c. and used as recently as Defoe (but not by Shakespeare), but yielded to comparative worse and superlative worst (which had belonged to evil and ill).
As a noun, late 14c., "evil, wickedness." In U.S. place names, sometimes translating native terms meaning "supernaturally dangerous." Ironic use as a word of approval is said to be at least since 1890s orally, originally in Black English, emerging in print 1928 in a jazz context. It might have emerged from the ambivalence of expressions like bad nigger, used as a term of reproach by whites, but among blacks sometimes representing one who stood up to injustice, but in the U.S. West bad man also had a certain ambivalence:
*Farsi has bad in more or less the same sense as the English word, but this is regarded by linguists as a coincidence. The forms of the words diverge as they are traced back in time (Farsi bad comes from Middle Persian vat), and such accidental convergences exist across many languages, given the vast number of words in each and the limited range of sounds humans can make to signify them. Among other coincidental matches with English are Korean mani "many," Chinese pei "pay," Nahuatl (Aztecan) huel "well," Maya hol "hole."