13 ms·
Frameworkless Movement
- smitty1e 6y agoThe great news about frameworks is that they can have a catalytic effect on delivering a product that falls within their approach. The other news about frameworks is that you had better be an expert if you need to deviate from their approach. I prefer Flask's minimalist approach, for all it means spending time (as noted in TFA) wading through various libraries to "build your own framework", which isn't for noobs.
- tomberek 6y agoA fundamental feature I look for in frameworks is an easily accessible "off-ramp". Is it possible to wean yourself away from the dependency? While many front-pages of frameworks tout how easy it is to adopt incrementally, my concern is about incrementally escaping. Not because I necessarily will, but because it is a good sign of underlying quality and it is always good to have the option.
- divbzero 6y agoIn my judgment, React scores poorly on “off-ramp” potential as there is a particular React way of doing things. Curious if others would agree, and also for assessments on which frameworks score better on “off-ramp” potential.
- runawaybottle 6y agoWhich is very weird because it was supposed to just be the view layer.
- oorza 6y agoIt is just the view layer in well architected applications. The off-ramp for a React application is use your state management, data models, controllers, etc. with a different view layer. Oh, you're making HTTP calls directly in React components? Well, you done goofed and that's not React's fault.
- runawaybottle 6y agoWhat if you used a bunch of scoped styles in your component? Screwed yourself there again? Would be nice to have a style sheet to just slap onto that whole other framework ...
- unclebucknasty 6y agoI haven't wrapped my mind around scoped styles. You generally want a consistent UI, meaning mostly global CSS. And, you want the option of easily adjusting a global aesthetic/behavior. Scoped styles seem like the framework version of the style attribute.
- zomglings 6y agoI think the manifesto (https://github.com/frameworkless-movement/manifesto https://github.com/frameworkless-movement/manifesto) would be vastly improved if it defined what a framework was. It seems to distinguish between frameworks and dedicated libraries, so I think we can apply a react test here: Is react a framework?
- charlysl 6y agoQuoting one of the authors: Yes ... the declarative pattern is a part of React’s way. Where there is a “framework’s way” of doing things, there is a framework.
- pnako 6y agoAccording to the dictionary, a framework is "an essential supporting structure of a building, vehicle, or object". In software it's the same thing. The framework defines the structure, you just fill in the blanks like you would fit floors, add wheels, etc. The pro is that it's an easy way if you want to build an application that closely follows an existing type of application. But it's too constraining if you want to be able to customize the structure down the line; all of a sudden, you realize that it's defined outside, in a technology that is not your own and you don't understand.
- zenhack 6y agoBack when I was doing a lot of Python work I was a big fan of Flask. The reason is that it really just provided an integration layer for existing stand alone libraries; it didn't feel like I was buying in to some massive framework, just leaning on Flask to get rid of some of the boilerplate glue code that is otherwise need to write to e.g. find a jinja2 template, render data with it and then turn that into an http response. Just `return render_template(...)`. But if there wiring became inappropriate it's ultimately not doing that much, and it's easy enough to take that template and use it in a different context.
- jb_gericke 6y agoIs openSSL? How much domain knowledge should developers be expected to have across the broad array of capabilities modern apps require? Should we be implementing our own tcp stacks? Frameworks catalyse development. It's much easier for a new team member to read the very rich and well explained Django documentation than to pour through reams of poorly documented code for a custom mvc for instance. This feels like both tilting at windmills and irrational expectations on devs who for the vast majority need to turn out features, not core libraries.
- jeffmcmahan 6y agoIn JS, frameworks have helped us to work out which bits of "magic" we really value, and over the past 5-7 years especially, that has informed the evolution of the language. And now, most of what we'd want is built into the platform (raucous applause). I build pretty much everything - from simple to very complex - with arrow function closures and direct DOM manip, and it works beautifully. I occasionally use lit-html if I really need to to make quick progress. But otherwise, it's the raw DOM API with one simple, functional pattern...
- wildrhythms 6y agoAny advice for rendering lists? I usually start down this path of building the elements and appending them to some container element, but as soon as I need to update a single element in the list, I end up re-rendering the entire list... with a gigantic list this can start to become problematic.
- anderspitman 6y agoThe approach I've been taking is using the source data to determine what index needs to change, and using the dom to swap out just that element. Here's an example: https://github.com/remfs/remfs-delver-js/blob/master/components/directory.js#L69 https://github.com/remfs/remfs-delver-js/blob/master/compone... Don't look to closely at the code as a whole. It's prototype quality.
- jeffmcmahan 6y agoI have a simple reconcile function (that I wrote, in umpteen variations) diff the previous and upcoming view state (not the DOM state) for each list item, and if there are changes or new items, the changes are made. If not, DOM nodes are not touched. FWIW, it is actually nice to take hold of the details. In many situations you realize that you can alter the way things work to achieve cool effects or performance gains or whatever. Things you don't imagine or explore when React is just going to do whatever it does on your behalf.
- arthurcolle 6y agoDon't tell that to all the React developers, you might get banned from working in web!
- devmunchies 6y agoMy view of frameworks and tooling has translated into other facets of my life. I wouldn’t by a chainsaw until I felt the pain point from using an axe and branch cutters, or buy a leaf blower until the raking/sweeping got old. There’s a lot of problems a framework can solve but as a software engineer you should know intimately what each of those problems are before relying on more powerful tools. I actually find frameworks limiting in a lot of ways so I prefer mixing in specialized libraries
- Ididntdothis 6y agoI feel that often a framework can give you a jump start into something new Where you don’t know what you need but at some point you may outgrow it and be better off doing your own thing because now you know exactly what you want. Happened to me for example with ORMs or third party WPF components. They were good to start but at some point became limiting. I think you often can’t or shouldn’t skip that step because otherwise the learning curve would be too steep.
- onemoresoop 6y agoCertainly frameworks can do that but most of the time, especially for an important codebase it’s a good idea to rewrite the whole thing. It’s actually a good idea to start away even when you have lots of unknowns but have in mind it would be a good idea to do a rewrite. Smart companies do at least proof of concepts for this type of project and it pays off. A few sturdy well made code bases can become the backbone of a little enterprise.
- anderspitman 6y agoThese days I usually try to implement something from scratch before taking on a dependency. A lot of times I find I never need more than a tiny slice of the functionality a library would offer. And even if I decide I need one after all, I have a much better appreciation and understanding of what it's giving me. Over time I've developed a sense for what sorts of things are likely to be hard to do myself.
- oorza 6y ago
- emmanueloga_ 6y agoI always remember Adrian Holovaty's talk on this subject, worth watching [1]. I'm pretty sure he said he wrote SoundSlice [2] without the help of any framework (although can't find the quote atm). Soundslice is one of the most impressive and polished web applications I know, so pretty inspiring stuff. 1: https://www.youtube.com/watch?v=VvOsegaN9Wk https://www.youtube.com/watch?v=VvOsegaN9Wk 2: https://www.soundslice.com/ https://www.soundslice.com/
- conatus 6y agoWhile this is a great talk, and a great web app, I think there is a bit of over compensation on their part, because of them being in the unique position of having founded and had to manage the ticket burden of a very popular (backend) framework - Django. It's odd because in the talk he advocates patterns over frameworks. Django is an implementation of MVC, as is well known. What is the value of implementing MVC again in Python when someone really has done that job for you? There is a bit of a slight of hand here. If someone had built a frontend framework in Javascript and was now no longer advocating them, that would be a cleaner argument. But we have a shift of abstraction here from front to back end, when the two domains need to deal with different worries.
- emmanueloga_ 6y agoBackend or frontend, I don't think it makes a difference for the points of this talk: build your own codebase, use what you need as you need it, consider following established patterns if you find ones that fit your problem. Django is used as an example of the downsides of a framework, and how the complexity of frameworks explode even though any given user only needs a small percentage of the features.
- adrianh 6y agoAdrian here. Thanks! Yes, Soundslice doesn’t use any JS frameworks, and my thoughts on the matter still stand.
- runawaybottle 6y agoI think for this movement to have integrity you would have to build the apps people think are impossible with vanilla. You’d need to build those apps/apis in a minimal and elegant way to prove it’s possible. It’s beyond conception for many. In other words, the complete opposite of what the frameworks show. They always show a todo list, or a blog. You’ll have to come heavy with way more complex apps with simple implementations. That would be ambitious and could change minds. I’m rooting for you guys. In fact, it might be a great re-take on CSS zen garden if you guys accepted submissions for vanilla implementations and just showcased all the ways it’s possible.
- hinkley 6y agoYou can do a lot with libraries. Removing a framework doesn’t mean removing all third party code, you know. The fallacy of the excluded middle gets us into more trouble than just about anything.
- runawaybottle 6y agoI don’t disagree with you but in this case you want to encourage conciseness and simplicity which fundamentally requires constraints (whatever they may be, but at the very least we’re definitely sure no frameworks :p).
- charlysl 6y agoCheck out the book Single Page Web Applications (2013), and its author's blog https://michaelmikowski.com/ https://michaelmikowski.com/ He has been an advocate of this frameworkless approach for many years, and in his book he shows exactly how it's done (might have aged a bit, pre-ES6, this niche is moving fast, but the gist hasn't changed). The running example in the book is a chat web app with a frameworkless js front end and a node.js backend, using socket.io and mongo. For what it's worth, this is one of the recommended books for MIT's web dev course alongside Javascript The Good Parts, Ninja and Patterns (https://stellar.mit.edu/S/course/6/fa18/6.170/courseMaterial/topics/topic1/resource/text1/text https://stellar.mit.edu/S/course/6/fa18/6.170/courseMaterial...)
- spektom 6y agoI wonder whether the following analogy is correct: Walking - library Riding a horse - framework
- a-nikolaev 6y agoLibrary : driving a car yourself Framework : taking a taxi (you do get where you want, but don't fully understand how).
- deleted 6y ago[deleted]
- javajosh 6y agoGood idea but I wanted to call it "Web Vérité". Is that too pretentious? https://en.wikipedia.org/wiki/Cin%C3%A9ma_v%C3%A9rit%C3%A9 https://en.wikipedia.org/wiki/Cin%C3%A9ma_v%C3%A9rit%C3%A9
- whycombagator 6y agoI don't know, this feels overly vague to me. Sure, some things shouldn't be built with frameworks. However, some things should be. Personally, if the project is large enough/warrants it, give me rails/django/laravel or ember/angular over something frameworkless _most of the time_. Why? because there is documentation and an established community. With the frameworks I mentioned there is also sometimes conventions (i.e rails/ember). Can you build something with frameworks that is horrific, madding, and complex? Yes. Can you achieve that same result without a framework? Yes. IMO the propensity to get things wrong in the context of a framework is less than the propensity to get things wrong without one. I think this manifesto is missing more thought/detail to properly reason about.
- deleted 6y ago[deleted]
- oorza 6y agoIf you follow the Github rabbit hole down a little bit, the founders link to this document as a justification for their stance: http://matteo.vaccari.name/blog/archives/1019 http://matteo.vaccari.name/blog/archives/1019 Basically, it seems everything they believe is "follow extreme programming as rigidly as possible and it will alleviate the downsides to being as short sighted as possible."
- veeralpatel979 6y agoI wrote my first web app with Django. And then Rails. These frameworks taught me how a web app should be structured (models, views, controllers, services, migrations, middleware). Now, if I wanted to, I could build my own application without Django or Rails, as long as I had something to accept incoming HTTP requests, make responses, and a library to make DB calls. But I wouldn't have gotten to this point had I not learned Django and Rails first. I think using a framework turns many "unknown unknowns" into "known unknowns". I can read my framework's documentation and learn it has built in logging, so logging is something I need to think about when building a web app. It lets you filter sensitive data from logs, so that's something I need to think about. This is why I was building a type of application I didn't build before, I would look for a framework I could use, or something like it. I'd use go kit for building a microservice for example. I don't get many of the concepts involved with building a microservice (circuit breakers, service discovery, etc) and hopefully the framework would help me learn them.
- pmontra 6y ago> But I wouldn't have gotten to this point had I not learned Django and Rails first. You would because I did. I started coding CGI scripts in C in 1994 then discovered Perl's CGI.pm Then I handcoded SQL queries and discovered marshalling / unmarshalling / SQL injections etc. Then started using some library to spare me the issues. Repeat for any piece of the stack. Am I going back to frameworkless? No, because I would end up without customers. "No sir, it takes 6 months, not one, because I have to hand code everything or use my own buggy library instead of X which a zillion other developers use."
- divbzero 6y agoI like the spirit of this movement and would love to see concrete descriptions and examples of the best alternatives to frameworks. For instance, would a recommended alternative be a certain set of loosely coupled libraries? Vanilla JS plus DOM API? Software patterns that mirror a framework but avoid using the framework itself? A showcase of successful real life applications would also make frameworkless more compelling.
- rodorgas 6y agoI think this document reverberates a feel that people uses what’s trending without considering its tradeoffs. This article is more on point about this subject: https://www.gregnavis.com/articles/the-architecture-no-one-needs.html https://www.gregnavis.com/articles/the-architecture-no-one-n...
- deleted 6y ago[deleted]
- julianeon 6y agoI feel like this would leave me with my bare hands fighting against the mighty dragons of DOM and state. Now I have to roll my own two way data binding and redux clone? Maybe try optimizing with my own virtual DOM? I’d probably sink into the mire within minutes from the cognitive overload alone. I mean, yes maybe my framework is actually a badly designed weapon that is too complicated and overburdens me. But it solves my dragon problem. With my bare hands I am no longer overburdened, but now I’ve traded that advantage for much worse problems. Which is why I figure, on balance, I do need frameworks.
- karatestomp 6y agoRedux is a really small library. I think using it would easily be in the spirit of frameworkless. It also pulls in only two dependencies itself, total—one, which depends on another, which has no deps.
- reillyse 6y agoIf you are employed by a company to write code, all of the code you are writing should be business logic that helps the company achieve their business goals. Everything else is masturbation.
- unclebucknasty 6y agoFrameworks (as the most popular currently exist) have always felt like the wrong conceptual approach for building complex webapps. That is, if you're going to go through the trouble of shadowing the DOM, creating "components", etc., then why expose the DOM at all and why make those components HTML-bound? Why surface CSS by default? A framework could completely abstract away the messy Web semantics that make webdev so painful. Use a GUI for laying out the UI and let it generate the HTML. Use an event-driven component model for "true components" that don't carry the weighty mishmash of CSS, templates, and code. Rather than go back to vanilla, it'd be interesting to explore going forward beyond Web semantics and protocols. That feels more like evolution.
- unexaminedlife 6y agoWithout even trying to lookup the authors and their backgrounds (if I was into betting) I would bet a sizable wager that the core group responsible for this come from extremely large companies (or my second guess would be a consultancy who caters to large companies). In my entire career I have never seen more confusion and misunderstanding about how to use frameworks than I have when working for companies listed on major stock indexes with multi-billion USD market caps.
- unexaminedlife 6y agoYep, it was consultancy working with large companies. :)
- wccrawford 6y agoConsultancies are especially unrealistic because many of them tend to take on new projects without having to maintain very many of them. That's definitely going to skew your view of standardized tooling. If instead this company was focused on long term support or fixing other companies' mistakes, I think the view would be different.
- ric2b 6y agoIt will depend a lot on the type of consultancy. If they mostly get called to fix legacy projects they probably only see the issues and limitations imposed by frameworks. If they mostly get called to jumpstart a new project they'll probably love frameworks that let them deliver quickly and reliably, since they don't have to worry about long term scope changes and maintenance.
- eeh 6y ago> In my entire career I have never seen more confusion and misunderstanding about how to use frameworks than I have when working for companies listed on major stock indexes with multi-billion USD market caps. Is it actual confusion, or just difficulty in interoperating with the libraries/frameworks that large companies often already have?
- zabil 6y agoIMHO, frameworks also distill experience, documentation, community and spirit. It allowed me to switch languages and eco-systems easily, collaborate and talk to like minded people. I'd generally be uncomfortable working with teams who try to build everything from scratch. Ofcourse, it's our responsibility to manage technical debt, but it's easier to do that with frameworks.
- brabel 6y agoThe alternative is not to write everything from scratch. The alternative is to use focused libraries for common problems.
- sergiotapia 6y agoI've been bit by a "dead framework" before. We used kohana the php framework and soon it was dying. We were totally fucked haha. I guess I've been lucky since then, I haven't had the misfortune of picking a bad framework. We use Phoenix with Elixir now, and I don't see Elixir dying anytime soon. With Nim, there's Jester, but I can definitely see that framework dying once Nim gets it's "one true batteries included web framework". My point is, it's a gamble. Pray you don't fuck up. I like this manifesto, and you should definitely try to build something without a framework. Database migrations, querying data, data processing, background jobs, it's pretty fun to write something right there up on the edge, your way.
- rishav_sharan 6y agoPersonally, I would never use a framework anymore for the frontend. I did some simple projects in vanillajs and the sheer simplicity of it and being able to understand the whole code beats any framework anyday. Like most, I started with React/Vue etc and realized that I was trying to learn a whole language and ecosystem on top of JS and that was why i always found frontends to be so complex. There's simply no comparison. I wrote an article on my learnings on using vanilla js to create spa. If anyone wants to read it, its here https://dev.to/rishavs/making-a-single-page-app-in-ye-good-olde-js-es6-3eng https://dev.to/rishavs/making-a-single-page-app-in-ye-good-o...
- onion2k 6y agoI wrote an article on my learnings on using vanilla js to create spa. If anyone wants to read it, its here https://dev.to/rishavs/making-a-single-page-app-in-ye-good-o.. https://dev.to/rishavs/making-a-single-page-app-in-ye-good-o.... This is a good example of why a vanilla JS app is much simpler than a framework driven app. Because you've only done the absolute minimum, and it wouldn't work for even a moderately complex real world project. There's no security considerations. There's no state management. There are no tests. There's no performance improvements like memoization or a VDOM. Even simple things like managing constants isn't done well (eg you've hardcoded the API address in to the getPost function). There's no error handling, so if an API call to fetch a post fails nothing will happen except you'll get a JS error in the console to say 'post.id' not found when PostShow tries to expand out the template string. Making a simple app in vanilla JS by ignoring everything that makes a fast, robust app hard to build is easy. That's not what most developers are trying to do when they use a framework though. People reach for frameworks so they can implement the hard things without having to build them from the ground up. No doubt you could implement all of those things, but by the end of it you'd probably have implemented something very similar to React. It's not unreasonable for people who want those things in their apps to just use React in the first place.
- brabel 6y ago> There's no performance improvements like memoization or a VDOM. VDOM is only a performance improvement if you already bought into a specific version of the reactive architecture (namely, the declarative one, pioneered by Elm and popularized by React). Otherwise VDOM is an overhead both in performance and in complexity. Svelte has shown it's possible to do away with that overhead and still keep a nice, declarative API (which is much faster than any VDOM-based solution as it doesn't pay the cost of having a mirror of the DOM in memory + having to run a diff algorithm on every change). Older frameworks also were able to get by with no VDOM by manually binding different parts of the DOM, which can be done well, but admittedly may result in difficult-to-read code.
- koonsolo 6y agoFrameworkless Movement == End Up With Your Own Framework Movement
- ddevine 6y agoYears of picking through the pieces of other developers loosely documented homespun apps made me appreciate the value in a framework - even a dead or dying one. As a rule of thumb, if I'm developing a pet personal project, then I'll write it myself, if its work then I'll consider a framework, depending on the scope of a given project. In the real world of commercial web applications your project will very likely be touched by many other developers over time. Many of these developers may have a relatively fleeting engagement - i.e addressing one bug or adding one feature.I prefer not to force these developers to read the entirety of my code to do their job.
- 6510 6y agoExcuse my silly mood please. I wonder how many (besides myself) would not even apply for these jobs working with outdated framework? I imagine most would want something relevant to their career? Frameworks might help with the bus factor but eventually they become the bus? (hit by the back of the bus? how visualize this?) I think you are selling yourself short, I would really love to read your code. If the alternative is familiarizing myself with the horrors of [say] Angrular (no really, say it out loud) the choice is easy. Maybe the job ad should demand the applicant to be familiar with CrapPOS. Then I would be like, hummmm interesting company? maybe? In stead of my usual aaaahhhhh no no not [say] Angrular (really say it out loud, say it really slowly twice)
- heavenlyblue 6y ago> I wonder how many (besides myself) would not even apply for these jobs working with outdated framework? I would think twice before applying to work with an outdated framework; I would think three times before applying if it said “you are going to be developing for our home-grown web framework” :) Only if you are a major player which defines the de-facto in the industry.
- conatus 6y ago"The value of a software is not the code itself but in the reasons behind the existence of that code" I wholly agree with this. However, I'm sort of baffled by this approach. What frameworks allow is you not to have to continiously solve the same problem and waste weeks implementing something that others have solved. For example, I worked with a team that spent weeks on "given a certain event happens in the software, dispatch a notification to the user". In the world of Rails, Django, Laravel and Phoenix this is a configuration task, with existing libraries. In Javascript it was a slog getting the implementation that still lacked much of the functionality of these mature frameworks (there are notification frameworks for Javascript but it was decided not to use them - "no frameworks"!). While it is fun to implement your own thing, here the reasons behind the existence of the code are essentially developer vanity in thinking their notification situation is an absolutely special case, and developer desire to do something stimulating like develop a notification system rather than serve product, organisational or user needs. To have a clear discussion of this, however, it might be useful to define "framework". Is the target here frontend or backend frameworks? One thing I have observed is in the frontend world frameworks have caused some core skills to atrophy. For example, how many Javascript front end engineers can now confidently, given you click on something, change the colour of it. Probably here a framework is wildly overkill and you will get there with plain Javascript until such a point as complex user interaction is needed. Realise rhetorically there is less punch to "use a framework mindfully" but this should be basic to any engineering decision "use a language mindfully" and in the last instance "do we need to solve this with software"? Doesn't sound like a movement per sae but corre software engineering skills - use the right tool situationally.
- brabel 6y agoYou seem to be equating frameworkless with library-less. > a team that spent weeks on "given a certain event happens in the software, dispatch a notification to the user". This is trivial without a framework as long as there is a library you can use to "notify the user" (e.g. an email or chat library). It's actually easier without a framework because "event" is just a line of code somewhere in your own application, while in a framework, it can mean a million things and maybe NOT what you actually wanted.
- blackrock 6y agoThe problem I have with Django, is that it tries to micromanage the database table for me with its own flavor of ORM. To get around it, and not use ORM, and build out the tables yourself, is difficult. The documentation examples appear to be lacking. I don’t have a problem with writing my own SQL queries, or writing my own table creation query code, but I tend to have problems trying to get Django to work with my custom tables. Mostly because the documentation doesn’t seem to be geared around doing that. And then, some people say, that if you’re not using the Django ORM, then there is little point in using Django anyways, and you should use something more lightweight like a Flask. Maybe someone else with more Django experience can chime in here.
- GlennS 6y agoI don't have loads of Django experience, but I have done some Django and some raw SQL + Flask and had good experiences with both. I think I agree with you. A lot of the benefits that you get from Django and its plugin ecosystem come from having the models available as a common representation of the database that you can be transformed and inspected by various other tools. If you don't want to use Django models, then I think Django is the wrong option. Flask is a pretty great option. FastAPI adds some stuff that I really like and does it well, but is still only a year or two old, so might be too risky for some projects.
- nogridbag 6y agoThe Clojure community may be a good example of the frameworkless movement.
- ivolimmen 6y agoCoincidentally I am also someone that not always uses frameworks. I understand why people steer away from them. I am a consultant and I come in a lot of places. I often see small applications become a huge pile of crap simply because someone in the team thought they should do dependency injection and we will use Spring for that. Somehow a lot of people actually think you can not do dependency injection without a framework. Of course bloat is a huge downside to frameworks and security. The framework and its dependencies are a security risk if you don't keep them updated.
- danjac 6y agoI dislike these absolutist statements and manifestos. The real world is kind of complicated. What problems are you trying to solve? Will a framework help you solve those problems? Is the solution better served by gluing libraries together? How much control then are you ceding to libraries? For example if you drop Django and use SQLAlchemy to manage your SQL queries, you've just exchanged one high-level abstraction ORM for another, with all the caveats that involves, only now you have more glue and wiring code to write. And frameworks are a spectrum - in Python you have Django at one end and FastAPI or Flask or Falcon at another. Yes, people should learn the basics - plain Python or Ruby or vanilla JS or SQL - before moving onto frameworks. But having done that, sometimes you just need to get shit done without reinventing wheels, and sometimes you need to know when the precision instrument beats the pile driver. Frameworks are just one tool in the toolbox. Refusing to use that tool when it's warranted is just as bad as always using that tool because you don't know how to use the others.
- jbullock35 6y ago> I dislike these absolutist statements and manifestos. From the manifesto: "We don't hate frameworks, nor we will ever create campaigns against frameworks, but we perceive the misuse of frameworks as a lack of knowledge regarding technical debt and we acknowledge the availability of alternatives to frameworks...The purpose of this Manifesto is to have valuable conversations about the movement. We firmly believe that to be useful this manifesto should be modified during the time as a result of the conversations that our community will have." What is absolutist here? To me, this seems like the most even-handed, least absolutist manifesto that I've ever seen.
- danjac 6y agoThen why even call it a "Manifesto"? Why the need for a "movement"? These imply a struggle against something that needs to be overthrown or toppled. If you want to start a sensible discussion about "using the right tool for the job" you don't need to write a "manifesto" - a simple blog article will suffice. Manifestos - even the ones written with the best intentions - lead too often to just another kind of dogmatism (looking at you, Agile).
- 6y ago
- charlysl 6y agoAwesome Frameworkless https://github.com/frameworkless-movement/awesome-frameworkless https://github.com/frameworkless-movement/awesome-frameworkl...
- TheStrazz 6y agoHere https://www.apress.com/us/blog/all-blog-posts/the-frameworkless-movement/17843830 https://www.apress.com/us/blog/all-blog-posts/the-frameworkl... you may find more info about why the movement is born!
- james_s_tayler 6y agoMeh. Reeks of Not Invented Here and reinventing the wheel. It almost reads like "we get why people use wheels. We're not saying wheels are bad." I like your random bespoke shit less than frameworks that tend to solve the same problems but in a more standard way with slightly more robust design. If you don't want to use it then fine. Totally depends on your needs. To create a movement shunning frameworks entirely just seems to be a totally fashion driven idea.
- pragmatic 6y agoOh boy. I'm not sure there's a worse feeling than popping open a new (to me) project and finding a homegrown framework. I did this one time as the lead/ architect on a large project. I had valid reasons (at the time) but it was a pain to onboard people. I had to answer everyone's questions / etc even though most of it was vanilla for that platform. Like all engineering decisions, there are tradeoffs.
- jand 6y agoUsing a framework just means "this shall not be my main concern" to me. For example, angular enables me to switch my brain off while working on the frontend. I don't love it, i don't need it, but i use it. Meanwhile i can think about the stuff i actually want to provide via web. I once worked for a company which had a high developer churn rate - for them it was the most logical decision to run with a wide spread framework (ruby). Why does it often feel like too many ideologies and tools try to convince you that requirement analysis is optional in their world - one size fits all. Please choose what is right for you.
- pacoverdi 6y agoMeh, yet another religion-like movement. Like TDD people that think you are not a true programmer if you ever write a small piece of code without writing a test first. How about a movement to help decide whether using a framework is or not is the best option according to the context?
- sebringj 6y agoI know how to do most all of it but...there's a lot to do and keep up with that other people are always actively doing/researching in a huge community in a monumental way and have docs for it lying around that are quite comprehensive that allows a team to start working on well-tested code and methodologies together swimming in the same direction without huge debates or wacko decision making from a lone-wolf developer. To have some random first-guy on a team decide his/her own framework from scratch is the usual death knell or redo of the project and creates a bad environment of "my code is truth" type thing without docs or with some terrible ReadMe that's out of date. A mark of a project that is easier to work on (productive) has tons of StackOverflow related search results on the tech / stack / framework it's being used on and typically will have one of the giant tech companies actively investing in it.
- simonw 6y agoIt's not clear on this page which definition of "framework" they are talking about. Is this about CSS frameworks like Tailwind, Bootstrap etc? Is it about web frameworks like Django and Rails? Is it about React, Vue, Angular? All of the above?
- meesterdude 6y agoSounds like not-invented-here syndrome. Not all frameworks are the same, but frameworks (like Rails) are what allow me to walk into any company or project using them and be effective within hours or days. Without frameworks, you end up with spaghetti that takes months to understand. While great for job security, its terrible for maintainability, on-boarding, security, performance and longevity, and represents a looming liability for the companies that rely on the code. To me, that's a foolish trade off all for warm fuzzies to validate how smart you are. VIVA LA FRAMEWORKS
- travisgriggs 6y agoOne of the things appealing about the readme.md they have in the manifesto is a list of "doing it without frameworks" articles/talks. This is very appealing to me. I've done a lot of different kinda of programming over the years (embedded C, FORTRAN engineering simulations, years of modeling and ux/tool with Smalltalk, Linux processing and tooling with python, mobile apps in objc, kotlin, and swift, and lately flutter), but I've largely remained aloof of the web. I can skim JavaScript, I get sockets and http (done quite a few protocols over time). Despite all of that, I found web programming very daunting/overwhelming. Every time I dabble, the upside learning curve/awareness just overwhelms me. Maybe because I'm a "dive deep figure out how it works" guy. But this is appealing to me.
- QuarterDuplex 6y agoThis seems like a really stupid idea to me. Who is to say that gcc isn't a framework? How about the Linux kernel? How about x86 or an Intel CPU? Even a 555 timer chip is a framework
- ric2b 6y agoYou call a library. A framework calls you.
- ravenstine 6y agoEnough with these cults of tech. Just use the tools that best fit your goals. Go your own way. The end.
- vbezhenar 6y agoThat implies that you have to become an expert in all the tools to be able to meaningfully compare them. That's not possible. There are thousands of ways to write a web server. How do you choose a best one?
- ravenstine 6y agoNo, that only follows if you believe there's such a thing as "the best one'. You don't have to be an expert, let alone a layman in every tool and technique in order to find a way that's suitable.
- camgunz 6y agoYeah agree. Like any engineering decision there are pros and cons. Evaluate them and get on with it.
- at_a_remove 6y agoI sympathize with the reflex, really. I never used frameworks because they seemed like a lot of overhead for some small problems, and then you had to keep migrating, updating, etc.; that is, instead of solving a problem I had to keep solving it, over and over. Dismissing the maintenance of your solution, whatever it is, is unwise. And certainly the churn of the framework faddishness was not appealing to me. Why learn something and then simply discard all of it for the next cool new thing? Still, I got roped into a toy project. Got set to use Flask, because it seemed simple. Bought the book, got my environment set up, felt nervous but a little excited ... only to find that my partner decided that we were suddenly switching to Django. When I mentioned that I had invested the time in this (and my own money for the book) to start, I got a little "Agile up" speech, which is apparently the equivalent of "git gud." So I can see how someone might want to reject frameworks entirely: quite a lot of their in the field use seems to be churn. However, I still think a stable, mature framework would be valuable so long as upgrades are painless and infrequent, as part of a shared lingo for describing a possible solution to a problem. As a "hustle," no, that sort of thing is a huge turnoff to me, but I do not want to discard the concept entirely.
- wccrawford 6y agoMy response to your partner is "agile doesn't mean changing things without the team being on-board".
- heavenlyblue 6y agoNobody is forcing you to update your Django by the way. My business is still on a pretty old version and none of the dependencies are in any way insecure. There’s certainly also the probability of new holes in the newest libraries so keeping to the old ones is okay.
- Izkata 6y agoWe're also on an old version, but one problem we're now facing is that the documentation for the version we're on is no longer online. I had to go to an archive site to look something up recently, as the particular feature I was looking at had changed between the version we're on and the oldest still-published documentation.
- fmajid 6y agoIt’s amazing they managed to avoid mentioning JavaScript even once.
- Mikhail_Edoshin 6y agoThe problem is not in frameworks, the problem is that frameworks are presented as non-serviceable opaque pieces of magic you're supposed to spell your way through.