4 ms·
Lately I've been working a lot with the Nuxeo[1] document management platform. Almost ten years ago, they switched their backend from Python/Zope to Java[2]. I
by empthought 11y ago
Lately I've been working a lot with the Nuxeo[1] document management platform. Almost ten years ago, they switched their backend from Python/Zope to Java[2]. I'm also working a lot with a Django-based web app. Based on my observations, I think for "complex and long-living" apps (like the Nuxeo platform), JavaScript is no better (perhaps worse?) than Python, and if I had to worry about extensibility and maintainability over a decade, I would make the same decision that the Nuxeo people made.
In a retrospective[3] from five years ago, Nuxeo claimed:
"In terms of performance, I would say we scale 10 to 100 times more, depending on the metric you take. In terms of features, it's around 4 times the scope of what we had. In terms of developer compatibility and ease-of-use, it's about the same, but with a lot more tooling and experience. We've been able to double, if not triple, the capabilities we had on the older [Python] platform."
"When customizing with Nuxeo-based apps, you don't fork the UI to customize it, you contribute to it using plugins; it's a very open and extensible model."
Having worked with the "plugin" model they built, I am at a loss as to how one would realistically accomplish the same thing effectively with either Python or node.js. The same things that make Python and JavaScript convenient for small scripts (duck typing, no checked exceptions, minimalist frameworks, lots of metaprogramming options) make it less convenient for platforms with the scale, scope, and customer requirements of Nuxeo and its competing products.
[1]: https://github.com/nuxeo/nuxeo https://github.com/nuxeo/nuxeo
[2]: http://www.infoq.com/news/nuxeo-zope-java-migration http://www.infoq.com/news/nuxeo-zope-java-migration
[3]: http://www.infoq.com/articles/nuxeo_python_to_java http://www.infoq.com/articles/nuxeo_python_to_java