Wednesday, January 2, 2019

Rene Dudfield: Year of the Desktop #yearofthedesktop

#yearofthedesktop is a long running joke in FLOSS communities. When will Linux be more popular than Windows on the Desktop?

(please hold back your laughter until the end).

Let me explain why this is the Year of the Desktop, and why community developed software will win (and in fact has already).

TLDR; most desktop web browsing is done on a Linux based OS, most PC hardware vendors are shipping Linux machines, Linux had the best cheap laptop of the year, Linux is a good platform for games, Steam now supports 1000s of Windows apps(+ 5000 linux native) and is contributing to Wine, the web is a good high quality desktop software target, government support for Linux desktop is increasing, and even Microsoft is supporting running Linux software on Windows, cheap hardware like Raspberry Pi(and more) is available and usable, community software cares about usability and has a supporting financial model, community development is a kinder place, fragmentation of the Desktop is no more, Gnome receives $1,000,000 donation, governments spend money on community desktop software, IBM the original PC company bought the first Linux Desktop company, less fragmentation and distributing Desktop apps to all Linux users is now very easy, punch line at end.

Financial and project based development

Two major community graphics applications have achieved something great in the last years. Two pieces of software widely know to be effective but not the most user friendly.
  • The Gnu Image Manipulation Program (GIMP) 2.10 series (released this year).
  • Blender 3d 2.8 series (close to release)
First they have implemented effective financial models to support development. Secondly they both have User eXperience focused releases where their major features based on using their software in production. So not only is it, 'scratch my own itch' development driving what gets fixed. Ease of use and matters important to production users are getting fixed too. 

Both run projects using their software which aim to link their developers up with real projects. These projects are films using 3d, and image processing. Both are also accepting money directly from users. Incentives are aligned.

It's not just these two projects either. Many community developers are starting to be supported directly by the community, and many projects are getting professional management in order to raise funds. Numfocus is one example of an organisation that is helping various scientific communities with fund raising and marketing. This is probably one of the reasons why notebooks and python are so popular in research now in places where Excel used to be popular.


If you look at the GIMP image editors twitter news feed you will notice they talk a lot about user experience improvements rather than technical items.
"New in development: you can now select the default file format for exporting newly created images. No more need to manually change PNG to JPEG etc. every time you do the first export in a new GIMP session. Patch by Richard McLean and . Will be available in GIMP 2.10.10."
The blender 3d 2.8 release video is the same. It's mostly about user experience improvements.

Also see the Darktable release notes. It's mostly about usability improvements important to photographers.

Better behaviour

Now we get onto the next point... Toxic people online. Codes of Behavior have taken hold, and collaboration tools have improved. It's a much nicer atmosphere out there. Guess what happens when you make it a nicer place to hang out for 51% of the population? And it's not just the 51%, jerks drive away everyone. Creativity in a toxic environment is destroyed because talking about ideas needs a safe space. And remember the UX improvements to the software itself? This is also happening to development materials too. The "good first issue" movement isn't just in the rails and python communities anymore... it's world wide. Making the development experience easier for newbies is a requirement of good projects. In short, we have "leveled up" in community collaboration. As a community people are learning to be kinder to each other online (it could be better still!).

It used to be that we needed a tough-as-shit-authoritarian-type person who could withstand the abuse for community software to be successful. 2018 saw two major projects (python, and linux) grow in that area. Because toxic behaviour is not acceptable (even from leadership) these types of people aren't as necessary. Community software needed people who could withstand daily toxic abuse in order to merely function. Other methods for decision making have been proven to work (thanks again Debian!), and are now being used.

Better behaviour and more inclusion in 2019 with community developed software will result in more usable software.

In more human languages.

Many projects are now getting better support for other human languages other than English. The tooling, but also the will exists now to support more human languages in the development of software.

python for example supports unicode in code, and also has documentation available in other languages other than English now. Sure, gcc still doesn't support unicode literals (clang does).

Whilst English is widespread and allows people to collaborate with a common human language, lots of other human languages are used in the world. And lots of the best software developers in the world don't even speak English. With more contributors from different backgrounds working on issues that affect them, it means the software will continue to improve for those people.

Better tooling.

It's not just the social aspects that have improved. Tooling has also gotten much better. Community projects now have access to free high quality continuous integration. Sharing our software has gotten much better. Now using, and distributing packages is not as bad as it used to be (yes, is still not perfect). Reusing and sharing code more easily is a win for everyone.

