Live data from Hacker News

Do Not Learn Frameworks – Learn the Architecture

kukuruku.co

31–40 of 86 posts

Re: Do Not Learn Frameworks – Learn the Architecture

#31
post #30

The author is only partway through the learning process. There is a circular progression. The total newbie just "learns the framework" and is helpless to debug through leaking abstractions. I agree 100% that you don't want to be stuck there. So eventually she decides to just compose her own architecture. Now she understands all the pieces. But as she matures further as a programmer and architect, she starts to see al…

This is actually 100% my experience, wow.

I started with Rails many years ago, had absolutely no idea what I was doing. Was just googling for gems and snippets from Stack Overflow, if anything ever broke I was done.

A few years later I decided I was going to really dig deep into the meat of it and wrote my own framework in Clojure that we are still using to this day in production. It was incredibly liberating to know every nook and cranny of the framework because I had written it myself. I also figured out why so many decision had been made in other frameworks, it was a phenomenal learning experience.

I eventually realized that our super small team and I simply couldn't sustain keeping this super-custom framework maintained and updated, not with all the other work that needs to be done at the company. We moved most of our work to Haskell's Yesod framework, which has years of community work and incredible craftsmanship behind it. It's now pretty trivial to spin up a new application and have it reuse all of the components written for other apps in the same framework. I don't even bother with docs at this point, it's a lot more effective to stare at the source.

Re: Do Not Learn Frameworks – Learn the Architecture

#32
post #30

The author is only partway through the learning process. There is a circular progression. The total newbie just "learns the framework" and is helpless to debug through leaking abstractions. I agree 100% that you don't want to be stuck there. So eventually she decides to just compose her own architecture. Now she understands all the pieces. But as she matures further as a programmer and architect, she starts to see al…

>It can't be, because all the people spending their time on bespoke solutions are solving the same problems over and over again separately, whereas the people working on shared solutions keep building off each other. Over the long-run it gives a massive quality advantage to the shared solutions.

In theory, yes.

In the real world, "the people working on shared solutions" get distracted too easily, follow latest BS fads, change course and rewrite everything for no good reason (too numerous projects to mention). And some of them are just plain mediocre framework designers in an industry that embraces mediocrity a lot more than it should...

What's even worse most frameworks are not that extendable without going out of your way when you need some custom functionality. So as soon as your problem becomes interesting, and you could really use some help from a framework, it's when they tend to break and you have to work around them...

Re: Do Not Learn Frameworks – Learn the Architecture

#33
post #30

The author is only partway through the learning process. There is a circular progression. The total newbie just "learns the framework" and is helpless to debug through leaking abstractions. I agree 100% that you don't want to be stuck there. So eventually she decides to just compose her own architecture. Now she understands all the pieces. But as she matures further as a programmer and architect, she starts to see al…

This is actually 100% my experience, wow. I started with Rails many years ago, had absolutely no idea what I was doing. Was just googling for gems and snippets from Stack Overflow, if anything ever broke I was done. A few years later I decided I was going to really dig deep into the meat of it and wrote my own framework in Clojure that we are still using to this day in production. It was incredibly liberating to know…

>I eventually realized that our super small team and I simply couldn't sustain keeping this super-custom framework maintained and updated, not with all the other work that needs to be done at the company. We moved most of our work to Haskell's Yesod framework, which has years of community work and incredible craftsmanship behind it.

And then Haskell's Yesod gets abandoned when the core devs move to shinier things and nobody else is bothered, like several Clojure web frameworks that were touted back in the day...

And you realise that maybe updating your own framework when and were you needed it, was not that big of a deal actually....

Re: Do Not Learn Frameworks – Learn the Architecture

#34
post #27

I'm going to admit, I didn't finish the article. So, I apologize if my point is useless. I've done plenty of web development before Angular/backbone etc. The productivity that I've experienced after becoming proficient in these frameworks more then makes up for any debugging issues. My other experience is that though sometimes it may take a tediously long time to figure something out, once you get it working... it ju…

ok, but what specifically made it so much better?

Re: Do Not Learn Frameworks – Learn the Architecture

