As Nextcloud advanced with progresses making it competitive in fully integrated government and corporate workflows, OpenCloud is getting more and more attention.
The fact, that both are collaborative cloud plattforms, designed to be selfhosted and mainly developed in/around Berlin from FOSS-Community-Surroundings, makes one ask about the differences.
The main difference I see, is the software stack
- Nextcloud, as a fork of ownCloud, kept the PHP code base and is still mainly developing in PHP
- OpenCloud, also a fork of ownCloud, did a complete rewrite in Go
Until know, Nextcloud is far more feature complete (yes I know, people complain, they should fix more bugs instead of bringing new features) than OpenCloud, if we compair it with comercial cometitors like MS Teams.
I like Nextcloud!
I deploy it for various groups, teams, associations, when ever they need something where they want to have fileshare, calendar, contacts and tasks in one place. Almost every time, when I show them the functionality of Nextcloud Groups an the sharing-possibilities, people are thrilled about it, because they didn’t expect such a feature rich tool. Although I sometimes wish it would be more performant and easier to maintain, so non-tech-people could care for their hosting themselves.
Why OpenCloud?
Now, with OpenCloud, I am asking my self, why not just contribute to the existing colab-cloud project Nextcloud. Why do your own thing?
Questions
So here I expect the Go as a somewhat game-changer (?). As you may have noticed, that I am not a developer or programmer, so maybe there are obvious advantages of that.
- Will OpenCloud, at some point, outreach Nextclouds feature completeness and performance, thanks to a more modern approach with Go?
- Will Nextcloud with their huge php stack run into problems in the future, because they cant compete with more modern architectures?
- If you would have to deploy a selfhosted cloud environment for a ~500 people organization lasting long term: Would you stick to the goo old working php stack or see possible advantages in the future of the OpenCloud approach?
Thanks :)
I’m not the biggest fan of Nextcloud but there currently isn’t a lot of good alternatives that have the same features and polish.
The issue with Nextcloud is the PHP junk it comes with. Writing something in Go is much better and it is silly to me that Nextcloud puts code in docker volumes. If they could separate out the code and data they would be in a much better position.
So serious question: what,.in your mind, is junk about PHP?
It is not really a proper language. It is designed to run to generate HTML dynamically but uses outside of that are pushing it. It is also problematic that Nextcloud mixes code and data. It is also slower than compiled languages like C, Go or Rust.
I think Go is really good for web applications with lots of server back end code since it is fast and static while being memory safe and easy to read. The Go syntax is cleaner than PHP and less hard to maintain.
I have a bunch of other reasons elsewhere in this thread, but I just wanted to back you up here. Go is a lot easier to deal with than PHP in many ways, and it has a lot of tools to track down issues, while also have a lot better performance. And I don’t even like Go that much (used it for the better part of a decade, pretty much since 1.0), and I much prefer Rust. But Go is 100% a good option for this use-case, since it’s mostly short-lived requests with relatively simple logic, so the various footguns I dislike about Go aren’t particularly relevant (and are way nicer than the footguns in PHP).
PHP feels like it “evolved” with hacks on top of hacks, and it’s sort of being cleaned up now. Go feels like it was “designed,” with conscious choices being made from the outset, so everything feels a lot more consistent. That makes it easier to spot bogs, performance issues, etc. Go is just the better option here, and it’s not close.