Live data from Hacker News

The One-Person Framework in Practice

link.mail.beehiiv.com

81–90 of 172 posts

Re: The One-Person Framework in Practice

#81
post #72
post #61

Earlier quoted context omitted.

Platform support and open-sourcedness. The Phoenix 1.0 release predates the first open-source and Linux-supported .NET release by a year, for example. .NET is just now starting to shake off its association as a closed-source, Windows-only thing.

.NET has been open source since a decade

Yes, like I said before, Phoenix 1.0 predates the first open-source and Linux-supported .NET release by a year.

https://news.ycombinator.com/item?id=10135825

https://github.com/dotnet/core/blob/main/release-notes%2F1.0...

People aren't just going to jump onto something recently open-sourced by a company that popularized the phrase "embrace, extend, extinguish". For the last decade, they've had to earn people's goodwill, while with a project like Rails, there is no "we used to be closed source but now we're not, use our thing!" to overcome. So in the 20 years since Rails has been released, it has only ever needed to demonstrate its usefulness.

Now that a decade has past, that negative association is starting to wash away a little.

Re: The One-Person Framework in Practice

#82
> Sticking with a well-structured monolith was one of my best decisions.

I can't emphasize this enough. Did the same with a monolithic PHP application. David Heinemeier Hanson used the term 'majestic monolith' and it really feels like that, working on some cathedral in code.

Congrats on your good choices and results. A programming language that you like is important, but I think you should give your own decision making some more credit.

Re: The One-Person Framework in Practice

#83

I don't know if the framework really matters that much? Just choose anything popular and there should be plenty of help available. I've been using Laravel for about 11 years now. I hate it, but it keeps on trucking along so I've resisted the urge to do a complete rewrite. I don't think anything is particularly slow to develop. It's the business side of things that's the hard part.

When I moved from PHP to Ruby (and Rails), I discovered how much fun programming can be. Ruby just optimizes for the right thing, Developer happiness.

I have heard that for years and I just don't get it. Magic abounds. The test assertions and testing libraries are whole DSLs that require a separate/additional learning process with inconsistent chaining with inconsistent return types. Being able to overwrite anything in the language gives rise to things like unicode whitespace being misinterpreted as an undefined function. You can define methods by combining method names leading to wholly undiscoverable methods because "my_func_that_is_cool" is actually defined over multiple files, combining my_func and that_is_cool; saw this a lot in our chef cookbooks. Ruby requires mountains of tests (thus the DSLs). Knowing ruby and knowing rails and knowing how to test are different things.

I find ruby (and rails) to bring the opposite of joy. I find myself frustrated. On the opposite end of magic is Go. I love Go. Tests are just code; no magic needed, not even mocks. Methods behave and usage is consistent. Code is navigable. Types make everything more explicit and easy to follow and more maintainable.

I assert Go leads to org happiness, letting teams work together productively.

Re: The One-Person Framework in Practice

#84
post #40

Earlier quoted context omitted.

The way I describe language types to non-coders inquiring about language selection for a given project is simply “scale matters”… dynamic types provide flexibility at small scale, but can very easily result in chaos at a large scale. Conversely, the structure of static types can feel onerous and restrictive at small scale, but provide robustness and structure at large scale.

If you mean codebase complexity and team size... then yes... types is more helpful with that. But in a small team with a small codebase you don't need types to do really well. I find types helped a lot when multiple teams were responsible for different domain spaces inside different components of a Rails app. I never saw the same advantage in codebases that are much smaller with fewer people.

If you can keep everything in your head, types can feel superfluous. Large projects make that nigh impossible.

Re: The One-Person Framework in Practice

#85

Is there any other framework which can claim that it compares well to Ruby on Rails speed of development? I.e. conventions over configurations? Asking as I don’t want to learn ruby

In each of the dynamic frameworks I have worked in, besides lacking types, the biggest problem is domain separation.

In 4 out of six large, dynamic code bases I have worked in, everything becomes spaghetti. This joins with that which n+1s with yadda yadda. You end up with dependencies that prevent billing options because you can't separate the billing structure from the user model from the product table. Queries start joining and joining and you get monstrosities of queries. The beefy postgres db gets bogged down at less than 2k rps. Everything gets slower. Then the org spends millions and millions on domain separation and breaking teams away from another. Builds get slower. Competing styles of decomposition litter the codebase. Changes take days to release. It takes Herculean effort and heroics to fix a dynamic code bases that grows, eating at growth when it should be compounding.

"But it let us get here, where we can afford to do those changes." Maybe. It is the road less taken's point - you can sell yourself that the dynamic code bases allowed for the success. But that doesn't say the alternative wouldn't work.

Re: The One-Person Framework in Practice

#86

Rails is unmatched. I wish there was just a similar framework in a faster language.

Ruby is plenty fast these days (people usually think Ruby didn't get faster but it did). And if we figure out how to switch to async/fibers with let's say Falcon, we are in a good place :)

Re: The One-Person Framework in Practice

#87

Is there any other framework which can claim that it compares well to Ruby on Rails speed of development? I.e. conventions over configurations? Asking as I don’t want to learn ruby

Meteor.js offers pretty good iteration speeds and a fairly complete toolbox for the JS world. Fully featured accounts system, RPCs, client/server reactivity, etc.

Re: The One-Person Framework in Practice

#90
I use Django with Vue CDN for the MVP. The framework is similar to RoR. The key is not about the framework IMO, but whether you pick up a good track. If the demand is great, you can feel the pull from the market. Otherwise, whatever framework can't save you from failure.
Post reply on HN