Live data from Hacker News

A Front End Engineer's Manifesto

f2em.com

21–30 of 43 posts

Re: A Front End Engineer's Manifesto

#21

"I will learn at the root, not the abstraction: JAVASCRIPT BEFORE JQUERY" I'm not sure why one high-end abstraction finds favour over another slightly higher high-end abstraction, but this sure sounds a lot like the people who insist that you can't be a good programmer unless you've learned some kind of assembler. On the "shoulders of giants" means we don't need to know javascript as well as jQuery. It means we don't…

> On the "shoulders of giants" means we don't need to know javascript as well as jQuery.

Not necessarily. I like to view it this way: When you are learning a new language (English, German, Chinese, whatever), in day to day conversations it is useful to know some expressions, idioms, or terms, but you should also know where they come from and how to explain them, and not just how to use them.

Learning what "I'm pissed" means in British english is quite nice but if you say that to an American and responds "Who pissed you?", how are going to teach this person of the use of the word "pissed" in this context?

Similarly, a jQuery-only developer will find it difficult to understand and explain what he meant to do with some piece of code, let's say $.each. A "native speaker", ie. a javascript developer, may be able to offer some advice or corrections, like "you could use Array.forEach in this scenario". (Granted this particular example may not be so good due but you get the point).

Re: A Front End Engineer's Manifesto

#22
I'd expect an article titled Front-end engineer's manifesto to have better UI than this. First thing I assumed was that I could use up, down in my keypad to navigate through slides. Then right, left. Figured scrolling is okay. The sidebar that's supposed to show me how far I've read isn't apparent. The font choices and responsiveness coud be better. Reinventing scrolling isn't good. I'd have been fine if it worked for me on Chrome, it got stuck in page 4 and 5 and I had to press j/k few times to get moving again. If there's a tool that takes care of kind of stuff and frees you to do important stuff, why not use it? On that point, checkout impress.js for this kind of stuff.

Re: A Front End Engineer's Manifesto

#23

"Without JavaScript or CSS, or without mobile Webkit, my site may not look pretty but will still be functional." There goes backbone.js and other javascript MVC patterns. This is something I'm still unsure about. What do (you) people think of keeping your "data out of the DOM"?

It depends where your site falls on content_page web_app continuum.

the last time this came up as a serious question for me was in a web management console.

Re: A Front End Engineer's Manifesto

