Hacker News new | ask | show | jobs
by chuck32 3280 days ago
> It's quick and easy to get started with frameworks, but you inevitably try to do something that's very difficult to figure out how to do. Instead of just writing code that does it, you have to search the docs of the framework to figure out how to do it the way the framework wants.

The problem with this mindset is that yes, its quicker to just bash out some code that does what you want it to but what happens when another developer has to work with that same code later down the line? They are going to have to spend time to figure out how you've structured everything.

One of the advantages of using a framework is to follow a standardized structure. That way a developer only has to learn the framework's structure once, as opposed to learning the individual preferred structure of each and every colleague he collaborates with.

> You end up reading docs more than writing code.

I would say that this the reality of being a software engineer. A good software engineer spends more time reading docs, researching design patterns, reviewing existing implementations and considering the implications of different solutions than he does writing actual code.

> You usually can't just read the code to understand how the app works.

This isn't my experience with frameworks. Since pretty much all frameworks follow the MVC pattern its usually clear where everything goes.

1 comments

> The problem with this mindset is that yes, its quicker to just bash out some code that does what you want it to but what happens when another developer has to work with that same code later down the line? They are going to have to spend time to figure out how you've structured everything.

For professional development, when someone is paying you, sure, this is absolutely correct. But in the case of banging out a side project, it makes much less sense.

I went frameworkless on an mvp last year. I was able to code and implement features using raw apis quickly. I reached MVP status and launched. One year later, no users and I'm closing the site. I'm sure glad I didn't waste a lot of time learning a new framework who's complexity and standardization I never needed!

> I went frameworkless on an mvp last year. I was able to code and implement features using raw apis quickly. I reached MVP status and launched. One year later, no users and I'm closing the site. I'm sure glad I didn't waste a lot of time learning a new framework who's complexity and standardization I never needed!

But if you are already experienced in a framework like rails, django or laravel, then bashing out a side project should be significantly faster with the framework then without. There are so many things you dont have to re-invent when using a framework like routing, installing an ORM, rendering templates etc.

I honestly haven't read any convincing arguments against using a framework in this thread other than "I don't want to spend time learning it" but if you pick a popular and mature framework like rails or django then learning that will benefit you loads in the long term.

Also keep in mind you could make the same argument against learning a programming language like C and say "I just prefer writing assembly code becuase I know exactly what bits go into which registers".

Why are you so concerned with what others do? IME there's this language/framework tribalism culture in software that's extremely poisonous; language/framework supporters go online and bash, spread fud, and denigrate other languages and frameworks. It's poison and taints our entire profession.

I propose that avoiding such triabalism is adequate reason to not use frameworks! You haven't advocated any particular framework but maintain some sort of framework use is best position, which is odd. Learning frameworks does take time, and when you're iterating a side project, with a mortgage, 3 kids, and spouse, time is the last thing you have. Is this you? Probably not! But that's the reality for some.

Certainly learn a framework to pay the bills, j2ee has been very lucrative for me for 13 years. I would never use it for a side project!

> Why are you so concerned with what others do?

This is a discussion about whether or not to use frameworks isn't it? I'm argueing for using a framework rather than against, isn't that the whole point of a discussion?

> IME there's this language/framework tribalism culture in software that's extremely poisonous; language/framework supporters go online and bash, spread fud, and denigrate other languages and frameworks.

Not sure if you're saying this because you think I'm bashing/fudding people who don't use frameworks? I'm just argueing a point.

> You haven't advocated any particular framework but maintain some sort of framework use is best position, which is odd.

I think I've put my reasons for advocating frameworks over no frameworks pretty clearly?

> Learning frameworks does take time, and when you're iterating a side project, with a mortgage, 3 kids, and spouse, time is the last thing you have. Is this you? Probably not! But that's the reality for some.

If you have a spouse/kids/mortgage then IMO its even more important that you learn to use a mainstream framework for whatever language you are using because its the way the industry is heading. Spending time on a side project in that situation would be a very bad use of your time while learning a framework will benefit your career immensely. The reality of the tech industry is that you do need to spend some time to keep up to date with modern tech trends, whether or not thats good or bad is another discussion.