Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,150,363 members, 7,808,267 topics. Date: Thursday, 25 April 2024 at 09:36 AM

Frameworks Dont Make Sense - Programming - Nairaland

Nairaland Forum / Science/Technology / Programming / Frameworks Dont Make Sense (2978 Views)

Which Js Frameworks Is The Best To Learn / JS Or PHP Frameworks? Which One Is Better For A Newbie / Top 10 Javascript Frameworks In 2018 (2) (3) (4)

(1) (2) (Reply) (Go Down)

Frameworks Dont Make Sense by asalimpo(m): 4:23pm On Dec 11, 2016
Found these views thoughtful, what dyu think?


Frameworks don't make much sense

Frameworks are one of the hugest anti-patterns in software development. They're hard to learn. They limit your creativity. They increase your project's complexity and dependencies. They go out of business and get abandoned. You have to maintain and upgrade your code to match the latest framework versions for no good reason. You have to search for help and ask others for advice when you're stuck. And you probably only need a small percentage of features that the framework offers anyway. They just don't make much sense.

You should prefer core-language solutions to small abstractions to small helper libraries to general libraries to frameworks. Software should be developed using least amount of complexity, dependencies, effort and using fundamental tools that have been and will be here for the next 20 years. Frameworks are at the far end of software complexity spectrum and you want to avoid them as much as possible. You should be fighting complexity and not embracing it. I don't use frameworks and I encourage you not to use them as well.

In fact, one of the rules for writing software at Browserling is to avoid frameworks at all costs. There must be a tremendous reason to use a framework. So far we've used 0 frameworks and just a few libraries to get things done. I've yet to see someone come up with a good reason to use a framework. Simplicity is the law at Browserling. I've taught my employees well to never choose a framework solution and to try to find the simplest solution starting from the core language and core tools and going up.

Let's go over the reasons why you shouldn't be using frameworks in more details.


Frameworks are hard to learn and this knowledge is generally useless


Frameworks take a lot of time to learn. Instead of learning fundamental tools, core computer science concepts, and programming techniques, you spend time learning something specific and generally useless. Just because someone invented a framework and many people use it doesn't mean you need to learn or use it. People give in peer pressure too easily. "Everyone's using FrameworkA/FrameworkB, I must be using it as well."

No, you shouldn't.

You should be thinking, how do I avoid using this framework? How many actual features or core concepts do I need from this framework? Can I implement these features in a hundred lines of code and be done with it and never depend on this framework? Who are the authors of this framework? Do these guys have a track record of maintaining their code or did they just put it together in a weekend and released it?

Don't learn useless frameworks that have no value.


Frameworks limit your scope of creativity


Frameworks limit the scope of your creativity. Frameworks put you in a box you can't escape. Frameworks make you dumb. Whenever you're faced with a problem you can't just invent a solution; you're limited by what the framework lets you do. You have to seek experts, waste your time and energy to find a solution to a problem you shouldn't have had in the first place if you hadn't used a framework.

You can't let framework authors control what you can or can't do. You should be in total control over your product.


Frameworks increase your project's complexity and dependencies


Complexity and dependencies are bad. You should keep both your project's complexity and dependencies at minimum. If no one controls complexity and dependencies, and no one enforces how software is written, then one dependency leads to another, and soon your project ends up using 25 different frameworks and 5 different programming languages. There should be strict rules what you can and can't use in your project, and someone has to make that call.

Without rules you might save time at the beginning and sound cool using all the latest frameworks, but now your software is so complex that no one understands how or why it works. It's also become unmaintainable. You may not notice it in the first few months as things are moving along quickly, but as your project progresses, your team's productivity will drop because of all the complexity and dependencies. You'll need more people to maintain it, and more people with specific knowledge to maintain it. If your lead developers leave, you're dead.

You should be fighting complexity and not embracing it. Every added framework, and even library, makes your project more difficult to maintain. Avoid unnecessary frameworks and libraries from day one.


Frameworks go out of business and get abandoned


