1. 21
    Apple Is Trying to Kill Web Technology mac programming web onezero.medium.com
  1.  

  2. 32

    So… their automated scanning tool was upgraded and can detect the usage of APIs that were already marked private and aren’t supposed to be used. It looks like Electron was using them, and the usage finally got caught.

    Not what I’d call a reason to accuse Apple of trying to kill web technology…

    1. 48

      There’s a difference between “trying to kill” and indifference. The private API deprecations biting Electron apps isn’t malice, it is the cost of dragging in enormous dependencies that want to be their own micro operating system.

      Apple has never embraced the web. It doesn’t make sense for them to do so. This is a perfectly valid stance to take.

      1. 14

        It’s a big part of the reason that I’m bought into their platform.

        1. 11

          Apple has never embraced the web.

          A very long time ago they actually tried. Remember the first iPhone: it didn’t support third-party apps and was promoted as an “internet communication device”.

          However, Electron isn’t the web in my opinion. I think that one of the most important characteristics of the web is the ability to browse freely across websites just by clicking links, but Electron apps are apps and won’t give you such freedom.

        2. 27

          This article and all other Medium articles are what’s killing the web.

          1. 47

            Please do. I don’t have a Mac or iPhone, but I can respect encouraging native application development.

            1. 21

              I can’t remember who said it but “the Web set user interface development back by twenty years” or something to that effect.

              1. 8

                If you want to develop for either of those platforms, you will have to buy a mac. That fact alone should raise some flags for folks.

                1. 11

                  Why is that a bad thing? I’d expect a developer targeting Windows to have a machine with Windows installed.

                  I can cross-compile to Windows from my Gentoo machine with a mingw toolchain just fine, but I would never want to release any of those artifacts without testing them properly in the target environment.

                  1. 12

                    I’d expect a developer targeting Windows to have a machine with Windows installed.

                    but a Mac isn’t an iPad or iPhone. Apple requires you to have their computer to target their other device, even if you happen to own the other device.

                    1. 7

                      Of all the companies out there whose exclusive little ecosystem I could choose to import my entire life into, Apple seems the most likely to shaft me, both as a developer and a user.

                      1. 2

                        Apple seems the most likely to shaft me, both as a developer and a user

                        Could you elaborate on that? I don’t have a strong opinion for or against, I’m just genuinely curious about your reasons.

                        1. 2

                          This article demonstrates the pattern I’ve observed well: https://lobste.rs/s/tdkwyq/future_my_games_on_apple_post_catalina

                          As far as Apple is concerned, developing for their platform is a privilege. And using it means letting them make all the decisions for you. This is not what I want from my tools.

                          1. 2

                            I can only share my personal experience, but as someone who has had an Apple device for only a couple months, I was shafted very soon after I joined the Apple ecosystem when my iPhone SE installed a slower, buggier OS, without asking, and with no possibility to revert.

                            Part of me knew I was signing up for this mistreatment but it still sucks.

                        2. 2

                          It’s a bad thing because it’s an extra step which requires the purchase of hardware from a particular company. Windows development requires developers to purchase nonfree software, as you point out, which is not as bad but still a problem. Web development does not require any of this.

                      2. 4

                        I think it’s better to have 10 apps, 2 natives and 8 web apps, rather than to have just 2 native apps altogether. I think web application programming enabled lots of people to create their own apps. Maybe they’re not the best apps, they are large and slow; but nobody forces anyone to use them.

                        1. 7

                          but nobody forces anyone to use them.

                          Until their employer adopts Slack.

                          1. 1

                            You can just use it on your desktop or laptop, no?

                            1. 2

                              I am sorry, but I don’t understand what you mean. If the argument is that web apps are ok because you don’t need to use them, but you DO have to use them for your work, then how does it matter where you run them?

                              1. 1

                                I was asking if OP is forced to use the Slack app on their phone, or if he has the option of using the desktop version.

                              2. 1

                                Slack on desktop is the web version, it’s electron.

                                1. 2

                                  But you’re not forced to use electron apps on your phone, at least.

                                  1. 2

                                    I’m positive that’s only because they won’t run.

                                    If it was feasible people would release iOS apps built with electron. Guaranteed.

                                    1. 1

                                      I was under the impression that /u/yakubin said people might be forced to use electron apps on their phone, where they are slow. So I asked if employees have the option of just using the desktop version.

                                      1. 1

                                        Electron apps don’t AFAIK run on any mobile device.

                                        They’re slow on any device.

                                        What is your point?

                                        1. 1

                                          What’s yours? I was just saying employees have the option of just using desktop Slack, if their employer uses Slack.

                              3. 1

                                I’d rather use Slack than Microsoft Lync / Skype for Business!

                                1. 1

                                  Weird, I’d rather use Microsoft Teams than Slack ;)

                          2. 30

                            Good. The web is 30 years of tech debt. It’s worse than the Java standard library, and even that doesn’t have to deal with JavaScript.

                            1. 10

                              There’s absolutely nothing good about this. The advantage of the web stack is that it’s ubiquitous and backwards compatible. You can take a web app from a decade ago, open it in a modern browser, and it’ll just work on pretty much any OS. Meanwhile, good luck trying to compile an iOS app from a year go.

                              Thanks to web tech we now have lots of mainstream applications on Linux that just wouldn’t exist otherwise. This has done wonders for Linux adoption in my opinion. Now you can run things like VS Code, Slack, and so on without having to hope they work through Wine.

                              While it’s currently less performant, VS Code shows that you can clearly get pretty good results with it. And this will only get better going forward. Just look at how much Js engines have improved over the years. And again, this benefits all platforms out of the box.

                              Meanwhile, you absolutely do not need to use Js nowadays. I’ve been using ClojureScript for around 5 years now, I can’t remember the last time I had to write a single line of Js. The dev experience is also strictly superior to any native tech I’ve used. Here’s an example of what it looks like in practice with immediate live feedback on the code as you’re writing it.

                              This alone is a killer feature for writing UIs in my opinion because you often end up doing a lot of experimentation with component placement. And the amount of time you save by being able to share code across platforms is huge. Maintaining 5 different versions of the app for Windows, Mac, Linux, Android, and iOS is a herculean effort that’s simply beyond what many teams are able to do effectively.

                              Instead of fighting web tech, I think it would be much more productive to look at how this stack can be improved and optimized to address the shortcomings.

                              1. 16

                                Thanks to web tech we now have lots of mainstream applications on Linux that just wouldn’t exist otherwise

                                What I find hilarious about this is that electron apps are absolutely not portable. Like.. OpenBSD recently got an electron port (much… much much to my surprise :D).. but you will never be able to run apps like Spotify.. because they ship binary blobs for the DRM..

                                In essence, you have what looks like a more open ecosystem because linux is supported.. and linux is open source!.. and now these apps run on it!… but it is in fact… it isn’t any more open than microsoft office… or what ever app you want to compare it to!

                                1. 2

                                  There is the technology itself which is open source and allows writing open source apps that work on top of it. There are plenty of open source projects using Electron as well as commercial ones. VS Code is a perfect example of a completely open source app that now runs on many platforms and provides an accessible IDE for thousands of developers.

                                  1. 6

                                    VScode has non-opensource components.

                                    1. 2

                                      I’m not aware of any non-open source components in VSCdoium.

                                2. 5

                                  Thanks to web tech we now have lots of mainstream applications on Linux that just wouldn’t exist otherwise

                                  (my emphasis)

                                  That’s great. But the linked submission is about the macOS platform. Is it really so dominant that stopping Electron app updates in the App Store will deal the platform Web tech a death blow?

                                  If nothing else, I’d imagine the this would be an opportunity for the competitors to macOS.

                                  (edit clarification)

                                  1. 2

                                    It mostly harms macOS users since it makes it harder for them to get and update the apps they use. I don’t really understand why Apple should decide for me what apps I get to run on my computer or how I run them.

                                    1. 1

                                      OK I see your point now regarding who it harms.

                                      As I understand it, this is a halt to the update of Electron apps in the macOS App Store. Surely it’s still possible to install “normally”? I seem to remember just installing Discord from the Discord web page, not via the App Store.

                                      1. 1

                                        But now you have to go through unofficial channels to do it, so it’s becoming a workaround the official solution.

                                  2. -1

                                    I’m with you on the points about the web being ubiquitous and backwards-compatible. I love JavaScript, though, and it’s incredible how much better it has gotten over the years. A lot of people struggle with basics in JS because it isn’t what they’re comfortable with (e.g. prototypal vs classical inheritance) and just give up on that alone. The reason JS gets so much attention and so many improvements, though, is because it is ubiquitous. There is no other language or platform that gets as much attention, as many open source contributions, as many quality of life updates.

                                    Most folks who “hate” JS only remember goofy things from ye olde JS or never bothered to learn anything after seeing some syntax they don’t like or “no strict typing.”

                                    1. 5

                                      I strongly prefer ClojureScript because it’s a cleaner and simpler language with a more stable ecosystem, and better tooling.

                                      Nowadays Js is huge, and there are many different ways to do any one thing with libraries using all kinds of different patterns to do things. All this directly results in tons of mental overhead that you wouldn’t have otherwise. At the same time, there is a ton of churn in the ecosystem with things changing or becoming obsolete often in a matter of months.

                                      By contrast, Clojure is a focused language that encourages a common way of solving problems. I’ve been using Reagent and re-frame for years now, and the APIs are still largely the same, only things I’ve had to do to move to new versions was update the version numbers in my projects. This is especially nice considering that Reagent uses React internally, and I’ve been protected from the churn there.

                                      ClojureScript s-exp syntax completely obviates the need for things like JSX, and defaulting to immutability makes the code much easier to manage since you can safely do local reasoning about parts of your application.

                                      ClojureScript compiler can do code pruning down to function level, something that’s completely impossible to do with Js. It also handlers code splitting and minification out of the box. This is incredibly useful for writing web apps where you’re sending your code to they client.

                                      Hot loading just works in ClojureScript while it’s pretty much impossible to get working properly in Js due to pervasive mutability.

                                      And since ClojureScript is hosted I get access to all of the Js ecosystem if I need it.

                                      1. 2

                                        I didn’t make it clear in my original post, but I’m 100% behind people who prefer something like clojurescript, elm, or anything else that can be compiled to run on the web. It’s really a personal preference. I just wanted to make it clear that JS itself is not some sort of abomination that must be avoided at all costs.

                                        1. 1

                                          That’s fair, JS and its ecosystem has come a long way, and you could certainly do worse.

                                  3. 9

                                    The web is the only application platform that isn’t owned. I’d like to keep it.

                                    1. 13

                                      Give Google a few more years and they’ll own it officially, and not just inofficially as they do now.

                                      1. 6

                                        Only if you let them. As it stands now it is still fairly easy to avoid most of their products and services except for reCaptcha and gmail and, unfortunately, except for those who go to a school or work at a company or government institution which has standardised on Google services.

                                        Don’t use Chromium or its closed-source derivative Chrome. Stay away from Chromebooks. Use AOSP-derived Android forks without the Google Services Framework, playstore or Google apps. Use a meta-search engine as a proxy to Google search. Don’t publish on Youtube, use Peertube (self-hosted or otherwise) or Vimeo or some other alternative. No Gmail but Email, please.

                                        This is what I’ve been doing for ages, not out of spite for Google - which, years ago, was seen as one of the good forces on the ‘net against evil Microsoft and greedy SCO/Oracle/etc - but because open protocols and free software just make more sense. That I’ve been vindicated by Google wiping the ‘evil’ out of their corporate motto only confirms this stance.

                                        1. 6

                                          I finally got off all the Google services this year. I replaced gdrive, contacts, and calendar with nextcloud on a digital ocean droplet, and I went with fastmail for my mail. I’m still on android, but don’t actually use any of the Google apps. I’m likely get FairPhone next and completely avoid anything directly associated with Google. I find Firefox works pretty well as a browser on both Android too.

                                          I find I don’t really miss the gsuit at all, and nextcloud has been pretty painless to maintain as well. So, getting off Google really all that bad nowadays.

                                          1. 8

                                            I’ve got a HP DL380g7 in a sound-insulated, force-ventilated rack which doubles as a drying cabinet, the heat generated by the equipment in top is used to dry produce on 8 racks in the bottom section. I built that enclosure using some left-over supermarket shelves which I found in a dumpster, a stack of lumber, a forced draft fan and the largest car air filter I could find. The drying racks are made of wood with metal meshing to allow for an uninterrupted air flow. The thing is managed using Proxmox and runs, among other things:

                                            • mail: exim/greylistd/spamassassin/dovecot/managesieve, roundcube for web mail
                                            • media: airsonic
                                            • video: peertube
                                            • photo sharing : experimenting with pixelfed, phasing out openphoto
                                            • messaging: xmpp
                                            • revision control front end: gitea
                                            • search: searx, recoll (as a local search plugin for searx)
                                            • ‘cloud’: nextcloud
                                            • ‘office’: libreoffice online (through CODE in Nextcloud)
                                            • backup: rsnapshot

                                            The same server also is used as build server and will soon be used as a virtual router (using pfsense). I’m looking into expanding storage using a Netapp DS4243 or DS4246 used as a JBOD shelf. Services are used by me, family and friends and as remote backup for some of those. In return I’m using their storage as remote backup.

                                            Of course it is not necessary to go to such lengths to become self-reliant when it comes to IT services, for most people a Raspberry Pi with some external storage will suffice.

                                            1. 1

                                              I’ve got a HP DL380g7 in a sound-insulated, force-ventilated rack which doubles as a drying cabinet, the heat generated by the equipment in top is used to dry produce on 8 racks in the bottom section. I built that enclosure using some left-over supermarket shelves which I found in a dumpster, a stack of lumber, a forced draft fan and the largest car air filter I could find. The drying racks are made of wood with metal meshing to allow for an uninterrupted air flow.

                                              do you have anything written or pictures on that, it sounds interesting :)

                                              1. 3

                                                Not really, I could whip up something if there is interest but given the one-off nature of this project caused by it being based around left-over materials it does not lend itself to duplication unless you happen upon the same type of left-overs.

                                                Here’s some images of the (mostly) finished enclosure:

                                                https://imgur.com/a/M4Lbf1K

                                                1. 1

                                                  thanks for the pictures! using the waste heat to dry produce is brilliant imho :) it’s always nice to see such builds, even if not directly reproduceable some ideas may be transferred :)

                                          2. 2

                                            I thought you were satirizing until the last paragraph.

                                            1. 2

                                              So we can also ignore HTTP/2 (which was shoved down the IETF’s throat) and HTTP/3 (which is currently being shoved down the IETF’s throat)?

                                              1. 4

                                                That depends on the merits of those protocols and whether there are several independent implementations. The mere fact that something comes from Google does not mean it is untouchable. The idea to re-use a connection (HTTP/2) is valid, as to the merits of HTTP/3 I can not make any statement as I have not looked at this protocol yet.

                                                What can and should be ignored is something like AMP since that does lead to more power to be concentrated into the hands of a single party, i.e. Google. If AMP were to be changed into some form of compressed protocol which can be self-hosted without any outside dependencies this could change.

                                                1. 2

                                                  You can reuse a connection on HTTP/1.1 (serially, not concurrently though). And HTTP/2 is basically TCP over TCP. It’s not faster (because the same amount of data is being sent to the same destination) but it does duplicate functionality that’s in the kernel, and it still suffers from head-blocking (only more so). HTTP/3 is TCP over UDP, which gets around the head-blocking issue, but still duplicates a lot of functionality from the kernel into userspace.

                                                  And all of this was developed because it serves Google’s needs.

                                                  1. 1

                                                    Reusing connections in HTTP/1 works but is a hack. HTTP/2 might not be the best way to go (and the same goes for HTTP/3 (or ‘HTTP over QUIC’ [1])) but there are independent implementations. Also, feel free to ignore HTTP/2, the web works fine without it.

                                                    Don’t confuse the messenger with the message, it is the message which counts. When Google says ‘route all traffic through us’ (viz. AMP) the answer should be no. When they say ‘re-use a single connection for multiple requests’ the answer can be ‘sounds good’ or ‘fine but this duplicates functionality’ or ‘good plan but this belongs in the kernel’ or something along those lines.

                                                    [1] https://en.wikipedia.org/wiki/QUIC

                                            2. 1

                                              They own the web inofficially? Care to elaborate? My reasoning was that there is a w3c/whatwg standards process that isn’t controlled by one single business (like the app store is) and isn’t tied to share holder interests. In fact, the web b and html have some guiding principles that put users first. Over website authors or browser makers.

                                              I think that’s damn good in comparison to an app store.

                                              But please let me know what you meant!

                                          3. 0

                                            macOS/iOS are older than web. If you want to avoid tech debt dump that shit.

                                            1. 1

                                              What?

                                              1. 1

                                                Objective C and NeXTStep are 80s tech. Swift and iOS are constrained by their legacy.

                                                1. 1

                                                  This feels like a bit of a straw-man argument—I am not sure that this is really any different to anything else. The C programming language is 70s tech, born in the PDP age. The world hates the dangers of C these days (because it’s not Rust or something) and yet the Linux kernel, written in C, runs in seemingly everything. Would you also argue that Linux has been constrained by the legacy of the PDP and that the C language has not evolved at all in that time?

                                                  1. 1

                                                    I was responding to a claim that the web is tech debt. Straw man vs straw man.

                                          4. 11

                                            I like web sites and web apps.

                                            I don’t like web apps running in a native wrapper to get into the App Store. Apple has always been against this stuff.

                                            I understand Electron is easier to develop and maintain, but the ui and resource kid sucks.

                                            1. 8

                                              Speaking of trying to kill web technology, the description for this post:

                                              We’re sorry, but there was a problem displaying this page. Please reload and try again.

                                              Thanks, Medium!

                                              1. 5

                                                It’s amazing how Apple, Facebook or Google aren’t shattered into pieces by the antitrust laws. Something has clearly changed since the Netscape days.

                                                1. 7

                                                  …or the Microsoft anti-trust days. One of the accusations thrown against Microsoft was that they used undisclosed APIs in Office (et al) to improve their competitive edge. This was seen as “cheating” the competition, making sure the playing field wasn’t level to start with. People generally agreed, Microsoft should open up, document those APIs, make sure Windows was open for all.

                                                  Now Apple does the same and strangely enough their disciples pat them on their back for their understandable actions, like mattgrenrocks’ reaction ‘Apple has never embraced the web. It doesn’t make sense for them to do so. This is a perfectly valid stance to take’ and jfb’s “It’s a big part of the reason that I’m bought into their platform”. To me this seems like a case of Stockholm syndrome which reminds me of that scene in National Lampoon’s Animal House where the initiates bend over to receive a smack on their behind with a cricket bat, upon which they say ‘thank you sir may I have another one’.

                                                  1. 2

                                                    It’s understandable as an economic actor acting purely in their own selfish interests. That’s a statement made absent of a value judgment. It might sound like I’m condoning it, but I say it more to connote, “ah, capitalism, rewarding crappy behavior once again.”

                                                    Hoarding private APIs for their own use? Crappy. Not falling over themselves to chant “open web” 5 times a day on Twitter (or whatever the current shibboleth is)? I don’t care, I prefer great UX even if it means less software freedom.

                                                    The computer is a means to an end for me, namely exploring the field of computation. The tools used to do so are far less interesting to me than the actual work. I respect those that favor a more libre stack, but don’t feel a particular push toward that. And that’s fine.

                                                    1. 2

                                                      Now Apple does the same and strangely enough

                                                      Not an Apple discipline. But one large difference was that Windows owned >95% of the business and consumer desktop market. IIRC Apple owns 5-10% of the desktop (worldwide) and less than 20% of the smartphone market share world-wide (though > 50% in the US). Of course, I think a reasonable argument can be made that Apple should be investigated for anti-competitive behavior, but I guess it’s easier when a company is a monopoly in many legislations. That said, the EU is apparently starting an investigation into the App Store due to unfair advantages for Apple [1].

                                                      [1] https://techcrunch.com/2019/05/06/eu-will-reportedly-investigate-apple/

                                                      1. 1

                                                        The real “issue” is that Apple’s ecosystem brings in more money for developers than Google’s (despite the hefty cut both take).

                                                        Based on this quick google, app revenue for iOS was almost twice that for Android

                                                        https://www.businessofapps.com/data/app-revenues/#1

                                                        That’s why this Medium post was written - it wasn’t written to defend open standards or the open web, it was written because it’s now slightly more expensive to get into the lucrative Apple ecosystem (macOS App store, not iOS, but still).

                                                      2. 1

                                                        Shrug. I don’t think the situations are remotely comparable, but whatever; I’m not defending Apple’s App Store model – I think it’s a disaster. But I want as little web technology in my life as possible, and Apple’s platforms are the only ones that even remotely reject them.

                                                      3. 2

                                                        Why is that amazing? All these companies spend millions on lobbying. The US political system is heavily in favor of corporate interests. The FAANG companies saw what happened to MSFT in the web browser wars, and routed around it.

                                                      4. 4

                                                        This worries me a lot. The web is the only platform you can easily control as a consumer. When you close a web page, everything is gone. There’s no background tracking or annoying permissions to deal with. The tradeoff is native apps are faster and JS is not the best designed language.

                                                        1. 1

                                                          Is Apple’s position that the alternatives are superior? Why don’t they say that as a matter of policy instead of trying to kill it with a thousand cuts?