3 ms·
Former Instructure engineer here. Ive been gone almost 10 years at this point, but some of the best engineers I've ever worked with were at INST. I'm not sure
by freedomben 6mo ago
Former Instructure engineer here. Ive been gone almost 10 years at this point, but some of the best engineers I've ever worked with were at INST.
I'm not sure where your stereotype even comes from, because Canvas is not trivial software. You can see for yourself as it's AGPL and I assume you looked at the code before criticizing it because any good engineer would do that.
- hackyhacky 6mo agoI've been using Canvas for years and it's some of the worst written software I've ever used. It's slow, buggy, with an atrocious 2001-era UI. It's a CRUD app that has no excuse for being so cumbersome. I'm not surprised at all that their security is just as bad as the rest of the product. A bright undergrad could build a superior replacement in a few months, even without AI.
- freedomben 6mo agoI won't disagree on usability. It has some sharp edges for sure. But > A bright undergrad could build a superior replacement in a few months, even without AI. Is quite naive. Canvas is not at all just a crud app. You can view the code yourself as it's AGPL
- ericpauley 6mo agoWhat component in particular goes substantially beyond CRUD?
- jameshart 6mo agoIt is a very common error to look at a specialist piece of software, superficially consider the basic data structure it appears to have and think ‘seems simple enough. Basic CRUD app.’ But it’s rarely the case in practice. In a sibling comment right here for example someone bemoaned the difficulty in Canvas of having two TAs simultaneously grade separate parts of the same assignment. That sounds like something that goes beyond CRUD. But more importantly any workflow system, which an LMS will be full of, has to handle the always tricky problem of how changes to workflows affect the things that are currently in the workflow. Assignments posted in course X need to be approved by person Y; some assignments are submitted for approval; person Y goes on leave and now the approval needs to be person Z. Not a simple CRUD problem. These are things that occur to me with only a moment’s consideration of what an LMS system might need to deal with. The actual domain probably has considerable more complexity that I can’t even imagine.
- hackyhacky 6mo agoI think you are confusing the reality of Canvas with a different, theoretical learning management system. In reality, Canvas does not have workflow and does not prevent race conditions in grading. I can certainly imagine an LMS that does these things, but Canvas does not. It would probably help if you had actually used Canvas before trying to convince us that it is non-CRUD.
- jameshart 6mo agoSorry, I wasn’t trying to defend Canvas, so much as give general advice that ‘I could build this in a weekend’ is rarely a wise claim. The specific ways in which Canvas could not be built in a weekend do not need to be the ones I identified.
- freedomben 6mo agoYou are still wrong. Just look at the code. As mentioned before, it's open source. Here I saved you a google search: https://github.com/instructure/canvas-lms https://github.com/instructure/canvas-lms
- hackyhacky 6mo ago"Look at the code" is not a reasonable response to "Is this app CRUD or not?" You've already been asked to provide specifics about which componenent(s) of Canvas are allegedly non-CRUD, and simply repeating your claim without answering the question does nothing to advance your case. It's a simple question. Since you claim to be an expert on Canvas, I'm sure that you can point me to the relevant features much faster than I can sort through thousands of lines of code, looking for the one line that says "def not_crud_function()". CRUD or not-CRUD is a judgement about the purpose of a program, not its implementation.
- freedomben 6mo ago"I don't want to glance through the code, I'd rather you write me a detailed report on all the thousands of places where it deviates from crud" (not a direct quote) is not at all a reasonable ask. And If you can't be bothered to take 2 minutes to click through some pages on GitHub, I don't believe you'd take the time to even read that report. So no, I'm not doing your research for you. Edit: I will do this for you though. Here's Gemini's opinion[1]. It's quite accurate as well, and goes into reasonable high-level detail (though doesn't get into specific modules). I especially loved this quote: > At its absolute lowest level, almost all web software boils down to pushing state to and from a database. But calling Canvas LMS "just a CRUD app" is a bit like calling a commercial airliner "just a metal tube with wings." [1]: https://gemini.google.com/share/142d4b2662d7 https://gemini.google.com/share/142d4b2662d7
- mbesto 6mo ago> some of the best engineers I've ever worked with were at INST. > You can see for yourself as it's AGPL and I assume you looked at the code Can you look at any codebase and tell me it's written by some of the best engineers and it's not trivial?
- w4der 6mo agoI don't care how good you think it is, the fact that it (back when I used to be a TA) would break if two TAs tried concurrently grading different parts of an assignment of a student is bonkers. The workaround for that was to use a Google Sheet document so TAs just looked at the submission in Canvas, then filed in their grades and feedback on the sheet. The issue is that Canvas, as far as I could tell, did not support mass uploads from a csv, so we had a script which would read every entry on the csv, map that to the student's ID and grade them, which made it look like the TA which had generated the API key graded all of the students (and would get all the backlash from poor grades). I completely agree that it is not trivial software in the worst sense, it tries to do too much, while not being particularly good at any one of those things, and is way too rigid for how diverse the needs of different courses might be even inside a single faculty. And saying "It's AGPL, just self host and add your requirements to it" is not really useful, that would mean way more money and effort than what a university's overworked IT dept. is capable of.
- slfnflctd 6mo agoThis particular section of your comment sounds a helluvalot like some of the SAP implementations I've seen: > it is not trivial software in the worst sense, it tries to do too much, while not being particularly good at any one of those things, and is way too rigid
- FloorEgg 6mo agoI didn't say instructure engineers were bad. What I meant is they aren't capable of building AI capable of replacing professors. I still consider it a reasonable assumption, as it has nothing to do with how well engineered canvas is. It's a different competency than instructure would have, and I've heard from insiders instructure has been spinning their wheels on way more trivial AI challenges. I also understand well how hard it would be to create AI that replaces professors and how the current best AI from Google, Anthropic, OpenAI is orders of magnitude away from being able to do that. An engineering culture can change a lot in 10 years, and a company's engineers' ability to do stuff depends both on the individual engineers abilities as well as the company systems and culture.