I think the web really needs a fresh start before I would even consider becoming a web developer (I'm a CS student atm)
Right now, web is the best place for my app to be (assuming I can figure out offline support), but I tear my hair out every time I run into one of these issues. Just the other day I had some bizarre issue where offsetBottom and offsetTop + height were returning contradictory values, or something like that. And that was with jquery helping me. The web platform is cool for what it enables, but stinks for what it makes you do to get there.
The reason there are so many solutions to problems is that there are lots and lots of problems. The common stuff we all need is put into one library (eg jQuery). Some types if applications need frameworks so we get Backbone, Angular, or Ember. There's a thousand other types of micro issues that are common enough to need small, reusable solutions.
Combine all of that with hundreds of thousands of inherently creative and inventive people and we end up with multiple solutions to the same problems. Eventually we coalesce around a few of the best tools and move on to new problems.
Just pick what you need to get a job done and don't worry about trying to learn everything.
In your two-col example, just pick any CSS framework or grid system (Bootstrap, Foundation, Skeleton, YUI Pure, etc...) and you're done.
Front end tools aren't perfect but that's why they've been iterated upon. And what language doesn't have shortcomings? It's amazing that people have created these tools that are flexible enough to be used in seemingly infinite ways without being too narrowly focused or being all things to all people.
But I think I'm getting ahead of myself. Where's the mess you're talking about? This is a common thing to say among non web devs but I never can get any specifics. If you approach front end development the way you would back end or desktop development you're going to have problems. It's a totally different way of thinking.
As for JS itself, I'll just defer to Douglas Crockford and the infamous wat talk: https://www.destroyallsoftware.com/talks/wat .
If you want more, the HTML and SVG DOMs are not properly integrated. It turns out to be nearly impossible to have a functioning textarea inside SVG, or indeed any form of wrapped text. God knows I tried with Chrome and Firefox, and apparently it just gets worse with IE. I'm sure I'll encounter more irritants as I go on, or maybe someone else can chime in with something specific they encountered this week. Probably the reason you don't hear more specifics is that most of the irritations fade into the background as you work around them, leaving only a vague dissatisfaction.
Now granted, this is all much better than nothing. I know the web has enabled all kinds of cool things, which is the only reason anyone bothers to develop it. But I think it's absurd to call front-end dev a "solved problem", at least in any sense meant to silence pointing out potential improvements.
I guess the reality is that technology evolves at a quick pace. If you want to develop anything user facing, there will alwahs be some hot new thing to keep up with. In the 80s it was the desktop GUI, we got the web in the 90s, the 00s gave us smartphones, and in the 10s we'll start using ?? ? Holodecks?! My only point is there will always be something to keep up with it when developing a UI.
All financial institutions will greatly benefit by sending less to the browser, not more. CAPTCHAs as we know are not foolproof, and should be limited. Instead, things like session/ip based hashing of field names, generating anti-csrf tokens and the like are trivial for the backend.
The vast majority of complexity in most projects is needlessly self-inflicted. DRY is dead, less-is-more is dead.
Let's Include All The Things is how Amazon became as pathetic as it is for a major commercial website.
I suppose it depends how you interpret the term web developer, since that's what simfoo was discussing. Myself, building browser-based games isn't web development, it's game development, which I feel is an entirely separate domain. Building a website, you really shouldn't need more than a day to put together the HTML, CSS, and JavaScript. The front-end of the majority of most websites is very similar. Normally, this would indicate regular code reuse or warrant a framework, but as indicated in my original post, I haven't found any framework that actually significantly speeds up my development time.
By that I mean you either find compilation list like that or full stack framework but what a would personally find more useful would sets of cohesive tools, end-to-end.
Sure there are boilerplates out there but what I frustrating is that you hardly find "full stack" one. For instance what about a boilerplate for django + django-rest-framework + backbone.js + marionette + i18n tools for backend and frontend + manage.py-grunt.js integration + optimisation tools for css and images + ....
Yes, there are endless possibilities, the more the reason to find more of those out there don't you think ? Maybe it's me but I feel like there is either something missing, too much choice or both. I18N being often the most neglected (granted, it's harder)
What do HNers feel about that ?
If you think something is missing, please send a pull request.
What other libraries would you recommend to have everything required for making a basic web application. The end-result should include a responsive front-end, user authentication and security, reports, charts and visualizations, forms, blog, payments, and finally an ability to integrate pre-existing Java code in the back end. Apologies if something I am saying is not making sense.
https://github.com/dypsilon/frontend-dev-bookmarks
please update your bookmarks. Pull requests are welcome.
In a way shame this hit HN on a Saturday, this is one of those lists people need to find when sitting at their desk.
I've been all over the animation section. Great stuff in there. The whole list is phenomenal.
I'd better use github's search.
It's tough because : 1. There is a lack in uniformity: you have CSS solutions, jQuery extensions, node.js packages, articles, books, videos and so on. 2. Every bit of information you include makes the list bloated. I think it's enough to have the category, a link, and maybe a short description. If I need a template engine for a project, I will click on every link and look through them anyway.
Please make a suggestion how you would like this list to look.
So I created this list to not have to go through step #1 and #2 every time.
Great resource, but wouldn't a collaborative wiki be easier - or are such lists maintained for the original author's reputation not to become a fount of collective knowledge?
Otherwise good list :)