Live data from Hacker News

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

mogosselin.com

51–60 of 94 posts

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

#51
post #42
post #2

There seems to be this puritanical view that beginners should always learn a low-level language because it's good for the soul or something. Which is bollocks. To take the Java example because I'm more familiar with it, if I want to develop a simple Web application with a single form in Java, yes I absolutely do want to install Spring, Spring MVC and Hibernate. If I'm doing this to learn Java with a view towards usin…

I do. I worked on a few large scale java web apps and regularily had to find and fix performance issues. I'm not sure if it would have been possible for me to easily dig into GC internals or find bottlenecks in Spring itself, without some lowlevel understanding. So first of all you need some kind of lowlevel understanding to understand a GC. Hell I've talked to Java guys that couldn't explain the difference between s…

The reason I don't buy this kind of logic is there's always going to be a layer you don't understand. I've had programs I've written break because of JVM bugs, are you going to say no-one should be writing Java if they can't write their own JVM? I've hit bugs in OS-level libraries, are you going to say that no-one should be writing programs if they can't write their own OS? (I mean, ultimately hardware bugs do happen, so you need someone who understands how to build a CPU out of transistors - but I've spoken to designers at Intel who've said that no one person understands the whole of a modern processor). I can understand not using immature or obscure libraries if you don't understand them, but Spring and Hibernate are about as established as it gets.

You have to start somewhere - and, sooner or later, you have to learn to debug other people's code or systems. (Which is actually pretty easy with modern tools; you don't need a deep understanding of spring to find a performance problem if you have a decent profiler)

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

#52

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.

Doctors and auto mechanics routinely use tools and abstractions that they don't fully understand. (Not sure about plumbers.) For example how many doctors know how a CAT scan works? They trust that the machine is doing its job correctly, and focus their expertise on interpreting the results. And a lot of auto mechanic work today involves reading codes off the car's electronics and looking up the fix. Do you really thi…

> For example how many doctors know how a CAT scan works?

I don't know. Do you? Or are you just assuming that most of them don't?

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

#53
post #2

There seems to be this puritanical view that beginners should always learn a low-level language because it's good for the soul or something. Which is bollocks. To take the Java example because I'm more familiar with it, if I want to develop a simple Web application with a single form in Java, yes I absolutely do want to install Spring, Spring MVC and Hibernate. If I'm doing this to learn Java with a view towards usin…

One of my first full PHP projects was a WordPress site. I was very inexperienced at the time, but I remember being frustrated at the concept of the Loop, sub-queries, template overrides, and the like. IMO beginners should work without frameworks so that they know what's part of the language and what's part of the framework, especially when the framework has its own idioms and opinions about proper development.

That sounds more like a case of a bad framework (and bad language) than an argument against frameworks in general. Even if you only ever use a language's standard library, different projects will use different parts of it, so there's always going to be some new things to learn when switching projects.

Use an environment that matches what you want to learn, and one that promotes good development practices. But given how much modern programming is framework-based, that likely means using a framework.

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

#54
post #39
post #25

What I think is missing from most of these discussions is an acknowledgement that people, in general (including developers), learn differently . In this context : you're either comfortable not knowing, or you're not. What I mean by this : some of us are comfortable not knowing how X system works (temporarily, of course). Some of us can start building things with a web framework and gradually gain understanding from t…

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

I understand the basic laws of physics, and I understand the premise of internal combustion. Sure, there are a lot of details that I'm missing, but I get the basic idea. Similarly, I may not be able to design a modern processor from scratch, and I don't have the time to build my own robust Web framework, but I know at least the basic idea of every layer. That's enough to make me comfortable using a framework. I don't have to be intimately familiar with every line of code, at least to begin with, I just need to understand how it works in broad strokes.

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

#56
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,…

I tend to remember it as such: your code calls from libraries, but frameworks call your code.

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

#57
post #43

If your mother wanted to make her own website, what would you advise her? Would you tell her to learn HTML, CSS, PHP and Javascript from scratch or would you recommend Wordpress?

That would depend on why my Mom wanted to build a website.

If my Mom wanted her own website because she wanted a place to share her writing, or some photos, I'd suggest that she install Wordpress, find a free theme and work with it until her site is set up how she wants it (or just give up and invite me over to help).

On the other hand, if my Mom wanted to build a website because she was interested in learning how to develop web applications, I'd likely have to start her off with HTML and CSS (then introduce Javascript once HTML/CSS sink in). When my Mom really wants to learn something (especially something technical), she needs to see how all the component parts are actually built so that she has a full understanding. A full understanding of the smallest components makes it easier for her to understand bigger concepts. When it comes to web development, understanding how a document full of angle brackets can render as a web page would make everything else fall into place.

To complicate things, if my Dad wanted to learn how to develop web applications, making him start at HTML/CSS/Javascript would almost guarantee failure. My Dad operates best when you throw him in the deep end. He would do best if he downloaded an open source Rails project, figured out why it does what it does, and then modified it to do something different.

I struggle when it comes to the why. My Dad is extremely mechanical and he was a police officer. Perhaps working with a police force caused him to look at events as a byproduct of an entire system? Or, maybe this is straight up nature and his brain is just built differently? Or, maybe his parents did something in his first few years of life?

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

#58

I look at this in 2 ways. One is "Learning how something really works and understanding the core" and the other is "Creating production ready applications with a tested abstract magical tool". Frameworks are great to create production ready apps in no time even for a novice. But on the other hand, they have too much magic at times. Take for example, this code in Python/Django: user = User.objects.create_user('name',…

The problem is how do we define "from scratch", the common definition seems to be "Whatever I had to do when I started". Even if you throw out of the ORM and go with writing SQL queries by hand, do we need to understand how the database will parse the SQL, how it stores the data on disk and how it executes the query? The main reason to understand SQL when building a web application is really that the ORM doesn't prov…

Agreed. There is always a limit when it comes to going low level. Yes it probably is an overkill to understand how a db parses an actual SQL but helpful to understand how an ORM converts to a SQL query. This is again contextual. If you are writing your own database, then may be you do want to understand the parsing. But for web dev, may be not.

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

#59
post #25

What I think is missing from most of these discussions is an acknowledgement that people, in general (including developers), learn differently . In this context : you're either comfortable not knowing, or you're not. What I mean by this : some of us are comfortable not knowing how X system works (temporarily, of course). Some of us can start building things with a web framework and gradually gain understanding from t…

Super duper high levels of abstraction are okay for beginners only because they don't know any better, and they are comfortable not knowing because they are beginners. It's fun to think that completionists exist, fun like believing in the tooth fairy or the little rat. Have you honestly finished auditing the linux kernel yet? w3schools punts nowadays and suggests using youtube for cross browser video support. High level software has some real downsides, but don't forget to switch from grunt to gulp.

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

#60
post #43

If your mother wanted to make her own website, what would you advise her? Would you tell her to learn HTML, CSS, PHP and Javascript from scratch or would you recommend Wordpress?

What does your mother have to do with it? This is much more relevant to a young programmer setting out on what may well become their career. Telling them to use Wordpress is like telling them to fuck off because you don't want to waste time helping them learn.
Post reply on HN