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.
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.
> 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.
"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.
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.
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.
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.
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.)
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.
> 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.
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.
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.
> 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.
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.
>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.
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.
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.
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.
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!
> "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.
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.
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.
The exciting part of this to me is not the ability to run the same software on two devices, but the potential to run two 'kinds' of software on one single device.
This unlocks what is for me the most appealing computing fantasy: I have exactly one device to compute with. At home or work, I plug it into my dock, where it pairs to an eGPU/monitor, external storage, keyboard, and mouse, and is my desktop computer. There, I can access the 'pro' level apps we're discussing below.
On the couch or on the go, maybe I slide it into a bigger touchscreen with some extra dumb batteries, and it's now a tablet. Throw in a keyboard case, and now it's a laptop.
And if I'm sitting on the bus or walking to work, it's my phone, and I can edit today's lecture right there, or access all my files. Maybe I'm not firing up emacs or MATLAB, but it's still there if I needed to.
This, to me, is the fantasy of convergence. And considering we're now currently paying $4000+ for the trio of a laptop, tablet, and smartphone, I suspect one could create something pretty compelling and high-end and still feel like a bargain to many.
I completely agree with your goal definition of convergence. The ability to have one device for all your computing needs. I don't expect to be able to do everything on a 5-6" phone screen, but I should be able to connect my phone to a monitor (or dock) and be able to do everything. The closest thing to this on the market is Samsung DeX but it's still incredibly limited.
That's an excessive number. Great laptops can be had for under $1000.
Obviously, you could spend over $4000, but I don't think this is a reasonable number for most people. Even most 'computer' people. And who still buys tablets anyway?
Outside of Intel Phi, is there anything like an eCPU? That would be really cool, and could be exactly what we need.
Back before Thunderbolt, I used a mini-PCI-express to PCIE adapter for more GPU power. This was great for games, but I immediately became CPU-bound, which wasn't so great.
To fix this, you could have something like Big.Little but where the Big cores are external and only used when connected. Heck, then you could do something like a Big.Medium.Little architecture, where the phone's integrated Big.Little bows to the higher IPC cores in the eCPU device.
In this way, you would be able to have something that was a "soul" device that had all your settings and stuff on it, with expandable CPU & GPU computing resources. Expanded storage would also be pretty neat, but then you'd have to figure out what did and didn't need access when you were away from your "exosuit".
The computer is actually like a computer card, that you can slide into different devices. A lot of parts like for example the casing for the laptop "case" are 3D printable.
The computer card is 65$ and then you can print your own laptop or you can buy the parts from them. If something breaks, print your own replacement part.
The icing on the cake:
The "Respects Your Freedom hardware product certification" ("currently in progress with no known blockers") from the FSF for the version with Parabola preinstalled.
They commit to being fully Libre and want to go beyond this by:
" [...] providing full CAD files, schematics, and datasheets for all the parts (without NDAs) as well as having the 3D CAD files for the casework as a completely open GPLv3+ licensed project right from its inception. In addition, all firmware and kernel sources are GPL-licensed and will always remain so, and have been vetted in advance and do not contain any copyright violations or proprietary license-violating blobs (an extremely common practice nowadays)."
Microsoft tried this on Windows 8, and it was a failure - as a desktop user, it was horrible to use. Even Windows Server 2012 got on this bandwagon, with a well-placed touch in the top right corner opening the full screen start menu - of course, totally unintuitive for desktop users.
Windows 10 still contains a lot of 'tablet friendly' features, but they've been dialled down and most don't get in the way of desktop users. I think they've struck a decent balance here between the needs of desktop, netbook and tablet users, but there is nothing here for smartphone users - converging those size-constrained needs with the rest is surely the trickiest thing to get right.
When looking at creating a convergent OS, I think it's really important we look at earlier attempts, so we don't repeat past mistakes.
This was the dream to me that Samsung's "Linux on Galaxy" system would get close to.
They already have DeX which provides a large screen UI for your Android device. The next step which they have trialled, but AFAIK not release was to use a separate Linux Distro for the DeX component. Maybe not quite fully converged, but pretty close.
If you look at the bill of materials for a smartphone, the SoC is like... $20? Making the sort of interconnects you'd need and making them reliable enough probably costs about that much. For most people this need can be solved with software (Dropbox/OneDrive/iCloud), not hardware.
Maybe I just had a bad experience, but keeping multiple machines synced, particularly in terms of software configuration and options. Getting the various tools of a toolchain together once often sucks, doing it several times each time you make a tweak sucks extra.
Also, these sync services sound great, until you're losing data due to bad sync. I tried to use Google Drive for this and lost data. So, I'd rather have one machine, well backed-up.
This reminds me of the idea of "wouldn't it be great if we could use the same programming language for frontend, backend, and database queries". Well, maybe, but in practice not really. They are doing different kinds of things, you will have to use them differently, it doesn't really help all that much to have the same language. It SOUNDS like this would be really helpful, until you get it, and then discover that it doesn't really help all that much, because what matters most is not the language syntax, but the problem space.
Laptops and smartphones are made for doing different kinds of things. The real-estate requirements are different, as are the typical use cases, and even in the case where you solve them both with, for example, dynamic web pages, you still end up coding for both use cases separately, you just now have it all stuffed into the same codebase, which is harder in many cases instead of easier.
I believe Microsoft has been trying to make all OS usecases the same for decades. I believe they have not succeeded, not because Microsoft is deficient somehow, but rather because it's not, fundamentally, a good idea.
You can live that dream in clojure land! Clojurescript on the front end, Clojure on the backend, and datalog/honeysql for the database if you'd like. And it is awesome! After using a stack like this I'm spoiled for the slog that is developing in separate languages for each of those things.
I think that dream is possible with OS usecases as well, it's just that nobody has made it work yet. And I can't think of a better way to eventually get there than to build it slowly out of free and open source software. It might take a while, but since people have the ability to adapt the software to their needs when it is free, I'm confident with time that it will serve those needs.
Clojure for the frontend? What about native APIs that you need to use on, say, iOS or Android? What about graphics libraries and APIs? What about browser APIs? I'm sure you can write your own wrapper or bindings for whatever you need, but it's an ongoing effort/pain that isn't worth it for most people.
Every platform, backend or frontend, supports specific languages that are suitable for the platform's problem space and are subsequently preferred by the platform's community. Software rarely stands alone. You can always go against the grain with your own efforts, but it's no longer a dream, just another compromise.
I'm glad it's working for you. My usual work involves python, javascript, and occasional SQL, and really the syntax is not that much of an issue. The problem space difference matters a lot more (for me) than the syntax (which an IDE can help me with anyway).
I think part of the motivation was also managers thinking they could easily shuttle developers between frontend, backend, and database work, and that has mostly not worked out, because what takes time to learn about each is not the language, it's the problem space and the tradeoffs.
But, if it's working out for you, I'm glad it is. I was not impressed.
Just for myself, I will say that I know how to do some amount of management on Linux. That the same sort of thing is available on the phone, and that I could use that knowledge out of the box, is exciting to me.
For example: SSH clients and servers. I've tried playing with various apps from F-Droid to make it happen, with varying success. If I have just Linux, I know what should work. Another one is backups. I have a better sense of what I need to back up on a common Linux system than an Android-like one.
Last year, I realized that the direction that smartphones have taken is not a direction that is good and useful for me, so I decided that I'd better design and build my own smartphone before I need to replace the one I have. I have it breadboarded up and fundamentally working. It should be completed this year.
One of my very first decisions was that the phone was going to run ordinary Linux, for all of the reasons you cite. I'm VERY excited about being able to ditch Android!
I've become unenthused about this software "dream". Having spent years designing and building UIs on the web, what I've learned is that:
1) Convergence works great for "casual" apps - messaging, stores, content feeds, etc.; anything where the amount of stuff you need to see on screen at once doesn't need to be especially large. But the web already does a great job of making this type of application both responsive and cross-platform.
2) Advanced, dense professional tools will never adapt automatically to mobile screens in any meaningful way. And frankly, these are all I find myself installing natively on my desktop anymore.
The vast majority of software these days falls squarely into one of these two camps, and neither seems to benefit much from the prospect of convergence.
> Convergence works great for "casual" apps - messaging, stores, content feeds, etc.; But the web already does a great job of making this type of application both responsive and cross-platform.
I'd argue this is where Convergence actually works best. (Especially the way Windows does it, anyway).
For most people, "casual" apps are 95% of what they need a computer for. And the web does a good job, but not a great job, at making these apps responsive and cross-platform. Usually, these applications sacrifice lots of performance and/or usability and/or reliability, just for the benefit of being able to run in a browser. Which is fine if that's a trade-off you want to make, but this is usually not being done out of benefit for the user.
Convergence can help fix part of this, by reducing the cost of native app development even further while preserving the majority of the quality/performance/usability benefits native apps provide.
However, I think you should think of this in a different light: Purism's real problem is: How do we bootstrap this device?
That is to say, there is simply not enough money / engineering talent to both develop all the hardware AND all the software needed to bootstrap this thing. It must appear "viable" to the public as a 1.0 product.
Therefore, using convergence to bootstrap the product and then building out native UI's in further versions is probably the best decision.
The key factor, I believe, is how much needs to be shown onscreen at the same time. Your newsfeed can be compressed to a smaller screen because you can simply show less of it, without sacrificing the core goal of the view. Whereas, consider a desktop app with multiple panes that show different information about the same subject. The default way to condense this would be to arrange the panes into a single vertical column that you could scroll up and down. But if you need to see them all at once, this adaptation is useless. At some point there are only so many physical inches of screen space.
I worked on this stuff for Ubuntu. I think this can work pretty well for some classes of apps - browsers, chat/messaging apps, voice/video calling, terminal, contacts, gallery, music player etc - relatively light weight (at least in terms of interactions) apps.
Android/ChromeOS and iOS/MacOS are already moving to this direction for these classes of apps.
It doesn't work so well (or is more difficult to execute well, or at all) on apps with very dense UI - video editing, 3D design, IDEs, interface design apps, CAD etc
An aside - I'm not sure I'd use GTK+ for this. Why not Qt, or something like Flutter?
> An aside - I'm not sure I'd use GTK+ for this. Why not Qt, or something like Flutter?
This is why ubuntu phone tanked. Trying to be too smart and centralizing. Librem5 phone will probably succeed on this but not for the reasons their marketing people think (convergent apps with magic! ha!). PureOS will be as irrelevant tomorrow as it is now. But their phone, being a proper linux phone like android never was, will have some small chance of success after the community buys into it and start porting a decent effort to the applications.
That's cool, and it's good to see work going on in more fundamental building blocks of Linux like Gnome to support mobile and reactive UIs. I always felt like this was the biggest blocker to using a Linux system on handheld devices - having a good ecosystem of open source projects that work for that, and having the ability to pick your own desktop environment and components rather than having to have an "all in one" solution equivalent to Android. Admittedly I know that isn't a killer feature for average users - they do want the all in one solution. But having these things available makes it easier for a company like Purism to build a product using existing software.
It feels like this announcement is missing a step though. What can we do with this? Does this allow plugging your phone into a monitor and then running your phone apps in larger windows (eg, the opposite of what's shown in the videos). The idea of having the same programs running on your phone and laptop is nice in theory, but I'm quite happy with my own custom Linux setup on my laptop, I don't want to install PureOS on there.
Of course, much more work will need to be done in other programs to support this. The Gnome Web example looks really slick, and it's great to see this sort of 'responsive design' applied to native application interfaces - Android took a step backwards in this regard. But on desktop I'd rather use Firefox, and they have entirely separate builds for desktop and mobile. I wonder if Mozilla have any plans to support this?
> ...I'm quite happy with my own custom Linux setup on my laptop, I don't want to install PureOS on there.
PureOS is just Debian with a few tweaks. This work is being done as part of the GNOME mainline branch, so any GNOME user is going to benefit from it down the road. And as "alternative" Linux desktops (MATE, Xfce, LXDE) transition to GTK3+, users of these environments will likely be able to make use of it, as well.
Exactly, and this is why it's an important development. But the article starts out by saying it's allowing "applications to run on both the Librem 5 phone and Librem laptops, from the same PureOS release." which is sort of missing the point - this isn't about about buying a phone and laptop from them so that you can use their software on both, but an important step on Linux for handheld devices.
Good to see that Gnome are involved in this themselves too, and it's not some Purism fork of Gnome.
To be frank, I don’t see the benefit of convergence. Admittedly, one code base is cool and convenient, sure but if one considers the additional cost of design, maintenance and the loss of the optimal user experience, I think convergence is rather a minus. A small touch screen requires a totally different convention of user interactions as a big screen with only mouse and keyboard support. It’s simply the reality.
Instead of trying to reinvent the wheel (admittedly a new and shiny one), why don’t we just stick to the well proven approaches and design different UIs and front ends for different platforms? The bulk of the codes would go into the common business/security layers anyway. With CI/CD, each user would have his/her app with the same functionality but different UI for the optimal user experience without much headaches or additional burden.
To me the benefit is not to have a single application that works both with a touch screen and a mouse/keyboard. Rather, the benefit is to have a single filesystem that I can access with both touch screen apps and mouse/keyboard apps. This way I could for example create a grocery with a mouse/keyboard, then take my phone and check items off with a touchscreen. There are lots of things we rely on the cloud for that would be better served by a "convergent" environment imo.
I use Syncthing right now to achieve the effect of having a shared file-system across all my devices. It works really well and since it doesn't rely on any sort of cloud or client-server architecture it even works offline if you're on the same network.
Lol. And this pipe dream of magically converting apps to phone doesn't even address this use case of sharing the data. They assume the linux applications will be cloud locked-in like traditional ios/android apps.
Windows has had this with .NET apps for... Oh, pretty much since there has been a .NET. I had written several apps for Windows CE that ran both on desktop and mobile (same EXE file, even). Today, you can do it with UWP.
It's a shame Windows Phones didn't take off. They had a great UI paradigm and I think Microsoft has done a lot of very hard work that goes mostly unappreciated in the development world, just because Google's reputation is still based on a decade-old memory of their (never official) motto "don't be evil". Microsoft hasn't been the "Halloween Papers" company for longer than Google has been a company, period.
EDIT: I'm not saying MS isn't an evil corporation. I think all corporations get to some degree of evil proportional to their size. But for some reason, Google and Apple don't get that same evaluation, getting some sort of pass, that I think is worse in the specific case of Google (being an ad-tech company). We are collectively missing out on a lot of inovation and market diversity because of this cognitive dissonance.
Yeah, as someone who still carries an HP Elite x3 and uses some of the same apps on my phone and my desk, I found the claim of being "first" Purism made here to be... hilarious.
I keep looking at their products (laptop & phone) and can't pull the trigger based on what seems like a lack of apps/UX. I really want have better privacy and support companies with that in their DNA. I almost purchased a black-phone before.
I really think sandboxing built-in emulator for android apps has to occur for the phone to get traction. I think i'm their ideal consumer and still can't see the value yet. I'm a technical person who is willing to deal with some issues/trade-offs for privacy, but still can't reach the tipping point to purchase.
I also think this a place where duckduckgo could partner with with their services. I think most consumers wants things to be polished and just work.
> I really think sandboxing built-in emulator for android apps has to occur for the phone to get traction
> I think i'm their ideal consumer and still can't see the value yet
I don't think you are their ideal consumer. They're appealing to the Stallmans, the people who aren't looking to replace their smartphone, but for which this would be one of their first. I have heard someone say about the Pinephone (similar project): "I don't want a smartphone. But I want this. "
I do think they could vastly expand their appeal by adding Android emulation, but I have a feeling using the (which seems like the) market leader (Alien Dalvik) would be some licensing hassle, as you'd want to allow people to install their own distro and still use it. Add to that the whole (admittedly important) thing about everything being open software.
> I don't think you are their ideal consumer. They're appealing to the Stallmans, the people who aren't looking to replace their smartphone, but for which this would be one of their first.
That's certainly part of it, however I do have an iPhone currently, (seems like a better, if less than ideal option than Android), however am not happy about the locked down nature of iOS. Free software smartphones are necessary simply because they're the frontier the PC was in the 80s.
> I don't think you are their ideal consumer. They're appealing to the Stallmans
I would disagree with this point. I think this is exactly what the Purism marketing would like you to believe, but in reality, it just isn't true.
I would class myself as on the Stallman spectrum - I use a libreboot'd X200 running Trisquel, a dumbphone, no social media etc, email providers using Free Software, and so on.
In my experience of the community, Purism is very much disliked by many, and even seen as harmful to the efforts of the Free Software community. The inclusion of PureOS on the FSF distro list has more to do with technicality rather than recommendation and their hardware is pure marketing BS.
Acknowledging that missing Google Play Services is a big deal and will in fact miss most apps that people want when they think "android", you could do it with AOSP which is mostly Apache-licensed. As for having to install Google Play Services yourself, lineageos users don't seem to mind.
The app issue is a chicken-and-egg problem that ultimately sank Windows Phone, Blackberry 10 OS, Palm WebOS, Firefox OS, Sailfish OS and Samsung Bada OS.
Fortunately in 2019, mobile devices aren't as reliant on native apps. I use Uber's PWA and Google Maps Go PWA, which used to be my biggest app-only dependencies. For other stuff, I find that the stock music and video player apps are more than good enough.
Was very interested in their stuff. I was very disappointed when I saw a demo of the current state of Librem 5 running on development hardware. It did not look good. Laggy and slow. Very bad UI/UX.
I was a little disheartened as well, but that video was made early on in development. There was and still is time for optimization. I don't think the hardware is incapable of a smooth user experience. It's a software problem.
Canonical has been trying to make a mobile OS since 2012, KDE since 2011. Do you guys honestly think a company of 27 employees is going to make this work?
I'm not sure that what Canonical can or can't do has much bearing on what others can or can't do. I also don't think that the number of employees means all that much. Very often, smaller teams can be more focused and able to accomplish more than larger teams.
Yeah, let me know when less than 25 developers crank out a working mobile Linux distro that will continue to be supported in 5 years. Looking at all the failed projects in the past and all the managements complexities like software support, modern touch integration this is virtually impossible. They'll likely have a brief stint releasing some Debian ARM based mobile OS with a limited selection of software. You'll get some GTK Calendar, Calculator, etc. The basic crap that imitates Android phones from 2011. And it will be supported by up to 5 or so devices, hopefully without some impractical rooting method.
Linux barely exists as a desktop operating system as is. The only difference nowadays is smartphones don't have that freedom of customization desktops provide. Smartphones are consumer centric devices, you can't even swap batteries anymore. Leading OEMs have no interest in supporting an obscure operating system, they know the majority of users want Android.
When Purism releases this as an OOTB product, it will without a doubt run on some no named Chinese Phone that holds the mediocre power of any low end Android Device. Only it will be $600, rather than $180
As far I know Gnome 4 constraint-based layout [1] is still in planning phase. So how devs are going to build responsive UIs for different screen sizes? PS. I work on a Ubuntu laptop.
I wish they just focused solely on the hardware, then used the die-hard fan's money to develop the software. I'm going to run NixOS on this phone (maybe with an entirely CloudABI userland), and it's going to be better than their distro. Yeah their apps will be useful in that context, but I would be OK with rewriting them too.
Yes, but you can get a long way tailoring a Linux distro in a particular way. In an extreme example, Android is a Linux distro.
This is closer to conventional in that it's still Debian and Gnome, but if they are putting development work into making that a cross-platform system then everyone benefits.
yes. But they are so insane about talking like it is a innovative OS that this is probably the biggest reason most people consider their laptops for linux and give up, afraid they won't work well with ubuntu or fedora.
Slightly off-topic, is anyone using Librem laptops? What has your experience been? They look nice.
I've always wanted a nice secure Linux laptop to work on but I'm not eager to waste hours upon hours getting the drivers to behave (my experience with Linux on the desktop is a bit dated).
I bought Thinkpads for work, installed Fedora on them and everything worked out of the box, right down to the keyboard backlight dimming.
The things you have to watch out for are:
* Use an up to date distro with an up to date kernel (e.g. Fedora)
* Graphics are the only real driver issue. Easiest solution is to buy something with integrated Intel, but some cards are well supported, you just need to check
* Battery life will be worse compared to Windows on a machine normally sold for Windows. This situation may be better on things designed for Linux, like Dell Sputnik stuff and Purism, but I have less experience with them
My less than 5 years experience is still waiting for the beautiful AMD open source drivers to give me back the video acceleration and OpenGL Features from fxglr.
One of these days, the laptop will just get back W10 with its DirectX 11 drivers.
Dunno about that. I have a Dell XPS 9350 - to get a stable wifi connection under Linux I had to pull the Broadcom wifi card out and replace it with a much nicer Intel one (good luck doing that on the 2018/9 model - it's soldered in).
For a couple of years, the internal NVMe drive wasn't supported unless you changed from "RAID" to AHCI mode - unknown performance and power effects. It looks like that's changed recently.
I remember windows phones around Windows Mobile 5.x/ 6.x era:
the executable programs that run on the phone, if the exes were to be copied onto a windows PC, the exes ran the same like native PC exes. I do not know if that is still the case with windows mobile.
Its neat, but doesn't make sense for a majority of apps/programs. Why would I run GIMP/Photoshop or any Graphics-heavy program on my phone? Why run any GPS-enabled app on my Desktop?
PureOS is just a distraction. instead of adding a usbC port to their already outdated computer line, or lowering the absurd price (there is a reason their clientele is exclusively in california and germany) they are fiddling with linux distros like it is 1995.
This is the same old a phone-just-need-a-browser idea of 10 years ago. This will fail, for the same reason firefoxOS failed: There is no whatsapp (or lock-in chat app du jour) website.
I used to be really excited about the idea of convergence. I still think it's cool, and I hope it gains more traction, but after working on more webapps designed for desktop and mobile, there are definitely challenges. The "write once run anywhere" pipe dream is quite elusive. I think something like React Native's "learn once write anywhere" philosophy might be more realistic.
The article started off with a wild assertion, that "Purism is beating the duopoly to that dream". A duopoly on computing? Windows is still by far the biggest desktop computing platform. They may have messed up mobile, but that doesn't make them irrelevant.
The opportunity here is not just convergence but multi modal. We have bits and pieces in the current world but frankly it's a big stinky mess that is poorly integrated. Most of this stuff is just horribly limited and single vendor walled gardens.
A good positive example or how things should work is spotify. I regularly switch between my desktop, laptop and phone and the spotify instances seem to be aware of each other. I accidentally started playing music at home while at work today because my laptop spotify was still targeting my home desktop. Just works.
What matters here is that spotify is available on multiple platforms; it moves files around for you as you need them. All you do is sign in and it will serve you your music, playlists, etc. In the same way I can continue reading a e-book on my phone that I was reading earlier on my Kindle. Browser state is replicating across platforms as well.
The logical next steps would be devices where after authentication, your apps and data are just available and adapt to the device in a way that makes sense. Right now setting up a new laptop is a chore. You have to worry about installing stuff, configuring stuff. signing into stuff, backing up stuff, etc. Ideally all that goes away and you basically just pick up a device and start using it with zero effort. Or better even, the devices are integrated into the environment and simply adapt to you being there. Some apps won't make sense in all form-factors but many do.
Ever walked into a hotel room and after briefly fiddling with some alien hotel entertainment system simply watched netflix on your laptop? I watched netflix on a recent transatlantic flight and ignored the entertainment system 20 centimeters from my nose it's just better and I charged it using usb-c from my laptop. So, I walked out of the plane with a fully charged phone. What if those devices in hotels, planes, etc. would basically provide you all your stuff after a simple signin? Walk into a hotel and all your digital stuff is already there by the time you walk into the room?
And yes there are all sorts of concerns with privacy, security, etc. All solvable problems.
For device manufacturers this would liberate them from selling only one or a handful of devices per person. You could turn phones into fashion accessories. They pretty much are already but why just have one phone when you could have one to match each pair of shoes? Why fiddle with your phone when you step in your car that these days might have a huge touch screen and plenty of computing power. Convergence is much broader than just your phone + laptop.
I'm really excited about the software side of Purism but I can't justify buying a 2 year old processor on the laptop at a price still more expensive than alternatives, especially since that refresh happened in the last few months.
The CPU choice is restricted by their ability to disable Intel ME. If you don't care about that, you probably don't care about what Purism is trying to achieve, so it's not for you.
Lots of haters here. This company is trying to build a real alternative to the Apple/Google/MS oligopoly based on open source and respect for privacy. I'm really really tempted.
I'm not seeing many haters here. I am seeing a lot of people raising the issues they see with the idea, but that's not hating. For a project like this to be successful, people need to point out the problems it brings so that solutions can be found.
Convergence is not something of great value to me, but I don't object -- as long as mobile and desktop versions don't have to have the same user interface.
There's a huge mismatch between how users want to interact with desktop and mobile applications that makes convergence really hard to do effectively in a single codebase.
A lot of the issues mentioned there stem from platform differences though. The packaging hurdles and out-of-place UI style wouldn't be an issue on a convergent platform, though the difficulty and slight ugliness of QML/Kirigami wouldn't change.
It used to be much better (I run linux on my 2013 MBP, and used to run it on my 12" powerbook back in the day), but I think there's been some progress on the newer MBPs: https://github.com/Dunedan/mbp-2016-linux
I used to run Linux quite well on a 2013 MacBook Pro, then I got a new 2016 MacBook Pro through work, and ran into tons of issues and finally gave up running Linux on it and just use Linux on my home-built desktop. Issues included the keyboard not working out of the box, suspend not working quite right, issues with the dedicated+integrated GPUs, etc. I don't know the current state of Linux on recent MacBooks, but here are the two GitHub repos I had used: https://github.com/Dunedan/mbp-2016-linux and https://gist.github.com/roadrunner2/1289542a748d9a104e7baec6...
linux natively on Mac? Why? whats the point?? the experience will be just horrible and 60% of the hardware will be idle, unused or just incompatible. You'll get an overpriced Thinkpad wrapped in gorgeous Mac's case.
The amount of details, little "sprinkles" that average Mac and MacOS users take for granted is greatly underrated.
When you look at the stats from all native available hardware, sensors etc, it really feels that Macs are comparable to space shuttles, not a single OS can come even close to support all this (or will be allowed to)
I want my desktop OS to act like a proper desktop workstation and my phone to act like a typical smartphone. Don't force Windows 8 like experience onto me.
My hats off to purism for putting in the effort to free people from stinking thinking. Proprietary walled garden surveillance capitalism is not smart choice for people, your kids will be owned and controlled by the goolag. Stop deferring choices to terms and agreements for momentary fomo. If you live without GYTFA Gee-Your-Twit-Face-Azhole you can start to make the world a better place. Unless your paycheque depends on them keep prostituting your life and feeling useless.
It solves a _development_ problem, in that it reduces the amount of work needed to allow an application to reach a larger number of devices. Basically the same reason for things like React Native and PWAs.
> Ubuntu tried this - how'd that go?
So because someone else failed at solving a particular problem in a particular way previously, we should simply give up on it?
> It solves a _development_ problem, in that it reduces the amount of work needed to allow an application to reach a larger number of devices.
Sounds like a repeat of the Java strategy: you can run garbage nobody wants anywhere nobody wants to run it.
> So because someone else failed at solving a particular problem in a particular way previously
Microsoft also attempted it, and also failed quite miserably.
> we should simply give up on it?
Not necessarily, but at the very least you could avoid lying by omission (mentioning Google and Apple which don't exactly attempt convergence and pointedly ignoring every pre-existing attempt at the concept) and maybe consider humility and avoid overblown claims given you're not the first to attempt it, nobody's succeeded, there's no evidence available that you are succeeding, and you've really not shown anything which would made anyone think "this is going to succeed where everybody else failed".
> It solves a _development_ problem, in that it reduces the amount of work needed to allow an application to reach a larger number of devices.
That's great for developers, but how does that help users? As a user, I would rather use something built specifically for the device (and os) I'm using, I've used enough things that were supposed to work everywhere that it's a major turn off at this point.
If developers want to share code cross platform, really, the way to do it is write a shared core logic (probably in C, because that is available everywhere), and then write the UI from scratch everywhere, conforming to the platform guidelines (unless it's a media player). It's more work than hoping a write once run eveywhere will work well, but it delivers a much better result.
I think the GP meant to ask "what problem does this solve for end users?" It's hard to market to consumers if your primary differentiator is only useful to developers.
See also: Microsoft. The entire point of Windows 8 and later UWP were convergence.
In fact that article reads like pure bullshit, they're only mentioning the two OS vendors which are not attempting convergence (some cross-polination at best) and ignoring the history of suck and failure that is "OS convergence".
As a developer I'm fairly disappointed in how Ballmer messed this one up for us. C# is a nice place to spend your day. And the promise of write once run anywhere is really starting to materialize.
The problem it solves is writing an app suite for the phone from scratch. There's now a really quite capable web browser running on their phone, which is likely to be a far better experience than had they written it from scratch. Pair that with upstreams that appear to have enough goodwill to agree to maintain their patches for them, and it's obvious why they're pursuing this.
1. Visit a local PC store.
2. Attempt to buy a machine without any proprietary software.
What happens:
Almost always, a majority of PCs for sale have Microsoft Windows pre-installed. In the rare cases that they come with a GNU/Linux operating system or no operating system at all, the drivers and BIOS may be proprietary.
To each their own and all that, but this method of driving adoption never works. Virtually nobody makes decisions that way when they're shopping for a product that is important to their everyday life.
This was Tesla's big insight in the car market. Pre-Tesla electric cars were all ugly, terrible vehicles that apologized for their own existence. They wanted to sell themselves based on the fact that they were good for the environment, while never compromising those ideals to make them, you know, actually nice to drive. But that was never going to catch on, because very few people are so idealistic that they will suffer an annoyingly bad product in exchange for virtue. People will do that all the time with little stuff, but not with big ticket items that they use a lot. So the designers of early electric cars ironically cemented their negligible impact on the environment by refusing to compromise their ideals, because the cars never became popular.
Tesla came along and realized that what they had to do was make electric cars something you _wanted_ to drive. Because they were luxurious, and fast, and sexy looking. The fact that they were virtuous was just gravy.
So if your statement is a good summary of their strategy, then they've got it backwards. You never win adopters by making crappy things that support a good cause. You win adopters by making things that do their job well, and support a good cause as a bonus. And presumably even idealists want adopters, so they should revisit that :)
What? They're working on the GNOME mainline, so any computer running that desktop environment will benefit from their work. As for the mobile environment, there is no obstacle to it running on e.g. pmOS when it's ready, so any pmOS-supported device would benefit to some extent.
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.
11 replies →
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.
1 reply →
> 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.
25 replies →
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.
2 replies →
https://planetcom.squarespace.com I have the Gemini. It works. Have saved servers while in the middle of Siberia.
1 reply →
> 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!
7 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.)
5 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.
4 replies →
> 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.
3 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.
3 replies →
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).
1 reply →
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.
1 reply →
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.
1 reply →
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?
3 replies →
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".
1 reply →
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.
1 reply →
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!
3 replies →
> "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/
1 reply →
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.
The exciting part of this to me is not the ability to run the same software on two devices, but the potential to run two 'kinds' of software on one single device.
This unlocks what is for me the most appealing computing fantasy: I have exactly one device to compute with. At home or work, I plug it into my dock, where it pairs to an eGPU/monitor, external storage, keyboard, and mouse, and is my desktop computer. There, I can access the 'pro' level apps we're discussing below.
On the couch or on the go, maybe I slide it into a bigger touchscreen with some extra dumb batteries, and it's now a tablet. Throw in a keyboard case, and now it's a laptop.
And if I'm sitting on the bus or walking to work, it's my phone, and I can edit today's lecture right there, or access all my files. Maybe I'm not firing up emacs or MATLAB, but it's still there if I needed to.
This, to me, is the fantasy of convergence. And considering we're now currently paying $4000+ for the trio of a laptop, tablet, and smartphone, I suspect one could create something pretty compelling and high-end and still feel like a bargain to many.
I completely agree with your goal definition of convergence. The ability to have one device for all your computing needs. I don't expect to be able to do everything on a 5-6" phone screen, but I should be able to connect my phone to a monitor (or dock) and be able to do everything. The closest thing to this on the market is Samsung DeX but it's still incredibly limited.
or a GPDWIN2 with 4G card.
> $4000+
That's an excessive number. Great laptops can be had for under $1000.
Obviously, you could spend over $4000, but I don't think this is a reasonable number for most people. Even most 'computer' people. And who still buys tablets anyway?
iPad sales in 2018:
Q1 2018 13.17 million Q2 2018 9.11 million Q3 2018 11.55 million Q4 2018 9.67 million
I think a few people still buy them...
So if you spend $2500 on a MacBook Pro, $800 on an iPad, and then $1000 on your iPhone, boom, you're over $4000.
$4000 doesn't go very far.
4 replies →
> And who still buys tablets anyway?
I do. I find them quite handy (I own 5 right now), although I admit that I use them as special-purpose devices rather than for general purpose use.
I do machine learning and that budget it too small.
1 reply →
Outside of Intel Phi, is there anything like an eCPU? That would be really cool, and could be exactly what we need.
Back before Thunderbolt, I used a mini-PCI-express to PCIE adapter for more GPU power. This was great for games, but I immediately became CPU-bound, which wasn't so great.
To fix this, you could have something like Big.Little but where the Big cores are external and only used when connected. Heck, then you could do something like a Big.Medium.Little architecture, where the phone's integrated Big.Little bows to the higher IPC cores in the eCPU device.
In this way, you would be able to have something that was a "soul" device that had all your settings and stuff on it, with expandable CPU & GPU computing resources. Expanded storage would also be pretty neat, but then you'd have to figure out what did and didn't need access when you were away from your "exosuit".
You should probably check this project, the EOMA68 (Embedded Open Modular Architecture): https://www.crowdsupply.com/eoma68/micro-desktop
The computer is actually like a computer card, that you can slide into different devices. A lot of parts like for example the casing for the laptop "case" are 3D printable.
The computer card is 65$ and then you can print your own laptop or you can buy the parts from them. If something breaks, print your own replacement part.
The icing on the cake: The "Respects Your Freedom hardware product certification" ("currently in progress with no known blockers") from the FSF for the version with Parabola preinstalled.
https://www.fsf.org/blogs/licensing/support-the-libre-tea-co...
They commit to being fully Libre and want to go beyond this by:
" [...] providing full CAD files, schematics, and datasheets for all the parts (without NDAs) as well as having the 3D CAD files for the casework as a completely open GPLv3+ licensed project right from its inception. In addition, all firmware and kernel sources are GPL-licensed and will always remain so, and have been vetted in advance and do not contain any copyright violations or proprietary license-violating blobs (an extremely common practice nowadays)."
Another of their focuses is the environment.
The EOMA68 Standard: https://elinux.org/Embedded_Open_Modular_Architecture/EOMA68
Microsoft tried this on Windows 8, and it was a failure - as a desktop user, it was horrible to use. Even Windows Server 2012 got on this bandwagon, with a well-placed touch in the top right corner opening the full screen start menu - of course, totally unintuitive for desktop users.
Windows 10 still contains a lot of 'tablet friendly' features, but they've been dialled down and most don't get in the way of desktop users. I think they've struck a decent balance here between the needs of desktop, netbook and tablet users, but there is nothing here for smartphone users - converging those size-constrained needs with the rest is surely the trickiest thing to get right.
When looking at creating a convergent OS, I think it's really important we look at earlier attempts, so we don't repeat past mistakes.
> And considering we're now currently paying $4000+ for the trio of a laptop, tablet, and smartphone
Wha? My main laptop, tablet, and smartphone combined don't total up anywhere near $4000.
This was the dream to me that Samsung's "Linux on Galaxy" system would get close to.
They already have DeX which provides a large screen UI for your Android device. The next step which they have trialled, but AFAIK not release was to use a separate Linux Distro for the DeX component. Maybe not quite fully converged, but pretty close.
If you look at the bill of materials for a smartphone, the SoC is like... $20? Making the sort of interconnects you'd need and making them reliable enough probably costs about that much. For most people this need can be solved with software (Dropbox/OneDrive/iCloud), not hardware.
Maybe I just had a bad experience, but keeping multiple machines synced, particularly in terms of software configuration and options. Getting the various tools of a toolchain together once often sucks, doing it several times each time you make a tweak sucks extra.
Also, these sync services sound great, until you're losing data due to bad sync. I tried to use Google Drive for this and lost data. So, I'd rather have one machine, well backed-up.
1 reply →
This reminds me of the idea of "wouldn't it be great if we could use the same programming language for frontend, backend, and database queries". Well, maybe, but in practice not really. They are doing different kinds of things, you will have to use them differently, it doesn't really help all that much to have the same language. It SOUNDS like this would be really helpful, until you get it, and then discover that it doesn't really help all that much, because what matters most is not the language syntax, but the problem space.
Laptops and smartphones are made for doing different kinds of things. The real-estate requirements are different, as are the typical use cases, and even in the case where you solve them both with, for example, dynamic web pages, you still end up coding for both use cases separately, you just now have it all stuffed into the same codebase, which is harder in many cases instead of easier.
I believe Microsoft has been trying to make all OS usecases the same for decades. I believe they have not succeeded, not because Microsoft is deficient somehow, but rather because it's not, fundamentally, a good idea.
You can live that dream in clojure land! Clojurescript on the front end, Clojure on the backend, and datalog/honeysql for the database if you'd like. And it is awesome! After using a stack like this I'm spoiled for the slog that is developing in separate languages for each of those things.
I think that dream is possible with OS usecases as well, it's just that nobody has made it work yet. And I can't think of a better way to eventually get there than to build it slowly out of free and open source software. It might take a while, but since people have the ability to adapt the software to their needs when it is free, I'm confident with time that it will serve those needs.
It never works out that way though.
Clojure for the frontend? What about native APIs that you need to use on, say, iOS or Android? What about graphics libraries and APIs? What about browser APIs? I'm sure you can write your own wrapper or bindings for whatever you need, but it's an ongoing effort/pain that isn't worth it for most people.
Every platform, backend or frontend, supports specific languages that are suitable for the platform's problem space and are subsequently preferred by the platform's community. Software rarely stands alone. You can always go against the grain with your own efforts, but it's no longer a dream, just another compromise.
5 replies →
I'm glad it's working for you. My usual work involves python, javascript, and occasional SQL, and really the syntax is not that much of an issue. The problem space difference matters a lot more (for me) than the syntax (which an IDE can help me with anyway).
I think part of the motivation was also managers thinking they could easily shuttle developers between frontend, backend, and database work, and that has mostly not worked out, because what takes time to learn about each is not the language, it's the problem space and the tradeoffs.
But, if it's working out for you, I'm glad it is. I was not impressed.
You can live that dream in clojure land!
Spending 70% of your time doing tedious interop doesn't sound like living the dream ;)
1 reply →
Just for myself, I will say that I know how to do some amount of management on Linux. That the same sort of thing is available on the phone, and that I could use that knowledge out of the box, is exciting to me.
For example: SSH clients and servers. I've tried playing with various apps from F-Droid to make it happen, with varying success. If I have just Linux, I know what should work. Another one is backups. I have a better sense of what I need to back up on a common Linux system than an Android-like one.
I'm totally with you here.
Last year, I realized that the direction that smartphones have taken is not a direction that is good and useful for me, so I decided that I'd better design and build my own smartphone before I need to replace the one I have. I have it breadboarded up and fundamentally working. It should be completed this year.
One of my very first decisions was that the phone was going to run ordinary Linux, for all of the reasons you cite. I'm VERY excited about being able to ditch Android!
I've become unenthused about this software "dream". Having spent years designing and building UIs on the web, what I've learned is that:
1) Convergence works great for "casual" apps - messaging, stores, content feeds, etc.; anything where the amount of stuff you need to see on screen at once doesn't need to be especially large. But the web already does a great job of making this type of application both responsive and cross-platform.
2) Advanced, dense professional tools will never adapt automatically to mobile screens in any meaningful way. And frankly, these are all I find myself installing natively on my desktop anymore.
The vast majority of software these days falls squarely into one of these two camps, and neither seems to benefit much from the prospect of convergence.
> Convergence works great for "casual" apps - messaging, stores, content feeds, etc.; But the web already does a great job of making this type of application both responsive and cross-platform.
I'd argue this is where Convergence actually works best. (Especially the way Windows does it, anyway).
For most people, "casual" apps are 95% of what they need a computer for. And the web does a good job, but not a great job, at making these apps responsive and cross-platform. Usually, these applications sacrifice lots of performance and/or usability and/or reliability, just for the benefit of being able to run in a browser. Which is fine if that's a trade-off you want to make, but this is usually not being done out of benefit for the user.
Convergence can help fix part of this, by reducing the cost of native app development even further while preserving the majority of the quality/performance/usability benefits native apps provide.
> the web does a good job, but not a great job, at making these apps responsive and cross-platform
I would say the web does an adequate job, not a good job, at this.
I share many of your feelings.
However, I think you should think of this in a different light: Purism's real problem is: How do we bootstrap this device?
That is to say, there is simply not enough money / engineering talent to both develop all the hardware AND all the software needed to bootstrap this thing. It must appear "viable" to the public as a 1.0 product.
Therefore, using convergence to bootstrap the product and then building out native UI's in further versions is probably the best decision.
The key factor, I believe, is how much needs to be shown onscreen at the same time. Your newsfeed can be compressed to a smaller screen because you can simply show less of it, without sacrificing the core goal of the view. Whereas, consider a desktop app with multiple panes that show different information about the same subject. The default way to condense this would be to arrange the panes into a single vertical column that you could scroll up and down. But if you need to see them all at once, this adaptation is useless. At some point there are only so many physical inches of screen space.
I used to dream about hyper genericity for UIs .. deeply. Now I don't really care. odd.
I worked on this stuff for Ubuntu. I think this can work pretty well for some classes of apps - browsers, chat/messaging apps, voice/video calling, terminal, contacts, gallery, music player etc - relatively light weight (at least in terms of interactions) apps.
Android/ChromeOS and iOS/MacOS are already moving to this direction for these classes of apps.
It doesn't work so well (or is more difficult to execute well, or at all) on apps with very dense UI - video editing, 3D design, IDEs, interface design apps, CAD etc
An aside - I'm not sure I'd use GTK+ for this. Why not Qt, or something like Flutter?
> An aside - I'm not sure I'd use GTK+ for this. Why not Qt, or something like Flutter?
This is why ubuntu phone tanked. Trying to be too smart and centralizing. Librem5 phone will probably succeed on this but not for the reasons their marketing people think (convergent apps with magic! ha!). PureOS will be as irrelevant tomorrow as it is now. But their phone, being a proper linux phone like android never was, will have some small chance of success after the community buys into it and start porting a decent effort to the applications.
here's to hoping we have a usable (non-android) linux phone in the future!
Interestingly web- or electron-based 3D, CAD and IDE apps are gaining mindshare at quite a clip.
definitely, I think a lot of dense UI pro software works well on the web. Just not necessarily on mobile
Why not gtk+ though?
That's cool, and it's good to see work going on in more fundamental building blocks of Linux like Gnome to support mobile and reactive UIs. I always felt like this was the biggest blocker to using a Linux system on handheld devices - having a good ecosystem of open source projects that work for that, and having the ability to pick your own desktop environment and components rather than having to have an "all in one" solution equivalent to Android. Admittedly I know that isn't a killer feature for average users - they do want the all in one solution. But having these things available makes it easier for a company like Purism to build a product using existing software.
It feels like this announcement is missing a step though. What can we do with this? Does this allow plugging your phone into a monitor and then running your phone apps in larger windows (eg, the opposite of what's shown in the videos). The idea of having the same programs running on your phone and laptop is nice in theory, but I'm quite happy with my own custom Linux setup on my laptop, I don't want to install PureOS on there.
Of course, much more work will need to be done in other programs to support this. The Gnome Web example looks really slick, and it's great to see this sort of 'responsive design' applied to native application interfaces - Android took a step backwards in this regard. But on desktop I'd rather use Firefox, and they have entirely separate builds for desktop and mobile. I wonder if Mozilla have any plans to support this?
> ...I'm quite happy with my own custom Linux setup on my laptop, I don't want to install PureOS on there.
PureOS is just Debian with a few tweaks. This work is being done as part of the GNOME mainline branch, so any GNOME user is going to benefit from it down the road. And as "alternative" Linux desktops (MATE, Xfce, LXDE) transition to GTK3+, users of these environments will likely be able to make use of it, as well.
Exactly, and this is why it's an important development. But the article starts out by saying it's allowing "applications to run on both the Librem 5 phone and Librem laptops, from the same PureOS release." which is sort of missing the point - this isn't about about buying a phone and laptop from them so that you can use their software on both, but an important step on Linux for handheld devices.
Good to see that Gnome are involved in this themselves too, and it's not some Purism fork of Gnome.
LXDE transitioned to Qt, under the name LXQt.
To be frank, I don’t see the benefit of convergence. Admittedly, one code base is cool and convenient, sure but if one considers the additional cost of design, maintenance and the loss of the optimal user experience, I think convergence is rather a minus. A small touch screen requires a totally different convention of user interactions as a big screen with only mouse and keyboard support. It’s simply the reality.
Instead of trying to reinvent the wheel (admittedly a new and shiny one), why don’t we just stick to the well proven approaches and design different UIs and front ends for different platforms? The bulk of the codes would go into the common business/security layers anyway. With CI/CD, each user would have his/her app with the same functionality but different UI for the optimal user experience without much headaches or additional burden.
> I don’t see the benefit of convergence.
To me the benefit is not to have a single application that works both with a touch screen and a mouse/keyboard. Rather, the benefit is to have a single filesystem that I can access with both touch screen apps and mouse/keyboard apps. This way I could for example create a grocery with a mouse/keyboard, then take my phone and check items off with a touchscreen. There are lots of things we rely on the cloud for that would be better served by a "convergent" environment imo.
I use Syncthing right now to achieve the effect of having a shared file-system across all my devices. It works really well and since it doesn't rely on any sort of cloud or client-server architecture it even works offline if you're on the same network.
https://syncthing.net/
Lol. And this pipe dream of magically converting apps to phone doesn't even address this use case of sharing the data. They assume the linux applications will be cloud locked-in like traditional ios/android apps.
Windows has had this with .NET apps for... Oh, pretty much since there has been a .NET. I had written several apps for Windows CE that ran both on desktop and mobile (same EXE file, even). Today, you can do it with UWP.
It's a shame Windows Phones didn't take off. They had a great UI paradigm and I think Microsoft has done a lot of very hard work that goes mostly unappreciated in the development world, just because Google's reputation is still based on a decade-old memory of their (never official) motto "don't be evil". Microsoft hasn't been the "Halloween Papers" company for longer than Google has been a company, period.
EDIT: I'm not saying MS isn't an evil corporation. I think all corporations get to some degree of evil proportional to their size. But for some reason, Google and Apple don't get that same evaluation, getting some sort of pass, that I think is worse in the specific case of Google (being an ad-tech company). We are collectively missing out on a lot of inovation and market diversity because of this cognitive dissonance.
Yeah, as someone who still carries an HP Elite x3 and uses some of the same apps on my phone and my desk, I found the claim of being "first" Purism made here to be... hilarious.
I loved my Lumias, still use one of them as my secondary phone.
And also like UWP a lot, although its implementation was rather clusmy with the whole DevDiv vs WinDev issues.
> They had a great UI paradigm
Many people liked that paradigm. I am not one of them.
We can probably agree that it was at least a little better than just cramming Gnome into a small screen, right?
I keep looking at their products (laptop & phone) and can't pull the trigger based on what seems like a lack of apps/UX. I really want have better privacy and support companies with that in their DNA. I almost purchased a black-phone before.
I really think sandboxing built-in emulator for android apps has to occur for the phone to get traction. I think i'm their ideal consumer and still can't see the value yet. I'm a technical person who is willing to deal with some issues/trade-offs for privacy, but still can't reach the tipping point to purchase.
I also think this a place where duckduckgo could partner with with their services. I think most consumers wants things to be polished and just work.
> I really think sandboxing built-in emulator for android apps has to occur for the phone to get traction
> I think i'm their ideal consumer and still can't see the value yet
I don't think you are their ideal consumer. They're appealing to the Stallmans, the people who aren't looking to replace their smartphone, but for which this would be one of their first. I have heard someone say about the Pinephone (similar project): "I don't want a smartphone. But I want this. "
I do think they could vastly expand their appeal by adding Android emulation, but I have a feeling using the (which seems like the) market leader (Alien Dalvik) would be some licensing hassle, as you'd want to allow people to install their own distro and still use it. Add to that the whole (admittedly important) thing about everything being open software.
> I don't think you are their ideal consumer. They're appealing to the Stallmans, the people who aren't looking to replace their smartphone, but for which this would be one of their first.
That's certainly part of it, however I do have an iPhone currently, (seems like a better, if less than ideal option than Android), however am not happy about the locked down nature of iOS. Free software smartphones are necessary simply because they're the frontier the PC was in the 80s.
> I don't think you are their ideal consumer. They're appealing to the Stallmans
I would disagree with this point. I think this is exactly what the Purism marketing would like you to believe, but in reality, it just isn't true.
I would class myself as on the Stallman spectrum - I use a libreboot'd X200 running Trisquel, a dumbphone, no social media etc, email providers using Free Software, and so on.
In my experience of the community, Purism is very much disliked by many, and even seen as harmful to the efforts of the Free Software community. The inclusion of PureOS on the FSF distro list has more to do with technicality rather than recommendation and their hardware is pure marketing BS.
Acknowledging that missing Google Play Services is a big deal and will in fact miss most apps that people want when they think "android", you could do it with AOSP which is mostly Apache-licensed. As for having to install Google Play Services yourself, lineageos users don't seem to mind.
The app issue is a chicken-and-egg problem that ultimately sank Windows Phone, Blackberry 10 OS, Palm WebOS, Firefox OS, Sailfish OS and Samsung Bada OS.
Fortunately in 2019, mobile devices aren't as reliant on native apps. I use Uber's PWA and Google Maps Go PWA, which used to be my biggest app-only dependencies. For other stuff, I find that the stock music and video player apps are more than good enough.
Was very interested in their stuff. I was very disappointed when I saw a demo of the current state of Librem 5 running on development hardware. It did not look good. Laggy and slow. Very bad UI/UX.
I was a little disheartened as well, but that video was made early on in development. There was and still is time for optimization. I don't think the hardware is incapable of a smooth user experience. It's a software problem.
Canonical has been trying to make a mobile OS since 2012, KDE since 2011. Do you guys honestly think a company of 27 employees is going to make this work?
I'm not sure that what Canonical can or can't do has much bearing on what others can or can't do. I also don't think that the number of employees means all that much. Very often, smaller teams can be more focused and able to accomplish more than larger teams.
Yeah, let me know when less than 25 developers crank out a working mobile Linux distro that will continue to be supported in 5 years. Looking at all the failed projects in the past and all the managements complexities like software support, modern touch integration this is virtually impossible. They'll likely have a brief stint releasing some Debian ARM based mobile OS with a limited selection of software. You'll get some GTK Calendar, Calculator, etc. The basic crap that imitates Android phones from 2011. And it will be supported by up to 5 or so devices, hopefully without some impractical rooting method.
Linux barely exists as a desktop operating system as is. The only difference nowadays is smartphones don't have that freedom of customization desktops provide. Smartphones are consumer centric devices, you can't even swap batteries anymore. Leading OEMs have no interest in supporting an obscure operating system, they know the majority of users want Android.
When Purism releases this as an OOTB product, it will without a doubt run on some no named Chinese Phone that holds the mediocre power of any low end Android Device. Only it will be $600, rather than $180
4 replies →
Canonical was unfocused, and the new CEO shelved it.
And yes, I do believe it's possible.
As far I know Gnome 4 constraint-based layout [1] is still in planning phase. So how devs are going to build responsive UIs for different screen sizes? PS. I work on a Ubuntu laptop.
[1] https://wiki.gnome.org/Projects/GTK/Roadmap/GTK4
I wish they just focused solely on the hardware, then used the die-hard fan's money to develop the software. I'm going to run NixOS on this phone (maybe with an entirely CloudABI userland), and it's going to be better than their distro. Yeah their apps will be useful in that context, but I would be OK with rewriting them too.
This is just a Linux distro, right? Not a new operating system.
Yes, but you can get a long way tailoring a Linux distro in a particular way. In an extreme example, Android is a Linux distro.
This is closer to conventional in that it's still Debian and Gnome, but if they are putting development work into making that a cross-platform system then everyone benefits.
yes. But they are so insane about talking like it is a innovative OS that this is probably the biggest reason most people consider their laptops for linux and give up, afraid they won't work well with ubuntu or fedora.
Yes, it is based on Debian.
Slightly off-topic, is anyone using Librem laptops? What has your experience been? They look nice.
I've always wanted a nice secure Linux laptop to work on but I'm not eager to waste hours upon hours getting the drivers to behave (my experience with Linux on the desktop is a bit dated).
I bought Thinkpads for work, installed Fedora on them and everything worked out of the box, right down to the keyboard backlight dimming.
The things you have to watch out for are: * Use an up to date distro with an up to date kernel (e.g. Fedora) * Graphics are the only real driver issue. Easiest solution is to buy something with integrated Intel, but some cards are well supported, you just need to check * Battery life will be worse compared to Windows on a machine normally sold for Windows. This situation may be better on things designed for Linux, like Dell Sputnik stuff and Purism, but I have less experience with them
your experience is more than 20yrs out of date. And i am not even exaggerating.
Drivers in linux normally gives you less problems than OSX or Windows (latest graphic cards model excluded)
My less than 5 years experience is still waiting for the beautiful AMD open source drivers to give me back the video acceleration and OpenGL Features from fxglr.
One of these days, the laptop will just get back W10 with its DirectX 11 drivers.
Dunno about that. I have a Dell XPS 9350 - to get a stable wifi connection under Linux I had to pull the Broadcom wifi card out and replace it with a much nicer Intel one (good luck doing that on the 2018/9 model - it's soldered in).
For a couple of years, the internal NVMe drive wasn't supported unless you changed from "RAID" to AHCI mode - unknown performance and power effects. It looks like that's changed recently.
I remember windows phones around Windows Mobile 5.x/ 6.x era: the executable programs that run on the phone, if the exes were to be copied onto a windows PC, the exes ran the same like native PC exes. I do not know if that is still the case with windows mobile.
The only thing in common is Windows in the name.
Kernel is unrelated, .NET version are unrelated, there is a sandbox in place, COM has been redone, only a Win32 subset is supported.
I thought win10 shared kernel between mobile and computer?
It seems really familiar to the decision of going with many repos vs a mono repo.
Slightly OT but I hope PureOS doesn't lock down root access like Android does. Or at least release an official way to root their devices.
Its neat, but doesn't make sense for a majority of apps/programs. Why would I run GIMP/Photoshop or any Graphics-heavy program on my phone? Why run any GPS-enabled app on my Desktop?
Maybe not phone yet, but tablets (running the same OS) are getting extremely powerful and the apps are coming. [1]
[1] https://www.theverge.com/2018/10/15/17969754/adobe-photoshop...
https://www.penny-arcade.com/news/post/2013/02/22/the-ms-sur...
I wish this don't turn out like the Ubuntu Phone Convergence dream.
I bought a libre13 DESPITE pureOS.
PureOS is just a distraction. instead of adding a usbC port to their already outdated computer line, or lowering the absurd price (there is a reason their clientele is exclusively in california and germany) they are fiddling with linux distros like it is 1995.
This is the same old a phone-just-need-a-browser idea of 10 years ago. This will fail, for the same reason firefoxOS failed: There is no whatsapp (or lock-in chat app du jour) website.
This is incredible. I've been waiting for a commercially supported Unix/Hardware vendor since Apple products have tanked in Quality under the new CEO.
I used to be really excited about the idea of convergence. I still think it's cool, and I hope it gains more traction, but after working on more webapps designed for desktop and mobile, there are definitely challenges. The "write once run anywhere" pipe dream is quite elusive. I think something like React Native's "learn once write anywhere" philosophy might be more realistic.
The article started off with a wild assertion, that "Purism is beating the duopoly to that dream". A duopoly on computing? Windows is still by far the biggest desktop computing platform. They may have messed up mobile, but that doesn't make them irrelevant.
it does if you're talking about two platforms converging. Be hard to win that race with one platform.
That probably means that Android is not converging with a desktop platform anytime soon, except for a negligable fraction of users.
Chrome OS certainly isn't a part of any duopoly. Not even close.
1 reply →
The opportunity here is not just convergence but multi modal. We have bits and pieces in the current world but frankly it's a big stinky mess that is poorly integrated. Most of this stuff is just horribly limited and single vendor walled gardens.
A good positive example or how things should work is spotify. I regularly switch between my desktop, laptop and phone and the spotify instances seem to be aware of each other. I accidentally started playing music at home while at work today because my laptop spotify was still targeting my home desktop. Just works.
What matters here is that spotify is available on multiple platforms; it moves files around for you as you need them. All you do is sign in and it will serve you your music, playlists, etc. In the same way I can continue reading a e-book on my phone that I was reading earlier on my Kindle. Browser state is replicating across platforms as well.
The logical next steps would be devices where after authentication, your apps and data are just available and adapt to the device in a way that makes sense. Right now setting up a new laptop is a chore. You have to worry about installing stuff, configuring stuff. signing into stuff, backing up stuff, etc. Ideally all that goes away and you basically just pick up a device and start using it with zero effort. Or better even, the devices are integrated into the environment and simply adapt to you being there. Some apps won't make sense in all form-factors but many do.
Ever walked into a hotel room and after briefly fiddling with some alien hotel entertainment system simply watched netflix on your laptop? I watched netflix on a recent transatlantic flight and ignored the entertainment system 20 centimeters from my nose it's just better and I charged it using usb-c from my laptop. So, I walked out of the plane with a fully charged phone. What if those devices in hotels, planes, etc. would basically provide you all your stuff after a simple signin? Walk into a hotel and all your digital stuff is already there by the time you walk into the room?
And yes there are all sorts of concerns with privacy, security, etc. All solvable problems.
For device manufacturers this would liberate them from selling only one or a handful of devices per person. You could turn phones into fashion accessories. They pretty much are already but why just have one phone when you could have one to match each pair of shoes? Why fiddle with your phone when you step in your car that these days might have a huge touch screen and plenty of computing power. Convergence is much broader than just your phone + laptop.
I'm really excited about the software side of Purism but I can't justify buying a 2 year old processor on the laptop at a price still more expensive than alternatives, especially since that refresh happened in the last few months.
The CPU choice is restricted by their ability to disable Intel ME. If you don't care about that, you probably don't care about what Purism is trying to achieve, so it's not for you.
If that was true, they would be using AMD or ARM. Seems to be a matter or price/stock only.
2 replies →
Everyone in this thread complaining about phones without keyboard and Blackberry had a keyboard android phone flagship for a decade but nobody cared.
You all deserve crappy media-consumer-only phones. :(
That thing had a locked bootloader, no matter how nice the hardware I am not buying a device with a 2-3 year lifespan.
Lots of haters here. This company is trying to build a real alternative to the Apple/Google/MS oligopoly based on open source and respect for privacy. I'm really really tempted.
At this exact moment there's three comments including yours. What are you referring to, exactly?
Priming the tribalism lines, I'd guess.
We seem to yearn for our turf wars to the degree that we help them along. Not sure why.
There's a dead comment too. Before his post there were only negative comments.
The important part of his comment is not the first four words though. We should probably not focus on that.
I guess this person's definition of "lot" is a bit different from ours.
probably "here" as in HN at large
I'm not seeing many haters here. I am seeing a lot of people raising the issues they see with the idea, but that's not hating. For a project like this to be successful, people need to point out the problems it brings so that solutions can be found.
Don't the screenshot just show the GNOME desktop environment?
The blog post is about improvements to GNOME and GNOME apps, not that surprising that the screenshots are of GNOME then?
Convergence is not something of great value to me, but I don't object -- as long as mobile and desktop versions don't have to have the same user interface.
Those are pretty expensive, but the idea to have fully supported Linux phone and 15" laptop is great! I'd very much like to own those.
>If you’ve ever had an app on your phone that you wanted on your laptop, you’ve wanted convergence.
Isn't that just called portability?
I just hope that better touchscreen / tablet support is realized from the efforts put forth in this project!
Here's a report of the effort involved with making the Subsurface dive log desktop application run on mobile as well. The tl;dr seems to be that
1) it was a lot of work
2) users don't like the result very much
https://lwn.net/Articles/780031/
There's a huge mismatch between how users want to interact with desktop and mobile applications that makes convergence really hard to do effectively in a single codebase.
A lot of the issues mentioned there stem from platform differences though. The packaging hurdles and out-of-place UI style wouldn't be an issue on a convergent platform, though the difficulty and slight ugliness of QML/Kirigami wouldn't change.
I saw the presentation, lack of experience with mobile development naturally doesn't produce high-quality results.
I remember there were some statements how things work, related to issues they faced, which were plain wrong.
What's the state of running linux natively on Mac these days?
It used to be much better (I run linux on my 2013 MBP, and used to run it on my 12" powerbook back in the day), but I think there's been some progress on the newer MBPs: https://github.com/Dunedan/mbp-2016-linux
I used to run Linux quite well on a 2013 MacBook Pro, then I got a new 2016 MacBook Pro through work, and ran into tons of issues and finally gave up running Linux on it and just use Linux on my home-built desktop. Issues included the keyboard not working out of the box, suspend not working quite right, issues with the dedicated+integrated GPUs, etc. I don't know the current state of Linux on recent MacBooks, but here are the two GitHub repos I had used: https://github.com/Dunedan/mbp-2016-linux and https://gist.github.com/roadrunner2/1289542a748d9a104e7baec6...
The 2015 MBP runs amazingly well out of the box. The Touchbar generation not so much, but it's getting better.
linux natively on Mac? Why? whats the point?? the experience will be just horrible and 60% of the hardware will be idle, unused or just incompatible. You'll get an overpriced Thinkpad wrapped in gorgeous Mac's case.
The amount of details, little "sprinkles" that average Mac and MacOS users take for granted is greatly underrated.
When you look at the stats from all native available hardware, sensors etc, it really feels that Macs are comparable to space shuttles, not a single OS can come even close to support all this (or will be allowed to)
> The amount of details, little "sprinkles" that average Mac and MacOS users take for granted is greatly underrated.
Especially those sprinkles that get stuck under the keys ;)
1 reply →
Looks like somebody found a new buzzword.
I want my desktop OS to act like a proper desktop workstation and my phone to act like a typical smartphone. Don't force Windows 8 like experience onto me.
My hats off to purism for putting in the effort to free people from stinking thinking. Proprietary walled garden surveillance capitalism is not smart choice for people, your kids will be owned and controlled by the goolag. Stop deferring choices to terms and agreements for momentary fomo. If you live without GYTFA Gee-Your-Twit-Face-Azhole you can start to make the world a better place. Unless your paycheque depends on them keep prostituting your life and feeling useless.
This is nice, but what problem does it solve? Mobile and Desktop operating systems solve different issues on their own.
Ubuntu tried this - how'd that go?
Second issue is: how do I use it? How can I install it on MY devices?
I'm all for privacy and I want to is it, just seems like a dream and it will never come to fruition
> This is nice, but what problem does it solve?
It solves a _development_ problem, in that it reduces the amount of work needed to allow an application to reach a larger number of devices. Basically the same reason for things like React Native and PWAs.
> Ubuntu tried this - how'd that go?
So because someone else failed at solving a particular problem in a particular way previously, we should simply give up on it?
> It solves a _development_ problem, in that it reduces the amount of work needed to allow an application to reach a larger number of devices.
Sounds like a repeat of the Java strategy: you can run garbage nobody wants anywhere nobody wants to run it.
> So because someone else failed at solving a particular problem in a particular way previously
Microsoft also attempted it, and also failed quite miserably.
> we should simply give up on it?
Not necessarily, but at the very least you could avoid lying by omission (mentioning Google and Apple which don't exactly attempt convergence and pointedly ignoring every pre-existing attempt at the concept) and maybe consider humility and avoid overblown claims given you're not the first to attempt it, nobody's succeeded, there's no evidence available that you are succeeding, and you've really not shown anything which would made anyone think "this is going to succeed where everybody else failed".
2 replies →
> It solves a _development_ problem, in that it reduces the amount of work needed to allow an application to reach a larger number of devices.
That's great for developers, but how does that help users? As a user, I would rather use something built specifically for the device (and os) I'm using, I've used enough things that were supposed to work everywhere that it's a major turn off at this point.
If developers want to share code cross platform, really, the way to do it is write a shared core logic (probably in C, because that is available everywhere), and then write the UI from scratch everywhere, conforming to the platform guidelines (unless it's a media player). It's more work than hoping a write once run eveywhere will work well, but it delivers a much better result.
2 replies →
It solves a _development_ problem
I think the GP meant to ask "what problem does this solve for end users?" It's hard to market to consumers if your primary differentiator is only useful to developers.
5 replies →
How does it solve a development problem when an ecosystem doesn't really exist (On Linux) in the real world?
> Ubuntu tried this - how'd that go?
See also: Microsoft. The entire point of Windows 8 and later UWP were convergence.
In fact that article reads like pure bullshit, they're only mentioning the two OS vendors which are not attempting convergence (some cross-polination at best) and ignoring the history of suck and failure that is "OS convergence".
As a developer I'm fairly disappointed in how Ballmer messed this one up for us. C# is a nice place to spend your day. And the promise of write once run anywhere is really starting to materialize.
The problem it solves is writing an app suite for the phone from scratch. There's now a really quite capable web browser running on their phone, which is likely to be a far better experience than had they written it from scratch. Pair that with upstreams that appear to have enough goodwill to agree to maintain their patches for them, and it's obvious why they're pursuing this.
It solves bug #1
This bug is widely evident in the PC industry.
Steps to repeat:
What happens:
Almost always, a majority of PCs for sale have Microsoft Windows pre-installed. In the rare cases that they come with a GNU/Linux operating system or no operating system at all, the drivers and BIOS may be proprietary.
https://bugs.launchpad.net/ubuntu/+bug/1
> It solves bug #1
It doesn't do so anymore than ubuntu already does.
4 replies →
remember Ubuntu Touch?
What about it? UBports is still under development, Canonical just bailed out because they wanted to cut their losses and jump for an IPO.
I've got to switch to your laptop and your phone to get the benefit of being in sync? No thanks. Not worth it to me.
No, you switch to their products because you agree with their goals and want to support the cause. The benefits are a bonus.
To each their own and all that, but this method of driving adoption never works. Virtually nobody makes decisions that way when they're shopping for a product that is important to their everyday life.
This was Tesla's big insight in the car market. Pre-Tesla electric cars were all ugly, terrible vehicles that apologized for their own existence. They wanted to sell themselves based on the fact that they were good for the environment, while never compromising those ideals to make them, you know, actually nice to drive. But that was never going to catch on, because very few people are so idealistic that they will suffer an annoyingly bad product in exchange for virtue. People will do that all the time with little stuff, but not with big ticket items that they use a lot. So the designers of early electric cars ironically cemented their negligible impact on the environment by refusing to compromise their ideals, because the cars never became popular.
Tesla came along and realized that what they had to do was make electric cars something you _wanted_ to drive. Because they were luxurious, and fast, and sexy looking. The fact that they were virtuous was just gravy.
So if your statement is a good summary of their strategy, then they've got it backwards. You never win adopters by making crappy things that support a good cause. You win adopters by making things that do their job well, and support a good cause as a bonus. And presumably even idealists want adopters, so they should revisit that :)
What? They're working on the GNOME mainline, so any computer running that desktop environment will benefit from their work. As for the mobile environment, there is no obstacle to it running on e.g. pmOS when it's ready, so any pmOS-supported device would benefit to some extent.
How is this different from buying into the 'apple ecosystem'? It's just a different ecosystem.
Not saying that you agree with doing so for apple, but other people clearly do so there might be a market for it.