Other tooling is gitlab, which both Gnome and the freedesktop projects switched to away from adhoc software tooling and development processes that included things like bugzilla.

The better collaboration has resulted in two things happening within the Gnome desktop. The first is that LibreOffice is planned to be used as a component of the Document preview app. Meaning there is very good document preview support. Another area of collaboration is the Gimp component CEGL is going to be used in the Photo app for better photo editing for non-professional photo editing.

App distribution on Linux with flatpak is now really easy since the 1.0 release. With a pull request containing a small config file you can submit your app which will then be available to 10s of millions of people. The app will be able to update itself, and will securely run within a sandbox, and be usable across multiple Linux distributions. Yes, you can release an app to the entire Linux Desktop market with very little trouble. This means Linux distribution fragmentation is less of a big deal for app developers. Already popular apps like Slack, Spotify, Visual Studio Code, and Steam use flatpak.

$1,000,000 reasons, and less fragmentation.

This year the Gnome foundation who is responsible for the main linux desktop received a million dollar donation.

Now the Gnome desktop is used on the most popular community distributions by default. Ubuntu moved to supporting Gnome, rather than developing their own stuff in 2018. This has already meant more resources have gone into one Desktop rather than having resources spread over multiple environments. Now there is less fragmentation on the desktop.
Along with this some hardware companies have joined with the Gnome foundation as well. This again aligns community software with production uses. Hopefully government and educational users will also join in with the fun - so their voices are heard more too.

Other hardware companies using Linux include of course Android - the most popular personal computing environment in the world. This means most personal computing hardware companies are supporting Linux (see below about how all major PC vendors are now shipping Linux laptops in great volume).

Another component that now has less fragmentation in is the startup system which runs on boot and in the background - systemd. All major Linux distros now use systemd. And systemd has better support for desktop needs.

Government and Commercial support.

The government is starting to support desktop software more. Including a bug bounty program run by the EU for some desktop software like the VLC video player, and Notepad++.

Millions of government PCs are also using things like LibreOffice and have some financial support from government organisations.

The original PC company - IBM bought Red Hat. This is the first Desktop Linux company, and one of the most successful Linux companies. IBM will continue to sell Linux into the enterprise.

Apple sucking, games, and graphics.

It's not just because macbook pros don't have an Escape key anymore. Apple used to have an open source friendly development environment. They used to ship a current gcc, and other open source tools (what would we do with the community developed Homebrew system on mac?). Apple used to support open graphics standards. It used to support the needs of CG professionals.

However, the most recent release of MacOS has pissed off graphics and audio programmers so much they are leaving the platform. Apple used to be the best platform for video, audio and graphics developers. But in recent years it's support for this type of developer has been getting worse and worse.

The latest release of MacOS broke OpenGL and SDL apps. They announced on the release that OpenGL would be deprecated... but really they just broke it more. People are reporting bugs, making hacks, and crossing their fingers... but they broke lots of stuff. They made software just bad enough that people are considering changing platforms.

Apple simply doesn't care as much about Desktop anymore. They put most of their resources into their mobile platform. Desktop application development and distribution on Linux is now better than what Apple provides.

But if you keep breaking everyone else's software except your own, more and more applications will stop working on new releases. Developers will stop caring, especially since Mac sales are becoming less and less.

Even professional graphics solution providers like Blackmagic design (a long time Apple supporter) provide first class Linux support. So TV stations, and movie productions can(and do!) run their operations on Linux. Apple doesn't even provide good pro hardware anymore. The macpro had a last update in 2013, and only recently did the iMac pro turn up.

Games and graphics on linux.

Video, graphics, audio, and games developers are exactly the type of developers responsible for great desktop software. It used to be a sea of mac laptops at graphics and game developer conferences... but now they are now a minority.

Vulkan graphics is the next graphics standard from OpenGL. And Linux is probably the best platform for Vulkan graphics.

What platform has the most and best desktop games at the moment? Most people would probably say Windows, and the web. But most games are probably played on mobile and game platforms like Android. Now you can run Android, Web, and many Windows games on the Linux desktop. Many games written for the mac platform don't even work on the latest release of MacOS.

Steam(a major market place for games) just brought out better support for running windows games on the Linux desktop. Many games run good enough that they are happy to support their customers who run their windows games on Linux. Valve (makers of Steam) are also supporting development of Linux software including high quality not-emulation software for windows applications. However, 95% of steam users are on windows. Along with the 5000 titles that support linux natively, more than 2600 windows games (as of Oct 2018) also work on Linux with Steam with no effort. They can be played with a single click from inside the steam client.