#24
anyone more interested in the "brain hemispheres" bit (http://f2em.com/#brain-hemispheres) should check out Miyamoto Musashi's collection of writings called "The Book of Five Rings" http://en.wikipedia.org/wiki/The_Book_of_Five_Rings

Just some great writing on this idea of being a "balanced" human, and how that influences, informs, and improves your skills. His skills were as a samurai, but the principles apply pretty universally. I got a lot out of the book, you can find it free on iBooks, Kindle, etc.

EDIT wow, I actually didn't find a free version on Kindle, but here's a few formats for free from Archive.org -> http://archive.org/details/MiyamotoMusashi-BookOfFiveRingsgo...

Re: A Front End Engineer's Manifesto

#25
post #21

"I will learn at the root, not the abstraction: JAVASCRIPT BEFORE JQUERY" I'm not sure why one high-end abstraction finds favour over another slightly higher high-end abstraction, but this sure sounds a lot like the people who insist that you can't be a good programmer unless you've learned some kind of assembler. On the "shoulders of giants" means we don't need to know javascript as well as jQuery. It means we don't…

> On the "shoulders of giants" means we don't need to know javascript as well as jQuery. Not necessarily. I like to view it this way: When you are learning a new language (English, German, Chinese, whatever), in day to day conversations it is useful to know some expressions, idioms, or terms, but you should also know where they come from and how to explain them, and not just how to use them. Learning what "I'm pissed…

There's always a tradeoff between knowing what something like "each" does and having that extra architectural clutter being a cognitive drag. I can see the point being made, and there are obviously going to be situations where getting closer to the metal is important, but getting closer to the metal isn't always a good thing.

Sometimes, knowing things closer to the metal isn't good either. It took me ages to unlearn certain practices and just accept the garbage collector would do its job and I no longer need to think about unallocating memory.

Like all things, this one isn't black and white and it's open to subjectivity. For me though, I feel that the negative side of having knowledge of lower levels of your architectural stack is a hindrance more than it is not.

Re: A Front End Engineer's Manifesto

#26
> Without JavaScript or CSS [...] my site may not look pretty but will still be functional.

For what reason exactly? Of course there are cases where it makes sense to follow this rule, maybe even the majority, but having it as #2 in your manifesto will severely limit what you can accomplish on the web.

Re: A Front End Engineer's Manifesto

#27

"I will learn at the root, not the abstraction: JAVASCRIPT BEFORE JQUERY" I'm not sure why one high-end abstraction finds favour over another slightly higher high-end abstraction, but this sure sounds a lot like the people who insist that you can't be a good programmer unless you've learned some kind of assembler. On the "shoulders of giants" means we don't need to know javascript as well as jQuery. It means we don't…

I pretty strongly disagree.

> this sure sounds a lot like the people who insist that you can't be a good programmer unless you've learned some kind of assembler.

This isn't a very good analogy. JavaScript is a high level language, and jQuery is just a library with features that make it a high level DSL. But when you "write jQuery" you're really writing JavaScript, not some other language, so I don't think the analogy with languages compiled to assembly really makes sense. That being said, I do think that knowing some assembly will not hurt you writing C, and likely will help. Similarly, understanding some of how JS is implemented in browsers won't hurt, and might help you write JS.

It's true that there's almost no limit to how deep the rabbit hole goes. Someone building web apps probably doesn't need to have a degree in electrical engineering, but I don't think this kind of slippery slope argument defends someone using jQuery without knowing JavaScript.

In a grandchild comment you wrote:

> It took me ages to unlearn certain practices and just accept the garbage collector would do its job and I no longer need to think about unallocating memory.

You don't need to explicitly think about unallocating memory, but that doesn't mean your knowledge of manual memory management isn't useful. You do need to be aware of how the GC works if you're working with one. You can still have memory leaks, so how could you possibly debug them if you think the GC is magic?

There's this meme that is floated around HN and elsewhere, that the title "software engineer" is just puffery, because we aren't "real" engineers. I try to avoid this discussion because I think it's mostly stupid, but I can't help touch on it here given the title of this manifesto. I just don't think anyone could seriously call themselves a "front end engineer" if they refuse to learn JavaScript, claiming it's not necessary to use jQuery. Given that the author thinks this title is appropriate, I think the assertion about learning JavaScript is perfectly acceptable.

I'd be interested to hear more about what you think though, and about how the negatives to understanding lower levels of the stack outweigh the benefits. In my (limited) experience, some or more understanding of one or even two "levels down the stack" has never been a net-negative.

Re: A Front End Engineer's Manifesto

#28

"Without JavaScript or CSS, or without mobile Webkit, my site may not look pretty but will still be functional." There goes backbone.js and other javascript MVC patterns. This is something I'm still unsure about. What do (you) people think of keeping your "data out of the DOM"?

PhantomJS plus other tools to render a static snapshot and then serve? Image map? I imagine it is possible...

Re: A Front End Engineer's Manifesto

#29
post #20

I will choose the RIGHT TOOL FOR THE JOB So just put this in a full static page. Why the scrolling? And also color/font choice is quite terrible. No responsiveness for small screens. Apparently, he didn't follow his own advice.

I was going to observe that you can (in Firefox, at least) turn off the custom stylesheet, and it becomes much more readable. But if you scroll all the way to the end, it jumps around and doesn't actually let you scroll to the end (perhaps due to its JS). There's definitely something weird on that page.
Post reply on HN