Open edX is built on top of multiple programming languages, application frameworks, and software libraries. For the most part, these were carefully chosen among available alternatives for good reasons. But the software ecosystem is always evolving, and choices that were obviously preferable a few years ago may be considered sub-optimal or even poor now. Migrating off of a key dependency takes enough effort that it is usually hard to justify, but there have been cases where the benefits have been seen as outweighing the costs. For example:
The jQuery/Underscore/Backbone combination was once considered state of the art in front end software development, but is now considered so archaic that almost nobody would choose to use it in a new project. A significant amount of Open edX code still uses it, but it is being proactively replaced with newer React-based micro-frontends.
The child pages listed below explore the pros and cons of some big changes to the Open edX technology that have been seriously (and in some cases repeatedly) considered. Each page attempts to express:
Why did we choose the technology currently in use?
Which alternative(s) have we seriously considered, and why?
Under what circumstances would we actually start migrating to the proposed alternative?
These should be updated over time as new facts arise which tilt the decision in favor of either pursuing the change or maintaining the status quo.