TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Silly Rabbit... Frameworks are for Prototypes

18 pointsby _getifyover 11 years ago

15 comments

icebrainingover 11 years ago
<i>Because abstractions are slow. Abstractions are harder for new people to learn from scratch. Abstractions hide necessary details when bug-triaging. Abstractions hand-cuff you into a certain way of thinking about things, a certain way of doing things.</i><p>Agreed. For example, you should never use anything above assembly, and especially not high-level languages like C++, Haskell or JavaScript, which are filled with abstractions. Those are fine for prototyping, but for production you should switch to good ol&#x27; NASM, only making calls to libraries when appropriate.
评论 #6794965 未加载
评论 #6795058 未加载
评论 #6795352 未加载
评论 #6799853 未加载
ricardobeatover 11 years ago
There is <i>huge</i> value in shared common knowledge, and the efficiency gains you get from using a well-tested, documented and production-hardened framework that has been improved by a hundred other people.<p>You <i>are</i> reinventing the wheel, slowing yourself down and making maintenance more difficult by creating everything from scratch everytime. I think that&#x27;s common sense among developers.
评论 #6794930 未加载
arocksover 11 years ago
Frameworks and libraries are tools of our trade. The reason to use them or not to use them depends on the context. While it is foolish to become a &#x27;Backbone specialist&#x27; and look at every project with those eyes; it is equally foolish to dismiss frameworks as prototyping tools.<p>Lots of frameworks interoperate well and are amenable to customisations. The good ones are more than sufficient for most client needs, even for prolonged production usage.<p>Most open source frameworks are results of thousands of man-hours of effort by specialists from different backgrounds. Many aspects like security, modularity and functionality are examined by hundreds of eyes. It is perhaps naive to assume that one&#x27;s knowledge of the domain is so good that they can roll out their own framework much better than what anyone else has produced.<p>In fact, if that person is so capable, they should be encouraged to post their code for a public review and help others (or possibly be severely critiqued for their questionable design choices).
评论 #6795404 未加载
arithmaover 11 years ago
You plug your code into a framework. You plug a library into your code.<p>I think this definition is a good starting point for thinking about the difference between a framework and a library.
评论 #6794970 未加载
ceronmanover 11 years ago
If your goal is to learn and become a better developer, I agree, forget about frameworks, learn how things are done from scratch, it&#x27;s fun!<p>If your goal is to move forward on a complex project adding features instead of re-inventing the wheel for n-th time, use a framework.
评论 #6794962 未加载
badman_tingover 11 years ago
&gt; jQuery&#x2F;Dojo&#x2F;YUI are not a frameworks.<p>Oh.
评论 #6794714 未加载
评论 #6794836 未加载
Prefinemover 11 years ago
One way to look at this is that frameworks are like a mechanics shop, or a carpentry shop. They have their own work flow, their own set of tools, etc etc... jQuery and small code snippets are the tools. The hammer, the wrench. When building a site, you don&#x27;t need the whole mechanic shop (most times) but you need just the hammer. Along with that, a mechanic shop isn&#x27;t going to work for every case. What happens if you have a mechanic shop and now you are just doing tires. Its not a hard change, but what if instead, you are a mechanic shop, but now you have start building cabinets instead. That mechanic shop isn&#x27;t going to work. You can&#x27;t change the lifts to start putting cabinets together.<p>I think the best way to look at it, is use what you need. You don&#x27;t need a 140 piece tool set to hammer a nail.
davidwover 11 years ago
I use a CSS framework for <a href="http://www.LiberWriter.com" rel="nofollow">http:&#x2F;&#x2F;www.LiberWriter.com</a><p>My customers do not care about it <i>at all</i>, except for the fact that the site looks better than if I had done it from scratch. My users probably do not even have any idea what a CSS framework is.
评论 #6794856 未加载
kachnuv_ocasekover 11 years ago
If it ain&#x27;t loading: <a href="https://webcache.googleusercontent.com/search?hl=en&amp;q=cache%3Ahttp%3A%2F%2Fblog.getify.com%2Fsilly-rabbit-frameworks-are-for-prototypes%2F" rel="nofollow">https:&#x2F;&#x2F;webcache.googleusercontent.com&#x2F;search?hl=en&amp;q=cache%...</a>
评论 #6795076 未加载
yaphover 11 years ago
Guess this blog is a prototype too, takes very long too load...
thatthatisover 11 years ago
This article is horrible in so many ways, I don&#x27;t think Im going to be able to cover the full spread, but here goes:<p>1) the overall structure of these arguments is &quot;I&#x27;ve found the one true way to work, anyone who works differently is wrong, but I&#x27;m just sharing my opinion so you can&#x27;t critisize me back&quot; aka &quot;I&#x27;m right, you&#x27;re wrong, IMO, neiner neiner neiner&quot;<p>2) the author claims that for a major site he wrote his own &quot; URL history management, navigation, Ajax’ing of links, templates, events, etc.&quot;. And that this is a good thing. He, like framework authors before him, made inevitable design decisions, created conventions and generally created a way of working inside the app. Now people who aren&#x27;t him are going to have to maintain this work. Instead of giving his client a standard framework that new hires might have experience in, he gave them MyFramework(tm). He has worked against long term maintainability and then congratulated himself for it.<p>2b) as they learned more, he re wrote based on specific knowledge of his own system. With an established framework, others could have opined, with his self-rolled framework he was a key-man.<p>3) In his discussion of backbone he throws up an incomplete straw man of &quot;only 2 of 10 know it&quot; then concludes &quot;therefore learning my framework is just as reasonable.&quot;. False. First, backbone is extensively documented and almost guaranteed to be easier to learn than a custom rolled framework. Second, time invested by the other 8 in learning backbone is a re-usable skill they can carry with them to their next job, as opposed to time learning your framework that will not transfer. Third, backbone experts are available on call and on demand, if they need to grow the team or you get hit by a bus your client can replace you more easily if the app is written in backbone.<p>4) Maintenance. Here he claims that his framework is at least as well documented as other frameworks, and implies that it is better documented. He then says it is hard to write good code and good documentation without a framework, so don&#x27;t be lazy and do it. &quot;it seems many people have trouble building maintainable code without [frameworks]. Don’t be one of those lazy people.&quot; His example here goes completely against his larger point in any reasonable interpretation. If many people have trouble writing maintainable code without a framework, all else equal, that&#x27;s a very strong argument for using a framework.<p>5) pain now vs later. He assumes here that all frameworks are optimized to get going quickly to the detriment of long term maintainability. This is patently false. Django and Ember come immediately to mind as frameworks that explicitly make you do things a slightly harder way because future self will thank you. Some frameworks (Wordpress comes to mind) optimize for getting started quickly, but at best this article is an attack on those.<p>6) extreme narcissism. &quot;Your boss and your client don’t understand our industry, they don’t understand how the web platform works. And they will rarely care about such details. They’ll never care if you never help teach them by pushing back.&quot;.<p>6 cont) he happily puts his interests as paramount, then disregards the perspectives of others. Managers care about the long term viability of the project and hiring and budget, not just one person&#x27;s happiness on the project. Instead of saying &quot;they don&#x27;t care about our industry&quot; perhaps the author should spend more time positing that they are reasonable people whose requests come from reasonable places. They have information and concerns that you don&#x27;t, stop waiving your hands and calling their perspective invalid.<p>This article is myopic. Self centered. Selfish. Unnecessarily inflammatory. And, almost entirely wrong from start to end.
评论 #6795415 未加载
评论 #6795379 未加载
评论 #6795916 未加载
jamieomatthewsover 11 years ago
I like the article, some nice points.<p>I think mostly, you want to always know what the limitations of your framework are, and never be afraid to dive into the source of the framework to see why certain things are slow&#x2F;buggy, etc. If you can do this, you will be in much better shape than 75% of the users using that framework.
评论 #6795428 未加载
namuolover 11 years ago
Related material: <a href="http://www.pbm.com/~lindahl/real.programmers.html" rel="nofollow">http:&#x2F;&#x2F;www.pbm.com&#x2F;~lindahl&#x2F;real.programmers.html</a>
评论 #6795439 未加载
arithmaover 11 years ago
By the author&#x27;s logic, once you&#x27;re done with building your website, you should remove the browser from below your website.
评论 #6794954 未加载
thenerdfilesover 11 years ago
Without Module Definition &quot;re-use&quot; in JavaScript is just hand-waving. It amounts to re-use of HTML, and nothing more.