i’ve been programming for some time and i’ve always had a solid command of the language i program in. will i have a problem creating complex and scalable applications because i don’t use frameworks?
As someone else said, not necessarily. However, it could also be likely if you aren’t used to working with frameworks that it could negatively impact your ability.
What kind of applications are you envisioning making? A lot of the more complex applications have so many pieces that it would be impossible for you to build it from the ground up.
Example of an interactive website: How long would it take you to become knowledge enough to implement a web server, handle authentication and storage of sensitive data, manage database connections and queries, handle caching, sends out emails, etc. Then on top of all that you create a machine learning model that receives data using computer vision that interfaces back into your website. Would you be confident that even if it all works that you haven’t made a mistake that an expert has spent years devising a solution for?
Using frameworks allows you to build upon the expertise of many thousands, millions of hours and gets you closer to building the thing you actually wanted to build.
To be a bit pendantic, I think your argument applies more to using libraries than frameworks. You can do everything you describe by using a set of libraries or off the shelf solutions (for DBs, ML, etc), without them being part of an overarching framework, and without reinventing the (whole) wheel.
It’s clear that using libraries over rolling your own for everything is sound advice (in 99% of the cases). But I think the picture is more nuanced when it comes to frameworks.
The value that frameworks bring on top of this is that someone has already done the work of gluing two or more disjointed libraries together (e.g., auth and DB). But the drawback is that you also loose the ability to look outside the framework (or you have to do extra work to escape it’s constrained world), and compose things exactly the way you want. Frameworks tend to be invasive, and force you down a certain path, be it good or bad. They are helpful to get to a working solution quickly, but they may constrain you unhelpfully in the long run.
Not necessarily?
It’s entirely possible to build large and scalable applications from the ground up, and it can even be more efficient to do so. What frameworks do is abstract away a lot of the complexity.
If you genuinely understand what you’re doing, frameworks aren’t magic. You can implement anything they do yourself. I think it’s kind of hard to genuinely understand what you’re doing for something at scale without experience with a few different frameworks and how they approach large scale problems, though.
IMO, it’s probably easier to write a lot of stuff without a framework if you’re working by yourself. But once you have a team, and especially if that team has any kind of turnover, it becomes way harder. Frameworks come with various conventions and a fixed set of abstractions that everyone using said framework will be familiar with, and that makes it much easier to onboard a new dev.
Naaah, technically, you’re good. If you’re talking about commercial setting, it may be an issue because other programmers only know how to use some framework. But there are so many jobs out there.