8 ms·
I miss hand-writing webpages in Notepad and then FTP'ing them to the public_html directory on the server to make them live. The amount of infrastructure, librar
by dangrossman 4y ago
I miss hand-writing webpages in Notepad and then FTP'ing them to the public_html directory on the server to make them live. The amount of infrastructure, libraries, build tools, pseudo-languages, etc layered on top of each other some developers/orgs use to make a simple form today is crazy to me. It also feels super fragile: deploy a website today, come back to it in 5 years to make some changes, and half the tools and libraries you need will be gone.
- happytiger 4y agoThis is so relevant. The current “bundle of bundles” approach has very low longevity potential. I swear this whole design pattern in the article looks just like cold fusion did in 2000.
- wsc981 4y agoFor Lua, just to be safe, I fork all my dependencies and when I work on a project I add those forked dependencies as git submodules. Just to feel a bit more secure any dependencies never disappear. Not sure if this is good practice.
- doodlesdev 4y agoWith node some people commit the heresy of comitting the whole node_modules folder.
- danielheath 4y agoI would do that, but node puts compiled bits in there, so nothing works if you switch machines. It's not like linux distros figured out this stuff was an issue decades ago...
- projektfu 4y agoI think that's called vendoring and it's part of the 12 factor app.
- pabs3 4y agoIts good to have dependencies archived for continued access to them, but there are efficiency issues with doing that. Using git submodules (or vendoring or similar) means that you and everyone who uses the project is stuck on the exact commit you have chosen for each submodule until they go and modify the git tree to use a different commit for each submodule. This makes it higher friction to update a submodule. You can't just go `git pull` or `apt upgrade` to update the submodule, you actually have to go modify every project that uses the submodule, update and redeploy each one, instead of just updating and redploying the submodule itself.
- dhzhzjsbevs 4y agoThat sounds amazingly slow, in a good way.
- wsc981 4y agoWell, I only use git submodules in private projects. From what I read most devs hate it :) In the past I did came into contact with git submodules through freelancing for another company, and I agree it was quite a hassle it times using it in a team setting.
- pabs3 4y agoEven in private projects, its an additional hurdle that can block things like security updates for example.
- yawaramin 4y agoWhat about transitive dependencies?
- likortera 4y agoIt's forking all the way down. I run my code on a fork of Linux, just in case.
- wsc981 4y agoI've found most Lua libraries don't have any other dependencies. Perhaps this is the reason I've found this approach work well with Lua. I've never tried it with other languages that I use, like Swift, Objective-C, C#. I did work in a company in the past that used Nexus [0] for their dependencies across various platforms. Perhaps Nexus has some tooling build in to deal with transitive dependencies, not sure. --- [0]: https://www.sonatype.com/products/nexus-repository https://www.sonatype.com/products/nexus-repository
- zelphirkalt 4y agoGood luck with that approach in the JS world, where a package can have, without exaggeration, a thousand and more dependencies. Hopefully in the Lua world things are saner.
- wsc981 4y agoI’ve found most Lua game related libraries don’t have any dependencies, so it’s indeed a saner world :)
- mathgladiator 4y agoI experienced this with multiple npm packages where I can no idea how to fix it. My most recent was with https://docusaurus.io/ https://docusaurus.io/, and I did not have fun. This is how I'm getting myself back to basics: https://www.adama-platform.com/2022/06/26/making-html-the-best-it-can-be.html https://www.adama-platform.com/2022/06/26/making-html-the-be... Here, I believe in taking HTML and then finding the absolute minimal extensions. My most work is to embed a mustache like primitives into HTML. For example <div rx:iterate="posts"><div><lookup path="title"> - <lookup path="body"></div><div> will iterate over an array and render the title and body appropriately. I then take it a step further by making the binding reactive such that updates flow in real-time. I am having a great deal of fun with this approach as I continue to explore this approach.
- yawaramin 4y agoYou should check out the OP. This is exactly what htmx does.
- zelphirkalt 4y agoThe name alone already makes me feel dread. htmx - as if HTML needed an x for extended ... also has a feeling of docx and its ilk. Why do people feel the need to change HTML instead of changing the logic, that outputs HTML? HTML is just the damn view layer! This smells of mixing logic into the view layer again.
- yawaramin 4y agohtmx is very, very close conceptually to a standard HTML <form> tag. (By the way, the fact that there is a <form> tag immediately tells us that HTML is not just 'the damn view layer'.). htmx just goes slightly beyond it to give <form>-like capabilities to every element, and doesn't need a full page reload. It doesn't even necessarily change or extend HTML–you can just use a `data-` prefix on the attributes that it adds–which makes it completely standards-compliant HTML. It's a very natural fit.
- abraxas 4y agoIn 5 years? I think you misspelled weeks here. Last six months with my last employer I spent immersed in the full Next, React, Prisma ecosystem. I swear that 80% of developers' time was wasted on fighting compatibility issues. Actual work happened in the small crevices of time left between endless stream of build breakages or chasing random bugs caused by changes in transitive dependencies. My God, never again.
- ravenstine 4y agoNext is the worst name for a JavaScript framework. It might as well be called "yet another JS framework." It's things like this that make me ponder self deletion. So much pointless work we create for ourselves.
- fijiaarone 4y agoIt’s layers on top of layers on top of layers, etc. I’m looking for a framework that compiles to web assembly to generate next.js to spit out react components that generate JavaScript that prints html.
- josephg 4y ago
- tambourine_man 4y agoWhat’s stopping you from using these tools today? I still use vim for editing and rsync for deployment whenever I can. Unless you mean for clients.
- deleted 4y ago[deleted]
- moralestapia 4y agoI kind of still do this, just Sublime/SFTP instead of Notepad/FTP. Still haven't seen anything from "the new JS" that makes me want to switch.
- teen 4y agoas someone who's been making websites for 20 years now, i think it's actually easier than ever. and pretty simple. the tools are insanely good.
- crabmusket 4y agoI built a website for my girlfriend's business using almost exactly this approach. Handwritten HTML, deploy to CloudFlare pages on git push, Stripe payment pages for ecommerce. It's great, more people should try it.
- lee101 4y agoTheres a few nice lightweight CSS/JS frameworks like mdl.io and bootstrap that are still relevant, react apps get lost in a mess of callback caches and useEffect, unclear side effects seem to happen on rendering in most large react apps. I developed some games like https://github.com/lee101/wordsmashing https://github.com/lee101/wordsmashing in a fairly simplistic jquery style i developed where i purposefully avoid using features of JS like "this", it trips most developers up when you pass functions around and the reference to "this" gets lost. Agree with lots of the comments here about complexity of both JS (new es module compatibility issues etc) and JS frameworks that are limiting what people can actually build these days from cognitive overload and bugs. a tonne of technologies (like polymer.io/web components) died in a sea of complexity and much technology we use is going to go the same way unfortunately. Another gripe i think unpopular but true is that we as coders prefer complex things like static site generators like Jekyll/ghost etc, normal people can use a CMS and get stuff done without having to resolve packaging conflicts and SSL issues, we have to resist the urge to pretend coding/setting up complex software is easy because its not... also Kubernetes...