(TLDR version: "Canvas sucks. The only advantages it has are a modern UI and a very good REST API. The REST API in particular, is the one reason why it is so successful with large institutions. We have been able to integrate our SIS quickly and easily because of the API. Moodle's lack of a good REST api is the only thing holding it back!")
Let me start off by giving a bit of background to this one:
My institution had been on Moodle for the last decade and then at the end of last year we decided to move to Canvas. We are still in the midst of this migration so some users are still in Moodle although most have moved across to Canvas.
As the LMS manager, there are two things I can appreciate about Canvas: It has a consistent and modern UI and a very good REST API. There are a few other notable features (e.g. speedgrader, blueprints, and better rubrics), but I hate almost everything else about Canvas. Yes, I know hate is a strong word, but the other words that came to mind would get me into trouble.
Allow me to go into some detail here:
- The role permissions in Canvas lack consistency and granularity. View and edit permissions are constantly bundled making management of roles a problem. To make matters worse, some permissions are dependent on others to even work (e.g.Discussions create does not work without also having discussions moderate). This is just one example, but permissions in Canvas is generally a hot mess.
- Their LTI apps do not inherit your site styles. Like Moodle, Canvas allows you to provide CSS overrides so you can customise your instance. I actually like they they have upload a file rather than editing a text box as in Moodle. This lends itself to version control tools. But as good as this is, none of the LTI apps take advantage of your CSS specifications. Since their piece of garbage Quizzes.next tool is an LTI tool, we cannot customise fonts or anything else for that matter.
- While we are on the matter of quizzes/exams, Canvas' quiz tool is absolutely awful, lacking essential question types, or suffering from poor implementation. For example, the hotspot question type allows for only one hotspot! Yeah... you can have a hotspot, but you only get one! Beyond the limited question types, there are limited options to adjust the appearance of selections with a WYSIWYG editor only available on certain question types. The question bank system has only one level, meaning you cannot nest banks. There are a host of other problems on the quiz tool, but I'll leave it there for now.
- Discussions have one or two improvements over Moodle, but many features are missing. For example, there is no secondary level of organisation possible. The result is that if students have the ability to create discussions, it sits at the top level and the discussion space becomes an ugly mess in a week's time. I have several emails in my inbox related to this one as I write this.
- The pages module, similar perhaps to the HTML or wiki in Moodle is extremely limited in terms of whitelisted elements. You can try to make nice looking pages, but you are left with something that looks like it travelled through time in a Delorian... mostly from c. 2005. Simple css styling options like box-shadow, border-radius, and a host of other innocuous styles are prohibited unless you load them via your site-wide css styling. But doing it this way hides the effect in the WYSIWYG editor. This makes templating a challenge.
I could list many other issues, but I have other work to do...
So if Canvas is so bad, why do so many large institutions use it? In my opinion, Canvas' great REST API makes it incredibly extensible. If the native Canvas UI lacks a particular function, it is fairly easy to use the api to add the necessary features. In fact, there are some things that are possible only with the API. That is, there are many functions that cannot be performed in the Canvas UI, but one can accomplish the task via the REST API.
Almost daily, I feel the need to jump into the community forums to bemoan Canvas' incredibly restrictive and at times non-sensical design decisions. Coming from Moodle, I feel like I have one hand tied behind my back all the time. If Moodle had a decent REST API, there would have been little reason for any school to go over to Canvas.
Please invest some time in the REST API so that I can be released from this hell that is Canvas!