Frameworks go out of business and new frameworks appear. You have to learn the new frameworks again. It takes a lot of effort, energy and resources. You just spent all that time earlier learning the old framework and now it's out of business. All the skills you accumulated are now useless.

Everyone's hyped about the new frameworks and you don't want to be left out, but in fact you shouldn't even care what they are. Core fundamental tools already let you do everything that these frameworks do and you'll just waste your time learning something that doesn't solve anything new. The more marketing and buzz a framework has, the less you should trust it.

Even worse, framework authors sometimes just abandon their projects or they quit the projects and delete their entire projects. Your entire build now fails because of one author.

Use fundamental core concepts, solid tools and programming techniques that are here for the next 20 years, rather than frameworks and useless libraries. You don't need them.


Frameworks evolve and you have to spend time upgrading your framework versions and other dependencies.


If you wait too long between updates, frameworks have changed dramatically, and you have to spend days adjusting your code and learning the new interfaces. You don't need all the extra functionality the framework developers added. Most likely you don't need anything at all from the new version.

Framework developers can't stop evolving their projects for no good reason. Often software is just done. It does what it's supposed to do and doesn't need any changes ever again. You don't need the latest version of every software. Some of the best software was written 10 or 20 years ago. Use it!

Upgrading versions for no reason is another huge anti-pattern. If software works at version X, then it should stay at version X and should never be touched unless absolutely necessary.

Ask how happy your developers and system administrators are when you have to upgrade from Framework v1.4.3 to Framework v2.0.0. It's the worst time of their lives.

You have to ask others for help

When something goes wrong with the framework or you get stuck, you can't just come up with a solution because you're limited by what the framework lets you do. You have to ask for expert help, wait until someone helps you or pay an expert framework consultant.

If you keep your dependencies to bare minimum, then you're the expert and you can quickly get things done and come up with the solutions without ever asking for anyone's help or advice.


You probably only need just a few of framework's features


I've seen this again and again - someone starts their project with a bunch of full blown frameworks when they only need a few features from each. At this point they have already destroyed their project. "Which frameworks shall we use?" is the wrong question to start you new project with. Start your project with an empty file and use programming and a few helper libraries and core tools to get it going.


Use frameworks only when absolutely necessary


I'm not saying that there isn't a use-case where framework would be good but it should be an absolute exception. The only areas that come to mind where frameworks make sense are mathematically complex areas of computing such as sound processing, image processing, and machine learning, where it would take many months to write the code that does the job. And even then you should try to avoid them.

Friends don't let friends use frameworks

Until next time!

http://www.catonmat.net/blog/frameworks-dont-make-sense/

3 Likes

Re: Frameworks Dont Make Sense by paranorman(m): 5:46pm On Dec 11, 2016
grin grin
I thought I was the only one that felt this way. I once was offered a position in an app/software development company; I was gonna be trained in few languages, especially good o' PHP. When I was told I wan gonna be starting with ZEND, lost interest. I specifically told the HR dude I don't like to be get started with frameworks. I just don't like building skills/foundation on frameworks.

2 Likes

Re: Frameworks Dont Make Sense by SeunLanLege(m): 5:59pm On Dec 11, 2016
You don't use frameworks? Good for you!

People have different opinions. Laravel speeds up my development time by 5000% imagine life without eloquent query builders or php artisan make:auth

Trying to look cool because you don't use frameworks is misguided. I admit there a re some frameworks that limit creativity *coughs* codeginiter *coughs* but there are lots of frameworks that give you unlimited freedom like symfony, tinyMVC, laravel, Meteor, etc.

4 Likes

Re: Frameworks Dont Make Sense by Sibrah: 7:14pm On Dec 11, 2016
My understanding tells me they make things alot easier. Bootstrap as a web frontend framework for example gives u alot of options out of the box. I can't imagine myself building a carousel, grid system, tab, accordion, form styles from scratch.

1 Like

