the main difference between serbian vs. croatian bosnian and montenegrin, the one that's obvious even to people who've been learning the language for a week, is that one is ekavski and the other is ijekavski. Croatian also has ikavski in Dalmatia.
beyond that, you get into nuances. Croatian has three major dialects, kajkavski, štokavski, and čakavski. and each dialect has vocabulary associated with them that aren't used in the other dialects.
Croatian also has some fairly recent vocabulary changes that make it stand out more.
Croatian months are also different, they use the old slavic forms while the others use names that are similar to the English ones.
There are vocabulary differences in all of them, words that are used in only certain regions.
In addition to this, within each language, you'll find considerable variety and dialects. The Serbian spoken near the border to Bulgaria is different from the Serbian spoken near the border to Macedonia and both are different from the Serbian spoken in Belgrade or the villages in Vojvodina near the Hungarian border. There is more difference in the Serbian spoken in Niš vs the Serbian spoken in Novi Sad than there is between Serbian and Croatian.
Native speakers of all four languages can understand each other just fine, especially when they speak the standard forms and when they explain regional words that the other speaker may not know. You could argue that they are all the same language, or one language with four names. I can speak three or four different dialects of English, and while I do keep them separate in my head, I still think of them all as English. I understand countless other dialects of English, even a few which my mother says aren't mutually intelligable with the English most people speak.
In Croatian, you can say "Trebam jednu cigaru" for "I need a cigarette" and "Trebaš mi" for "I need you".
In Serbian and Bosnian, you have to say "Treba mi jedna cigara" and "trebam" is incorrect.
In Croatian and Bosnian: "pjevat ću dok suze me ne zabole". In Montenegrin "pjevaću dok suze me ne zabole" and Serbian "pevaću dok suze me ne zabole"
In Croatian and Bosnian, the infinitive form is shortened "mogla sam vježbat jezik" (I could practice the language. inmontenegrin, an apostrophe would be written "Mogla sam vježbat' jezik" and in Serbian it would either be "mogla sam vežbati jezik" or "mogla sam da vežbam jezik".
The infinitive form "mogu plivati" (I can swim) is more often seen in Croatian, where as the form "mogu da plivam" is used more often in Serbian and Bosnian uses both (all of them use both, but Bosnian uses both more often than Serbian and Croatian).
The main differences between Croatian and Bosnian are:
accent. The words are pronounced differently. After ten months of study, I've finally started to hear it.
vocabulary: croatian uses some words that Bosnian doesn't and visa versa.
A few word forms.
Sometimes an h is added in Bosnian:
Bosnian: lahko, mehko, kahva
Croatian: lako, meko, kava
Serbian: lako, meko, kafa
Vocabularywise, sometimes the word is the same in Bosnian and Serbian, othertimes, it's the same in Bosnian and Croatian. tačka (Bosnian, Serbian), točka (Croatian). općina (Bosnian Croatian), opština (Serbian). etc. paradajz (Bosnian, Serbian), rajčica (Croatian)
Croatian: Volim ju (I love her)
Bosnian, Serbian: Volim je (I love her)
Some months are different between Bosnian and Serbian: jun/juni, jul/juli, avgust/august
If Bosnian it isn't a language, you'd have to decide whether it's a dialect of Croatian or Serbian, when really it's as different from either as they are from each other. And it's the same for Montenegrin, really. Since none of them are all that different, Montenegrin is different enough from Serbian to be a language in and of itself, if Croatian and Bosnian are also their own languages. Each language also has more internal variation than the standard variants of each language have from each other. So you can argue that they're all one, or you can argue that they're all four, but you can't make a convincing argument for 2 or 3.![]()