I mean, if someone said, "I've successfully ported Vim to Android!", my first thought would be, "Why in god's name would I want to run vim on my phone?"*
* Ruling out, of course, someone plugging their phone into external KVM.
And beyond that, platforms have affordances which you should want to leverage. A smartphone has a very direct and tactile interaction model, but my computer pairs an extremely precise pointing mechanism with a good way to input oodles of text and chord shortcuts.
To be fair, I've used vim on my phone over SSH and it was actually a pretty good experience. Editing is a bit more deliberate of an affair than with a hardware keyboard, but still easier than trying to visually select text on the touchscreen, and no complex chorded keybindings to try to enter.
Something that has always bothered me is that smartphones are basically supercomputers nowadays, at least compared to what we had in the 90's, but I feel incredibly limited in what I can actually do with my iPhone. I can't easily code stuff for the iPhone in Haskell, I can't open up multiple "tabs" of videos on the YouTube app, and even a lot of the apps that do get ported over end up having incredibly limited "mobile optimized" versions.
I would absolutely love a phone that could let me run the "real" versions of apps when I need to. Ubuntu Touch was trying this, and I honestly don't think I'm unique in this desire.
It turns out, you can--within particular size classes. And Android's ability to support lots of different phone screen sizes was a major advantage over iOS for a long time.
But, Apple's requirement that iPad apps have separate, hand-tuned interfaces was also a huge advantage for iOS, since blown-up phone apps suck on tablets.
So now we know that the right approach is adaptive designs, but within certain bounds. Both iOS and Android have this now (iOS is more adaptive, and Android supports custom tablet layouts), the problem for Android tablets being that it's not enforced or required.
Anyway, all of this is to say that while platforms can and should do a lot of work to make it easier for developers to support multiple device classes, screen sizes, and so on, it will never be automatic.
This mode seems suited for mobile UIs, so that flexibility should get them pretty close to being convergent. There probably still need to be some adjustments to make it really usable on mobile, but a lot of the work has already been done.
Or, in other words, do what any third-party app developer who ships apps for iOS+macOS from a single XCode project source does—but build your whole OS like that.
As well, ideally, the view layer would be modular enough that it could be unloaded and reloaded at runtime, such that you'd be able to dock your phone to an external display and have all your running applications switch to their desktop UI view-layers without losing state.
Which are the Linux GUIs that currently "work beautifully" on the desktop?
> I mean, if someone said, "I've successfully ported Vim to Android!", my first thought would be, "Why in god's name would I want to run vim on my phone?"
You couldn't just hook up a usb keyboard to the Purism phone?
> The key for enabling this is to go from remote to local by way of optimization instead of trying to go from local to remote by way of generalization. [1]
I think its analogous to this mobile/desktop "purist" OS. Specialize, don't generalize.
[1] - https://doc.akka.io/docs/akka/current/general/remoting.html#...
In other words, is it acceptable to write non-convergent apps for a convergent OS?
My point was not someone simply running vim on their phone. My point was that if someone rewrote vim to be idiomatic within the smartphone UX (e.g. replacing keyboard motions with swipes and gestures), it would largely defeat the purpose of vim as a modal editor and render it simply as another generic text editor.
Phones have none of that. And they really can't really provide them because of limited screen estate and touch being the only way to interact with it.
That's because they're intended to work as media consumption devices rather than productivity ones. If someone feels productive on a phone, he or she has very likely adapted herself to the device than the other way around.
I had to struggle yesterday with my GF new phone because her lawyer sent her a paper in .doc format using Whatsapp (no kidding[1]) and she had no capable reader. Fine, I thought, let's fire up the app store and find one. Now I just have a couple old tablets I keep at home 24/7 and don't use smartphones at all: no feature in the world can convince me an € 5000 smart phone can be more usable than my €20 dumb one plus my € 400 used Thinkpad, so I'm not exposed to the level of annoyances the usual phone user experiences every day. Back to ther phone, I knew the google app store wasn't that wonderful land where you tap the equivalent of apt-get install name-of-a-free-as-in-unicorns-and-fairies-doc-redaer and it magically installs, but man... I didn't expect that level of crap! I tried a couple "free" reader apps and every attempt to run them had either popups appearing asking to click to buy something, or more subtle ones where the click to buy button was a lot bigger and dangerously close to the window really small X (close) button. In the end I installed f-droid, dns-66 and libreoffice reader, but what if she had to do all for herself and could only find those pieces of crapware?
[1] apparently that practice is widespread among non IT professionals, and I find it rather dangerous. The privacy implications should raise some big alerts.
"I would absolutely love a phone that could let me run the "real" versions of apps when I need to. "
That's my dream as well. Give us an open (hardware) phone and OS plus apps will follow. Manufacturers however would hate this because the phone (tablet, etc.) as a platform allowed them to undo what Open Source achieved in the last decades on personal computers: now they have again a piece of hardware they can fully control; the software is closed and incredibly dumb, and it forces you to connect to online services to do anything. We're sort of back to mainframes, that's like killing over 40 years of IT development!. Also by keeping some parts of the firmware (mainly drivers) closed they can ensure no FOSS hippy is going to ruin their dominance. If there was a way to install a working native mainline Linux image (no chroots/VMs/frankendroids etc.) with full hardware support all those phone left in a drawer collecting dust could magically become useable again, with some important side effects. For starters, I'd dare to say every 10 of them at least three new phones would remain unsold, then it would become a lot harder to put spyware into user phones, and third, what would happen when even a few thousand users in the world started showing their colleagues, friends and families that their old phone isn't just faster than new ones but also safer and cheaper, shows no ads, doesn't steal personal data, doesn't require constant updates (==cheaper data plans) and supports the same software they could have installed on their PCs. Definitely, phone (and their OS) makers would hate that.
This is already what I feel has happened to the web. Modern web design has so heavily optimized for responsive scaling to a small touch screen that we end up with hobbled interfaces on desktops.
A now-dead sibling asked about an escape key; on Android at least there are keyboards that have the meta buttons (no affiliation: https://play.google.com/store/apps/details?id=org.pocketwork... is one example).
While I agree that it can be difficult to design information-dense UIs for small displays or provide navigability to a large feature set, I strongly applaud efforts to unify computing and work through these challenges.
I very much want all of my computing devices to be unified. In fact, I want a model where I have one computing device and multiple views ("terminals" if you wish) [1]. But a consistent experience as Purism is pitching, and which Microsoft attempted with Windows 8 + Windows Phone 8, are viable first steps. There is learning to do here and it's great to see people taking on the challenge.
> I mean, if someone said, "I've successfully ported Vim to Android!", my first thought would be, "Why in god's name would I want to run vim on my phone?"
Sure, but if they find it useful, fun, or just plain cool, I applaud it. I want more desktop-class computing capabilities on my phone-sized device and I routinely find myself deferring important actions until I can get in front of a "real computer." Many things are just too challenging or limited on today's mobile operating systems. Even with "convergence," as Purism calls it, there will still be cases where I simply want to use a larger screen, so I'll defer until I can dock the device and use some large form-factor I/O devices. But with the stance Purism is taking, I would no longer experience the frustration of software limiting me even when I am willing to endure the limitations of my hardware.
Word (and the rest of Office) is available for Android, and is free for devices with a 10.1" screen or smaller (though you need to sign up for an account and give MS your info; for larger devices or more functionality, you need to buy a Office 365 subscription)
It was a bit overly ambitious (maybe), but I actually think that it's not an inherently bad idea.
EDIT: Also, don't want to be "that guy", but doesn't Google Drive support .doc files? In that particular case I wouldn't think it's terribly hard.
I don't use my phone for much of anything but calling and bored web browsing anymore, but I'd genuinely love for my iPad to be more functionally useful, but the issue above is similar to a lot of other interaction limitations. I really can't imagine using any mobile app on my desktop, and I can't imagine using any of my desktop apps on mobile (admittedly the desktop apps I use are on the more complex side things.)
Right. We used to do perfectly serviceable work on extremely small screens, sometimes displaying as few as 40 columns and a dozen rows of text, and with keyboards that were so painful to type on that most commands would be abbreviated to 2 or 3 characters. Current versions of Linux still include a "quirk" for supporting an uppercase-only text mode that was common on early terminals and microcomputers. So no, hardware capabilities are not an inherent obstacle here. Providing an information- and interaction-dense UI on such limited devices is definitely a challenge that will require some added work, but the kind of 'convergence' that Purism is talking about is a necessary building block.
"Convergence" is a pipe dream because of the differing and mutually exclusive expectations of those different user types, and "one size fits all" programming ends up underserving both segments. The only thing I would change is that mobile needs to do more to expose users to internals (things like access to the proper file manager), rather than hiding and abstracting away every detail that might confuse grandma.
I feel like the solution is not necessarily to make one app do it all, but to embrace something more akin to a client-server architecture - one "app" with multiple UIs talking over the same API to the same backend logic.
The biggest obstacle to a genuinely productive UI on mobile, I find, is the lack of pervasive and easy confirmation and error-recovery for potentially-unwanted inputs. System management interfaces (e.g. community-built "recovery/modding" environments) get this right (everything that's potentially unwanted gets a "perform a swipe to confirm input" prompt), but almost nothing else does.
i'm not convinced that's true... you're right that presently most touch interactions are very "direct" (i.e. an object will move exactly like you drag it, much like using a mouse). but that doesn't rule out more "abstract" (i.e. vim-like) methods of touch input, we just haven't seen them yet. "10 fingers on a keyboard" will always be more expressive than two thumbs on a screen for input like this because it offers more bandwidth and isn't limited by screen real estate, but i feel there's still a lot to explore w.r.t. touch gestures, even if they end up as keyboard shortcuts on steroids.
one example of a good "abstract" gesture is what Paper 53 (an iPad drawing app) did (does?) for undo: put one finger down, drag another finger around it in a compasses-like motion; counter-clockwise to undo, clockwise to redo, and the further you turn, the more "steps" it moves. felt really intuitive and way better than tapping an undo button!
It’s bordering on absurdism to try and utilize the same UI between them, and simply doesn’t match the reality of human perception or tool use.
There are certainly uses where it makes sense — people who use just a phone and laptop for the internet and documents, for instance — and arguments to be made for consistency in styling or icons, but there’s also a lot of use cases where they’re different kinds of tools, even if both use computer chips, and it makes sense to have different UIs.
I appreciate Microsoft offering the other option in Windows 10: that I can use a tablet UI in tablet mode and a desktop UI in laptop mode.
"We don't believe in sort of watering down one for the other. Both [The Mac and iPad] are incredible. One of the reasons that both of them are incredible is because we pushed them to do what they do well. And if you begin to merge the two ... you begin to make trade offs and compromises.
"So maybe the company would be more efficient at the end of the day. But that's not what it's about. You know it's about giving people things that they can then use to help them change the world or express their passion or express their creativity. So this merger thing that some folks are fixated on, I don't think that's what users want."
https://www.smh.com.au/technology/users-don-t-want-ios-to-me...
Convergence also means selection of default applications for the target device or, if apps are actually this configurable, selection of appropriate compile time flags.
Just in case you thought it could not get any worse...
Google redesigned all their desktop UIs to work with touchscreens in 2012, at the expense of mouse-and-keyboard users. Microsoft's Ribbon UI for Office, and Fluent UI for Windows 10 were both designed for touch first. Hell, even Ubuntu's Unity made huge compromises on Desktop in the name of convergence, even though no significant fraction of users ended up running Ubuntu on phones.
The original designer vision was for UI to adjust depending on the form factor of the user's device. What we got instead is "upscaled phone UIs everywhere", because programmers like to be DRY and reuse code. This is literally the tree swing cartoon.
Is using an end -to-end encrypted service worrying?
I assume whatsapp encrypts media as well as messages (I hope so). If you sent that document to any kind of corporate email account (many people use work accounts for non work stuff) it's liable to be opened by your company. Unless you think Facebook is backdooring Whatsapp it's about as secure as a typical email account.
But... https://xkcd.com/927/
If this happens again in the future it might be easier to connect to web.whatsapp.com in a desktop computer.
Even if the phone becomes a more open platform, and we can snap our fingers and get superb battery life, better CPU, better screen, better storage, etc., typing even a few sentences on the phone is still pretty awful. Nothing short of serious improvement to digital assistants will help here.
Decoupling the UI from the business logic is not exactly a new concept.
If you think about it, no one knows the user's use case better than they themselves do. So who is in a better position to determine what functionality is most important to have on their tiny phone screen? Which components need to be bigger and more prominent or smaller and less prominent according to their workflow? Etc.
In other words, the GUI isn't optimized for anything by the developer, but the user can make it optimal for themselves.
Vim is available on android through termux. I've used it to write a few things. I actually used it to wrote an app to access my city's transit api because I wasn't a fan of the available ones.
With the right keyboard installed it's actually not too bad. Best programming editor i've actually found available on android.
https://wiki.termux.com/wiki/Touch_Keyboard
I found vim is actually the most convenient editor to use on Android to edit code without hardware keyboard compared to any editor that I found on f-droid. And I don't use vim on a regular computer.
> That's because they're intended to work as media consumption devices rather than productivity ones. If someone feels productive on a phone, he or she has very likely adapted herself to the device than the other way around.
What are you talking about? Literally millions of people use their phones to create every day. They take pictures and post on Instagram, create videos with apps like Clips, iMovie, SnapChat, make music with GarageBand, and yes, also consume video. But iPhones are every bit intended to be creation devices as much as desktops. The form factor lends itself to a different type of content creation, but it's stellar at letting users create in addition to consume.
I trust tptacek that WhatsApp is end-to-end encrypted. But it definitely leaks metadata. Nobody is denying that.
Facebook now knows gf is communicating with a lawyer.
Your threat model may vary, but my assumption is Facebook will sell that info to anyone who pays. (Not directly, but definitely using some sneaky ad targetting: all girls, 27-35, this zip code, this education, etc, and who has contacted to a lawyer recently.)
If this isn't possible it is just because they are so busy doing all kinds of worse things that they haven't gotten around to it yet ;-)
I'm only halfway joking: this is the company that fools people who try to be secure into giving up their mobile phone number, then shortly after starts using it for targetting.
The first class of application probably won't run in to any issues with just designing for a smartphone UI and not bothering with anything else.
Mine always tries to open doc files in a painting app I use. And yes, this even happens if I manage to get them into docs and try to open them from there. I have to uninstall or disable that app to open doc files :-/
My main reasoning was, I use the bus when i'm out and about, I don't carry a laptop with me most of the time, I was unhappy with the way the bus times were displayed in the available apps, so I wrote it on my phone at work when I had a bit of time.
Most of the other things were just playing around with the limited access to the android api termux gives you. I actually prefer SL4A for android scripting, but it's been dead for years. It granted access to more of androids api than termux does though.
There was a small community of users who were building applications (mostly built with GTK+) that were often of higher quality than what I got used to on Android now. They could be installed via the App store equivalent or just using apt-get from the terminal.
There were some great "Whoa, this works?" moments, like running the full-blown Arduino IDE and flashing something via USB-OTG or writing a Python script that makes the phone act as a sonar. And everything almost with the ease of a Desktop-PC, just a bit slower :)
I went through four used N900s (they unfortunately aren't very durable) before I gave up and got myself an Android because the web became too bloated and slow. I still miss it every time I'm using my phone for anything different than calling someone or taking a photo. I just had to get that off my chest.
I've been very happy with my OpenMoko FreeRunner for about 10 years now. It's running Debian (QtMoko), can send and receive calls and SMS, has WiFi, a Web browser, games, text editor, etc. I can also do anything from the terminal (locally via a terminal program, or remotely via SSH), including "apt-get" from the standard (although outdated) Debian repos.
My only annoyance is that the old QtMoko on-screen keyboard had really good predictive text, but it got removed in an update (apparently it only worked well in English and German; but that didn't bother me as I only know English)
All that being said, I don't do any of that stuff; I write software and write the occasional blog post. For me, I need a compiler, text editor, git, a good terminal etc. In this regard, my old Packard Bell is honestly more powerful, and despite my iPhone having objectively awesome hardware in comparison, I accomplish much less.
These days I have an iPad Pro as well, and it's sort of depressing. It could be such a better productivity tool if it wasn't crippled by a "mobile" OS.
> iMac (Retina 5K, 27-inch, Late 2014) and later iMac models can't be used as Target Display Mode displays.
Or does that description apply only to 5K iMacs and not to ther other models? The "and later iMac models" statement reads as very broad to me.
On smartphone native apps all the buttons are always piping up and sliding over each other, when you eventually hit one accidentally and it triggers some blocking or irreversible action it’s super frustrating.
It’s so bad that I honestly think I have a smaller error rate with the touchscreen keyboard than touchscreen GUIs.
Not OP... a BT kb/mouse has been a great consumer-friendly boost on larger tablets for me but sadly... lots of applications (on Android) don't really take advantage of this. They are still very heavily optimized for touch-only.
Example: MX Player (my fav Android player) does a great job binding keyboard presses to actions (spaceBar: pause; arrowKeys: forward, back, etc..)
In contrast, VLC for mobile lacks this "polish". Mobile browsers are another example where actions could be optimized for mouse input but I haven't come across a browser yet that acknowledges mice as a separate input source.
fyi (for anyone interested in tablet to laptop conversion to lessen gorilla arm):
Zagg Folio for 10" tablets (basically turns a tablet into a laptop). I picked this up a couple of years ago (not too many available for Android, most are essentially flimsy stands). They also have similar for smaller handhelds:
https://www.amazon.com/Bluetooth-Keyboard-Android-Tablets-10...
On the other hand, I like the idea of at least being able to run software on all devices and them at least being usable, even with a shitty interface (like having to scroll through numbers on a desktop, Microsoft). This way I can still use familiar tools for non-recurring tasks. Like RDP on a phone might not be fun, but gets the job done.
Yes, high-def large retina screens now (and I'm looking at one) exceed this, but as a traveller, a 10" tablet with a real goddamned operating system is a total game-changer.
Mind, I don't quite have that. I've got a 9" Android tablet with Termux that is pretty good, despite some profound limitations (mostly of the OS and Apps, some from the input, though a Bluetooth keyboard makes this a tractable laptop substitute most of the time). It's absolutely possible to get Real Work done. Though I'd prefer something bigger and less in my way, and am looking with strong interest at PureOS.
They're designed for use independent of a keyboard. So yes, when you just want to stab at the screen and smudge it with skin oil, you can.
My preferred keyboard is a folio case with an integrated keyboard. I can pop this into a tent-form laptop, or, in a fraction of a second, flip the keyboard out of the way and use just the tablet. No hinges to break.
Major con: There is absolutely no standardisation of tablet form factors and corresponding case and keyboard designs. I've found this maddening to no end. Existing keyboards without exception suck, and Logitech sucks even harder. That said, this doesn't have to be the case.
Either portrait or landscape orientation, without preference on the device, oriented by accellerometer. Inverse portrait/landscape as well.
Incredible battery life. Generally, all day, with heavy use.
Tablets are virtually ideal as communications devices, so long as you're not actually in motion. I might carry a small dedicated phone in addition just for voice comms (restricted to a close whitelist), though in practice I prefer batching my comms and not being interrupted 24/7/365 without relief.
The fewer people who see a thing, the uglier the source is.
And as you go down the stack on mobile devices... there are very few people watching, indeed.
An absolute ton of people use actual computers with 12" - 14" screens including for complex tasks they just switch tasks more which is probably less efficient but hardly impossible.
They may opt to dock their machine at home/work for a larger work area but as it happens many tasks may cross both environments.
For example at home you may have many windows visible at once one of which is a document you are reading or a video you are watching another an editor in which you are writing documentation or code. After you undock you may wish to continue SOME of the tasks on the smaller screen for example watching the video or reading the document but opt to defer others until you have richer input and display options.
Lets go a level deeper. Your device is a general purpose computer. It could in theory run 2 entirely different UI stacks that run on the same OS and access the same files. Its the files that are the vital thing. If you create a video in one stack and merely watch it in another what of it.
Convergence is merely the idea that you will eventually be able to carry a small enough cheap enough computer in your pocket that it wont make much sense for many people to lug around 2 different portable computers.
This seems as inevitable as computers going from buildings to something we lug around in the first place.
citation needed. The majority of applications I need would work just fine on a powerful smartphone.
I need a real screen, with a real keyboard to be any kind of efficient.
sadly, it derives from "permitted to do".
They're only comparable to 90s supercomputers in the sense of compute power.
But when it comes to productivity they are fundamentally limited by their physical size and limited input/output real estate vs a desktop or laptop, or even 90s supercomputer with a 25" CRT and big clicky keyboard.
Even laptop keyboards use nearly full size keys, just as piano keys come in a pretty standard size, regardless of the size of the piano.
Programming on a phone directly would be like cooking for a banquet on a single camp stove instead of a full kitchen. You could do it, but why?
And sure, you can hook up a keyboard, mouse, and external monitor to some Android phones, but at that point, it's hardly a phone anymore.
That said, I actually think that Vim translates surprisingly well to a mobile setting. You don't have to do any awkward hand motions for doing elaborate keyboard chording (except for capitalization). The screen is small, but high enough resolution (720p I think?) to where I can make most stuff out, especially if I make the font big enough.
It's definitely not my preferred hacking environment, but I find it more fun to do that on the train than people watching. Well, most of the time at least.
Not the OP, but isn’t that one of the things that a fast input->result cycle helps with? Thoughts come and thoughts go, and if I don’t get it on the page before it goes, it better be simple enough to think of again immediately. With any complex idea, the struggle to not lose it before getting it written down is real.
I am typing this on an old iPad, and productivity level on it could be at least on par with my 1995 rig. Phone, not so much, without a larger display.
https://www.kickstarter.com/projects/2103809433/338898127?re...
It's less powerful than a smartphone, but designed from the ground up for hardware hacking.
disclaimer: I am part of the WiPhone project
With a Bluetooth keyboard, Vim over SSH is actually a pretty fantastic editor on mobile devices - lots of real estate, fully customizable, and none of those awful "features" that get added to mobile apps. It's really convenient to be able to just connect to my server over LTE and keep working from most anywhere.
I do agree with your point, however - apps designed to make use of a full computer's space will rarely work well on a phone screen, and the great majority of design for mobile is already atrocious even on its native platform.
You can put Linux on GPD Win. I have on mine.
Blink Shell and mosh = terminal, vim, git, etc.
Using a keyboard has been absolutely wonderful though. It's even saved me a few times when I didn't have my laptop with me and had to ssh into work servers for issues.
That's a great idea to me. There are too few choices on the cheap side to consider, like the Pinebook. Even the GPD Pocket 2, which I find gorgeous, is still too pricey IMO. A smaller Pinebook without trackpad would probably be our dream pocket device.
"but doesn't Google Drive support .doc files?"
Probably yes, though I'm used to always look for offline solutions: Once I get the data on my device, backups aside, it stays there for processing until I have to send it elsewhere. The concept of applications as services and cloud computing is ancient and totally unwanted to me, probably because dumbed down terminals connected to a do-it-all central server is something those of us who are over 50 see for what it really was: a huge limitation of the past, rather than a technological advancement. Forcing users to get online to load or edit something is just a way to control access both to the data and the code to treat that data.
Personal ideas aside, my GF family she often visits lives in a poorly covered area and being forced to depend on connectivity for editing a document or any other thing easily doable the traditional way, would be problematic to her. Luckily the world isn't made exclusively of hyperconnected cities with tall buildings.
So echoes of, but not at all constrained like, computers from that era.
It if weren't for the whole Linux vs Symbian, plus rebooting devenvs multiple times across Symbian and Maemo history, things would have turned out much different.
But like all major corporations, politics play a big role.