Re: Frameworks Dont Make Sense by FincoApps(m): 8:12pm On Dec 11, 2016
Sibrah:
My understanding tells me they make things alot easier. Bootstrap as a web frontend framework for example gives u alot of options out of the box. I can't imagine myself building a carousel, grid system, tab, accordion, form styles from scratch.

Don't mix up libraries and frameworks. Carousels, Accordions etc.... Libraries do that

So using Libraries that makes work easier, eg JQuery doesn't mean you are using a Framework

1 Like

Re: Frameworks Dont Make Sense by Nobody: 8:18pm On Dec 11, 2016
arwontcomment
Re: Frameworks Dont Make Sense by Sibrah: 8:31pm On Dec 11, 2016
FincoApps:


Don't mix up libraries and frameworks. Carousels, Accordions etc.... Libraries do that

So using Libraries that makes work easier, eg JQuery doesn't mean you are using a Framework
Oga, my own understanding of librarier and framework hitherto is such that, framework can have libraries in its composition( as components or building blocks). Example is the popular java language framework Spring that has some unique libraries. I might be wrong though.
Re: Frameworks Dont Make Sense by Jenifa123: 9:03pm On Dec 11, 2016
dhtml18:
arwontcomment
u must to comment o
Re: Frameworks Dont Make Sense by Nobody: 9:04pm On Dec 11, 2016
noarwontalkthistime
Re: Frameworks Dont Make Sense by Jenifa123: 10:05pm On Dec 11, 2016
dhtml18:
noarwontalkthistime
u must talk o
i dey wait
Re: Frameworks Dont Make Sense by Nobody: 10:07pm On Dec 11, 2016
noarwont
Re: Frameworks Dont Make Sense by Jenifa123: 10:24pm On Dec 11, 2016
dhtml18:
noarwont
maka y
Re: Frameworks Dont Make Sense by Nobody: 10:34pm On Dec 11, 2016
Jenifa123:

maka y
arwontstartwarhere
Re: Frameworks Dont Make Sense by Jenifa123: 10:35pm On Dec 11, 2016
dhtml18:

arwontstartwarhere
d war don start
i just dey wait for u before i yarn
Re: Frameworks Dont Make Sense by Nobody: 10:57pm On Dec 11, 2016
How i solved the framework matter was to write my own framework - my own style. I wanted to make it open-source at a time, but I discovered that doing that will make it suffer the same fate as laravel, codeigniter and all them them, you will fill the framework with lots of stuffs that many people will not use.
So i kept my framework private, and have used it for many years without issues, but as a veteran programmer, I can use most of the conventional frameworks and CMSes. Their knowledge is essential for a full-stack developer, because clients can call you up at anytime to fix things.
It is one thing not to use them in situations where you have a choice, it is another thing not to have knowledge of how they work or to fix them.

Most of the work that I get which keep me floating is being a multi-specialist, I can write extensions, libraries and plugins for a wide-array of frameworks/CMSes, and I can also diagnose and fix them.

But on top of all that, I still recommend that for important projects, when time permits, it is better to do without frameworks.

2 Likes

Re: Frameworks Dont Make Sense by micodon(m): 6:49am On Dec 12, 2016
Please write a Web app in Python or JAVA without a framework and tell us how far

3 Likes

Re: Frameworks Dont Make Sense by Nobody: 7:04am On Dec 12, 2016
^^^you wetin them dey call that one eh - seppuku (that is what the JAPANESE call that)

Okay, let us look at another angle to this: now, let us say a PHP developer has been asked to create an ecommerce website that could have done fairly easily by installing magento or even wordpress or a custom cms.
And the developer decides to go direct and not use them - I will expect the developer to standardize the code and make it work properly - but that is not the trend i see here especially on nairaland. When people do custom, you find funny things like registering form not secure, or not doing client and server sided validations properly, security flaws everywhere, xss vulnerability, sql injections succeptibility etc

But for someone like me, whether I use frameworks or work directly, you cannot really spot the difference except you are a PRO and know what you are looking for.
So here is my take, if you do not wish to use frameworks - then, you must be a gaddamn expert - and not create rubbish (i have seen a lot of those rubbish on nairaland severally).

