As a Rails developer for a last 10 years, I’m highly in favor of more opinionated defaults, including the view layer.
Rails is extraordinarily opinionated, but still modular. You can replace every single part of rails with another piece of software and it will probably work, but you increase your own workload exponentially by doing so.
Making a new Rails app these days is a cakewalk, and it’s because of those opinionated defaults that it’s so easy to start off running.
For example, if I want to take my database and change the schema. I can use rails provided migration generators and runners to do that.
In Meteor, there’s no default way to do that. Meteor is also not very popular, so finding the “popular” library is difficult. I have to scour the internet to find percolate:migrations.
Another example, let’s say I want to run some process in the background. Let’s say the user uploads a big ol text file and we want to run it through some random AI server. I don’t want to do that in the main thread, I want to spawn a background job. In rails you just pop off an ActiveJob and it handles it, no brain power required.
Meteor? I don’t even see a standard way to do this. Official documentation only references routines, and my brief google search while writing this didn’t return much.
I think ideally when I’m using a framework, I want the framework to have the answers my questions. There are things meteor does that other opinionated frameworks don’t. For example, Rails doesn’t have a default authentication method (but let’s be real, it’s devise), whereas meteor does. And I cannot stress enough just how much that default authentication method helps.
I want those defaults for everything.
Just for the record, this kind of problem can also be solved by a third party bootstrapping project. For example, a lot of people bootstrap their projects with https://bullettrain.co/, which is just additional opinions on top of rails’ opinions.
This is just an example to show that it less needs to be built into meteor, and more just needs to be the “go-to”, regardless of who is providing it. A sane set of opinionated defaults.
Just as a side note about the view layer stuff. I don’t see any reason meteor can’t provide the default views from v1 (login page, simple form etc) for whatever view layer is deemed the default (solid, svelte, whatever), while still allowing you to use whatever.
It’s exactly how rails works. If you use activerecord, you get all your migration goodies, as well as activestorage. If you use mongoid you lose all that, but you can still use mongoid. Rails was built for activerecord, so it works best with activerecord. But it doesn’t say you can’t use something else.
I think my big issue with meteor is without a set of opinionated defaults, there’s almost nothing to meteor. There’s the communication and data layer… and that’s it, basically. It’s pretty hard to sell someone on DDP when they can just use normal REST with any other set of tools.
It’s easier to sell someone on a complete web development stack, that happens to be powered by meteor’s data and communication layer.
Tertiary note: god I hate typescript. What a waste of development time that’s been for the last 5 years.