The demise of native coded apps
Started by Simon
on 12/6/2020
Simon
12/6/2020 1:05 pm
I'm here to lament the demise of OS specific coded apps. There is an increasing trend to use Java, Electron, Catalyst and the like. Why do I dislike this? Because the user experience in general is pants. I don't know what Microsoft use, but on my mac I can't use simple shortcuts such as CMD A or E to get to the beginning or end of a line. It irks me. Also the UI changes, slower responses and general sluggishness. The difference between native macOS apps and these imposter apps is as different as night and day.
Is this what we have to look forward to? Apps coded once that kinda work on all platforms, but are unpleasant in the main and don't integrate with any OS well?
apologies
Is this what we have to look forward to? Apps coded once that kinda work on all platforms, but are unpleasant in the main and don't integrate with any OS well?
apologies
Christoph
12/6/2020 2:14 pm
Simon - ok I'll bite.
The problem with OS specific coded apps is that you end up in the walled garden of your Apple word, and you can never leave it because your most important apps only run on MacOs and you are so used to the Mac keyboard. I like when I have the freedom to move away to another OS knowing that I can continue to use my most favorite apps there. Sure, developers could provide their software as native apps for all the major platforms, but the development cost and the cost of the product as well. Also, development pace would come to a crawl, because features need to implemented in all the different apps. That's why Evernote went that road. The maintenance burden of the different apps on the different platforms was simply too high. The idea to consolidate was not a bad one, it was just badly carried out. And I really don't think all platform-independent apps are ugly or slow. Yes, many of them are. But there are many very usable, stylish and sufficiently fast platform independent apps, including Electron apps. I'm thinking of Visual Studio Code and Obsidian for example. The user communities of such apps are also much greater and more diverse because they do not only cosist of Mac users. I really hate it when shiny new apps are only available for Mac. Yes, Apple is nice, and there are many great native apps for Mac, but I know that as soon as I buy a Mac, I will be locked into the Apple world, and need to buy expensive hardware from a single company from then on, and can never go back.
Simon wrote:
The problem with OS specific coded apps is that you end up in the walled garden of your Apple word, and you can never leave it because your most important apps only run on MacOs and you are so used to the Mac keyboard. I like when I have the freedom to move away to another OS knowing that I can continue to use my most favorite apps there. Sure, developers could provide their software as native apps for all the major platforms, but the development cost and the cost of the product as well. Also, development pace would come to a crawl, because features need to implemented in all the different apps. That's why Evernote went that road. The maintenance burden of the different apps on the different platforms was simply too high. The idea to consolidate was not a bad one, it was just badly carried out. And I really don't think all platform-independent apps are ugly or slow. Yes, many of them are. But there are many very usable, stylish and sufficiently fast platform independent apps, including Electron apps. I'm thinking of Visual Studio Code and Obsidian for example. The user communities of such apps are also much greater and more diverse because they do not only cosist of Mac users. I really hate it when shiny new apps are only available for Mac. Yes, Apple is nice, and there are many great native apps for Mac, but I know that as soon as I buy a Mac, I will be locked into the Apple world, and need to buy expensive hardware from a single company from then on, and can never go back.
Simon wrote:
I'm here to lament the demise of OS specific coded apps. There is an
increasing trend to use Java, Electron, Catalyst and the like. Why do I
dislike this? Because the user experience in general is pants. I don't
know what Microsoft use, but on my mac I can't use simple shortcuts such
as CMD A or E to get to the beginning or end of a line. It irks me. Also
the UI changes, slower responses and general sluggishness. The
difference between native macOS apps and these imposter apps is as
different as night and day.
Is this what we have to look forward to? Apps coded once that kinda work
on all platforms, but are unpleasant in the main and don't integrate
with any OS well?
Christoph
12/6/2020 2:34 pm
Somewhere a "would explode" is missing.
Simon
12/6/2020 3:16 pm
I don't really care about being locked into an OS, as that's why I chose it. Plus, data doesn't need to be locked in ie markdown files for text, etc. Even with Obsidian and VScode, there are notable oddities and performance issues. You can tell they're Electron.
In the end, macOS as an example will find users moving to cheaper OS's if the user experience deteriorates due to OS agnostic apps. If every app you use works on linux, why pay for Windows or macOS? I understand the code once run everywhere concept, but personally would choose OS native apps every time.
Christoph wrote:
In the end, macOS as an example will find users moving to cheaper OS's if the user experience deteriorates due to OS agnostic apps. If every app you use works on linux, why pay for Windows or macOS? I understand the code once run everywhere concept, but personally would choose OS native apps every time.
Christoph wrote:
Simon - ok I'll bite.
The problem with OS specific coded apps is that you end up in the walled
garden of your Apple word, and you can never leave it because your most
important apps only run on MacOs and you are so used to the Mac
keyboard. I like when I have the freedom to move away to another OS
knowing that I can continue to use my most favorite apps there. Sure,
developers could provide their software as native apps for all the major
platforms, but the development cost and the cost of the product as well.
Also, development pace would come to a crawl, because features need to
implemented in all the different apps. That's why Evernote went that
road. The maintenance burden of the different apps on the different
platforms was simply too high. The idea to consolidate was not a bad
one, it was just badly carried out. And I really don't think all
platform-independent apps are ugly or slow. Yes, many of them are. But
there are many very usable, stylish and sufficiently fast platform
independent apps, including Electron apps. I'm thinking of Visual Studio
Code and Obsidian for example. The user communities of such apps are
also much greater and more diverse because they do not only cosist of
Mac users. I really hate it when shiny new apps are only available for
Mac. Yes, Apple is nice, and there are many great native apps for Mac,
but I know that as soon as I buy a Mac, I will be locked into the Apple
world, and need to buy expensive hardware from a single company from
then on, and can never go back.
Simon wrote:
I'm here to lament the demise of OS specific coded apps. There is an
>increasing trend to use Java, Electron, Catalyst and the like. Why do I
>dislike this? Because the user experience in general is pants. I don't
>know what Microsoft use, but on my mac I can't use simple shortcuts
such
>as CMD A or E to get to the beginning or end of a line. It irks me.
Also
>the UI changes, slower responses and general sluggishness. The
>difference between native macOS apps and these imposter apps is as
>different as night and day.
>
>Is this what we have to look forward to? Apps coded once that kinda
work
>on all platforms, but are unpleasant in the main and don't integrate
>with any OS well?
Christoph
12/6/2020 3:57 pm
There are many reasons why people stick to Windows instead of switching to Linux. For instance, you may have an important device where the driver is only available for Windows, or you are into gaming, or you need some Windows office programs, or at your work place you can only use Windows. Maybe you don't even want to use something different at home to avoid the mental burden of switching and using different key(board)s, also Linux is still difficult for people who are not IT affine. But all these reasons may change for you over time, and you may want to switch your platform. Also, you may not be satisfied with the overall direction into which Apple or Microsoft goes concerning their operating systems, e.g. regarding data privacy, look-and-feel, technical aspects, pricing. In that case it's good when you have the freedom to make the switch because your programs work on the other OSes as well.
Simon wrote:
Simon wrote:
In the end, macOS as an example will find users moving to cheaper OS's
if the user experience deteriorates due to OS agnostic apps. If every
app you use works on linux, why pay for Windows or macOS?
tightbeam
12/6/2020 8:10 pm
There isn't anything more frustrating than a wonderful app that is restricted just to Mac users or just to Windows users. Cross-platform apps let developers maximize their customer base, so who *wouldn't* code for everyone? A slight performance degradation seems like a worthwhile tradeoff. Nothing I do is so important that it must be done in a microsecond versus a millisecond.
Luhmann
12/7/2020 11:12 am
Catalyst should eventually result in native-quality apps on Mac, but the problem is that it is still very much a work in progress. These are mostly UI issues (such as font resizing) and the laziness of developers (who primarily design for iOS or iPadOS), but the apps should benefit from tight integration with the Apple environment, iCloud, and speed. On M1 macs there should be no speed difference at all.
Electron apps I think often seem worse because despite the ease of developing a cross platform app, the developers still need to do a lot of work to ensure that the app works the same on each platform, so they often offer a simpler design with restricted features and don't make use of Mac-native features. But I think they are catching up in terms of speed and UX.
I think many developers are simply counting on these differences and problems disappearing over time, or at least becoming less noticeable.
Electron apps I think often seem worse because despite the ease of developing a cross platform app, the developers still need to do a lot of work to ensure that the app works the same on each platform, so they often offer a simpler design with restricted features and don't make use of Mac-native features. But I think they are catching up in terms of speed and UX.
I think many developers are simply counting on these differences and problems disappearing over time, or at least becoming less noticeable.
MadaboutDana
12/7/2020 2:59 pm
I’m not convinced that there’s a huge swing to platform-neutral languages. Most of the best macOS apps run natively. Yes, there are a bunch of desirable apps based on Electron, but in my experience many of them run very well and predictably. The only thing that peeves me is that they tend to take up inordinate amounts of disk space – Electron is far from space-efficient.
But I suppose it depends on which apps you tend to use.
But I suppose it depends on which apps you tend to use.
satis
12/8/2020 7:25 pm
tightbeam wrote:
Cross-platform apps let developers maximize their customer
base, so who *wouldn’t* code for everyone?
That implies that it's affordable, or easy to implement and support multiple platforms. But that really isn't the case. And when you have common code smaller companies usually cannot or do not customize apps to take best advantage of individual OS programming or UI conventions.
And maximizing the customer base is not a given, as programmers who sell to both iOS and Android can attest: Android users are notoriously cheap and otherwise identical apps sell through at a fraction of iOS sales. The customer base won't pay for apps like iOS users will, and iOS apps get more attention as a result.
Martin Pilkington
12/8/2020 8:12 pm
tightbeam wrote:
If you would like an answer from a developer who has just released a native Mac app (Coppice), it's actually pretty simple: I want to write the best app possible. I *could* open myself up to the Windows market, or even Linux, by using something like Electron, but that would lead to a lower quality product. Each platform has opinions as to the look and feel of apps, and their respective native toolkits provide a lot of that for free. You get none of that with a cross-platform toolkit. Some allow you to get pretty close but only with additional work on the part of developers, which is work not spent on features or other bug fixes. Some users can put up with the non-native feel, but do I as a developer want to build an app people merely "put up with"? Not really.
As for why the Mac, it's partly because that's what I use and know how to develop for. It also arguably provides the best native toolkit of any platform, which is why the Mac generally has a higher proportion of native apps.
There's also a question of just how much each platform is worth. For example, while Apple's platforms are significantly smaller in market share than their competitors, they often have a massively disproportionate market share of "people willing to buy 3rd party software". This is why a company can build a Mac app and be successful, but port it to Windows and have it make less money, despite Windows way more marketshare. It's also why so many apps appear on iOS before Android (if they ever appear on Android). The costs of developing for each platform can be the same, but the relative financial importance of platforms can vary.
That said, it's worth noting that this can depend a lot on the type of software. If you're building server software then you'll get way more success on Linux or Windows. Business software (especially for large businesses) will likely have lots of success on Windows, and for games you almost have to go for Windows. Meanwhile software for individuals, smaller businesses, or creative users often does way better on the Mac.
Hopefully gives at least one view as to some of the reasons why developers go native.
There isn't anything more frustrating than a wonderful app that is
restricted just to Mac users or just to Windows users. Cross-platform
apps let developers maximize their customer base, so who *wouldn't* code
for everyone? A slight performance degradation seems like a worthwhile
tradeoff. Nothing I do is so important that it must be done in a
microsecond versus a millisecond.
If you would like an answer from a developer who has just released a native Mac app (Coppice), it's actually pretty simple: I want to write the best app possible. I *could* open myself up to the Windows market, or even Linux, by using something like Electron, but that would lead to a lower quality product. Each platform has opinions as to the look and feel of apps, and their respective native toolkits provide a lot of that for free. You get none of that with a cross-platform toolkit. Some allow you to get pretty close but only with additional work on the part of developers, which is work not spent on features or other bug fixes. Some users can put up with the non-native feel, but do I as a developer want to build an app people merely "put up with"? Not really.
As for why the Mac, it's partly because that's what I use and know how to develop for. It also arguably provides the best native toolkit of any platform, which is why the Mac generally has a higher proportion of native apps.
There's also a question of just how much each platform is worth. For example, while Apple's platforms are significantly smaller in market share than their competitors, they often have a massively disproportionate market share of "people willing to buy 3rd party software". This is why a company can build a Mac app and be successful, but port it to Windows and have it make less money, despite Windows way more marketshare. It's also why so many apps appear on iOS before Android (if they ever appear on Android). The costs of developing for each platform can be the same, but the relative financial importance of platforms can vary.
That said, it's worth noting that this can depend a lot on the type of software. If you're building server software then you'll get way more success on Linux or Windows. Business software (especially for large businesses) will likely have lots of success on Windows, and for games you almost have to go for Windows. Meanwhile software for individuals, smaller businesses, or creative users often does way better on the Mac.
Hopefully gives at least one view as to some of the reasons why developers go native.
MadaboutDana
12/9/2020 9:21 am
Very interesting, Martin – this confirms what I’ve thought about IT markets (specifically consumer-focused ones!).
Apple has managed to corral the high-end markets for itself, more or less (and the new M1-based hardware is going to accelerate that drive, I suspect).
It’s a pity, then, that so much iOS software was sold so cheaply in the early days. Although you do get some fascinating outriders (Omni Group, I’m looking at you!).
A number of Windows developers flourished back in the 1990s/2000s by producing modestly (but not cheaply) priced apps that worked extremely well. There are still a few of these developers around (Incomedia with Website X5, for example – a very popular product; the various note-taking apps already widely discussed on this forum).
But tracking software prices over the years is a study in the vagaries of market demand (or unexpected lack of it, in some segments).
Martin Pilkington wrote:
Apple has managed to corral the high-end markets for itself, more or less (and the new M1-based hardware is going to accelerate that drive, I suspect).
It’s a pity, then, that so much iOS software was sold so cheaply in the early days. Although you do get some fascinating outriders (Omni Group, I’m looking at you!).
A number of Windows developers flourished back in the 1990s/2000s by producing modestly (but not cheaply) priced apps that worked extremely well. There are still a few of these developers around (Incomedia with Website X5, for example – a very popular product; the various note-taking apps already widely discussed on this forum).
But tracking software prices over the years is a study in the vagaries of market demand (or unexpected lack of it, in some segments).
Martin Pilkington wrote:
tightbeam wrote:
There isn't anything more frustrating than a wonderful app that is
>restricted just to Mac users or just to Windows users. Cross-platform
>apps let developers maximize their customer base, so who *wouldn't*
code
>for everyone? A slight performance degradation seems like a worthwhile
>tradeoff. Nothing I do is so important that it must be done in a
>microsecond versus a millisecond.
If you would like an answer from a developer who has just released a
native Mac app (Coppice), it's actually pretty simple: I want to write
the best app possible. I *could* open myself up to the Windows market,
or even Linux, by using something like Electron, but that would lead to
a lower quality product. Each platform has opinions as to the look and
feel of apps, and their respective native toolkits provide a lot of that
for free. You get none of that with a cross-platform toolkit. Some allow
you to get pretty close but only with additional work on the part of
developers, which is work not spent on features or other bug fixes. Some
users can put up with the non-native feel, but do I as a developer want
to build an app people merely "put up with"? Not really.
As for why the Mac, it's partly because that's what I use and know how
to develop for. It also arguably provides the best native toolkit of any
platform, which is why the Mac generally has a higher proportion of
native apps.
There's also a question of just how much each platform is worth. For
example, while Apple's platforms are significantly smaller in market
share than their competitors, they often have a massively
disproportionate market share of "people willing to buy 3rd party
software". This is why a company can build a Mac app and be successful,
but port it to Windows and have it make less money, despite Windows way
more marketshare. It's also why so many apps appear on iOS before
Android (if they ever appear on Android). The costs of developing for
each platform can be the same, but the relative financial importance of
platforms can vary.
That said, it's worth noting that this can depend a lot on the type of
software. If you're building server software then you'll get way more
success on Linux or Windows. Business software (especially for large
businesses) will likely have lots of success on Windows, and for games
you almost have to go for Windows. Meanwhile software for individuals,
smaller businesses, or creative users often does way better on the Mac.
Hopefully gives at least one view as to some of the reasons why
developers go native.
Hugh
12/9/2020 10:49 am
MadaboutDana wrote: "...tracking software prices over the years is a study in the vagaries of market demand (or unexpected lack of it, in some segments)."
And not just demand - supply too. Contributors to this forum have noted before how, before the Millennium and for a time afterwards, single pieces of relatively straightforward software, though perhaps more complex to develop, (Wordperfect? Lotus 1-2-3? Agenda?) could cost at least £100, sometimes considerably more, Of course in those days we consumers were still charged significant amounts for operating system upgrades too.
Personally, I think one of the turning-points in app pricing, as well as in some other respects, was the launch of Scrivener on the Mac in the mid-late Noughties. Aiming for more volume - presumably - Keith Blount and his colleagues priced it low for a writing app - £35 or thereabouts whilst existing rivals were still up in the £70 to £100 region or beyond - and it seemed to set a new price-point. Soon after other new Mac applications followed suit. Competition amongst suppliers had an effect.
(There were also some other rather cool aspects to the Scrivener marketing approach, I believe. Keith initially wisely positioned Scrivener not as a pure writing app but as a kind of prep tool for Word, WordPerfect etc. It was described as "a drafting tool". So Scrivener was marketed not to challenge the giants of the writing app market-place, for which in any case, at least initially, it did not have the functionality, but to be used alongside them. In my day, we used to call this "the puppy-dog strategy"!)
And not just demand - supply too. Contributors to this forum have noted before how, before the Millennium and for a time afterwards, single pieces of relatively straightforward software, though perhaps more complex to develop, (Wordperfect? Lotus 1-2-3? Agenda?) could cost at least £100, sometimes considerably more, Of course in those days we consumers were still charged significant amounts for operating system upgrades too.
Personally, I think one of the turning-points in app pricing, as well as in some other respects, was the launch of Scrivener on the Mac in the mid-late Noughties. Aiming for more volume - presumably - Keith Blount and his colleagues priced it low for a writing app - £35 or thereabouts whilst existing rivals were still up in the £70 to £100 region or beyond - and it seemed to set a new price-point. Soon after other new Mac applications followed suit. Competition amongst suppliers had an effect.
(There were also some other rather cool aspects to the Scrivener marketing approach, I believe. Keith initially wisely positioned Scrivener not as a pure writing app but as a kind of prep tool for Word, WordPerfect etc. It was described as "a drafting tool". So Scrivener was marketed not to challenge the giants of the writing app market-place, for which in any case, at least initially, it did not have the functionality, but to be used alongside them. In my day, we used to call this "the puppy-dog strategy"!)
tightbeam
12/9/2020 12:28 pm
Thank you for this explanation.
Martin Pilkington wrote:
Martin Pilkington wrote:
tightbeam wrote:
There isn't anything more frustrating than a wonderful app that is
>restricted just to Mac users or just to Windows users. Cross-platform
>apps let developers maximize their customer base, so who *wouldn't*
code
>for everyone? A slight performance degradation seems like a worthwhile
>tradeoff. Nothing I do is so important that it must be done in a
>microsecond versus a millisecond.
If you would like an answer from a developer who has just released a
native Mac app (Coppice), it's actually pretty simple: I want to write
the best app possible. I *could* open myself up to the Windows market,
or even Linux, by using something like Electron, but that would lead to
a lower quality product. Each platform has opinions as to the look and
feel of apps, and their respective native toolkits provide a lot of that
for free. You get none of that with a cross-platform toolkit. Some allow
you to get pretty close but only with additional work on the part of
developers, which is work not spent on features or other bug fixes. Some
users can put up with the non-native feel, but do I as a developer want
to build an app people merely "put up with"? Not really.
As for why the Mac, it's partly because that's what I use and know how
to develop for. It also arguably provides the best native toolkit of any
platform, which is why the Mac generally has a higher proportion of
native apps.
There's also a question of just how much each platform is worth. For
example, while Apple's platforms are significantly smaller in market
share than their competitors, they often have a massively
disproportionate market share of "people willing to buy 3rd party
software". This is why a company can build a Mac app and be successful,
but port it to Windows and have it make less money, despite Windows way
more marketshare. It's also why so many apps appear on iOS before
Android (if they ever appear on Android). The costs of developing for
each platform can be the same, but the relative financial importance of
platforms can vary.
That said, it's worth noting that this can depend a lot on the type of
software. If you're building server software then you'll get way more
success on Linux or Windows. Business software (especially for large
businesses) will likely have lots of success on Windows, and for games
you almost have to go for Windows. Meanwhile software for individuals,
smaller businesses, or creative users often does way better on the Mac.
Hopefully gives at least one view as to some of the reasons why
developers go native.
Andy Brice
12/9/2020 10:45 pm
Apple makes most of its money on hardware. So it is in their interest to push down the price of software to make the hardware more attractive. It has reached the ridiculous point that some people consider $0.99 'expensive' for an iOS app. The Mac app store also seems in a race to the bottom.
The accepted wisdom amongst software entrepreneurs now is to sell B2B (business) web-based software by subscription and avoid B2C (consumer) software like the plague.
I wonder if Apple dropping its commission on the app store from 30% to 15% for smaller developers was because they are worried about too many developers shifting to web based products (I don't know, I'm just speculating).
--
Andy Brice
https://www.hyperplan.com
The accepted wisdom amongst software entrepreneurs now is to sell B2B (business) web-based software by subscription and avoid B2C (consumer) software like the plague.
I wonder if Apple dropping its commission on the app store from 30% to 15% for smaller developers was because they are worried about too many developers shifting to web based products (I don't know, I'm just speculating).
--
Andy Brice
https://www.hyperplan.com
satis
12/10/2020 3:13 am
Andy Brice wrote:
Generalizations like that can be fraught. "Some people" don't necessarily represent the worldwide iOS app store market as a whole certainly, given the much higher overall revenue for iOS apps while selling a decided minority of hardware. According to a recent report from app analysis firm App Annie, the amount of money spent on the iOS App Store and the Google Play Store hit an estimated $112 billion in 2020, with about 65 cents out of every dollar spent on mobile app stores in the iOS App Store.
With more expensive hardware, Apple generally has customers more willing to spend on apps, and on subscriptions. Honestly, if you want to complain about people not wanting to pay $0.99 on an app you're about five years late and talking about the wrong platform.
It has reached the ridiculous point that some people consider $0.99 ‘expensive’ for an iOS app.
Generalizations like that can be fraught. "Some people" don't necessarily represent the worldwide iOS app store market as a whole certainly, given the much higher overall revenue for iOS apps while selling a decided minority of hardware. According to a recent report from app analysis firm App Annie, the amount of money spent on the iOS App Store and the Google Play Store hit an estimated $112 billion in 2020, with about 65 cents out of every dollar spent on mobile app stores in the iOS App Store.
With more expensive hardware, Apple generally has customers more willing to spend on apps, and on subscriptions. Honestly, if you want to complain about people not wanting to pay $0.99 on an app you're about five years late and talking about the wrong platform.
Simon
12/16/2020 2:25 pm
tightbeam wrote:
Having used Windows and Linux, macOS is my personal choice, easy to use and visually appealing. No hunting through myriads of windows for settings, no crappy display and driver hunting and issues. I pay for macOS and don't enjoy it being hampered by non native coded apps. Microsoft and Adobe apps are atrocious in macOS and only used because I have to for business. I'd drop them in a second. Even the veritable Visual Studio Code is annoying. In macOS you can switch between open documents in one application by using "CMD+`". This does not work in VSC. As a keyboard user these little annoyances create quite some friction, so I move to a native app. I chose macOS for a reason.
I agree with Mark Pilkington:
There is an assumption that all operating systems are equal and in my experience they are not. You choose what you want to use (or the choice is made by your boss). I'm ditching more and more "code once" apps and won't even download new ones, because it frustrates me to bits. I'm rapidly coming to the position that if a developer wants me to buy an app on the Mac, it better be native coded or I'm not interested.
There isn’t anything more frustrating than a wonderful app that is restricted just to Mac users or just to Windows users. Cross-platform apps let developers maximize their customer base, so who *wouldn’t* code for everyone? A slight performance degradation seems like a worthwhile tradeoff. Nothing I do is so important that it must be done in a microsecond versus a millisecond.
Having used Windows and Linux, macOS is my personal choice, easy to use and visually appealing. No hunting through myriads of windows for settings, no crappy display and driver hunting and issues. I pay for macOS and don't enjoy it being hampered by non native coded apps. Microsoft and Adobe apps are atrocious in macOS and only used because I have to for business. I'd drop them in a second. Even the veritable Visual Studio Code is annoying. In macOS you can switch between open documents in one application by using "CMD+`". This does not work in VSC. As a keyboard user these little annoyances create quite some friction, so I move to a native app. I chose macOS for a reason.
I agree with Mark Pilkington:
If you would like an answer from a developer who has just released a native Mac app (Coppice), it’s actually pretty simple: I want to write the best app possible. I *could* open myself up to the Windows market, or even Linux, by using something like Electron, but that would lead to a lower quality product. Each platform has opinions as to the look and feel of apps, and their respective native toolkits provide a lot of that for free. You get none of that with a cross-platform toolkit. Some allow you to get pretty close but only with additional work on the part of developers, which is work not spent on features or other bug fixes. Some users can put up with the non-native feel, but do I as a developer want to build an app people merely “put up with”? Not really.
There is an assumption that all operating systems are equal and in my experience they are not. You choose what you want to use (or the choice is made by your boss). I'm ditching more and more "code once" apps and won't even download new ones, because it frustrates me to bits. I'm rapidly coming to the position that if a developer wants me to buy an app on the Mac, it better be native coded or I'm not interested.
Andy Brice
12/18/2020 10:57 am
Here is one developer's reflections on the difficulty of writing cross platform GUI frameworks and the applications that sit on top of them:
https://blog.royalsloth.eu/posts/sad-state-of-cross-platform-gui-frameworks/
Personally, as a developer, I prefer to put up with some compromises imposed by a cross-platform framework, such as Qt, rather than only develop of one OS or (shudder) write the GUI for each OS separately.
"Abstract out all the business logic so you have a small GUI"
The vast majority of code in the applications that I (and many other developers) write is mostly GUI.
"Write it for web then"
No. Desktop apps have significant advantages over web apps.
--
Andy Brice
http://www.hyperplan.com
https://blog.royalsloth.eu/posts/sad-state-of-cross-platform-gui-frameworks/
Personally, as a developer, I prefer to put up with some compromises imposed by a cross-platform framework, such as Qt, rather than only develop of one OS or (shudder) write the GUI for each OS separately.
"Abstract out all the business logic so you have a small GUI"
The vast majority of code in the applications that I (and many other developers) write is mostly GUI.
"Write it for web then"
No. Desktop apps have significant advantages over web apps.
--
Andy Brice
http://www.hyperplan.com
Christoph
12/18/2020 11:43 am
Great article. This quote sums it up very well:
Regarding the statement (meant as a drawback of Electron): "Javascript is simply the worst language that I have ever used." I would agree that JavaScript is awful, but nowadays you write Electron with modern versions of JavaScript or TypeScript which are much less awful. For instance the "variable hoisting" that the author mentions is not used any more in ES6 (modern variant of JavaScript). So the only real big disadvantage of Electron remains the resource waste (but see also https://dev.to/bitario/in-defense-of-electron For this reason, I think Electon is only suited for the apps that are your "work horses" like Visual Studio Code, not for smaller apps which should not clog up the system so much.
Andy Brice wrote:
People will say “But there’s WxWidgets, but there’s GTK, but there’s Qt” as if someone is looking for ice cream and everyone is going “But there’s frozen shoe leather, but there’s frozen peas, but there’s an empty refrigerator”
Regarding the statement (meant as a drawback of Electron): "Javascript is simply the worst language that I have ever used." I would agree that JavaScript is awful, but nowadays you write Electron with modern versions of JavaScript or TypeScript which are much less awful. For instance the "variable hoisting" that the author mentions is not used any more in ES6 (modern variant of JavaScript). So the only real big disadvantage of Electron remains the resource waste (but see also https://dev.to/bitario/in-defense-of-electron For this reason, I think Electon is only suited for the apps that are your "work horses" like Visual Studio Code, not for smaller apps which should not clog up the system so much.
Andy Brice wrote:
Here is one developer's reflections on the difficulty of writing cross
platform GUI frameworks and the applications that sit on top of them:
https://blog.royalsloth.eu/posts/sad-state-of-cross-platform-gui-frameworks/
Simon
12/18/2020 6:56 pm
The difficulty the developer will face is that users who chose a specific operating system aren't necessarily concerned that the apps works on every platform. What they want is for it to work properly in the OS they are using and have purchased it for. The compromises developers make to make the app work on every platform kills just the unique features a user chose to use the platform for. May as well buy a Raspberry PI and use that. I've realised as a user I don't want the compromises. This has only come to me over time rather than an intentional thought. When I place all the apps I dislike using and look to replace, they are all non-native apps. And when I do replace them it is with native apps. I've gotten that frustrated with Visual Studio Code, that it's been replaced with BBedit.
I do understand for people who have to work in more than one OS, where needing to use the app is preferable to not having them. But making the app frustrating and unpleasant to use in the process for the rest of users will make users jump ship when something else comes along. Plus, nothing is as motivating as using an app you enjoy using, rather than having to grit your teeth :)
Andy Brice wrote:
I do understand for people who have to work in more than one OS, where needing to use the app is preferable to not having them. But making the app frustrating and unpleasant to use in the process for the rest of users will make users jump ship when something else comes along. Plus, nothing is as motivating as using an app you enjoy using, rather than having to grit your teeth :)
Andy Brice wrote:
Here is one developer's reflections on the difficulty of writing cross
platform GUI frameworks and the applications that sit on top of them:
https://blog.royalsloth.eu/posts/sad-state-of-cross-platform-gui-frameworks/
Personally, as a developer, I prefer to put up with some compromises
imposed by a cross-platform framework, such as Qt, rather than only
develop of one OS or (shudder) write the GUI for each OS separately.
"Abstract out all the business logic so you have a small GUI"
The vast majority of code in the applications that I (and many other
developers) write is mostly GUI.
"Write it for web then"
No. Desktop apps have significant advantages over web apps.
--
Andy Brice
http://www.hyperplan.com
Lothar Scholz
12/19/2020 4:49 pm
As a developer i can tell you that the reason why lots of things are now done with Electron is that Microsoft is aweful, they totally failed to improve anything for desktop development in the last 15 years (2005 when they wanted everyone move to WPF/C#). There is just no acceptable windows toolkit anymore. I had high hopes that now they learned it after failing so hard with UWP and Windows 8/Windows Phone/Windows RT. Now they announced WinUI3 as the new way to develop native code apps on windows with an expected first release date someday in 2021 at the same time when Linux will finally get Gtk4.
We will see how many use it. The main problem with most other toolkits is that they don't scale well to multicores. Electron is more or less single threaded and can't use GPU computational acceleration in any way. This means it uses around 1-5% of the power that is available in your new $2000 computer.
Evernote as mentioned had another problem, they have a pretty simple GUI but they didn't even abstract the common business logic. If they only had to port the platform GUI part then they might have stayed with native code. They move from one into the total opposite direction, again one more sign that CEOs are awful and not smarter then Joe Average but get millions of salaries.
What is more important that Apple puts interesting stuff from the business layer logic into the operating system with it's AI and natural language features. Microsoft has nothing, it all runs in Azure and needs web services and enforces subscriptions on the developed applications. Linux has nothing, neither in the OS nor in the Cloud.
And finally a word to Android. Android is not a desktop system, it's a phone system. It's not designed to run good apps like we have on iOS. Just simple as that. And the choice of Java as main development language is nowadays terrible and someone should replace it fast. But somehow Google is awful too. Almost every software package they get into their hand starts to stink. Google it and you find the interviews with people who expain why this is, they idea to hire the smartest people makes software unmaintainable. It's an interesting read.
If we had a good note taking cross platform program i could bomb you with lots links to links to backup my arguments. But i still haved found one
We will see how many use it. The main problem with most other toolkits is that they don't scale well to multicores. Electron is more or less single threaded and can't use GPU computational acceleration in any way. This means it uses around 1-5% of the power that is available in your new $2000 computer.
Evernote as mentioned had another problem, they have a pretty simple GUI but they didn't even abstract the common business logic. If they only had to port the platform GUI part then they might have stayed with native code. They move from one into the total opposite direction, again one more sign that CEOs are awful and not smarter then Joe Average but get millions of salaries.
What is more important that Apple puts interesting stuff from the business layer logic into the operating system with it's AI and natural language features. Microsoft has nothing, it all runs in Azure and needs web services and enforces subscriptions on the developed applications. Linux has nothing, neither in the OS nor in the Cloud.
And finally a word to Android. Android is not a desktop system, it's a phone system. It's not designed to run good apps like we have on iOS. Just simple as that. And the choice of Java as main development language is nowadays terrible and someone should replace it fast. But somehow Google is awful too. Almost every software package they get into their hand starts to stink. Google it and you find the interviews with people who expain why this is, they idea to hire the smartest people makes software unmaintainable. It's an interesting read.
If we had a good note taking cross platform program i could bomb you with lots links to links to backup my arguments. But i still haved found one
Lothar Scholz
12/19/2020 4:49 pm
As a developer i can tell you that the reason why lots of things are now done with Electron is that Microsoft is aweful, they totally failed to improve anything for desktop development in the last 15 years (2005 when they wanted everyone move to WPF/C#). There is just no acceptable windows toolkit anymore. I had high hopes that now they learned it after failing so hard with UWP and Windows 8/Windows Phone/Windows RT. Now they announced WinUI3 as the new way to develop native code apps on windows with an expected first release date someday in 2021 at the same time when Linux will finally get Gtk4.
We will see how many use it. The main problem with most other toolkits is that they don't scale well to multicores. Electron is more or less single threaded and can't use GPU computational acceleration in any way. This means it uses around 1-5% of the power that is available in your new $2000 computer.
Evernote as mentioned had another problem, they have a pretty simple GUI but they didn't even abstract the common business logic. If they only had to port the platform GUI part then they might have stayed with native code. They move from one into the total opposite direction, again one more sign that CEOs are awful and not smarter then Joe Average but get millions of salaries.
What is more important that Apple puts interesting stuff from the business layer logic into the operating system with it's AI and natural language features. Microsoft has nothing, it all runs in Azure and needs web services and enforces subscriptions on the developed applications. Linux has nothing, neither in the OS nor in the Cloud.
And finally a word to Android. Android is not a desktop system, it's a phone system. It's not designed to run good apps like we have on iOS. Just simple as that. And the choice of Java as main development language is nowadays terrible and someone should replace it fast. But somehow Google is awful too. Almost every software package they get into their hand starts to stink. Google it and you find the interviews with people who expain why this is, they idea to hire the smartest people makes software unmaintainable. It's an interesting read.
If we had a good note taking cross platform program i could bomb you with lots links to links to backup my arguments. But i still haved found one
We will see how many use it. The main problem with most other toolkits is that they don't scale well to multicores. Electron is more or less single threaded and can't use GPU computational acceleration in any way. This means it uses around 1-5% of the power that is available in your new $2000 computer.
Evernote as mentioned had another problem, they have a pretty simple GUI but they didn't even abstract the common business logic. If they only had to port the platform GUI part then they might have stayed with native code. They move from one into the total opposite direction, again one more sign that CEOs are awful and not smarter then Joe Average but get millions of salaries.
What is more important that Apple puts interesting stuff from the business layer logic into the operating system with it's AI and natural language features. Microsoft has nothing, it all runs in Azure and needs web services and enforces subscriptions on the developed applications. Linux has nothing, neither in the OS nor in the Cloud.
And finally a word to Android. Android is not a desktop system, it's a phone system. It's not designed to run good apps like we have on iOS. Just simple as that. And the choice of Java as main development language is nowadays terrible and someone should replace it fast. But somehow Google is awful too. Almost every software package they get into their hand starts to stink. Google it and you find the interviews with people who expain why this is, they idea to hire the smartest people makes software unmaintainable. It's an interesting read.
If we had a good note taking cross platform program i could bomb you with lots links to links to backup my arguments. But i still haved found one
Andy Brice
12/19/2020 5:28 pm
@Lothar Scholz
I agree that Microsoft's approach (or lack of) to desktop GUI platforms for the last decade (and more) has been totally shambolic. What a mess. I don't even know what the current recommended GUI platform for Windows is. Even if I did, it will probably be replaced within 2 years. And the underlying Win32 API gives me the dry heaves (this function call has 15 arguments, each of which is a struct, mostly containing NULLs).
I tried Javascript, but was horrified by the messy scoping and type rules. Ugh. But I hear Typescript is much better. Does it still have object-based (rather than class-based) inheritance, like Javascript?
I agree that Microsoft's approach (or lack of) to desktop GUI platforms for the last decade (and more) has been totally shambolic. What a mess. I don't even know what the current recommended GUI platform for Windows is. Even if I did, it will probably be replaced within 2 years. And the underlying Win32 API gives me the dry heaves (this function call has 15 arguments, each of which is a struct, mostly containing NULLs).
I tried Javascript, but was horrified by the messy scoping and type rules. Ugh. But I hear Typescript is much better. Does it still have object-based (rather than class-based) inheritance, like Javascript?
Christoph
12/19/2020 7:59 pm
Andy Brice wrote:
TypeScript is not a realy different langauge, it is modern JavaScript + static typing. Just like modern JavaScript, it has a class keyword (mostly to accomodate Java programmers), but under the hood it is still all prototype-based. Anyway, programming in modern JavaScript or TypeScript is not really so horrible.
I tried Javascript, but was horrified by the messy scoping and type
rules. Ugh. But I hear Typescript is much better. Does it still have
object-based (rather than class-based) inheritance, like Javascript?
TypeScript is not a realy different langauge, it is modern JavaScript + static typing. Just like modern JavaScript, it has a class keyword (mostly to accomodate Java programmers), but under the hood it is still all prototype-based. Anyway, programming in modern JavaScript or TypeScript is not really so horrible.
Lothar Scholz
12/20/2020 3:09 am
Christoph wrote:
Anyway, programming in modern JavaScript or TypeScript is not really so horrible.
I think it is. Anyone saying otherwise has not maintained a large code base over a long time.
So it's good for the throw away web culture where you rebuild your apps when a new framework comes along.
