re: A JavaScript-Free Frontend VIEW POST

VIEW FULL DISCUSSION
 

Honestly this comes as very opinionated, at least in the comments. You seem to equate the "JavaScript experience" as folders with GBs of files, when you can just pick this or that thing. You don't need to use create-react-app. You don't even need to use NPM if it really bothers you. You could serve pages from a server, bundle in React and let it handle all the DOM manipulation and that's it. React is pretty good at it. Write the rest in pure ES6, don't add in libraries since you probably won't need them for most stuff. What's the obsession with including everything but the kitchen sink?

You complain about how big Asana is, but is your software doing exactly what Asana is doing? Can you cover all its business needs just with HTML and CSS? Call this or that guy fool, but that guy might actually need the data to steer the company and deliver sensible informations. You might need to fit in a larger project where you can't call the shoots. You might need to deliver what is effectively a progressive web app that does stuff and not simply display a dumb form. Your users might hate how spartan your app is and just prefer the bells and whistles. You might want to avoid spinning a refresh to the page to make a call just to show a error because the server is busy - and puff the user's work is gone. You might want to add in real time capabilities. Handle complex states. Undo and redo. Integrate a chat system.

I can go on and on and on. It's great that HTML and CSS are super useful (they are). It's also great that I can pick my tools, avoid the framework nightmare (if I want) or adopt it if I need a coherent system to bootstrap a complex application (if I want, of course). Being scared of complexity is just as bad as putting in too much complexity because "you might need it later"; what all projects need is a clear scope and business requirements, not jihads. You might find that "you don't need this" may just break a company's workflow for no good reason.

 

I personally have no obsession with including everything but the kitchen sink, but if you spend any time with real SPA codebases out in production at real companies you will find that is the case.

Of course certain use cases cannot be achieved without JavaScript (see the part where I said I had to use it to implement drag-and-drop). Of course Asana could not be built without JavaScript. But 27MB to load a task manager is asinine. My conclusion is not "you can do everything without JavaScript" but rather "make sure your reasons for using JavaScript are legitimate." My app is well featured, fast to load, fast to execute, yet not overengineered by a team of 50. Coincidence?

This absolutely is an opinionated post because I'm extremely tired of slow to load, slow to execute, and often buggy software! Apollo 11 made it to the moon with 1MHz and 4KB of RAM. There is absolutely no fucking excuse for typing plain text in an input to lag on my computer with each character.

If you're not scared of complexity the fantasy will end soon enough.

 

The main point is, there's a lot that is not either right or wrong in Information Technology. You can be considerate of users and also have a great experience - the two things just aren't mutually exclusive. You seem to be assuming a lot about what goes on in any team that is working on a frontend product.

I'm currently working on a project that matured from recognizing the limits of server-side applications for example. My users are tired of having to refresh to fetch data, tired of not knowing what is really going on or just end up waiting without a reason, and most definitely want drag&drop, instant previews, offline capabilities and WYSIWYG. I can't walk up to them and say "well guys, nope, we're moving to something that is even less reactive than Wordpress" and not get immediately thrown rocks at.

Whatever rows your boat, I'm happy for you. I guess you live in a place where you can do whatever you want without any repercussion. I live in a place where I most definitely can't deliver a 2006 experience just because I feel entitled to burn my company time and money on my ideological wars about what they need or not need and call them lazy.

Perhaps we have different visions: you want me out of business, I'll read what you do and take note to improve my design. You're so sure the web is not for apps, I love that the web is the great equalizer where no one can tell you what you can or can't run. I'm not afraid of complexity, I'm afraid of what happens when people decide their own bias about tools are more important than a job well done. I shouldn't even call that complexity honestly, because there's no black magic behind React or anything. And if you find my 200 kilobytes to be too much, please, just download the fuckin' app and bye bye.

 

Exactly. Technologies are perfect, people who use them are not.

code of conduct - report abuse