5 ms·
I like Ruby but I don't like Rails. No idea if this is better now but I would get weird exceptions that would be from metaprogramming goofiness that was really
by kyledrake 4y ago
I like Ruby but I don't like Rails. No idea if this is better now but I would get weird exceptions that would be from metaprogramming goofiness that was really difficult to debug and find documentation for, and it uniquely bothers me when I can't figure out where errors are coming from in code (same critique of async/nodejs). The general heaviness also just didn't mesh well with my programming style, I like things cleaner and more simple.
The Neocities frontend is basically something much simpler built on top of Sinatra and I haven't regretted that decision at all. It's (relatively) clean and simple, and if I need to do something weird that doesn't conform to the paradigm (this happens a lot), it quickly gets out of my way. You can generally do anything you want with Rails, but in my experience that more frequently involves digging through a bunch of documentation and google searches to try to figure out how to get the framework out of my way.
I've also found ruby to be a really solid language for doing lower level glue tasks, for an unusual example I use it to glue a redis database to powerdns, which serves a lot of query requests, it's plenty fast and very reliable. I've never had to rip out ruby from something more performance-oriented and replace it with something "faster".
At the same time if I had a team of 10 people I was working with I might appreciate Rails keeping everybody on the same design structure so I there's not an endless battle over how it should be put together, but in my past experience this kind of just happens with Rails too.
- aliqot 4y ago> The Neocities frontend is basically something much simpler built on top of Sinatra and I haven't regretted that decision at all. Hey good job on Neocities btw. I've noticed that a lot, and while it's not wrong to adhere to the "golden path", I take issue when it becomes instilled as rhetoric in a developer and precludes them from understanding or dignifying someone else's choices or questions when deviating from it. There's always this aggression-of-curiosity in response, never a "well you'd do x, y, and z, but it's not recommended". It's always "Well why would you do that? That's wrong, you're supposed to..." and then an hour later after someone is red in the face just asking a question it comes down to "yeah I've never used 0mq before with rails, sorry maybe try Slack" [edit: The comment I was originally replying to has gone from 1 sentence to a paragraph and is still receiving edits. Including this note for posterity just in case it looks like I'm talking to myself in a closet.]
- syx 4y agoToday I learned Neocities uses Sinatra, thanks for sharing your point of view and for the work you're doing on Neocities!
- kyledrake 4y agoThanks! If you want to look at our embarrassingly bad code it's all here: https://github.com/neocities/neocities https://github.com/neocities/neocities (I'm not saying it's better than Rails, just that it's better than Rails for me.)
- Tomte 4y agoPlease do this: > We’ll be doing some deep dives into our new infrastructure in the future, including discussing how we built our own anycast network (https://blog.neocities.org/blog/2017/03/26/huge-space-increase https://blog.neocities.org/blog/2017/03/26/huge-space-increa...)
- duffyjp 4y agoWas your Rails experience quite a while ago? Stuff like the method_missing matching a regex stuff that was common years ago has basically disappeared from common use, at least in my circle. Rails 7 has been my favorite version since 3. Version 3 was probably the peak of metaprogramming and when basically anything you tried worked which was fun but really cowboy.
- TigerTeamX 4y agoThis sounds like my experience with Django... After 5 years I still haven't mastered it and it still continuous make me think why is this so complicated.
- Alifatisk 4y ago> I've also found ruby to be a really solid language for doing lower level glue tasks This!!! I can't express this enough, Ruby is the sweet spot for gluing things togheter and rapid prototyping.