I'd strongly advise you read the whole post through, as otherwise you may miss the point of this.
No, I'm not asking for the definition of compatibility. I'm here to provide my opinion on some things that have been coming up more frequently in the last few months.
Compatibility is when you have two or more things that work in harmony with one another. It's like that gear you buy to replace a broken or missing gear in a machine. If the gear is compatible, it would fit in place of the broken or missing piece. If it isn't compatible, the machine could work oddly or even cease to function.
Compatibility with minecraft mods is similar. You can work through a common library or API, or you can work directly with the game's code through modification of the jar.
When you are using an API, you are avoiding making edits to base classes so others can make a mod without editing the classes you use. This allows for a higher likelihood that the mods would function together, though it doesn't guarantee it. However, this runs at the cost of full control over your content, as no API can make hooks for every possible feature a modder may come up with.
When you modify the jar without an API, you are making direct edits to the game's code. The bigger your mod gets, the less likely it is that it would be compatible with anything, even the simplest mods. The boon to this is full creative control over your mod as you don't need to worry about compatibility with other mods or limits to what you can do.
Now, compatibility is something more than mods being able to run together. It extends into the content of said mod. Say you have a mod that adds a bunch of fun challenges to the game that uses a common API. Now say we have a mod that makes the game easier for you that uses the same common API. Technically, the two mods are compatible as they aren't overlapping code-wise. However, the former is effectively nullified by the latter as, guess what, you can't make a challenge easier and still say it's a challenge.
Here's my point. Compatibility is when things work together both from a technical standpoint and from a gameplay standpoint to improve the result, which in this case is more fun for the player. When you download mods, a fair number of people just look at compatibility from a technical standpoint as opposed to a gameplay standpoint, and this can in some cases lessen the fun overall by having mods make things take less effort to obtain more results.
Don't believe me? Let me tell you a story:
A while ago, I played tekkit(or tekkit classic as it's now called) I was doing what I normally do in vanilla minecraft, which was cut down trees, survive the mobs at night, explore the surface and dig deep underground for precious minerals. After a while, I dabbled into redpower and started speeding up the smelting process with zero loss of fuel. This was cool, as it gave me more materials for building and by result a higher chance of survival. However, I started getting a surplus of coal. I took this as a sign that I should start going into buildcraft and set up some oil rigs. Fast forward a weekend, and I had a collection of oil rigs across the land and a refinery so large it would put major oil companies to shame. However, the cost of this was a huge buildup of gasoline, so I upgraded my engines to combustion and decided to start a quarry. With an array of combustion engines and a 32x32 quarry, I had started getting a massive amount of stone and ores. That's when something terrible happened: I got bored. I was getting a huge amount of items at the cost of checking on my engines every so often. The oil cost was a non-issue, since I had a huge reserve of it, and to maintain it all I had to do was keep a water supply flowing to it to cool it down. I then started getting into Equivalent exchange (pegasus cannon), and thanks to my quarry and previous mining expeditions I had gotten a surplus of dark matter and red matter items within a few hours. At this point, I literally had nothing left to do. There were other mods installed, but why bother with them? I had almost all of the possible things I could do automated, and exploring was seeming pointless due to there being nothing to gain from it beyond sight seeing. I had been playing this world for maybe four days. In those days, I had effectively killed any desire to do anything in those worlds. If this were vanilla, I would be able and willing even to go on for weeks and even months on individual worlds, and even then I'd still find things to do. These mods put together provided a fair amount of fun for a few days, but they killed any desire to keep going. So out of sheer boredom, I took all the uranium I had gotten from my quarries, refined it and set off a handful of nuclear bombs around my base to destroy everything I had done. Why? It was the only thing I had left to do, and even then it only provided a small moment of amusement.
What is the point of that story? To prove that technical compatibility doesn't always mean gameplay compatibility, and the fun can be dampened and cut short by giving too much combined power. I could build things, but what purpose did these buildings provide? I could make a fortress made of diamonds legitimately, and the argument "you worked really hard to get to that point" and "you invested a lot of time into that world" doesn't even apply because I really didn't work that hard or spend that much time. Heck, I've put more work into vanilla and Better than Wolves worlds and not have the same feelings. I worked harder to obtain fewer prizes, but in the end it was so much more worth it when I finally got those prizes. Even then, I wanted to keep going because there would always be something more to do, I never had moments where I would just sit in my home and go "There is nothing I can do" because I always had stuff to do, and I enjoyed that.
For those still reading, thanks. Don't worry, I'm almost done with my ranting
Now here comes another perspective on things. We're just the consumers for the mods. The modders have their perspective on how things should go, and they have every right to do it. A wise modder designs something he would want to play, while a foolish modder slaves to make everybody happy. If a modder thinks that his mod wouldn't work with other mods, he has every right to deny technical compatibility with the other mods. Likewise with modders who believes their mod would work with other mods.
Furthermore, a modder may hold a lack of faith in the API and compatibility. For instance, the Forge developers have begun advocating against jar modifications, which isn't a technical issue as you can still do .jar modifications. They're changing the ideologies of modders and players, saying that doing things the way we've done things as developers and consumers for years is now wrong without a technical reason as to why. You can still modify the game with base classes, but they're telling you that you should do things their way because it's how they want things to be. If a modder wants to edit the base classes of a game because it gives him more freedom, let him do it.
Note I'm not just silently white knighting Flowerchild with this. Guys like Risugami, Kahr, ScottyDoesKnow, and Shockah have all been given the ultimatums to either give up their morals and beliefs and assimilate into the Forge, or get stomped out by them. There have been decent APIs like modloaderMP and Universal Electricity which get completely overlooked because of the forge(Hell, modloaderMP is dead now. Coincidentally, their last update was the time when the forge became an independent API and scrapped modloader and modloaderMP) Even Risugami's modloader, which was the founding father of modding as we know it, has rapidly fallen out of popularity since the forge dropped it just because SlowPoke asked the Forge team to drop modloader because Risugami didn't let them put it in their Feed The Beast modpack. Basically, the Forge has turned from a honest attempt to unify the modding community to the beast that feeds off of other modders. It has, for all intents and purposes, become the issue it originally sought to end by eliminating competition instead of working together for the benefit of the modders. Who cares if the modder doesn't want to sell out on his beliefs? Just pressure him to cave, and ridicule him when he doesn't with petty insults anybody can parrot without bothering to think about what is really going on.
That's about a wrap for my rant. Now if you're still reading, I want to hear your honest opinions on this. Do you believe that technical compatibility is more important than gameplay compatibility? Additionally, do you think that a mod author should be pressured to change their beliefs for the sake of compatibility?
As a closing statement, I would like to point out that I am a game designer. While I have dabbed into minecraft modding several times in the past, there's too much mayhem going on with the community at present for me to willingly jump into the fray. If and when the storm settles I may put something up, but I'd sooner make my own API than use the forge given recent events.