My own experience: I am quite vast in terms of technology, so here is what I do, when a project comes in, I put the following into consideration:
1. Time - how long have i got to tackle this project.
2. Tech - if the project does not specify language and i have freedom of language and technology
3. Archive - do i have anything in my large archive that is close to the new task
4. Scalability - is my proposed solution scalable?

1. Time: i might have different approaches to tackling a problem, i need the fastest one

2. Tech: well, different technologies come with their constraint, some projects can be achieved faster with some certain technologies like chats can be achieved faster and more efficiently with NODE.JS rather than PHP (I have done both, but if you use one of my socket libraries on github, you can actually do chats with php very fast)

3. Archive: this will also determine the tool i select for the task

4. Scalability: if the app is one that the traffick will increase fast, i must select an option that will scale with time

All these things will determine what i select at the end - since i am trying to earn money to make a living.
Re: Frameworks Dont Make Sense by Nobody: 7:25am On Dec 12, 2016
Reading that a framework limits ur creativity is quite funny.... common! A framework is a mere level of abstraction. Even programming languages are abstractions. ............. I believe that many developers don't want to use frameworks mainly coz they are afraid of loosing tracks with pure language functions, syntaxes and paradigms --afraid of learning something new ............ [ Now, that's funny, but its true ] The question should be: why should I use a framework ? ............. Here's the answer. The incorrect way to use a framework is: I just want to get things done ............... The correct way to using a framework is: delve into its source, take it apart and see how the pieces of it operate .................. I once hated Angular with passion until I decided to dive into its source code nd read it ............... Now, I think that's the way to use a framework. U cn't be a good prog without diving reading other people's codes especially open source codes. So why won't u ?

1 Like

Re: Frameworks Dont Make Sense by Jenifa123: 7:26am On Dec 12, 2016
dhtml18:
How i solved the framework matter was to write my own framework - my own style. I wanted to make it open-source at a time, but I discovered that doing that will make it suffer the same fate as laravel, codeigniter and all them them, you will fill the framework with lots of stuffs that many people will not use.
So i kept my framework private, and have used it for many years without issues, but as a veteran programmer, I can use most of the conventional frameworks and CMSes. Their knowledge is essential for a full-stack developer, because clients can call you up at anytime to fix things.
It is one thing not to use them in situations where you have a choice, it is another thing not to have knowledge of how they work or to fix them.

Most of the work that I get which keep me floating is being a multi-specialist, I can write extensions, libraries and plugins for a wide-array of frameworks/CMSes, and I can also diagnose and fix them.

But on top of all that, I still recommend that for important projects, when time permits, it is better to do without frameworks.
finally u ave talk
Re: Frameworks Dont Make Sense by talk2hb1(m): 12:45pm On Dec 12, 2016
coming back with ma own post on Framework!!!!!!!!
Re: Frameworks Dont Make Sense by Craigston: 12:58pm On Dec 12, 2016
I've become a little skeptical about comments from this papa troll (name.match("/^dhtml.*/i")).
I hope Jenifa123 is not his new interface.
Re: Frameworks Dont Make Sense by Nobody: 6:02pm On Dec 12, 2016
Craigston:
I've become a little skeptical about comments from this papa troll (name.match("/^dhtml.*/i"wink).
I hope Jenifa123 is not his new interface.
Nay, i cannever hide behind a female moniker (completely out of my pattern)

jenifa123 !== dhtml
Re: Frameworks Dont Make Sense by Jenifa123: 6:34pm On Dec 12, 2016
dhtml18:

