The original implementation of homalg in Maple by Mohamed Barakat and Daniel Robertz hit several walls. The speed of the Gröbner basis routines in Maple was the smallest issue. The rising complexity of data structures for high level algorithms (bicomplexes, functors, spectral sequences, ...) became the main problem. Both authors very much felt the need for an object-oriented programming language, a language that allows defining complicated mathematical objects carrying properties and attributes and even containing other objects as subobjects
Pushed to look for an alternative to Maple, the wish list grew even further.
(Source: homalg package -- Appendix Development)