8 ms·
I'm really glad I don't have to work with people who think like this. You don't NEED a framework, just like you could theoretically build a car from scratch.
by gjolund 10y ago
I'm really glad I don't have to work with people who think like this.
You don't NEED a framework, just like you could theoretically build a car from scratch.
If your app isn't complex enough to merit using a framework, then you aren't really building something worth talking about.
Frameworks do exactly what they say, provide a common framework for your team to work off of while they build a complex application.
I feel like most of the FUD around JS frameworks comes from simple people building simple apps and wondering why everything needs to be so complicated. Frameworks enforce structure, which becomes more and more important as your app grows in complexity.
Frankly it would be great for me if this train of though picked up steam, plenty of contract work from companies who can't maintain their "homegrown" frameworks anymore.
- coldtea 10y ago>If your app isn't complex enough to merit using a framework, then you aren't really building something worth talking about. That's the very mentality that gave us J2EE crapfest and poisoned JS. The idea that a complex app requires a kitchen sink approach and framework-itis...
- gjolund 10y agoComplexity requires structure in order to be maintainable. Its not a "kitchen sink", its scaffolding. If you don't understand then you are either writing huge amounts of documentation and test code for your custom solution, or you are acknowledging that your app will be unmaintainable once you leave your position. Both are signs of inexperience.
- coldtea 10y ago>Complexity requires structure in order to be maintainable. Structure is the job of the lead programmer(s), not some third party framework developer. And it should suit the specific job. It's as if we forgotten that programs have to be designed with an overall architecture based on our business, and instead just download off the shelve scaffoldings and try to adapt our business logic around their design. You know that Joe Armstrong quote about OOP? "the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle" Well, it's the same with frameworks. You wanted a router, a template engine, and a few more pieces, but you go that, a banana, the entire jungle, and a mustachioed dictator telling you how to do things. >If you don't understand then you are either writing huge amounts of documentation and test code for your custom solution, or you are acknowledging that your app will be unmaintainable once you leave your position. It's as if we've forgotten the existence of libraries and APIs, of which there are like 200.000 in npm, and 50 of them are also really good. >Both are signs of inexperience. Some of the most experienced programmers, of 20+ years of career of successful projects, don't trust frameworks (and surely neither the "framework du jour" of JS, nor the "framework that ate Cincinnati" approach of J2EE of yore).
- gjolund 10y ago>Complexity requires structure in order to be maintainable. A competent lead programmer will choose a structure that adheres to common best practices and is maintained by a community. Also known as a framework. >If you don't understand then you are either writing huge amounts of documentation and test code for your custom solution, or you are acknowledging that your app will be unmaintainable once you leave your position. 200,000 libraries, 50 of them good. My point exactly. A well written framework has already done the curation for you and has a community of people working to make those components even better for YOUR USE CASE. >Both are signs of inexperience. I guess I won't be hiring you then. If a candidate comes in and says "I don't trust frameworks because they are complex", I say "Thanks for your time."
- tobltobs 10y agoAre you are replying to yourself? You are quoting yourself.
- gjolund 10y agoWay to avoid adding any more the conversation.
- coldtea 10y ago>and has a community of people working to make those components even better for YOUR USE CASE. How did the latter point derive from the former? Frameworks come with prepackaged components and it's usually their way or the highway. A framework might very well have a "community of people working to make those components even better" (period), but surely not "a community of people working to make those components even better for [MY] USE CASE". If anything, a component's community try to make them as generic and all-encompassing as possible. Contrast with libs, where I can cherry pick and use the one closest to my exact use cases. >I guess I won't be hiring you then. People use those kind of "arguments" a lot, as if they prove anything. Depending on what those who say it are arguing against, it could both be a wise decision or the sign of an totally inept boss. There are people who don't like frameworks that can code circles around people who do (and vice versa). If you don't want to hire the former, it's totally fine. Telling strangers who haven't applied to you, and have no intention to do so (and might be making hiring decisions themselves, elsewhere) that you won't hire them shows you in bad light -- trying to beat them into line not with arguments but with "boss" power.
- Retric 10y agoFrameworks add complexity not structure. The goal is to cover every relevant base which is complex. The imposed design rarely has any relationship to your problems at best they help manage the framework's needs.
- MortenK 10y ago"Both are signs of inexperience." Case of pot calling the kettle black methinks.
- tomc1985 10y agoHow funny, then, that the framework people can't seem to standardize over anything more than jquery or react? If layers upon layers of frameworks really were the best approach for complex applications then why can't people get behind one clear winner? Why does there seem to be a new framework popping up all that damn time? How much money has been lost simply keeping up with the artificially hastened pace of change? Now, I personally have nothing against frameworks individually, but collectively people seem to pile them on top of each other. One is enough -- the beauty of web standards is that there is a common language that one simply needs to speak to access. You are profiting from the community's collective lack of technical rigor.
- gjolund 10y agoI profit from people's lack of technical expertise every day, and I'm proud of it. People come to me because they acknowledge that they don't understand the problems they are faced with, and I provide maintainable solutions that work for years after the contract has been completed. How? I choose a widely adopted framework that is suited to the task and follow the best practices of the community that developed it. That way when I leave people don't say my app is "A spaghetti be-spoke js app" but instead "Its an angular/ember/react-redux app." See the difference? One is the opinions of a single developer (or small team), the other is the culmination of hundreds of open source developers working together to solve common problems in a maintainable and performant way.
- tomc1985 10y agoI think you're touching on exactly the problem: a 'spaghetti be-spoke' js app. Can a JS app be anything but? Javascript is a language for the view layer. It's supposed to be the minimal shim on top of LAMP or Rails or whatever, to bridge the gap between static HTML and dynamic movement. It was never supposed to run the entire app!
- gjolund 10y agoYou are ignoring huge problems. How does a LAMP/RAILS app share server side rendering code with the client? How does a LAMP/RAILS app share data models between the server and client? How does a LAMP/RAILS app provide search engines with indexable dynamic pages? How does a LAMP/RAILS app preserve client state between page reloads? How does a LAMP/RAILS app synchronize client state between multiple connected clients? Your lack of experience working in a professional front-end environment is telling, and is the source of your confusion.
- catnaroek 10y ago> If your app isn't complex enough to merit using a framework, then you aren't really building something worth talking about. This isn't true. There is value in simplifying the problem at hand to the point where you don't need fancy tools to solve it. Not always possible, of course...
- jqm 10y agoSome of the most useful things I've written have been the simplest. In fact, I'd say there is a pretty strong correlation between simplicity and usefulness (for some reason). You don't necessarily need a heavy framework to make a useful app.
- jamesknelson 10y agoI like how you put "you could theoretically build a car from scratch". As someone who writes about and uses React daily, and have written things from scratch before, that strikes me as a really good way of explaining the utility of frameworks to newcomers. While most apps with any complexity will end up using some sort of framework, there is no rule which says it has to be an existing one. In my experience, a lot of the more involved projects I've worked on have used their own custom framework (as opposed to React, Angular, etc.) The upshot of this is that it is certainly possible to build something worth talking about without using one of the popular frameworks.
- tobltobs 10y ago"I feel like people who say "just use the dom" don't actually have enough experience to know why that is such a bad idea." "You people really are kidding yourselves. I feel bad for whoever is paying your salaries." "Honestly, it just sounds like you are bad at managing your own software projects" "I'm really glad I don't have to work with people who think like this." "Both are signs of inexperience." "I guess I won't be hiring you then." ------ If your coding skills are as big as your mouth you must be a kind of coding god.
- gjolund 10y agoI am very good at what I do. I have had lots of these conversations with other people who think they are good at what they do. This line of thinking kills companies, because the prototyper they hired for their "MVP" doesn't like frameworks. A year later he/she is gone and I'm rebuilding their app as an angular app. You don't have to agree with me, but I am right. Millions of of dollars in contracts and a resume full of happy returning clients says so.
- mikegioia 10y agoI'm not going to engage you on what you do, but you need to re-read some of the comments you've made. A lot of it is too hostile / oddly opinionated to be taken seriously, regardless of message. Whatever it is, it's not good communication.
- gjolund 10y agoI am not an evangelist, I'm not trying to win a popularity contest in this thread. If people choose not to listen to what I have to say it has no impact on me at all. I will continue making a living off their mistakes.
- exodust 10y ago> a resume full of happy returning clients You mean the people you refereed to as lacking technical expertise that you profit from? "Happy client" does not equal "superior code". Often clients will be happy just seeing the page load. You implied earlier that a be-spoke js app by definition is spaghetti, poorly documented and generally inferior. I can't subscribe to that idea. I've seen the reverse as true also. Risk of failure is what everyone wants to avoid. Another risk to avoid... Mediocrity. MVP is mediocre by definition, and the quickest way there is to slap a few frameworks on top of each other. Bells and whistles yet more. I suppose striking the balance is what matters, and "right tool" and all that. But the right tool could indeed be a be-spoke app.
- eggy 10y ago'simple people' as opposed to? I think people are coming down really hard on the article, and I found it to be light-hearted, and simply asking people to revisit where we're at. He doesn't call for anybody to stop using their frameworks. I am studying Erlang/LFE. I chose LFE over Elixir (I know it is not a framework), since I like Lisp rather than the Ruby-like syntax of Elixir, and because one of the creators of Erlang (Robert Virding) has his weight behind LFE; he created it. It is a subjective choice for me. Elixir is great, and a lot of Ruby hackers have picked it up. Do I need Erlang/BEAM/OTP ,right now? Certainly not, but I am studying it anyhow. If I get the chance to implement it for a job, would I do it just because I like it, and WhatsApp uses it effectively? No, unless a fit comes along for it. I do think a lot of people aspire to work for FB and Co. and so they learn those their frameworks, and I would wager there is probably a lot of people trying to bring them into their smaller companies to get the chance to work with them. I find the simile to building a car from scratch, stretching it if you are not FB, WhatsApp, or another biggie. And you should be eager to be able to step into a smaller company who has outgrown its "homegrown" implementation and help them use a framework; you just shouldn't find your happiness only when your neighbor's cow dies ;) But a smaller company shouldn't run with a framework with the vision they will be needing it in 3 years based upon no real analysis of their needs, but based just on wishful thinking. The money could be used to grow the company, and then adopt it at the appropriate time.
- gjolund 10y agoNobody brings in a framework out of hope that it will lead to them getting a job at said sponsors company. If they do they are very very misled. People choose a framework because they want to benefit from the R&D done at said company, and avoid sinking similar R&D costs into their product. I don't find happiness when my neighbors "cow dies" (I like that metaphor), but it does pay the bills, and that makes me happy. If people keep making the same mistakes, I will keep getting the same contracts in my inbox. p.s. try breaking up your wall of text in future posts, it makes your response really difficult to read.
- marincounty 10y agoI was kinda with you until you nitpicked his/her use of paragraphs. You sound like a Rock Star Programmer? Take the night off, go out, have some fun? You made you point. I don't like all these continually changing frameworks either, but I am not a good Programmer. I actually wish their was a site that voted for for the best frameworks, but instead of a popularity contest; the judges would be a mix of the best programmers. Programmers with no adgenda, other than giving their honest unbiased opinions. Maybe throw in students who are in the middle of learning how to program? Actually, some of the best advice, I have gotten, has been from students just learning to program. Specifically the students in Bootcamps. I use to follow this one guy in SF, and he saved me a lot of time in my journey.
- deleted 10y ago[deleted]
- calsy 10y ago'I'm really glad I don't have to work with people who think like this.' You're glad you don't work with people who weigh up the list of possible solutions based on the specific problem? You're glad you don't work with people who care about performance, size and redundant code? You want to work with people who don't think, who don't question implementation? Thats pretty dumb isn't it. If someone has an alternative solution and a sound argument to back them up, your response would be 'I don't like the way you think'. But I guess projects are only worth talking about when they are incredibly complex. A simple website taking 10,000+ hits a day isn't worth squat unless you have a big JS framework under the hood. Complexity = value, not users, not the UX, not the support, not performance, but COMPLEXITY.
- maaaats 10y agoYou are building a straw man and then arguing with it.
- calsy 10y agoNo, im not. Those are the exact points laid out in the article. The author mentions both the performance, size and redundancy related to frameworks. Gjolund, states that he is glad he does not work with people who think like this. He goes onto mention that projects that have limited complexity are not worth talking about, thus the only factor in considering a projects worth is its complexity.
- gjolund 10y agoYou are right, 10,000 hits a day is not worth talking about.
- calsy 10y agoReally thats it?
- kafkaesq 10y agoIf your app isn't complex enough to merit using a framework, then you aren't really building something worth talking about. Like HN, Craigslist, Reddit, DuckDuckGo, Wikipedia? From what I understand, each of these sites was famously minimalist in terms of front end architecture as such, in their early stages at least. And still are, comparatively speaking. You don't NEED a framework, just like you could theoretically build a car from scratch. Very often you don't need a "car" to launch a business or start a community. Sometimes what you need is more akin to a bicycle. Or a walking stick. I'm really glad I don't have to work with people who think like this. I greatly prefer working with people who challenge conventional wisdom (and my own unthinking assumptions and tunnel vision about things), actually.