Re-Thinking the Desktop OS
twitter.com
twitter.com
We have so many different Desktop "OS's" already. There's hardly a need for a _revolution_; strong stability and support is needed but there's just no paying market for it by the looks of it.
4 biggest desktop environments are by mega corporations (apple, microsoft) and by big open-source collectives (Gnome, KDE). But is that it? No, there's also a bunch of tilling-window managers with their own desktop philosophies, there are entire terminal drawing frameworks with full GUI support.
Desktop is awesome. If anything mobile is the one needing to catch up. iOS and Android are awful, awful environments outside of casual usage. Just try writing up a document on your phone! Just imagine what could be if they were on the level _desktops_?
Real question: Do we continue to dumb down software to exclusive casual usage for house-moms or we try to move our society to be more techn savy as we are clearly moving to a more tech relying world. Why shouldn't everyone know how to code?
To paraprashe Mr. Engelbart: it's a failed tool if you use it exactly the same way the day you bought it and a year after.
To quote a commonly-used Web meme: "Why not both?"
In my opinion, why should a software tool only have one interface to it? What if there were many possible interfaces available, from very simple interfaces with reasonable defaults for casual users, to more option-rich interfaces for power users, to an API for programmers. What if we could take advantage of today's AI technology to automatically construct GUIs that are tailored to a user's experience level? What if users could customize the GUIs in order to make the GUI fit their needs better?
What if the system supported a variety of languages, not only common languages such as Python that many programmers are familiar with, but also beginner-friendly languages? Users are willing to program provided it's not too difficult: AppleScript from the 1990s was a step in the right direction, and Excel's macro language is probably the most widely-used programming language in the world. With today's AI/NLP technology, we could go further by developing ways for users to describe repetitive, routine tasks using natural language.
I think there's still a lot of room for innovation on the desktop. But you highlight a very big problem: where is the market? Who is going to pay for this innovation? Outside of open-source projects, the major commercial desktop environments are platforms controlled by multi-billion dollar corporations. Building a new desktop environment that is capable of competing against the commercial giants will take a lot of time and capital. The last company to give this a try was Be, Inc. in the mid-1990s, and they had a hard time competing against Microsoft's OEM strategy. I wrote more about this at http://mmcthrow-musings.blogspot.com/2020/10/where-did-perso....
It's very, very difficult to beat a keyboard. Tablets and even phones become day vs. night more usable if you plug in a keyboard, even ignoring everything else that still sucks about them.
I find screen size to be a bigger advantage to desktop.
Mind that I mention it was specifically index finger swiping. Maybe it wasn't actually faster than physical keyboard, but it was certainly an order of magnitude faster than discrete thumbs phone typing.
This is what I telling non technical friends for years now: as they spend more and more time with computers and the internet the investment to learn what is under the hood and to have more efficient interaction with better tools becomes worth it more and more. You can't say any more you don't fancy or care about IT when you spend hours each day on a computer.
- not thinking about files: I can open Notes/Drafts on my phone and get a textbox. I kinda get this with Joplin, barely.
- Real sandboxing, with a nice permission layer
- Extremely easy sharing of data between apps. Of course files are theoretically a great sharing mechanism, but the sharing mechanism in mobile OS's are the logical conclusion of the clipboard
- URIs that go deep into other apps. Lets you easily say "go over here to see details" from a completely separate system
The fact that lots of stuff are webapps lets you get pretty far on Desktop too but I think these metaphors are power user features that the desktop could learn from
Sadly, the developers never managed to go beyond a few core libraries and a nice theme (the GUI used GNUstep under the hood). I followed the development with great interest till they stopped updating the site; I believe that the effort would have required many more developers. What a pity!
And I hate app-data not being files, not being portable. My data may be stuck inside a SaaS and only accessible through a closed-source app, and I have nothing to say about it.
> Real sandboxing, with a nice permission layer
Sandboxing apps is a good thing. Depending on your use-case, Snap/Flatpak or containers kinda solve this, but they are not the default way of running apps for now.
What mobile does wrong here though, is that it also sandboxes the user, not giving the user full access to his device, nor letting him let his apps get that access either.
This is user-hostile, on all current major mobile-platforms.
> Extremely easy sharing of data between apps
I would rephrase this as barely functional sharing, for only the limited subset of data the application has decided to implement sharing for, and only in ways the application-developers have considered inter-app sharing.
On a desktop, I as the user, have the power to decide how I want to share data and invent new ways data can be shared and utilized.
> URIs that go deep into other apps
While that is certainly a neat feature, it's an app-centric feature. How do you know which kind of apps I have installed? How do you know which of those apps within that niché I have installed?
And if you're not going to make it app-centric, you have to make it file/data-centric anyway... Which leaves us Android. Android does this better than iOS by having an intent-system which lets you register ability to handle both files, urls and subsets of those, and other apps can query for which apps supports which file/url-intents. So basically just a minor addition to the system we already have had on all desktop OSes for decades now.
And again: that's a system which already works really well when files are first-class concepts which everything else builds on.
So it's all back to files. If you want to empower the user, you must have files.
If you have a contacts program, are you going to make each contact a file? What about performance or bulk editing? From that program's perspective, the ideal is probably to have a single file (SQLite DB for example).
But now you don't have granular sharing mechanisms except through a clumsy export which requires you to give a name to the thing and put it somewhere and open it in the other program.
Meanwhile I hit the share sheet on my phone for the Contact. Some apps know about this form for data and can ingest it. Others fallback to text. It's the clipboard model, not the files model.
Files are _fine_, and it lets you do stuff like reverse engineer the format and do cool stuff. But it's clunky as hell when you have something relatively ephemeral.
Many (Windows) apps support OLE/COM-based objects which can be copied, mixed and processed in between applications. This allows the clipboard to hold rich objects and not just text-based contents. Things like tables, images, rich text, contacts... and even files, or folders of files!
This allows for a much more rich (and empowering!) way to share data than currently done on popular mobile platforms.
This was already implemented back in Windows 95 or something. It's really old tech. Not sure how well this concept is implemented (or at all) on other desktop operating systems though, so it might not be a "universal" desktop solution for everyone.
That said it can clearly be done better than mobile, because on Windows it has already been so for two and half decades.
Case in point: tried sharing a vpn config with an Android user over Signal. They couldn’t do anything with the file, just yielding an error message saying it was unsupported. Sending the exact same file with a .pdf extension allowed them to download it and import it in their VPN app (only after downloading and installing a generic file manager app, though).
Every now and then I struggle with some file that I can’t figure out how to move between apps. Something as seemingly simple as downloading an mp3 file from a browser and importing it to a music player app is quite an ordeal on iOS.
>Extremely easy sharing of data between apps.
hah no. Try sharing large batches of files on iOS. with plenty of apps there's no way to do this (and often the only way to do it if you can is with the files app.)
Why shouldn't everyone churn their own butter? Why shouldn't everyone sew their own clothes? Why shouldn't everyone build our own homes? Should we continue to dumb down feeding, clothing, and sheltering ourselves for exclusive casual usage of <insert offensive stereotype>?
There are only so many hours in the day and time in our lives; why hide the benefits of technology behind arbitrary gatekeeping?
I actually think some game user interface ideas should make it to the desktop. Game interfaces are always customizable up-front.
Selling pre-made butter or clothes doesn't prevent someone from making their own if the pre-made one doesn’t fit their needs.
In technology, making your own is often outright impossible due to proprietary APIs
In a lot of cases the inefficiency of the official implementation is a feature for the developer and they definitely do not want people to build more efficient clients (examples: no ads/irrelevant content, defaulting to chronological feed instead of algorithmic, etc) and use technical (and sometimes legal, like abusing copyright law) workarounds to make the process as difficult as possible.
We don't need to know how to sew our own clothes, but knowing how to mend them is useful. Do we really want to live in a world where we toss out a shirt simply because a button falls off?
We don't need to know how to build a home, but knowing how to fix simple problems is useful. Do we really want to live in a world where we have to call in an electrician every time we trigger a circuit breaker?
We don't need to know how to churn butter, but knowing how to cook is useful. Do we really want to live in a world where we depend upon someone else decides what goes into every meal we eat?
Yes, computers are there to do stuff for us and to save time. We should be exploiting that. On the other hand, we should not be reliant upon it to the point where it interferes with control over our own destinies or the creative process.
To get a driver's license you need some basic knowledge of car internals. I'd argue that computers are infinitely more important in our society than a car yet majority of people have absolutely no idea how computers work and are expected not only to live in this world but to ace it too.
The computer equivalent of what most people know how to do around the house is clearing the browser cache, restarting a service, running something at startup, and other troubleshooting steps like this. Stuff that you learn in under a day just like you would when learning basic clothes mending, replacing a faucet, changing a tire or your oil, or cooking a meal.
Any reasonable definition of "coding" is creating something. Like building your own electronic circuit, mechanical part, simple clothes, etc. This is beyond what a normal person is expected to know about their stuff as general knowledge in life. Everyone should just understand the principles of the tools they're using and basic "under the hood" stuff to assist with basic troubleshooting.
In reality in the parts of the world with higher standards of living (can afford stuff) this piling up of expectations just lead people to give up and pay for services rather than learn all that. And for good reason, modern society has this bad habit of taking every shred of free time and complicating your life, with unfortunate consequences.
Not necessarily creating something. The OP really did shoot themself in the foot by using the word "coding", where what they most likely meant was doing simple alterations to computing systems that require understanding some basic control flow structures - conditionals and loops. Things like, "I seem to be doing the same repetitive sequence of steps 100x a day, let me automate this somewhat". Think Tasker and bash, not JavaScript and C++.
> this piling up of expectations just lead people to give up and pay for services rather than learn all that
A small bit of knowledge can save you a lot of money in services. I can get why wealthy wouldn't care, but most people aren't wealthy. Also, I feel there's more pressure from the sales&marketing departments of services than from modern society's demands on free time.
The car is a relatively simple machine compared to a desktop computer, and unlike computers, most basic knowledge apply to all cars regardless of brand and model. Our computers are patched together with gaffa tape, they're not some timeless universal design the way the clutch in a car is.
In fact, in a way I become worse at using them because I know more about them - think about "just turn it off and on again" vs wanting to debug it and understand the root cause of whatever issue I'm having.
Where do you live that this is true?
There is much more to sewing clothes than threading a needle and guiding it through a button hole, at least if you want to make something that will fit and will last. The complexity of the product also plays a strong role.
Much the same can be said of coding. Being able to issue a command in a shell or compose a function in a spreadsheet is probably the closes analog to sewing on a button, but how many people can even do those things?
We live in a world where our phone's calculators are typically as powerful as a four function calculator from decades ago, perhaps with a subset of functions found on a scientific calculator. How do we expand our minds beyond that limited scope if vendors are afraid of creating software that allows us to compose anything more complex? With the status quo, we have to seek out options and those options are mostly targeted at professionals.
Similar things can be said for other domains. While writing of coding, I was actually thinking of graphics design and word processing and databases and the many other domains that have been over simplified by modern consumer applications. For the most part, their functionality has been simplified to the point where you can perform a very narrow range of tasks and have very little scope of the imagination. For example: that database that backs your address book cannot be adapted to catalogue your books, or the online word processor that is fine for writing reports is poorly suited for preparing a book for publications. Sure, there are professional alternatives out there. On the other hand, it seems as though people has a lot more flexibility with the software of the 1990's than the 2010's.
Exactly. That's why it makes a lot of sense to study/learn things outside your area of expertise, and/or if you want to lean on the more extreme side, study/learn basic survival skills (that everyone used to know before the agricultural revolution).
Related to this is the phenomenon of turning everything into service. Why would you own things and accept responsibility for maintaining them, if you could just throw money at the service provider and have the thing be present when it's needed? Of course the thing will be extremely limited in what you can do with it, subject to Terms&Conditions, but why would you want to do anything non-standard with stuff? There's always another service you can throw money at to solve the same problem.
What's the end-game here? That we specialize into sub-species of humans, forever stuck in one role, with zero autonomy? No longer building wealth, we'll only be allocating the flow of money - from what Society gives us in reward for our work, straight to Services of said Society? Will we become specialized cells of the meta-multicellular organism Society becomes?
I can see how we're on the path towards that reality, and I absolutely hate it.
A couple of million years without advancing is hyperbole to the extreme; specialization which you are touting has only existed for 100-150 years or so (see Foucault, Frankfurt school etc...).
/Collaboration/ has been a hallmark of civilization; but it is revisionist to say that we have always specialized to this extreme or seen it as a necessary goal. For example, the blacksmith of feudal society didn’t only make spoons, nor the farmer a single crop. If we want to critique previous civilizations; we even need to be wary of the fact that such systems were determined primarily through morality, such as /Plato’s Republic/ or /Confucianism/ rather than any ideal of prosperity. The farmer was a farmer because that was his/her place not because they were better or worse at it.
Even if I’m being charitable and equate division-of-labour to specialization; which, I think is a /huge/ leap — it does not counter the original point which is there is little autonomy in what you choose to do for a living in the logical conclusion of a system where you must specialize to compete.
1) Specialization leads to more autonomy
2) Extreme specialization is as "old as civilization"
3) Extreme specialization leading directly to prosperity as an idea is older than the 18th century
On 1) I don’t see any further arguments on your side; so I assume that you have no qualms with such a correction. On 2) I believe that I’ve adequately addressed your concerns — I acknowledge /Plato/ specifically in my reply as shown in your link and my critique on "Ancient theories" is covered in a previous post. The last point overlaps with the 2nd point and I have found no criticisms to the contrary in your answers.
On semantics and pendantry of terms I’m disinterested — we could debate all day and I could argue that the very term "Division of Labour" originated in Adam Smith’s work [1] and therefore isn’t the same as specialization. Such a debate would neither be useful nor productive.
[1] https://www.merriam-webster.com/dictionary/division%20of%20l...
I think it's crazy that some people don't cook. Like every house and apartment comes with a kitchen, what do you mean you don't use it? "It's so much cheaper" I say ignoring the fact that I'm a cooking and baking enthusiast and so I'm not counting the fact that if I valued my time at any reasonable rate it's really not.
It's the same thing in the woodworking community -- "you'll save so much money, anything you see in the store I can make half as good, for twice the price!"
Traditionally in urban areas most people actually purchased food instead of making it, because most people did not have kitchens.
You can kind of still see that today; many old New York tenements have been converted into apartments with "kitchens", but really this usually describes something about the size of an airplane bathroom with a stove, a fridge and 1 counter.
The aim should be to make programming/scripting/automation easier and more accessible, not to hide it away to prevent people from ever using it.
> Why shouldn't everyone churn their own butter? Why shouldn't everyone sew their own clothes?
Why learn history in school? Why learn math? Why learn about philosophy? Should we stop teaching that in school because the <stereotype> will never use it anyways? Or is the opposite true and not teaching that would be the actual gatekeeping?
TLDR: You suggest that this would hide <useful stuff> behind programming and thus be gatekeeping. I think you are hiding useful stuff==programming and are thus the gatekeeper.
Programming is not just like being a car mechanic or factory floor engineer, its like being an expert driver at the same time.
When I use my desktop, it often occurs to me that I could write something to speed up a task, if only the application was accessible in a similar way to Emacs, or had Amiga-style ARexx ports that I could talk to in a script. From this perspective, programming is the most fine-grained GUI affordance within a computer system. By making it accessible along a continuum with simpler GUI tools, we greatly increase the ability of the user to do magic, or to learn to do it.
I would really like to see the development of an ergonomic expert-oriented desktop that lets me use my programming skills in a high-level and bureaucracy-free manner, to augment my use of an attractive and well-integrated GUI. There's no reason why such features should impinge on ordinary non-programmer use.
Macs have AppleScript, and while application support can be hit-or-miss, I’ve got several little things I’ve done with it that have made my life a lot easier. There’s a couple features I wanted in Illustrator that I’ve been able to work around with scripts, I have a script hanging around to help with a tedious part of turning a big pile of individual page files into a comic, I have a hotkey that rotates my display and my Wacom tablet with one keystroke when I want to work with my monitor in portrait orientation for a while, and a few other things I’m not thinking of. Some of these I use once every few years, some I use multiple times a day.
Arguably, programming is what computers are for. If you're not programming it in some way, then it is more like an appliance that just happens to contain a computer. Personal computers of the 80s booted directly into a programming environment.
In other words I'd like there to be a concept of OS-level "system features" available to high level languages through something a little more friendly and robust than interfacing to a C library. I don't know how I'd implement it :) but its how I'd like things to be.
For some reason, UIs are now designed towards an "average user", but as the airforce has found out long ago: average users don't exist in the real-world [1], it's an entirely made up concept.
The solution to this is customizability. Create an OS that's easy to use in the default configuration but let me tweak it to my own needs just like I can adjust the seat in my car.
[1] https://www.thestar.com/news/insight/2016/01/16/when-us-air-...
General problem-solving ability seems like a synonym for fluid intelligence, which is not very malleable. Learning to code, on the other hand, is possible with effort. I learned to program in the 4th grade, with videos and books I myself bought, without having internet access. (I could use dial-up if I really needed it, but it was expensive and slow, so I used it very sparingly; I don't remember how much, but around 5 hours per month seems an upper bound.) I had no support whatsoever from anyone (except that my dad paid for the books and videos), my mom only let me use my computer for like 3 hours a week (shared between gaming and doing anything else), my computer was old and slow, ... . Now, I sure have a high IQ, but I doubt that we couldn't have 20% of the urban population reach some basic computer literacy when they are 24 years old. Heck, calculus is known by more people than coding. Most non-poor people waste 16+ years of their life in K12 and undergrad, and learn very few useful skills. Imagine what would happen if we taught people a curriculum that did something other than pure signalling.
Why shouldn't everyone read? Why shouldn't everyone write? Why shouldn't everyone do the basic math?
Being able to use computers efficiently is knowledge, not chores. To be able to use them as a bicycle for the mind goes way beyond pressing colored buttons according to emotion.
I remember when video games came with elaborate manuals, this discussion reminds me of that and how it stopped happening (and just now the smell of opening the box for a new game, i don’t think i’ll ever experience that again)
It's the assumption that people won't learn that's a problem. Minimizing unnecessary complexity is a good thing, but removing capabilities for sake of further UI simplification is taking things overboard.
(I'm forming a new hypothesis that tries to explain why this happens: it's because SaaS products are trying to turn a workflow into a service. So anything that deviates from their perfect workflow, including any flexibility, integration points, or general ability for self-help, is ruthlessly pruned. The users must follow the prescribed workflow.)
Well, the way of progress has always been simplying operations.
Do you know how to fix your car and do you make your own clothes, cheese and bread, in today's "bread and cheese eating", clothes wearing, car driving world?
While GNU/Linux have the necessary tooling for making it as well, but thanks to the fragmentation and some communities hatred against GNOME/KDE, it will never happen.
This is what a modern desktop OS should look like,
"Eric Bier Demonstrates Cedar"
https://www.youtube.com/watch?v=z_dt7NG38V4
Including the part of being written on a memory safe systems programming language.
I’m not looking to debate - just that it’s not obvious and I suspect the specific reasons why would be interesting to know about.
Thanks!
Mesa/Cedar also shares some ideas with the other workstation variants from Xerox PARC, namely Interlisp-D and Smalltalk, just based on a strong typed language for systems programming, with reference counting and a cycle collector.
The language itself compiles to bytecode, because Xerox PARC machines used bytecode with microcoded CPUs, whose interpreter was loaded on boot. So in a sense it was still native somehow.
The full OS was written in Mesa/Cedar, and everything was kind of exposed to the developers.
The shell is more like a REPL, where you can access all that functionality, meaning the public functions/procedures from dynamically loaded modules, interact with text selection from any application window, or execute actions on a selected window. And as REPL, it worked on structured data.
Basically similar to what Powershell offers, with its structured data, and ability to call any COM/UWP, .NE or plain DLLs libraries.
Then you could embedded objects into other objects and this the basis of the compound document architecture, basically the genesis for OLE in Windows and COM (COM is just the basic features which OLE is built upon, although more the OLE 2.0, the 1.0 was more complicated still).
The way Office works between applications and its inline editing of OLE documents can be found in Xerox PARC workstations, as Charles Simonyi brought Bravo ideas into Word, as one of Bravo creators.
Since Windows Vista, most new APIs are actually a mix of .NET and COM (now UWP), which expose a similar high level set of OS API (bare bones Win32 has hardly changed since XP days).
Now, many of these concepts can also be found in GNOME and KDE, however due to the way distributions get put together, it is hard to really provide such integrated developer experience across the whole stack.
And while REPL like shells do exist for UNIX clones, their adoption is a tiny blip when compared against traditional UNIX shells.
I take this as a joke. There is nothing modern-looking about it. Geeky, yes. Not designed for touch interface. Resembles Oberon, which I would not call modern, either. Maybe, we are not ready for it yet. Belongs in the future, then. (Or, more likely, in the past.)
To proper understand a book one has to read more than just the back cover overview.
But considering the "natural selection" that happens here, it may be the way that is because only technical people care about this kind of thing… Idk…
System functionality could be expanded through various means, but most often devs used Extensions. And if a software issue arose, it was easy to disable all Extensions by pressing SHIFT key on start-up. Also, on start-up you'd visually see what Extensions were being loaded. So at start-up you would always be aware what you had installed.
In current macOS it's very hard to keep track of what I've installed. I install a lot of stuff using tools like Homebrew. Some software might install some system level hooks, etc... From my perspective it's kinda hard to keep the system "clean". And it's probably a good idea to do a clean install of my computers maybe once every year or so, since I might have installed stuff I don't really use anymore.
Also, there was the System Folder and that directory contains the Extensions, Preferences, Control Panels directories, etc... So you could also at the file system level manage your System Folder. You could just delete an Extension manually from Extensions directory in the System Folder to uninstall it. You didn't need any "uninstall" software most of the time.
A classic macOS like environment with a view more modern features (maybe a WindowMaker-like UI, multi-user and real multi-tasking) would be pretty neat.
My opinion, short version, hastily written, and incomplete:
1) Applications are self-contained objects that can be simply copied and deleted instead of installed and uninstalled. They should run from any location on any media. AppImage implements this in Linux and modern Mac application bundles are already this, but the concept goes back to almost the beginning of desktop computers.
2) Spacial file manager (MacOS), drag and drop saving (RiscOS), desktop and quick-launch menus are just views of a folder structures (Windows).
3) All applications in their own namespace and they only get access to what the user configures for them (do not do "allow/deny" popups!).
4) Everything scriptable and something like AutoHotKey built into the OS at a fundamental level.
5) Switchable "user profiles" instead of "user accounts", which are an artifact of giant shared computer systems. User profile just contains personalized settings and can be located anywhere, including removable media so you can take yours to other computers. If you want to keep things safe from others, encrypt them. Otherwise there are no permissions except those applied to applications themselves.
6) Sound and video should be routable like you see in DAWs. Plug outputs into inputs, add filters, split, mix, etc. This is of course scriptable so you can make it do what you want on arbitrary events.
7) Backwards compatibility should be a high priority, but accomplished via shim layers and/or emulation and/or vms when clean breaks are necessary. A wide array of such should be included with the OS from the beginning. In 2020, there is no excuse for not being able to run old software.
Your home directory is your profile/account (what's the difference on a single computer?).
MacOS has some good ideas. 1 and 2 actually apply to a lot of OSs from the 90s. Good luck finding a spacial file manager today though.
> Your home directory is your profile/account (what's the difference on a single computer?).
The difference is that there is no OS concept of an "account". Right now, you can't take your home directory between systems and have it just work because the OS needs you to have a user account. If your user ID on the new system is different from the old one then your file permissions will be broken.
The idea is, that the OS doesn't really care about protecting the machine from the user in a personal computing scenario. It does, however, care about protecting the system and the user's data from malicious applications, so that's where the permissions should be.
You can get Finder to open each item in a new window and hide the sidebar to make it spatial-like, although I am not sure if there is a method of making "open in new window" the default.
I think the separation of account and profile is a difficult concept, unless the directory had a specific UUID associated intrinsically with it so that permissions could be applied to objects that didn't know about "users"?
As I recall, Pottering is actually working on portable home directories for Linux. Naturally, the solution is over-engineered and involves a new service and file format.
After I went to Mac I didn't look back. Now I look at the mess and debate of SysV, DHCP server in the startup etc. and can only imagine that this home system concept will be the same. As you say, over-engineered and unreadable. Ugh.
AppleScript?
I just want to say that OLD Mac applications were exactly that, too -- even the OS was basically just "Finder" and "System", that was it. Dragging those two files to a different floppy (and swapping them 12 times to complete the copy) gave you a bootable disk. Meanwhile Windows apps were hundreds of files ... then eventually Mac apps went the same way, although not as wildly.
If Haiku actually does (6) as I imagine it, that's actually something I had no idea about and probably deserves its own article. Ditto (4).
I'm genuinely glad to hear about future plans for (3) and (5).
These are the kinds of features that would make it more appealing to me than a Linux distro despite some of its current shortcomings.
Audio & video mixing is done via "Cortex". Looks like we don't have great documentation for it yet, but here's an old screenshot: http://maurice.kaldience.com/wp-content/uploads/2008/03/haik...
Regarding scripting on Haiku, here's a basic introduction to the main CLI tool: https://www.haiku-os.org/blog/humdinger/2017-11-05_scripting...
Indeed, now that I think back I believe that was ultimately what you clarified about my misunderstandings of Haiku and package management.
What still baffles me somewhat that it seems normal (non-ported) Haiku applications are actually made less flexible by packaging them because they 1) have no non-base-system dependencies and 2) hpkgs only work from certain locations (IIRC currently hardcoded but could potentially be configurable).
Cortex does look a lot like the kind of system I'm thinking of. That's wicked cool. When Haiku supports hardware accelerated video one imagines they could stick arbitrary shaders in the video pipeline to accomplish some useful, or at least really neat, things. I know built-in audio routing functionality would save me a lot of time on the Halloween display each year, maybe I should look at doing that with Haiku next time.
I see this quote in the comments about 'hey': "hey is not a tool to send generic BMessages", which seems like a missed opportunity from way out here at 100ft. Otherwise the only thing that seems needed for GUI exposure is a script editor with 'record' functionality and perhaps some kind of manager for how scripts are tied to system events.
Below is a document that describes my ideas:
http://mmcthrow-musings.blogspot.com/2020/04/a-proposal-for-...
I'm still in the very early phases of this project; there's no code available, and I'm currently in the process of learning Wayland and graphics programming (I have a background in systems programming and I've been getting up to speed on graphics programming in order to carry out this project).
In the hopes of inspiring you and others, here's a kind of messy draft of an article I haven't completely finished, but it's all about HyperLook (a user-editable desktop GUI system inspired by HyperCard and implemented in NeWS PostScript) and some components and applications I developed with it, like SimCity, a cellular automata machine, pie menus, a customizable clock editor, a customizable window manager, and "Happy Tool":
SimCity, Cellular Automata, and Happy Tool for HyperLook (nee HyperNeWS (nee GoodNeWS))
HyperLook was like HyperCard for NeWS, with PostScript graphics and scripting plus networking. Here are three unique and wacky examples that plug together to show what HyperNeWS was all about, and where we could go in the future!
https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee-g...
https://schneegans.github.io/news/2020/08/13/flypie
http://schneegans.github.io/news/2020/10/10/flypie3
http://schneegans.github.io/news/2018/05/31/openpie
http://schneegans.github.io/gnome-pie
http://schneegans.github.io/news/2017/07/09/gnome-pie-071
https://schneegans.github.io/news/2012/10/10/bachelor-thesis
Some of the tech mentioned in this Twitter thread is pretty neat too. Maybe I should take a second look at Pharo
It’s my dream to work in some kind of next level browser/app that would leverage this kind of thinking. One day I hope
And I don't see why that semantic singularity couldn't be local (or at leat private), instead of the current hodge-podge of "cloud" offerings trying to siphon as much data as they can – under the guise of improving the user experience – just to lock you into their version of the perfect walled garden.
I'm not sure that I have all the answers, but one area where I know this would make a ton of sense is the simple note taking apps that I feel tech and non tech users alike use. The digital sticky note is something that has been strived for since the early days of graphical computing in particular, but alas no one entity has ever really delivered on it in a way that I would call 'semantic' but it perfectly illustrates a situation where I think this concept is super obvious, because you want different things to be linked for different reasons. And that fundamentally describes what I'm talking about, is I want to be able to have things be linked based on their relationships with other things, be it applications, data, etc that I build over time. The fundamental interaction model here is that I should be able to make these switches and those switches to have meaning when I make them, rather than the current status quo, which is I have to deliberate strike an interaction between programs or actions within programs, rather than things be linked semi-heteogenerously based on exposing semantics based around my whole "system", if you will.
[0] https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_a...
The problem is that semantics require coordination, and agreement on some semblance of a common language. Popular apps can just strong-arm others into making the clever hacks, which for them is far less effort than coordinating some sort of UI language.
Things that seem to be making things worse, ironically, are all things that ostensibly are there to make them better. Web technologies, I'm mainly looking at you.
I started writing some Swift recently and built a small app, and it kinda shocked me how simple it can be to get such great interface performance from so little code. I kinda wonder if there's some sort of middle ground, like web assembly with a more standardized starting point, base language, and set of UI components.
Pretty much, inarguably, Linux is the most per code there is. And it is done using what are easily accepted as not portable practices.
But it is not a gui, is the common refrain. To which I offer Scummvm.
But it isn't a business application? True, but I find it baffling that the ui afforded for those games is somehow easier than the ui most applications need.
I think the only other shrine that has killed more with nothing to show for it, is "easy to reason about threads." Of any sort. So much is done so a program can scale to absurd use cases, that they stall and get nothing done.
The only native capability that many apps need is push notifications (something like a banking app for instance). And that's basically a random restriction imposed by Apple to protect their business interests.
It’s not just the interface. iOS and macOS got embedded spyware years ago, and it’s still there; they can backdoor whenever. Dig through your logs and sometimes you’ll see output of a menu choice upon being connected to. Windows has similar from what I’ve read. I’m willing to give up some privacy, but it seems like B.S. to make people pay for things that do that in such a hidden way. It leaves things exposed. Unfortunately, the desktop OS alone is not enough for security either. Hardware doesn’t lock down, with potential openings for instructions in multiple places in modern computers.
Prior art:
I’d also like GPL’d Windows XP running flawlessly like a mac.
I’d use Linux on the desktop, but I’ve never liked any of the desktop managers and it was never as reliable as OSX/macOS.
Not sure what your reliability metrics are, but I've run Linux and macOS desktops side by side for years now (decades, even), and I don't really detect much of a difference. The macOS ones do tend to have the benefit of a rigid hardware platform, which is why I suppose they do a bit less well when forced to run on an arbitrary platform (e.g. inside KVM).
If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and sticking to the rules when posting here, we'd be grateful and you'll get much more interesting responses. Note these in particular:
"Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith."
"Please don't comment about the voting on comments. It never does any good, and it makes boring reading."
'Mostly' is the key--and the problem.
I've been using Elementary OS as a daily driver for at least a year, maybe two (and before that I used Mint for several years). For the most part (there's that pesky word again!), it works quite well. And it really is beautiful--aesthetically, I quite like it.
But boy do I wish that bluetooth would work reliably. Since working at home full time, noise-cancelling headphones have gone from 'nice to have' to 'nearly essential'. It worked more or less fine for a while, then some update broke something and it stopped working. Now it's working again, kind of, but connecting a pair of headphones causes most of the entire UI to stop responding for a full minute or two. Sigh.
And maybe the next time I update it will be fine again. Who knows? And that's the problem: every update feels like Russian roulette. And this isn't even a laptop. I use this thing for work; I do not have time to dick around all today troubleshooting obscure bluetooth problems.
If I'm going to continue to use it, I guess what I need to do is stop updating (or only update specific apps, like firefox) once I happen upon a relatively 'stable' configuration. Security updates be damned.
apt install pavucontrol
Its boring, but like Windows, that's precisely why it works out of the box.
Thats the whole point, right? Obviously smaller and non-mainstream distros with non-mainstream packages, more cutting edge packages will have more paper cuts.
Personally, the only problem I've ever had is when two devices are connected to my headphones (laptop and a phone). When a notification pops up on my phone, my headphones get "taken over" by the sound from my phone. I basically just turn off Bluetooth on my phone at that point (easier than disconnecting a device).
Minor annoyance for sure (especially because I have notifications turned on for like 3 apps on my phone), but I'm so used to elementary OS (using it since 0.2) that there's no way I can switch to anything else — Windows or another Linux distro — at this point.
I've tried to move to Linux once a year since 2005. A few weekends ago I did my annual attempt and had a go at Elementary OS (live USB wouldn't boot, gave up), MX Linux (couldn't get sound, wouldn't boot after installing nvidia drivers), Manjaro XFCE (kept locking up, requiring a power cycle) and Pop OS.
Pop fared best, but even then I had all kinds of showstopper problems with monitor power saving, resolution, crazy window repositioning, and some behaviour where the desktop workspace randomly becomes far larger than the monitor and sort of pans around. If I leave my computer for 10 mins then have to spend 20 mins fixing it when I come back, that is a deal breaker.
I persevered though... Tried playing a game, alt-tabbed out to do something else, machine rebooted. Tried to use their tiling window manager functionality, but it had all kinds of weird bugs making it virtually impossible to use for anything except simply switching focus (and even then, their theme does not visually distinguish between focused and unfocused windows, which is problematic!)
Anyway... rant over. Short version: I disagree with you. :)
I started wit KDE Neon, but it failed to install drivers for my Nvidia card and proceeded to sabotage my sound drivers in the process (they were working fine before).
I then switched to ElementaryOS which did fine with my Nvidia but every time it played a sound it would send a loud crack in my speakers.
Back on Windows which I feel a prisoner of. The thing is sending data all over the internet, I can't even write a diary because I feel like I live in the USSR where I have to pay attention to everything I say or the KGB will get me (to be clear it's just a metaphor, I understand I can write whatever I want on my PC without consequences but I don't like the feeling that my inner thoughts would end up on a server somewhere).
I run Linux as my daily driver, but I really do get your pain. There are way too many items problems that run in the way. Live usb didn't boot. Volume keys don't work, etc. etc. It has gotten WAY better, but the polished professional feel just isn't there yet. Your trackpad won't feel 100%, if you don't know your hardware inside / out your Nvidia card or something else might not work. Part of the problem, too, is that there are way too many projects inside the open source world. While that is a blessing, it's also a curse.
Some people just want to boot a machine and get to work. Even though I run Linux, I have become that person as well.
I believe it all comes down to selecting the right hardware. The way I've been trying Linux was to install it on some machine I had lying around (mostly Acer, Asus, MacBook, no-name towers). Apparently, that's not how it works.
I remember back in 1990s and early 2000s it was hit and miss whether or not Linux would install on a particular machine. Then over time things improved and you could install it on almost any machine.
Some Linux enthusiasts celebrated this achievement by claiming loudly that Linux now "just works". They couldn't possibly have done a greater disservice to the desktop Linux movement, because that's just not true.
It doesn't just work. It just installs. And then it's crushingly disappointing on most machines.
My next Linux attempt will be on one of those known good hardware configurations. Anything else is just a waste of time.
I guess I don't pay much attention to the look and feel though, mostly clicking around inside a couple of apps.
The goal is to get things working suitably well for vanilla 2D apps on standalone headsets, and then start building the actual 3D OS apps geared towards office work/tools for thought (things like: 3D programming code graphs, 3D spreadsheets, and other things that VR uniquely can facilitate).
Sample video of what it looks like right now: https://www.youtube.com/watch?v=rm72Qmi8Bik
Nobody in tech will consider them "ambitious" since tech people could do them years ago, but what use is a video of live editing in Smalltalk on a research machine to most people?
Win+V itself had been an eye opener for many of my colleagues.
The other problem is a lot of things open are Chrome tabs nested within a Chrome window. I wish there were no tabs and the OS window manager would automatically surface the right tabs and windows and pick the right layout (eg. Four windows tiled or two windows side by side, etc.) With an easy keyboard search across the content of everything open
What I wish the OSX window manager did was pointer style focus. Terminal emulates this for you but as soon as you have to use other apps (say multiple safari windows and a GUI editor for writing documentation) you loose this and need a second monitor.
It's a great window tiling manager.
I feel existing OSes are simply missing out on creating a wonderful window manager. Something like this can get better defaults, animation, a tutorial, some ML smartness on making better initial choices and perhaps a dedicated hardware on the laptop (a la touch bar) just for window management.
Unfortunately the GitHub build is currently broken and I'm probably 2 months away from sharing anything here. I'll post something when it's more presentable.
I’d even be happy if more love was paid to “desktop light” environments. I have an iPad Pro that’s useless for software development without SSHing into a machine.
And even that is a horrible experience because the iPad keyboard doesn’t allow key repeat, making vim a terrible experience. That used to be an issue anyway. Maybe they’ve fixed it.
I’ve never actually used an external keyboard on iOS so I can’t vouch for how well it works, but judging from the settings pane it should do what you want
All the terminals I have used swap out the suggestions bar for a row of extra keys, with escape in the place you would expect it.
https://www.apple.com/shop/ipad/ipad-accessories/keyboards
I just learned you can type command-. to send an escape on an iPad keyboard. And also as freehunter mentioned, iPad Settings / General / Keyboard / Hardware Keyboard / Modifier Keys lets you remap caps lock to escape.
https://9to5mac.com/2020/04/23/ipad-pro-magic-keyboard-escap...
Isn't Vim the editor with the least reliance upon key repeat? Hardcore Vimmers would argue if you are using key repeat, you're doing it wrong.
What do you use key repeat for in Vim?
I would hate to have to use a touch interface to write code.
What I’m talking about is replacing the latter with something that is not just essentially a text string. Maybe one way to think about it is when you are coding in visual studio with a language that has good IntelliSense, it will pop up with various class members and other details because it understands the objects you are working with. Maybe there’s a way to extend that idea, where there’s not much manual typing involved at all and it’s mostly tapping on the option you want based on what is relevant in the current scope.
Microsoft had a labs project 5 or 10 years ago attempting to do just this, although it never really got very far before it was canceled. I wish I could remember the name of it now, it was intriguing. Definitely not as productive as coding via a keyboard on a real computer, but it was the best experience you could get on a mobile device, so that’s not nothing.
Maybe the real problem is there’s no way to actually run/use anything you create on mobile. Sure maybe if you’re making a website, but there’s no way to build an app or a helper function that can be used directly on an iPhone or iPad. I assume android has more possibilities here, but I still have yet to see something that will compile code on an android device directly to an APK and install it locally without requiring some sort of server to do the heavy lifting.
It’s interesting to see the communities growing around iOS shortcuts. It’s crazy the amount of hoops people are willing to jump through to create shortcuts that would otherwise be fairly simple scripts in a standard programming language, and then people share them on Reddit communities and elsewhere. If people are willing to bend over backwards for that, just think what a purpose-built system could be used for.
There are many visual programming environments targetting different domains: https://en.wikipedia.org/wiki/Visual_programming_language#Li...
The biggest issue is that visual programming environments tend to be domain-specific rather than general purpose. A general purpose visual programming environment would be difficult to build and still be as capable as a software developer using one of the mainstream programming languages with IDE.
It had a cool keyboard that would only show words that are syntactically valid for the cursor position.
It probably would need some alterations for a real language, but it's a lot better than just a qwerty keyboard
- People Centric. Associate files, notes, alerts, calendar entries, emails, documents with your contacts or contact group. Chat using an open protocol. This is in stark contrast with the data silo approach we have going on now.
- Project Based. Want to create a new app? Create a new project. All files associated with a project can live in a container and be shared in other containers. Filter for types of files that you are looking for. This basically reinvents the Finder/Explorer UI to avoid creating complicated hierarchies for the user.
I’d argue that this approach to a more people centric UI would be scalable to mobile as well.
For example, the zip/archive workflow. Does it make sense for all archives to live under the zip app? Does it make sense to have to share files to and from a zip app in different bespoke app level UI? If its OS UI how is it really any different than a file browser?
Microsoft tried to build People-centric experiences with the short-lived MyPeople experience: https://www.pcworld.com/article/3216489/windows-10s-my-peopl...
In the end, while the UX mocks were grand and there was the potential for some interesting flows, it was impossible to get the platforms interested. They don't WANT your contact list to sync to your device and integrate in your OS surfaces, they want to own that data.
I want computing as secure as when we had MS-DOS and floppy disks. You knew what disk (and therefor what data) you were risking at any given time. You could write protect the OS.
We can have it back... it's a matter of time now.
Until then, we can fully expect that 2021 will be the year of the linux desktop ;-)
What I dislike instead is my Android phone's UI. It's 100% proprietary, meaning I have little influence over some decisions. E.g., if I don't want to be disturbed on my PC, I just quit all messenger apps. On Android, but only since very recently, there's a DnD mode. I don't use it because I don't understand what it is doing + it has been burried somewhere as OS-level app.
Then of course, there's this problem that on Android they want to hide files from you and that the whole experience is optimized to keep you on the screen.
And so on...
I don't like my mobile phone UI at all!
Also pretty much every phone allows you to turn on DnD from the notification drawer.
1) Web based (something lightweight like ChromeOS can do it)
2) Command line (easy to ssh into a remote box)
3) IDE (heavy)
I only need a light weight terminal for 1&2 but 3 keeps tripping me up. Would be great if IntelliJ ran with remote back end.
[1] https://aws.amazon.com/cloud9/ [2] https://github.com/features/codespaces
Also even though they’re browser based, many features still don’t work on an iPad. Amazon really needs to put more effort into this space or Microsoft will wildly outcompete them. I still use Cloud9 quite heavily but as soon as Codespaces allows for scrolling with a mouse wheel on an iPad, it’s going to be hard to keep me on AWS.
For many non technical consumer users it no longer really matters whether they're running Windows 10, MacOS or something weird like a linux+xorg/KDE desktop environment.
We don't click on links that go to web sites we don't trust. We don't open email attachments, we're paranoid... because our operating systems weren't designed for the age of the internet.
linux based ideas like qubes are are a step in that direction.
To deploy using a 30GB partition it only takes about 5 minutes to write zeros to the 30GB, another 5 minutes to quickformat and deploy the WIM file to the fresh partition (in naturally well-defragmented condition), then a judicious BCDBOOT command to make it boot from your present BOOT or EFI folder.
Moreover, the desktop is a very difficult market to enter. Writing a new desktop environment that is competitive with even Windows 7 and Mac OS X Snow Leopard is going to take a lot of work, even if they piggyback on existing operating systems such as Linux in order to avoid the full work of writing a new operating system. Moreover, where is there a viable business model for selling desktop operating systems? Be, Inc. tried with BeOS in the 1990s; the company had a hard time getting PC companies to agree to shipping their PCs with BeOS preinstalled due to agreements these companies had with Microsoft regarding preinstalling Windows. There's also the problem with software incompatibility, though, interestingly enough, this may be less of an issue today than it was in the 1990s due to the dominance of the Web and due to the "Electronization" of desktop applications.
My opinion is such innovation on the desktop will come from a hobbyist open-source project or from a small business that is willing to cater to a niche of users who want compelling alternatives to Microsoft, Apple, and various Linux desktops.
I have to agree with @wraptile and say that we don't need a desktop revolution. In the open source / *nix world, there is a desktop for EVERYONE. Gnome is the corporate DE, then you have folks who run Firefox and everything else in a terminal. I think the desktop is akin to a car. Things have obviously changed, but the base will _always_ be there. Cars have 4 wheels, a steering wheel, and cockpit tools. Desktops need to open applications, field graphics, and navigate you through your computing tasks. And those are different for everyone. Someone driving their kids to school has different needs than a forktruck driver in a factory.
One thing that always interests me (I don't work in "tech") is that everyone is always trying to make things "new" or "revolutionize" it. I think the DE world is fine. We have the 2000 Toyota Tacoma (Xfce), The Teslas (macOS), and the Honda Civic (windowz). I'm not sure revolutions are needed. Tweaks and changes here and there to make things more stable or better tech (akin from x11 to wayland) but large overalls have already been tested and came and went.
Yes, we had touch screen, thats how we got to windows 8 hell, we failed to adopt the new UI. I would argue we are still working on that.
You may notice that there's barely any English in this specification, or even examples. But that's not the main problem. The main problem for me is that this VM lacks support for arithmetic operations. Well that's not quite true. It has all the necessary components to support arithmetic operations: it has comparison and increment. Congratulations, now go build your own Peano from scratch.
The author claims that this is not a problem! The VM will optimize your increments in the loop to subtraction, and it will optimize those nested loops to multiplication and division. But now you have an even worse problem! How the hell are you going to detect that a loop is a subtraction?! It's a halting problem hard task. So instead what you end up having is a VM with an informal specification, and if you stray away too much from it, your program is going to run hundreds of loops just to subtract two values, which means the program may boil up the oceans until it finishes.
And if you're being so smarty-pants about increment and equality being sufficient for arithmetics, why not use Church numerals? That's an even simpler foundation that the Nock VM!
But these are implementation concerns. How about the user experience: is there any substance there to learn from or improve?
If you feel like it, please tell me if I'm missing anything:
https://urbit.org/understanding-urbit/
> 1 - Technology
Well, step one is explaining the brand new VM and OS built on top of it. Non-starter. Then explanation follows by claiming global IDs, allocated using a blockchain.
> 2 - User experience > We want Urbit to be a single, simple interface for your whole digital life. > A picture of nokia 3110 signifying OSv1, > iPhone v1 signifying OSv2, > and a blank space, signifying the supposed new OS version 3
What?
I've re-read the entire website multiple times and I'm yet to understand the problem they're trying to solve, or lessons I'm supposed to learn.
Maybe it's me, maybe nobody just told me that I don't understand new technology. But this seems like an elaborate toy for nothing.
I can't tell anything either, the doc is both too abstract (aspirational marketing) and too low level (buzzwords) at the same time. I can't tell what the entities are, what they do, and what the actual user experience is.
What would help is put on the front page (1) a concrete system architecture diagram and (2) a UI screenshot. That would go a long way to answering WTF is this thing.
They seem pretty active though! https://github.com/urbit
For something more original there is Redox: https://www.redox-os.org
And the browser is its own OS in many ways.
I think that Portals are one of the interesting new developments in the web "operating system".
Personally I think the desktop is only going to be "cool" for another 5-10 years.
Because I think that the XR chip(s) are good enough now for very good augmented/mixed reality. We are waiting on some type of glasses that are closer to normal glasses, lighter weight than VR headsets. That do not cause eyestrain and just look almost like normal glasses.
But to get back to the web. Eventually we will see the web and desktop systems start to integrate and merge back together. As this happens there will be more interactions between desktop applications such as hyperlinks and embedding being more common.
You may also see very convenient but intrusive AI activity. Such as monitoring what's on the screen to give suggestions for applications or configuration or whatever else.
It would be great if more people helped the project out, it is far more promising than Linux for a desktop OS.
Also, the contrast between Haiku and Linux in my mind just points to the more fundamental difference between a design that says "you will do things this way, because this is better" (Haiku) and one that says "we'll give you a dozen ways to approach every problem because we're not into dictating optimum solutions, which may change over time anyway" (Linux). It's not that Linux can't replicate almost everything that Haiku gets right, it's more that it provides everything necessary to do 12 related things, on the same desktop.
Ultimately a lot of the things Haiku "dictates" are at levels that 99.9% of people, including developers, do not care about: the window manager and display server, launch interface, package manager, etc. Certainly those decisions have consequences, but ultimately (for example) do you really need the freedom to decide whether you want ALSA or OSS? People just want audio to work, and programmers want a sane API to work with it. The internals matter little to most people.
You do have the freedom to choose OSS the API. Some programmers even think that it's a better API (they're wrong, but what can you do?).
I wasn't thinking at all about user-visible things that Haiku "dictates", but internal design patterns. Most of them are great, and most of them exist on Linux too (but alongside a bunch of alternatives, hence the "problems", such as they are).
X11 DE/WM authors are.
FVWM is still one of the only WMs with a true virtual desktop (ie you can pan around a virtual screen larger than the physical one.)
CWM is extermely minimalist and my personal favorite currently.
Fluxbox has some nice and flexible theming/configuration. I run this on my phone since CWM doesn't work without a keyboard (or at least a meta key.)
Don't forget all the tiling window managers.
KDE/GNOME have some neat ideas but are slow etc.
Most mobile stuff is IMO a regression to some compromises made for extremely limited handhelds in the 90s and not innovation.
The OSes are not in my way right now. If anything, I want app builders to move away from web technologies. Steam should be a native app. I suspect the main reason that we don't see more native apps is that the native UI toolkits are limited in their design options / freedom.
I wonder if there's work being done to compile web apps into something that improves performance. WASM is one step I guess, but that's only the 'executable' part of it; we need something similar for the DOM + styling. Or Electron / Chrome should do more aggressive (and persisted) optimizations.
Then there are the people who I think of as enthusiasts. Who have have different things they care about and cause all the arguments and pedantic nit picking. There are the fanboys who love tech created by a company and always like to have the newest thing from them. There are the people who really into making their desktop look pretty. Finally there is the group who likes to have total control of their workflow and hate having features taken away (group i belong to).
So looking at all of this it is no wonder most people are not interested in desktops and the group that is are only going to like it if its from their brand of choice.
I am using macOS, yes there are few things I dont like, but generally speaking it is very very good. That is specifically the OS. Not MacBook the hardware ( which I increasingly hate... )
As a matter of fact I dont even remember what difference / new improvement they made in the past few macOS version. Other than instability and compatibility problems.
Safari needs lots of love. Stop dumping down Safari into iOS Safari. I use Desktop / PC for a reason.
As a matter of fact, I wish they would stop releasing new macOS every year for features. There is no need for that. Just do bug fix, library / API update and performance improvement.
Edit: Actually Text Layout is still crap, no one has solve text layout that takes writing Top to Bottom into account. That is including the Web Engine as well.
Completely wireless pairing would be even better.
It seems like the hardware is good enough, the only thing really holding us back is that the software development environments on mobile platforms are primitive compared to anything on PC (Linux, macOS or Windows). It's hard to imagine developing anything like Photoshop on Android for example, and even office tools like Word are terrible on mobile.
Maybe Apple will make this happen someday.
If the answer to this is: it is all backed up automatically into the cloud and your new device will become a clone of your lost device, then you don't need the device in the first place, all you need is a terminal.
If the answer is: you're screwed, then maybe storing all your stuff on a device small enough to be easily stolen/broken was a bad idea.
Why do I only need a terminal if my data is backed up to the cloud, exactly? If I wish to watch a video that I downloaded to my phone, I can do that without having connection to the internet. If I wish to edit a photo with an application on my phone, all the processing of that file can be done locally on the device. Having a cloud backup of a device does not mean that there's no value in having a device with its own capabilities outside of the cloud.
> If the answer is: you're screwed, then maybe storing all your stuff on a device small enough to be easily stolen/broken was a bad idea.
For any valuable data you should have more than one backup solution, including data you store on your phone. Just because there's more risk of losing your phone than your desktop pc in your home doesn't mean that you take less measures to mitigate the chance of data loss on your desktop pc.
And yet iPad is still very useful computing device for millions.
Dex has fully functional browser, office apps, media software and file management. That covers huge amounts of use-cases.
Frankly I'm amazed at the efforts some people do to make iPads work as laptops (at least from what I saw on YouTube). Once they add a keyboard it's almost as heavy and bulky than a laptop. Some add a HUB with a mouse and even plug a RaspberryPi in USB C to SSH into ...
I'm not convinced it's worth the efforts.
Why can't they be MORE MODULAR? See also cellphones.
It shouldn't be hard to have a sane default setup, but also have the opportunity to easily have your own kind of dock, or add and subtract widgets, even switch between tiling and not, etc.
now most of what matters is siloed in saas tools and we access those through browsers or siloed browsers
time to re-design
Photo management? Image editing? Video editing? DAWs? Games? The browser itself? Compilers... static analysis tools ... a myriad of other native developer tools ?
I could go on, but what on earth is the "everything" that no longer matters? If you had said "everyone's gone to mobile", well, that's a claim. But "everyone's gone to saas and browsers" ... that's not even wrong.
You clearly do not use "creative" software. While you might draw from the internet to do video/audio work, ultimately the stuff happens in front of you, burning cycles on a machine directly connected to your keyboard (or, potentially, accessing some compute-server farm that is 1 IP hop away).
In many high-security environments, the computers cannot be connected to the outside world. And yet those computers are still necessary and useful.
Many of us were using computers before the Internet became popular and they were still very useful despite their limitations.
Everything that matters is not online. Many businesses and government agencies have data that they would never want disclosed, let alone available on the Internet.
I pay 20€ per month to "SSH" into a worse computer and by "SSH" I mean I effectively do VNC over WebRTC. The video encoding performance of cloud servers is just abysmal. I'm forced to use 720p. Meanwhile my desktop can easily run 8 1080p VP8 streams at once without breaking a sweat. How much did it cost? 350€ for a Ryzen 2700 with 8 cores, 32 GB RAM and a new mainboard. I'm not counting the cost of the case or PSU because I already had those and there are super cheap options already. After 1.5 years (or 2 years if you include case, psu, storage) the server will have cost me more even though it performs far worse. Why would I still pay for the crappy server? Because it's a shared user experience. I'm not the only one on that server. My friends are there as well.
You know. If I actually used Stadia or Nvidia's alternative I'd be their worst customer. I'd run their dedicated GPU instances all day even if the only thing I do is listen to music with that instance while I'm playing games on my desktop.
It would be good to be able to install Linux to FAT32 or NTFS too.
The Linux Live distributions run just fine from FAT32 or NTFS already.
My original idea involved a custom markup ui language akin to WPF because at the time HTML was not nearly as up to the task. HTML could probably handle it today.
Between Electron, WebOS and ChromeOS some of the ideas have been tried but not to as high of a degree.
So far all the majors are far behind in user-facing polish.
- Positions from the icons on the Desktop when you are mobile or on the docking station with a larger and 2 or 3 monitors.
If Microsoft re-works W10+ to be a thin shim over the kernel and Office works on Linux clean-port, not webapp, I'll be fine too.
Mostly what people want is the plan9 plumber: the ability to point and select things, and have s/w contextually work out how to DTRT with it. This is ORM. Corba. whatever.
Patents suck. If you depend on patented methods to make fonting hints work, you are evil.
idk the others
I probably misapplied ORM above. It wouldn't surprise me if somebody said "wrong acronym" Copy on Write (CoW) is how you avoid duplicating memory for code or data which doesn't change: when you do what unix does in fork()/exec() your initial state is: things which haven't been written are the same. So it is zero (kinda) extra cost. If you write to that bit of memory THEN it copies, so thats Copy, on Write. Then you have two, because one of them changed. So, If all electron backed apps means the 200+mb of electron crap is Copy-on-Write, its not 200 for mail, 200 for word, 200 for slack, its 200 for "all of them" until one of them writes to memory: it reduces the memory footprint.
DTRT is do the right thing.
Of course without any patents many things might be lost, never invented, or kept secret for ages.
Pretty neat stuff.