#35
post #6

Good article, I agree with learning architecture first. No one should start learning by using framework first. But don't forget about "loosely coupled" frameworks like PhalconPHP. It allows you to code your own without using pre-built one.

What does it exactly mean to learn architecture? And how is it relevant who is on working on backend or web services?

Please read the article before you comment.

Re: Do Not Learn Frameworks – Learn the Architecture

#37
post #8
post #4

The problem is that job ads always say "We want experience in X, Y, Z." They never say "We want someone who can code without a framework, and could learn whatever we're using quickly."

Good companies want you to be able to code well. They don't care if you know the framework or even the language.

> Good companies

Good companies want both good coders AND coders with experience in the language or the plateform they use.

Re: Do Not Learn Frameworks – Learn the Architecture

#38
post #33

Earlier quoted context omitted.

This is actually 100% my experience, wow. I started with Rails many years ago, had absolutely no idea what I was doing. Was just googling for gems and snippets from Stack Overflow, if anything ever broke I was done. A few years later I decided I was going to really dig deep into the meat of it and wrote my own framework in Clojure that we are still using to this day in production. It was incredibly liberating to know…

> I eventually realized that our super small team and I simply couldn't sustain keeping this super-custom framework maintained and updated, not with all the other work that needs to be done at the company. We moved most of our work to Haskell's Yesod framework, which has years of community work and incredible craftsmanship behind it. And then Haskell's Yesod gets abandoned when the core devs move to shinier things an…

It's a possibility, which is why you need to evaluate how much the community likes the project, how much they depend on it surviving, how many people would be likely to keep it afloat in case the core devs peace out, how active the core team has been over the long and short terms etc. There's a whole art to picking OSS tooling for your team, none of it is devoid of risk, there's no free lunch.

Obviously, it'd also be totally OK for us to help maintain it with the rest of the people who care, that's a big part of it. Given how much you end up reading the source of frameworks once you really start using them (at least in my ecosystems), you're one step away from starting to change them.

Re: Do Not Learn Frameworks – Learn the Architecture

#39
post #30

The author is only partway through the learning process. There is a circular progression. The total newbie just "learns the framework" and is helpless to debug through leaking abstractions. I agree 100% that you don't want to be stuck there. So eventually she decides to just compose her own architecture. Now she understands all the pieces. But as she matures further as a programmer and architect, she starts to see al…

I don't think the author is intimidated by a framework rather highlighting there is greater opportunity cost associated with learning a framework and having to bend to it's will instead of writing code that does not rely on a monolithic framework.

The author appears to have solid understanding of the principles and it takes deep knowledge and experience to call out bubbles. Successful investors often take similar contrarian views, carefully weighing what is simply exuberance of the herd vs facts.

As you mention, time is required, to fully dig deep into someone's framework. At the end of the day, a framework is like software. you need time to learn it. when you use it in cases where you don't absolutely need it to do a job, you are affected by marketing or herd mentality.

'Everybody uses it so it must be right'. ex) MongoDB.

Everybody suddenly needed NoSQL. you started hearing recruiters ramble on about NoSQL and the urgent need to fill it. Then you start fiddling with it and you end up firing your entire team because they built their church on a questionable sand (MongoDB) and run into all sorts of problems.

I often feel like developers freely toss around frameworks or use new things because they are bored and want to try things differently. Ewww server side render pages are so 2005. I won't touch anything that isn't JS. No, I want this my blog built in Node.js so it can serve millions of yet to come visitors.

Again and again I'm reminded of turf wars where people's job rely on identifying with one set of philosophy even if they are as crazy as writing tests before you code and expect things to not fail.

Re: Do Not Learn Frameworks – Learn the Architecture

#40
post #27

I'm going to admit, I didn't finish the article. So, I apologize if my point is useless. I've done plenty of web development before Angular/backbone etc. The productivity that I've experienced after becoming proficient in these frameworks more then makes up for any debugging issues. My other experience is that though sometimes it may take a tediously long time to figure something out, once you get it working... it ju…

6 months planned and you get it done in 2 weeks...something tells me you should not be in project management.
Post reply on HN