“Don’t Reinvent the Wheel, Use a Framework” They All Say
mogosselin.com
“Don’t Reinvent the Wheel, Use a Framework” They All Say
1–10 of 94 posts
Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say
#2Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say
#3Web frameworks consist of a lot of things besides pure programming. And these beginners barely understand programming...hell, they barely understand basic file systems that don't involve folder icons. And so all of this stuff...databases, MVC design, object-oriented concepts, dev ops, debugging...oh, and the entire world of front-end design...is thrown at them in such a way that there is no way they can decouple what are mostly orthogonal concepts.
It'd be fine if these beginners couldn't write a optimized SQL query in place of ActiveRecord...that'd be perfectly fine to work with. But I'm talking about a much deeper level of confusion. I once worked with a Rails self-learner and he wanted to throw up a single web page, with a sortable table that had a trivial number of rows (i.e. the data could all fit on one page without being cumbersome)...he could not, for the life of him, figure out how to do that in such a way that didn't involve creating a new Rails project and deploying it to Heroku.
It's not that I'm against teaching frameworks...it's just that for beginners, it seems like a very convoluted way to do so, and one that could be very unproductive in the end.
Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say
#4Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say
#5Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say
#6> The problem is to always tell beginners (or let them think this is a good idea) to start with a framework / cms because “you shouldn’t reinvent the wheel”.
Learning a CMS and Framework are not same. Learning CMS is user stuff, but learning a framework is a developer stuff.
> When they should use a framework:
> When they need security features (login, session management, etc.). It’s often a bad idea for beginners (and even experts) to write code related to those areas and use it in a live application. But you still should know the language basics.
You can't provide security by learning a language basics. You should read books, articles about web security (independent to the language)
> 1. Customization can be difficult in complex code.
> Take for instance Liferay. Liferay is a big web development platform. If you want to start a membership site...
Your example is not a framework.
> 2. Debugging is usually more difficult when using frameworks.
> Frameworks are good at throwing unreadable meaningless errors.
Are you sure you have used a framework before ?
tl;dr Framework and CMS (or portal) are not same stuff.
Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say
#7Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say
#8Yeah, while I support the Learn to Code movement, it is dismaying to see so much of it focused on frameworks, i.e. basically Ruby on Rails. It's a simple play for monetary desire, I know, so to tell a novice, "Well, if you get a strong understanding of Ruby and programming in general, learning Rails is pretty straightforward"...is just going to confuse and frustrate them because they've heard about how it's Rails tha…
Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say
#9Well, take what I say with a grain of salt since I cannot call myself a programmer, but you can’t mix it all. Take Flask, I mean, who the hell wants to do url routing? Flask does that for you. Take sqlalchemy, who the hell wants to create an orm? It’s nice to learn the basics, to understand python well and to understand web development foundamentals like “salted”/hashed passwords etc. But don’t tell me I should have…
This guy's article reminds me of the guy who did that "Programming is Terrible" talk on Youtube, where he was describing an anecdote about the fellow who decided he'd build everything from scratch because he'd understand it better. That's kind of dumb - programmers have spent the better part of the last 50 years solving hard problems to get to the point where we are now. Why do we have to rehash their hard problems when there are still tons more hard problems we could be applying ourselves to?
Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say
#10Good development practices and project structure, generally good code examples, fewer bugs and tested code and re-using code are all very important things in any development, and frameworks all help with that.
If you are starting some of your very first web development, I'd encourage you to play around with some low level Node.js HTTP stuff, or even write a web server in another language, to get a feel for how the request/response model, HTTP header/body sections, etc, all work.
But after that basic introduction, dive into a framework and learn it well. The projects I know that were developed 'without a framework' are more often than not poorly structured, poorly documented, and difficult for new developers to learn their way around, precisely for the reasons given at the end of the article.
If you evaluate frameworks for your use-case, and realise there isn't one that suits you well, then by all means, go and make your own, but don't just make your application - make a framework for your application, and then use the framework, it will result it much better structure and better software engineering practice.