Sitting at the crossroads of computing paradigms – the tao of mac gas tax oregon

########

The situation has improved somewhat in iOS with better rich text support in native controls, but cut and paste still works mostly the same, and it remains fundamentally broken in Android–in some versions, the standard behavior placed an action bar at the top of the screen, forcing you to reach for something too far away from the selection, and it still doesn’t have the same caret positioning UX that iOS has, so pasting text exactly where you want it is a frustrating exercise, to say the least.

This is quite similar to what happened with web interfaces at the beginning. grade 9 electricity questions That was more jarring because, after all, web interfaces landed on desktops, and on desktops you were soon acutely aware that the web browser was an unfriendly place to edit things: you could only paste un-styled text into standard controls, and even with contentEditable, things were enough of a mess.

The downside, for me at least, is that thanks to a warped variant on back-propagation the desktop app experience is deteriorating before our very eyes. gas up yr hearse The collected body of human-computer interaction expertise (that’s what we “old” people called UX before it became a hipster minefield) numbers in the thousands of man-years, but it troubles me somewhat that we’re letting it all fall into the hands of the Electron hordes and their massively inefficient, one-size-fits-all excuse for cross-platform development.

I get it that doing native development these days is complex, and that the learning curve might be daunting. electricity laws physics I myself am writing a small Cocoa-based app for my own use, and really wish there was a widely accepted universal GUI toolkit, since if I ever want to port it to Windows (which is unlikely, but possible) I am going to have to rewrite a lot of it.

In much the same way, I fully get that the vast majority of people doing user interface work these days are largely focused on web technologies, but (and this is the crux of the matter for me) there is no excuse for mediocrity on any platform, and the explosive combination of the JavaScript language with Chromium technology is likely to be the death sentence for well-designed, responsive and, above all, usable desktop applications.

Yes, you can do excellent things with Electron. static electricity vocabulary words VS Code is a cardinal example of that I use daily on multiple platforms (although with increasing frustration as extensions start eroding responsiveness and speed). gas after eating fruit But VS Code has a very thin “native” interaction model (as a development tool, it falls outside “regular” interaction patterns), and is written (and its UX designed) by programmers for programmers.

Whereas most people doing Electron apps for non-technical users typically lack the skills to do so responsibly, and just churn out half-baked, RAM-intensive garbage that I typically uninstall on sight 1 because the developer trade-offs (single codebase, common code, etc.) do not compensate for my grievances when attempting to use those applications.

And yes, I am very critical of JavaScript as a core language for complex applications, and am constantly coming across reasons to dislike its ecosystem and ethos–only the other day I was reviewing a widely-used package to figure out how it handled a certain piece of user input, and the only validation that string input had was liberal use of indexOf to check for separators instead of, you know, actually validating the data.

Going beyond the technical and the cosmetic, the non-native control ratatouille Electron foists upon users is also the death of accessibility and assistive technologies, not because of technology constraints, but largely due to human incompetence, developer ignorance and a general lack of effort that echoes the overall approach to QA in the ecosystem itself.

But in that outreach for the masses we’ve lost (and keep losing) the ability to actually do something with most applications except fill out half-baked forms, and I blame the web browser. electricity usage calculator spreadsheet Not the paradigm per se, but the stupefyingly limited ways in which you can interact with data and content on the web today, and which I run up against every day even as I try to build working windows onto data.

Take data visualization, in which I have more than a passing interest: D3 is an excellent example of how JavaScript has pushed the envelope so far that even I would be hard pressed to use anything else for serious visualization work, but you can’t grab the data behind it and shove it onto a spreadsheet (or any other kind of data tooling) without a good deal of work (quick CSV dumps don’t count, and even then only a handful of solutions I’ve seen provide such affordances to web users).

And speaking about silos, another aspect of the new computing model that I’ve been mulling is the willful design of applications (be they standalone apps on your device or online services) as silos where your data is effectively trapped, and the death of the computer as a generic data manipulation tool. Let’s ignore business data for a bit, and take PIM data (contacts, calendar, etc.) as an example.

Your address book is, comparatively, relatively easy to move from one service to another, largely because companies have realized it’s critical for customer acquisition and because the schemas involved are actually standardized–partially because if you can’t move your data in easily, then you’re not likely to use a service, and because RFC 6530 harks back to an era when standards were drafted by people without vested interests, which means that address book data exchange has been largely solved for a good while now (even though I’m still amazed at the number of failed attempts at doing so over the years).

Mass market was also a key driver there, and mobile tech made things (too) easy: Android, in particular, is notorious for making it embarrassingly easy for your app to become a contacts provider, leading to a mess of possible duplicates and half-cocked strategies for linking them in your local address book (with nearly pathological security and privacy issues, but that’s another issue).

In much the same way, documents and other “generic” data have become hostage of SaaS solutions of various kinds, with even password managers getting into the act, and more JavaScript hairballs being thrown at variations on the “rich editing” experience–again, with little to no interoperability with desktop environments or even across applications. The Platform Gambit

Ironically (for a Mac and iOS user), I’m also increasingly biased against platform lock-in. Besides the usual criticism of the marked difference between yearly price increases and actual improvement across Apple hardware and software 3, or OS-mandated default applications and services (which I actually object little to in iOS, but find irritating), I’m more worried about the lack of innovation.

I’m going to take the long way around it and start with hardware, since I’m also irritated by the death of repair (everything is hyper-fragile, glued or soldered) and the death of expansion options (no removable batteries or expandable storage), but I get them because they were necessary (up to a point) to deliver the kind of power and performance we can stuff into a trouser pocket today.

Even my current employer (Microsoft) ships densely-packed, vertically integrated hardware like the Surface Pro (which I love to bits) and the Surface Studio (which I honestly wish I could afford), because that kind of deep integration is the only way to improve the overall user experience, and people who design hardware properly have an innate understanding of who their user is–they do not treat users as mere eyeballs, and care about the feel of their deliverables.

And yet, nobody seems to have an iota of common sense regarding end-to-end hardware and software integration. gas x dosage chewable Apple knows how to do vertical integration on the hardware side and had massive success with the curated App Store model in the mass market for the sake of convenience and security but has no clue how to merge mobile and desktop UX, Android and Chrome OS are being painfully stitched together and have effectively no reference platform (or even a standard version), and Windows has to deal with so much Intel legacy that even Surface devices still have occasional driver issues.

I stopped caring about front-end development back when it became apparent that front-end development frameworks had to spend 80% of their code abstracting away browser features. Or rather, just before people just started making stuff up on the spot to compensate for the shortcomings of the DOM either feature-wise or consistency-wise, and I’m not even blaming JavaScript here.

Web development has been broken in various ways for years, and it’s actually a good thing to take a stab at having a single consolidated runtime for it, as long as it stops just short of having every minor component become Turing-complete and self-aware. But I worry about things like security, power efficiency, lobbying, and someone baking in proprietary technology, surveillance enablers and fashionista tech of various kinds 4, because there has to be room for innovation, and having what boils down to a single rendering engine is going to be yet another way for things to break, but with the potential to do so on a massive scale.

I’m worried about lack of innovation in the DOM, in web scripting, in interoperability between web applications, and, most importantly, in overall quality, richness and productivity of the whole experience of using computers, because the Web has become more of a shopfront than a playground, and you never create things while sitting in front of shopfronts.

On mobile, things will likely remain as they are for the foreseeable future–web applications simply aren’t good enough for a lot of use cases (no matter how many APIs people try to shoehorn into them), and it is the one domain where applications have the potential to become richer in terms of interactivity and graphics to a point well beyond what is possible with web technologies. Summary