With a major application distributor contributing to first class Windows application support, more and more windows software will just work on Linux.

Now that Linux can run many games from Android and Windows -- Linux is a good platform for games.

The web is ready for desktop class software

The web now has pretty good support for WebASM allowing desktop class software through the web.
This means that for most application domains there is a web version available. Even application domains that require high performance or require millions of lines of C++ to work can now run on the web.

And since there is a web version available for most application areas, it makes the underlying desktop less important.

For example, many designers are now using Figma instead of Sketch for UI design... and Figma runs on the web. The most popular Code editor Microsoft distributes is now using web technology (VScode).

Cheap hardware is ready

As well as Android hardware, other companies have continued and sprung up. This includes Raspberry Pi the group who makes millions of cheap computers meant for education.

2018 saw two other chip sets used in lots of TV devices that are more than powerful enough to be used on the desktop. These devices can be bought for less than $40. And they all support Linux. And not just with some patches on some weird ftp site or obscure github repo... they're supported on upstream Linux and available to be used in distros like Armbian and even Debian.

These devices have 4-8 cores, and can run 4K screens at 60fps. They also have great OpenGL drivers thanks to Android, and WebGL requiring that. They also have things like robust eMMC storage (SD cards like used in the Raspberry PI were never designed to be robust... they were meant to store photos temporarily).

TV hardware needs to be very usable and reliable. It needs to just work. The graphics and the sound needs to just work. It needs to work in high definition well.

Having a loud voice for newbies, and the requirements of education in the community Desktop world has really helped usability for everyone (thanks Raspberry Pi!). Having TV hardware companies contributing to usability has been a great improvement last year.

Cheap phone and TV hardware is going to be even more powerful this year. Already we have ARM devices that are fast enough to be used as development machines.

The other popular hardware are Chromebooks. Laptops that run Googles ChromeOS, that also support Android apps. Because of this all the main PC hardware developers are shipping ChromeOS compatible hardware that runs Linux. Brands like Acer, HP, Dell, Asus, and Lenovo are all shipping Linux based laptops.

How popular are these Linux based laptops? Half of PCmags best cheap laptops of 2018 were running ChromeOS rather than Windows. The best cheap laptop of 2018 was a ChromeOS based laptop from Asus. Often a ChromeOS based laptop is the best selling laptop on Amazon.

Most major hardware vendors are shipping Linux desktop devices in large volumes that run Linux.

Linux software on Chrome OS.

ChromeOS is one of the most popular Linux based operating systems used on desktops today.

Now it supports running Debian Linux software on many of those Chromebooks. This support will continue to improve in 2019.

Internet explorer is dead

Admitting that the free software community web browser components are better than their own, one big company is now contributing to the most popular web browser components. Microsoft is going to be using Chromium.

And with most desktop software running via the web, once MS start shipping their new browser that platform this means the software running most software will be developed by the community.

Microsoft has also shipped Windows subsystem for Linux for the last couple of years. This is a Microsoft supported way to let you use Linux software within Windows.

If your OS supports using Linux software, and runs a web browser with community developed components is it not a duck?

2019 will see even Windows use community developed components as part of the most popular part of their Desktop OS.

Most web browsing done on Linux based OSes.

Already most web browsing is done on community developed web browsers.

But what OS is used to do that web browsing on? According to Statcounter Windows and Android have been very close all of 2018. Sometimes Android was the most popular, sometimes Windows was the most popular.

Until that is... right at the end Linux surged ahead (and Android dropped).

Windows 37.43%
Android     36.49%
iOS     13.16%
OS X     6.22%
Unknown     4.01%
Linux     0.85%

If you add Linux and Android together from these statistics, then Windows is not the most popular OS used for web browsing. Also note: "unknown". What is this mysterious unknown? This is the OS that has increased by the same amount that Android has decreased in the recent months. These are Linux based machines.

A world wide growth of 4% in just two months?

Community developed OSes in 2019 are now the leading OSes used by people to do web browsing.


The funny bit.

There is no punchline. Community software won.

Now that all major desktop software supports Linux, and Linux laptops are better (according to PCMag) and outselling windows ones on Amazon... does it matter? Probably not.

The nice part about this being Year of the Desktop is that we don't need to talk about it anymore.

Happy hacking!


from Planet Python
via read more

No comments:

Post a Comment

TestDriven.io: Working with Static and Media Files in Django

This article looks at how to work with static and media files in a Django project, locally and in production. from Planet Python via read...