Comment by IshKebab
2 days ago
It's... ok. But many of the really useful features are paid. E.g. merge trains or mandatory reviews.
I also don't think "it's open source!" is a huge differentiator because it's enormous, difficult to deploy from source and written in Ruby so the chance of being able to actually modify it for some feature you want is near zero.
I think Forgejo is probably a way better option at this point even if it is less mature. It's written in Go so way easier to deploy and edit. And none of the features are paid.
I do like Gitlab but... it's not amazing. I liked Phabricator more (except for its lack of integrated CI).
> written in Ruby so the chance of being able to actually modify it for some feature you want is near zero
That's a silly thing to say.
It isn't. Ruby lacks static typing, and Rails heavily uses generated identifiers, which means navigating a huge codebase like Gitlab is basically impossible unless it's your full time job (or you get lucky). I've tried. I kept finding methods that - based on a grep - were never called from anywhere, and there's no IDE support for something like Find All References.
I'm sure if it was your full time job you'd eventually learn the codebase, but there's no way you can just dip in and add a feature unless you really persevere.
But I did manage to add a few features to the gitlab-runner (used for CI) - because it's written in Go, and Go has static types and pretty great IDE support these days. Night and day.
I've also added a few features to VSCode which is a similarly huge codebase. Again it's written in Typescript which has static types and good IDE support. It would have been effectively impossible if that wasn't the case.
This does not match my experience at all, and I think your "near zero" claim is silly.
> difficult to deploy from source
I won't argue with you here. There are a lot of moving pieces in a Rails deployment. This isn't different from most web app frameworks, but it is difficult.
That said, I've never worked on a Rails app where deployment was any more difficult than a variation on `bin/deploy v123 production`, because I wrote that script and it works 100% of the time.
> and written in Ruby so the chance of being able to actually modify it for some feature you want is near zero
But this is still silly. You just don't know Rails or Ruby well, and don't want to learn them. Fine, but if you hadn't already made that decision, you would find the solution simple enough. No judgement intended -- different framework/language paradigms fit different people differently.
Rails has great IDE support also. Static typing can be a useful language feature, but a lack of same has not ever, in my experience, made it more difficult to understand real-world code.
There is a lot to love about Go too, don't get me wrong. But I would guess that the number of random developers who could drop in and be immediately productive in a Ruby/Rails app, vs a Go webapp, is basically equivalent. The overlap of projects where both would be highly appropriate choices is a bit thin.
[I hire into Ruby/Rails jobs regularly. I often hire senior developers with no Ruby/Rails background, but I do not hire people into these positions who are not open to learning. It takes a senior dev (from the C/Algol family) one day to learn Ruby, and (from a web dev background) a week or less to learn Rails. I have never seen a failure.
I also hire into Go jobs almost as frequently. The hiring criteria is a bit different (less emphasis on web awareness), but I do find it easier to teach Go to a Ruby dev, than Ruby to a Go dev. Make of that what you will.]
4 replies →