Nay, i cannever hide behind a female moniker (completely out of my pattern)
jenifa123 !== dhtml
exactly we r two diffeent pple
Re: Frameworks Dont Make Sense by Sibrah: 2:03pm On Dec 13, 2016
Framework are there to give us options. Except you situation isn't suitable for a particular framework, there are hardly any disadvantages to frameworks aside learning how to use them.
Re: Frameworks Dont Make Sense by Sibrah: 2:04pm On Dec 13, 2016
micodon:
Please write a Web app in Python or JAVA without a framework and tell us how far
Thank you.
Re: Frameworks Dont Make Sense by directonpc(m): 2:36am On Dec 14, 2016
Bravo dhtml! It's all about what you want to create.
But for the folks that only know how to work with frameworks, una dey miss. And you can't be a good programmer if you don't learn how to go beyond frameworks.
Re: Frameworks Dont Make Sense by KazukiIto(m): 6:06am On Dec 14, 2016
Jenifa123:
exactly we r two diffeent pple
Now I believe...
Re: Frameworks Dont Make Sense by chiwex(m): 7:35am On Dec 14, 2016
Framework is meant for experienced programmers what have indept knowledge of the language that the framework uses.
Re: Frameworks Dont Make Sense by ChinenyeN(m): 6:11pm On Dec 14, 2016
chiwex:
Framework is meant for experienced programmers what have indept knowledge of the language that the framework uses.

No. Frameworks are abstractions to cut down development time. So, developers can focus on implementing logic, as opposed to spending so much time and effort on programming and debugging.

Frameworks help the less experienced more so than the expert. The more experienced programmers will do what they believe is necessary for the project, both in terms of short term development and long-term maintenance. Sometimes that may call for a framework. Sometimes it may not.
Re: Frameworks Dont Make Sense by jidez007: 6:59pm On Dec 14, 2016
Frameworks really helped me as a beginner, I was able to focus on the app I wanted to build without knowing much about the complexity of the code. I was able learn more by looking at the underlying code of the framework feature I was using, once in a while.

And now it makes me develop web apps faster, it is also an advantage when using framework in a team, everyone will be on a similar page, less arguments when you follow a similar guideline.

Then as a programmer, there tend to be some functions you keep reusing on different projects overtime. As you grow more experienced, you start building your own framework. I couldn't build my own framework when there are a lot of opensource frameworks on github, I mean why reinvent the wheel when you don't have a better wheel?

So, I will say most people who are against frameworks, are probably old programmers, who doesn't like change, or programmers who doesn't have time to learn a new framework.
Re: Frameworks Dont Make Sense by chiwex(m): 8:22pm On Dec 14, 2016
jidez007:
Frameworks really helped me as a beginner, I was able to focus on the app I wanted to build without knowing much about the complexity of the code. I was able learn more by looking at the underlying code of the framework feature I was using, once in a while.

And now it makes me develop web apps faster, it is also an advantage when using framework in a team, everyone will be on a similar page, less arguments when you follow a similar guideline.

Then as a programmer, there tend to be some functions you keep reusing on different projects overtime. As you grow more experienced, you start building your own framework. I couldn't build my own framework when there are a lot of opensource frameworks on github, I mean why reinvent the wheel when you don't have a better wheel?

So, I will say most people who are against frameworks, are probably old programmers, who doesn't like change, or programmers who doesn't have time to learn a new framework.

Yes. framework is for experienced programmers who understand the language. Because they can extend the framework classes or codes to suite their needs. Of which inexperience programmer will get stuck on when the project becomes complex.

Beginners can do basic things with framework while Advanced programmers does exploit with it.

Programming has levels
Re: Frameworks Dont Make Sense by Nobody: 9:45pm On Dec 14, 2016
I am not condemning frameworks mind you, but everything has its tools. I just developed a website of recent - it is my biggest work so far (not financially but in terms of scope - like 100k+ users bombarding the website simultaenously, combining 2 servers to power the site plus mobile application API, third party APIs etc). I was going to use my framework but when i weighed the options properly, I eventually used drupal 7 CMS and it worked fine.
I figured that I could have done custom coding, but really, I did not have the time to do that.

2 Likes

(1) (2) (Reply)

Structured Programming As A Panacea For Software Crisis. Discuss / Please I Need Help In Deciding / How To Land A Programming Job In 6 Months

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 77
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.