Live data from Hacker News

“Don’t Reinvent the Wheel, Use a Framework” They All Say

mogosselin.com

71–80 of 94 posts

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#71
post #18

We should be careful not to confuse "frameworks" with "libraries". Two very different things. The former, yeah I agree that newbies should steer clear of until they understand what's really going on, and have the knowledge to dig deep and take advantage of the power those frameworks give you, rather than using them as a folder setup and "automagic". I'm currently working on a series of articles (maybe a small ebook,…

Not quite.

Frameworks and libraries are two different points along a continuous line (not even endpoints). Not black and white, just different shades of gray.

I haven't looked at Zend in a long time, but the difference between Zend 1.x and a pile of libraries was marginal, yet Zend was labelled an "enterprise grade" framework.

(Not dissing Zend, this was a deliberate design approach.)

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#72

I disagree with this article almost completely. Frameworks are great for getting stuff done, which is exactly why I do recommend them to beginners. Beginners are learning code/a new language for a reason. Usually that reason is to get stuff done. They don't need to know how the insides of these frameworks work to do that. As these beginners progress, as they start getting curious or need, for example, to know why get…

I totally agree.

Practically, it doesn't matter if you start with a framework: work with stuff long enough and you will either have to figure out the internals of your tools or you won't. If you do, the you learn, if you don't, it wasn't relevant anyhow.

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#73

I disagree with this article, almost entirely for the list of reasons given right at the end of it. Good 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 le…

Industry loves frameworks, because it speeds the commoditization of developers. > The projects I know that were developed 'without a framework' are more often than not poorly structured... So why not teach developers how to structure code properly? Teach them about coupling, cohesion, benefits of immutability and layering. Make them feel when modules should be broken up, and how they should do it. Expose them to diff…

I would like to think that I structure code reasonably well. I also appreciate that the Django guys have had years more experience than me in web programming and probabably know things better. They have probably encountered a few gotchas that I haven't yet.

And is it really nessecary to write all the update / insert queries for my dayabase?

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#74
post #64

Earlier quoted context omitted.

This attitude leads to a world full of crap, where everything crashes all the time and is slow like hell, while still costing megadollars. We don't ask doctors, plumbers or auto mechanics to "just get the job done". We ask them to do it right.

"We don't ask doctors, plumbers or auto mechanics to "just get the job done". We ask them to do it right." We're building software here, not saving lives or building something physical. Software is virtual, it can be refactored and fixed numerous times until the desired performance and bugs are all worked out. Doctors and anyone building something physical don't have this luxury. You can't tell a doctor to "refactore…

I aggree. I also think there are magnitudes of difference in time and effort required to build a "script that works", and "reliable software".

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#75
post #3

Yeah, 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…

"Web 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."

On the other hand, you don't need to use all these things.

When I learned Java, we were told don't worrry about "public static void main" just now, it will become clearer later. It did. I don't remeber them ever explianing that line, but explaining all the parts of it at different times.

Likewise, using Django or Rails, I am sure you can have a basic development server set up, and just let it call your code much like pressing a button would have done in visual basic in the past. You don't need to overcomplicate things.

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#76

Why is web development is full to bursting with frameworks? It is not because web applications are inherently flawed. I have been doing web dev for over a dozen years and understand the basics (semantic HTML/CSS, vanilla JavaScript and Ajax, the HTTP protocol and SQL) and know first hand that these are solid, clear and logical tools for building network applications. They don't need Bootstrap, Knockout, Rails or ORMs…

Perhaps because all these leaky abstractions help me accomplish a new project/idea in a matter of hours/days instead of weeks/months. And most of the time a "just works" is more than enough, high-performance and perfect understanding of every piece in the involved stack is a waste of time when you have dozens of other projects on your todo-list.

When you finally have a single product that is worth optimizing, then you can dive into the deep details. But mostly you have dozens of throw-away products before you get the lucky one.

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#77
post #45
post #39

Earlier quoted context omitted.

>However, others (and I include myself in this camp), are completionists. Abstraction is an annoyance, and not knowing is like an itch that needs to be scratched. I think this a common fallacy that many developers fall victim to. Our entire modern lives consist of using things we don't understand, by this logic you should also not fly in a modern aircraft because I am sure you don't fully understand how they work. Be…

> refuse to drive your car If I were engineering a car or a service tightly integrated with one, I would be pretty interested in knowing how cars works. > If you are your boss whose money is being wasted because someone refuses to use a time saving abstraction That's a bit out of context, don't you think? The article was making a claim regarding how beginners should learn web development - not how businesses should b…

>If I were engineering a car or a service tightly integrated with one, I would be pretty interested in knowing how cars works.

But if you aren't, you don't. If you're building a web application, you're the delivery driver, not the mechanic. You just need to know how to use the car.

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#78
post #73

Earlier quoted context omitted.

Industry loves frameworks, because it speeds the commoditization of developers. > The projects I know that were developed 'without a framework' are more often than not poorly structured... So why not teach developers how to structure code properly? Teach them about coupling, cohesion, benefits of immutability and layering. Make them feel when modules should be broken up, and how they should do it. Expose them to diff…

I would like to think that I structure code reasonably well. I also appreciate that the Django guys have had years more experience than me in web programming and probabably know things better. They have probably encountered a few gotchas that I haven't yet. And is it really nessecary to write all the update / insert queries for my dayabase?

It's not about what libraries you use or don't use. (I write Rails from time to time, one of the most framework-y things in existence.)

It's about an industry that insists on re-learning ancient lessons over and over again. It believes things like "we don't need design patterns, we have Ruby!" and "we don't need to choose architecture, we have Rails!" It constitutes a sort of intellectual deference to That Which Has Been Made And Agreed Upon to Be Good Enough. Meanwhile, the foundational knowledge becomes something that is ignored or looked down upon, because it's not shiny.

I want developers who are not afraid to rip up parts of the stack and make them better if they come up deficient. This requires deep knowledge and ignoring the rabble of people who insist that you "just use X." How do you think LLVM started?

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#79

Earlier quoted context omitted.

Well I think that a beginner should try to do this by hand at first. Not necessarily in a production application, but to learn how it works. The difference between Web development and desktop development is the HTTP protocol which is responsible for security issues and other behaviors (sessions, cookies) that you need to understand if you want to build solid applications. Just the difference between client and server…

If somebody wanted to learn Desktop GUI programming we wouldn't usually tell them to learn the low level APIs for drawing rectangles on the screen or manually handling keyboard input, we would point them to a framework and widget toolkit for the platform. The point of a good framework should be to pave over the cracks like double submit bugs, since they are not really things than anybody should be wasting brain cells…

I disagree on that point. Web development is not the same as Desktop dev. Because HTTP is something you should know if you want to code solid and secure Web applications. If you don't know how it works, you'll end up with forms validated only with JavaScript, double submit because people are loading pages, etc.

Re: “Don’t Reinvent the Wheel, Use a Framework” They All Say

#80

Earlier quoted context omitted.

If I was flying in an aircraft I would expect the pilot to have at least some understanding of how/why it stays in the air!

Good luck with that. As a pilot school alumni, I can safely say that the Bernoulli principle, and more importantly how it applies to an open system like an aircraft wing, is pretty fuzzy for most of my former classmates (I know because I was tutoring them on flight physics). Understanding the cause and effect between your interactions with the flight stick and throttle is one thing, understanding the physics behind i…

It reminds me of something I've noticed watching artists work. Professionals will either know all of the underlying technology to get the result they want, or they know very little of it but are so familiar with the input/output they can get the result they want.

Most all photographers know basic exposure rules, but there are some very good photographers that don't know much beyond that. They rely on trail and error to get consistent results and probably know their tools better than someone who spent that time jumping around to different tools but know the concepts really well.

Post reply on HN