4 ms·
It's crazy to me what amounts to most UI's -- basically forms and buttons, lists of things, images, pages have become so complex. It's like I've died and woken
by iamleppert 9y ago
It's crazy to me what amounts to most UI's -- basically forms and buttons, lists of things, images, pages have become so complex.
It's like I've died and woken up in a strange, bizarre world where the laws of physics are different, but I still inhabit the same world.
Does anyone else feel this way? Is this just how technology works?
- whatever_dude 9y agoThis is typical of the maturation of any technology platform. What is actually happening is a change from a long-term growing complexity to short-term stable complexity. Historically, building something simple in an HTML page has always been simple. A field here, a button there, you're done. But with increased requirements, that sort of work became exponentially more difficult to maintain. If you have 10 fields each with the same basic functionality, you'd end up repeating the same thing 10 times. If you wanted some complex state management, you're building it all from the ground up. Your code may be "simple" in the sense that you don't need a build tool, preprocessors, or any dependencies to maintain it, but it becomes increasingly difficult to maintain. React, babel, webpack et al can make things much more complicated _to start_, especially for someone not acquainted with it. But the trade off is that things keep more or less the same level of complexity. Adding a feature is easier, duplicating an element or a screen is easier.
- iamleppert 9y agoI disagree with this sentiment and it's tautologically false. Have you ever worked in a mature babel code base? I have worked in many and frequently get contracts to clean them up. I have yet to see a clean one. Can you even point to a clean open source one? The complexity doesn't reach some steady state, it just keeps growing. The argument that something simple needs to be complex because of unknown future needs is a prime example of design based on emotion, not engineering.
- nardi 9y agoI think you’re understating the complexity of modern web applications. There are lots of web apps out there that cannot be aptly described as “pages,” or even as simply “UI”.
- ardit33 9y agoMobile apps have complex UI, yet you don't see them switching ui frameworks every 6 months. JavaScript is in a bizarro land by itself. I think the main reason is that is a starter language for many folks (the initial learning curve is gentler), and once they get good enough, they decide to re-invent the wheel again and again, just a bit rounder and rounder. Also, since probably a lot of younger folks get into JS, they are more guilable/eager to just try new things, no matter how broken are they. Sometimes this actually creates real progress, often it just increases complexity with no real advantages apart being "fancy and different" This will probably would have been the case in mobile as well, but the realities there are different: 1. You are stuck with what apple and google provides to you, and at max you can build some util frameworks to make things a bit easier. Most replacements attempts have failed. 2. There is a higher/steeper barrier of entry to ship good mobile apps, and smarter/more experienced folks steer away into following the latest fad.
- kalcode 9y agoAny type of UX interaction was always messy and not very scalable using older javascript. Sure it was do-able and libraries like jquery, which have been shown to be slow, made it convient and easy to write it. But ultimately it was messy looking code. Sure using the basic built-in UX like a button that post a form or a site that just had images on it was simple. Once you added interactivity and the web became a lot more than just dry course dumped information people wanted a way to navigate that. Even the most simple website can be improved with a hamburger menu to have an always available nav menu instead of the classic scroll to the top or have a fat footer at the bottom. So a convoluted CSS solution is available by using a <input> type 'checkbox' and seeing if its check in the place of the hamburger. But really that's shoving your view logic and your ui logic together. That covers the state of javascript before these libraries. What hacks, work arounds, or messy spaghetti code can we create to make it work. Since it worked for us 10 years ago then making maintainable, readable and sensible code should be considered bizarre and strange? I see this push back a lot. I think it is cause originally learning HTML, CSS and Javascript was easy compared to what it is now. You learned mostly HTML and CSS and you learned the basic idea of functions and making API calls to the browser like document.getElementById or console.log. But deep down I've met a lot of these 'older' and 'experienced' javascript developers that wonder why we are moving in such a 'necessary' direction. I find most of them don't really understand programming itself. What the javascript language is doing. What the concepts are. The fact that a lot of calls are to the browser api that are exposed via javascript and not natively part of the 'language' itself. Sure Node has some similar those functions because it's built-in to their library to mimic the similar environment. Point is, if you enter any other language like Java, Python, C++, C#, Ruby ect, these way we use to code in Javascript were essentially anti-patterns and extremely round-about ways to solve problems instead of using proven design patterns that have been established throughout other languages. So in conclusion I think the push back is that right now Javascript has become more difficult to learn or adapt at first with the notion that 'its easy'. But the truth is that it has caught up to more mature languages but the browsers have still been lagging behind requiring extra work to learn how to adapt tool chains to build these so they are compatible. I have no issue with people writing a simple website in React, Vue or whatever SPA or UX framework they want. I think it's crazy if they just serve the straight javascript files as creating static files of their site is rather easy and makes the initial load times to paint quicker and javascript-free friendly. Therefore you get both worlds. Nice maintainable and readable code that is very easy to modify months later with the same benefits of your typical static pages. Long rant but hopefully you can better see why things moved in this direction even for simple websites.
- mlsarecmg 9y agoNot so much. Components make this simpler than ever. import { Button, Dropdown, Slider } from 'antd' //bootstrap, materialdesign,... const Header = () => ( <div> <Button primary>Home</Button> <Dropdown ... /> <Slider ... /> </div> ) render(<Header />, document.querySelector('#app'))