Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It makes me so happy so see some hate for Angular. I decided to specialize in front-end web development a few years ago because the state of back end frameworks was so abominable. I escaped to HTML, JS, and CSS so I could quietly develop in peace. Now we have Angular, Knockout, Bootstrap - please for the love of all that is good, just stop. This nonsense is nothing but mountains of technical debt. When I tell this to framework fanboys, they counter with "But you can get things running so quickly using frameworks." This is the definition of technical debt (doing things fast now at the expense of doing things slow later) but it is also complete nonsense. I challenge anyone to a contest to create a quick font-end site where you can use as many Rube Goldberg contraptions as you like and I only use jquery. So then when they back down because they know they will lose their excuse is "But Chris, you are just so smart - the average dummy developer can't do what you do." My final rebuttal is "If you agree that I am such a genius, why won't you listen to my advice?"


My experience is completely the opposite. I used to wire together a bunch of jQuery spaghetti code but as my front end applications became more and more complicated it became massively unmaintainable. Probably due to the fact that I didn't organize things very well, but isn't that what a framework is supposed to do - give you guidelines for how to organize things?

You can keep manually updating the DOM every time you get data back from the server but if you don't mind I'll keep using frameworks like Angular that take care of those mundane details for me while giving me a sane way to help me organize and test my front-end application.


We actually did this - we built our entire app using just jquery - and then we spent a month tracking down issues with applying state changes to the DOM before we gave up and rewrote the thing in Angular. We had a few bugs at first but they were quickly fixes and then we had had a much more solid application, since we only had to worry about keeping our data structures straight and the two way binding would take care of showing/hiding the elements, updating values, etc. Whole classes of bugs we were spending ages tracking down before which happened after a particular sequence events just couldn't happen anymore.

If you are doing something simple and quick by all means just use jQuery or plain JS - the advantage of the more powerful frameworks comes into play when building bigger things with complex scenarios happening. The challenge to make a quick front-end site is meaningless - the more meaningful challenge would be to write a complex real time application with both and compare, which of course we have already done.


You built a poor application, then rebuilt it - one would expect the second one to be better no matter what frameworks you used. I still believe I could do it faster and end up with a more maintainable code base.

The tools I use to keep my code maintainable are good practices, frequent refactoring, and clear thought. No library can replace those. Why do you need a 2 way binding to take care of showing and hiding elements? Only a 1-way binding is required. I am currently working on an app that uses Knockout and we are having horrible performances issues - all of these 2-way bindings are checking for everything all the time. There are fixes for this - fixes that would not be needed if we didn't build it with duplo.


My experience after building almost a dozen single page apps using JS frameworks and sometimes just jQuery has been the complete opposite. With jQuery, things are easy to get going at first, then difficult later when you need to do more complex things. Two-way binding especially has been extremely helpful.


Bootstrap is a bit different in that it gives you a good base to work from. Also, for many more things than design hipsters would have you believe, it can be used pretty much as-is.

Angular.js, OTOH... I looked at it a while back and did not like just how much it forces you into its way of doing stuff.


Yeah... My personal experience with Bootstrap is somebody built a site using their grid system that I took over. My boss wanted to add a bar across the top but because all elements had class names corresponding to their position ("row1" etc.) the only way to do that was to rename every single HTML element. This would have been a two minute fix using vanilla CSS. If I had all the time back I spent resetting line-heights bulldozed by Bootstrap CSS I could have built an entire new site.


I use bootstrap quite a lot and I have no idea what you're talking about regarding the class names. That probably wasn't a bootstrap-related problem. Overriding the styles is a bit of a PITA, but using the LESS or Sass version solves this.


Knockout is just a data binding library, not an all encompassing framework like Angular.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: