Comment by AdmiralAsshat
7 years ago
My primary concern with this is that different applications are inherently optimized for the platform on which they were originally designed. There are some applications that have a very dense UI because there's simply alot of functionality that the program handles (think of a video editor, an IDE, etc). Trying to slim down those applications to make them reactive so that they will scale onto a phone or tablet just seems silly, and I fear that in the name of making "everything work everywhere", we're going to compromise a bunch of apps that worked beautifully on one platform in favor of making them work adequately on several platforms.
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.
I have the GPD Win that I bought a couple years ago, which is more or a less a Nintendo-DS-Sized computer running "real" Windows, and I love it. I can do programming on the train, even while standing up, as well as use all the tooling that I like, including Vim actually. The only limitation for me has honestly been Windows, since I'm more of a Unixey guy.
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.
The Nokia N900 used to fill this spot between phone and PC for me. It has a slider keyboard and came with a Debian based Linux distro (Maemo) installed on it. Typing was much more comfortable than with a touchscreen and with a few changes to the Xorg keyboard config it was even suitable for programming. The padding madness wasn't there yet and even though the screen was very small by today's standards, it was used very effectively.
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.
Still have an N900 in my bag, as a secondary phone in case I need a physical keyboard or a real GNU/Linux system in my pocket. I'd hoped the Neo900 project would have breathed new life into it, but its not looking likely.
As someone that had the privilege to see the start of it, it was a pity how everything went.
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.
I hear you. Coming from a desktop app development background, I never got into mobile development because from far away it looks so constrained. I dream of a phone where I can use its hardware in whatever way I want.
5 replies →
if you like maemo, you should check out sailfish OS which is some kind of successor. I have the gemini PDA, which allows a few different OSs, others are android and debian. the company behind, planet computers is currently running their second indiegogo campain for a slightly altered device called the cosmo communicator. It adds backlit keys and other more "phone" features.
Wait, you wrote that Python script? I remember playing around with that!
1 reply →
This is all too true. These $1200 phones could be amazing portable engineer workstations. I had a Sharp Zaurus (https://en.wikipedia.org/wiki/Sharp_Zaurus) at University with a wifi card, and OpenZaurus (Linux based). I could do so much on it.
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.
> Something that has always bothered me is that smartphones are basically supercomputers
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.
My 20" CRT monitor cost $2000 (two thousand dollars) in 1995. But yeah.
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.
> 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.
sadly, it derives from "permitted to do".
"but I feel incredibly limited in what I can actually do with my iPhone"
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.
> in .doc format using Whatsapp
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)
>> "but I feel incredibly limited in what I can actually do with my iPhone"
> 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.
6 replies →
> Give us an open (hardware) phone and OS plus apps will follow.
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)
1 reply →
Privacy concerns, oh please? Around here (Southern Morocco) we send a photo of the filled out tourist card to the Gendarmerie with WhatsApp! Name, Date of Birth, Passport Number, Profession....
Just in case you thought it could not get any worse...
1 reply →
I don't know if you're trying to avoid using Google Products, but Google Docs has support for opening those types of documents. It's fairly popular so I can see why her lawyer didn't think twice of it.
> apparently that practice is widespread among non IT professionals, and I find it rather dangerous. The privacy implications should raise some big alerts.
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.
2 replies →
I certainly think that companies have been optimizing the phone for media consumption use, but I think it's because that's actually the only thing the phone is good for due its limited form factor.
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.
1 reply →
A couple years ago (before I got the GPD Win), I thought about trying to hobble-together a Raspberry Pi or Odroid with a 3D printed case and a tiny screen, keyboard, and USB 4G adapter and use that as my phone. I bought all the parts, but I never assembled anything.
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.
2 replies →
Check out the new Planet devices.
1 reply →
> sent her a paper in .doc format using Whatsapp
If this happens again in the future it might be easier to connect to web.whatsapp.com in a desktop computer.
1 reply →
Honestly, I cannot imagine how you get anything done. I’ve tried doing programming on my phone, but the time from my head to being able to execute my changes is just too long.
I need a real screen, with a real keyboard to be any kind of efficient.
I can't speak for you, but for me the limiting factor for programming has never been how fast I can type, but how dumb my brain is.
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.
1 reply →
https://planetcom.squarespace.com I have the Gemini. It works. Have saved servers while in the middle of Siberia.
How bad is it without a desk? can you type a SMS reply while walking?
> The only limitation for me has honestly been Windows, since I'm more of a Unixey guy.
You can put Linux on GPD Win. I have on mine.
That is an amazing device, thanks for sharing!
I think they released a new one with Linux pre-installed. I might look into that if I can sell my current one.
6 replies →
It's a nice idea in theory, but as a counterpoint, my vision has gotten worse due to reasons and the amount of useful things I can fit on my screen at a certain size and resolution has diminished.
I imagine the workstation of the future will be at least as portable as our current mobile phones are.
Some folks, myself included, reel at the conventional wisdom that a small screen necessarily means reduced functionality.
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.
[1] http://tiamat.tsotech.com/pao
To me the biggest hinderance is no the small screen, but the touch UI. Think of something simple like text editing. Because the UI has to differentiate simple taps and everything else, there is an inbuilt delay between the simple tap, and the more functional tap-and-hold. But since there is only one tap and hold, then it becomes tap-and-hold-and-select-action-from-menu-then-complete-action. Thats how I think of the simple action of selecting some text. Something the keyboard or mouse both accomplish much faster.
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.)
Indeed, tap-and-hold is an inefficient gesture on touch-powered devices. Swipes and taps are much more convenient. (In fact, I don't even think that the gesture is used for anything on touchpads, even though it could be. Even for drag and drop, you activate it by "double-tapping" and then swiping away, not letting the double-click register. In general, UI-interaction on touchpads is quite advanced, and proves just how much ground there is to cover on mobile.)
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.
Have you considered getting a bluetooth keyboard/mouse? It makes text editing on tablets/phones much more tolerable for me.
3 replies →
I feel like the only computer user in the world who wants his computers to act like computers and mobile devices to act like mobile devices and to maintain a firm line in the sand between them.
"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.
You are not the only user who feels that way. Apply very explicitly said they do not think their users want iOS and macOS convergence. This needs to be taken in the context of apple recently providing tools for devs to port iOS apps to macOS. Here is the full quote from Tim Cook:
"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...
Yeah, having a good interface for that different devices seems hard to impossible and probably not worth the effort, as shown again and again. Btw, who at MS thought having to select numbers to set a timer via mouse is acceptable on a windows desktop?
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.
> "one size fits all" programming ends up underserving both segments
citation needed. The majority of applications I need would work just fine on a powerful smartphone.
1 reply →
> Some folks, myself included, reel at the conventional wisdom that a small screen necessarily means reduced functionality.
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.
_Most_ people did not use computers like that at all, and it's not like they weren't tedious for those of us who did. There was simply no alternative at the time -- there is now.
2 replies →
A 10” screen has a twentieth the screen estate of my workstation screens, and is the difference of a narrow point of attention and spanning my view.
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.
A 10" screen is 71 inches square. A square foot is 144 inches square. You are saying your working area is about 10 square feet and ergo nobody could possibly want the same applications on a machine with 2 27" monitors as one 10" or even 6" screen despite many tasks being useful on both because SOME tasks are not.
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.
1 reply →
A 10" screen has more pixel resolution than any computer I'd used over at least a 25 year period, and well into the mid 2000s.
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.
Screen size isn't the real issue, typing can't be done in even a semi-reasonable fashion without a physical keyboard. That's a fundamental necessity for anything else productive to be plausible. Without it, the cross display thing is a huge waste of developer time and has killed every single project that has attempted to implement it.
>"Why in god's name would I want to run vim on my phone?"
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.
I've done the same, and after a minute or two it makes sense. Especially in a situation where you're not doing a ton of editing, just a line here or there, it can be a life saver.
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).
Termux does provide an additional row of keys that can be customized to add missing arrows and other keys easily.
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.
I use it on my phone as well, but with a physical keyboard.
Your phone has an escape key? Or did you rebind it?
> There are some applications that have a very dense UI because there's simply alot of functionality that the program handles (think of a video editor, an IDE, etc). Trying to slim down those applications to make them reactive so that they will scale onto a phone or tablet just seems silly
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.
How about, instead of creating applications that are on all levels a compromise between the two, just create applications that work hard to decouple their UIs (view/presentation layer) from their business logic; and then, for each application, write a small touch UI, a large touch UI, and a desktop UI, as separate view layers, all living together in a monorepo.
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.
This is precisely why I really like react and redux. There are times I track the window size and use different components to render. The state logic stays the same.
If you are writing an IDE, it seems foolish to spend time on a small touch UI that will be used by almost nobody. If you can't do something well, don't do.
Exactly what you're describing already happened when the netbook fad took hold some years ago. It's crazy obvious on Gnome but KDE apps suffered too, and the defaults to this day are still shit (optimized for form factors 2% of people use).
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.
This “client-server architecture” sounds eerily similar to plain old MVC/MVP/MVVM...
Decoupling the UI from the business logic is not exactly a new concept.
Agreed, and that's kind of the point - this shouldn't be a problem to begin with, aside from the fact that "everybody" prefers to write their own shit from scratch :)
Android tablet apps have always sucked because Android was designed with the expectation that you can easily and automatically scale apps to different sizes.
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.
I guess we have to ask whether having a single OS running on phones and PCs means that every application written for that OS absolutely needs to be designed to run on both, or whether it's acceptable for an app launched on a phone to just say "sorry, you need a bigger screen" and quit.
In other words, is it acceptable to write non-convergent apps for a convergent OS?
There is the approach Samsung is taking with LinuxOnDex. My Note9 runs Android but I can plug it into a monitor, mouse, and keyboard and boot up a Linux environment. It's still a bit rough since it runs in a container on top of Android but it works surprisingly well.
How are the updates?
I think that would be perfectly acceptable.
>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?"*
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.
At that point why not pull out a laptop? Are you programming on a tablet?
I'm also a termux user. My main use case is sshing into remote servers, I keep tmux sessions open and attach from my laptop or phone depending on what is most convenient/useful in the moment. I spend more time attached with my laptop than my phone, but sometimes I have an idea for something I want to do quickly without taking the time to boot up my laptop, or I don't have my laptop with me. It's not the ideal productivity tool, but it's hella convenient if you can train your fingers to dance around the soft keys. I have relatively big hands, and I manage to do it -- I've gotten noticably faster over the last couple years, but not on par with my laptop WPM obviously. I'm on a 5.5 inch screen, portrait format, with the full-qwerty Hacker's Keyboard app (source is on github).
Tablets offer numerous advantages if you're mobile / travelling.
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.
No, my phone. I'll admit, the idea of writing anything more than a couple hundred lines is ridiculous. But, for a small script to pull some data from a website it's not too bad.
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.
I find that modal editing is a really good fit for Mobile keyboards: text manipulation (select, copy, cut, edit) is pretty hard on a touchscreen and being able to hit a couple keys to make the edit instead of fiddling with dragging out a range on screen makes a huge difference.
IDEs and productivity tools often approximate a tile-based window managers where you can collapse all but the central tile (or conversely, put the central one in fullscreen) if you want the maximal real estate for the content instead of the auxiliary bars and then slide them in for a moment when you need them.
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.
Except... In IDEs you can have code side by side, and then a tool running in a third pane (let's say a debugger, or tests), and you have quick and convenient shortcuts to switch between these panes, and hidden panes, and other windows on desktop.
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.
> we're going to compromise a bunch of apps that worked beautifully on one platform in favor of making them work adequately on several platforms.
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.
That ship has already sailed.
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.
"Touch first" seems to invariably mean "terrible to use on a desktop".
The design constraints of the "input devices" are invariably different. The keyboard and mouse are "precise", while fingers are not. This manifests itself exactly like you see it :(
Just as an aside, almost all Google apps have at least a serviceable keyboard control layer that you can find by pressing '?'. This has helped my productivity using say Gmail tremendously.
> Trying to slim down those applications to make them reactive so that they will scale onto a phone or tablet just seems silly, and I fear that in the name of making "everything work everywhere", we're going to compromise a bunch of apps that worked beautifully on one platform in favor of making them work adequately on several platforms.
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?
You may have missed that part where I said "Ruling out, of course, someone plugging their phone into external KVM".
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.
> 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
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!
I'm actually becoming convinced that the right approach is pretty much the opposite and we should be making GUIs that are composable.
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.
But users don't want to be UI designers. I could see a case for an AI that watches the user use the app for a few weeks and automatically designs a UI for them based on their needs. But in general, users don't want to have to do work on top of the work they already do. It's the same reason that despite DVDs having multiple angles for years, and 360° video being easily renderable, almost nobody uses these features. I don't want to direct the movie while I'm watching it!
Users of casual consumption applications don't, that's true. I can't see myself caring to be either. But if they use a tool consistently, they often are driven to customize it for their needs if they can.
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.
Give them sane defaults, so they don't have to be, but get out of the way of the small, but significant and productive, minority who want and need this.
1 reply →
> "Why in god's name would I want to run vim on my phone?"
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.
This reminds me of a part of the Akka documentation about distributing your application across multiple machines:
> 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#...
I personally prefer keyboard driven UIs on my phone because all the UI elements are always in the same place.
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.
You're cherry picking the few counter examples. Many apps do already maintain code for multiple platforms, and many more want to but are resource constrained. Having one codebase work everywhere is going to be beneficial to a large number of projects. If your only concern is how an IDE would look on your phone, then don't run an IDE on your phone.
sigh Yes. I want to be able to seamlessly move stuff between my phone, laptop, TV, stereo, car. For that, I really need open standards, not "convergence". I also don't want a UI on my desktop that's compromised by the restrictions of working on a PlayStation.
Eventually it sound be the device I carry around is the main device, everything else should strictly be for input/output. I hop in a rental car the DIN just mirrors the screen & input adapted.
But... https://xkcd.com/927/
Sound=should
Vim is on iOS, at least ;-) https://itunes.apple.com/us/app/vim/id492668168?mt=8
The idea is not about having the same apps but the same environment.
Convergence also means selection of default applications for the target device or, if apps are actually this configurable, selection of appropriate compile time flags.
I tried to make the same argument against using Electron. Easier deployment across a range of platforms at the cost platform optimization.
I've used both vim and emacs from my phone pretty extensively via termux.
heh. I actually take notes with vim on my phone. It's convenient if you have a hardware keyboard.