josephcsible 3 days ago

It feels like Embrace, Extend, Extinguish to claim that a portable API is "legacy" and that its replacement is Apple-only.

  • matheusmoreira 2 days ago

    It's not necessarily EEE. Maybe it's just that the old wheel sucks. They want a better wheel and so they reinvented it, hopefully better this time.

    The corporations making proprietary software are not the only ones who have that attitude. I've resolved to make all my free software Linux-exclusive so that I can use Linux to the fullest. The Linux kernel is packed full of exclusive non-portable features that very few people take advantage of because they're obsessed with portability, POSIX compliance or whatever. I think that's a waste.

    Portable software is usually sucky lowest common denominator software. We should not limit ourselves to whatever glibc offers.

  • tpmoney 3 days ago

    As near as I can tell, Apple doesn't call it a legacy API. The article does, but the article wasn't written by nor does it appear to be quoting Apple.

  • mzs 2 days ago

    That's what you use to create a utility like nslookup in swift, Apple does not want you to do any resolving yourself, just pass a hostname instead:

    https://developer.apple.com/documentation/network/nwendpoint...

    • ruthmarx 2 days ago

      > Apple does not want you to do any resolving yourself

      Which honestly sounds like a good reason to make sure you do do it yourself.

      • EraYaN 2 days ago

        Not at all actually, passing hostnames means they can fully handle happy eyeballs for you and all other performance optimizations that you can do if you resolve and connect in one call.

  • [removed] 3 days ago
    [deleted]
  • threeseed 3 days ago

    You actually think that a Swift developer, developing against Cocoa APIs, targeting Mac and iOS devices cares about a portable API.

    Because not sure if you know this but the entire software industry is built on high level libraries on top of largely portable code. For example this Swift library wraps c-ares a portable API.

  • [removed] 3 days ago
    [deleted]
  • ryandrake 2 days ago

    It's the same thing they did with Metal. Portable OpenGL is now "legacy." Straight from the 90s Microsoft playbook.

    • pram 2 days ago

      OpenGL is legacy in general, its been on 4.6 for almost a decade.

    • pjmlp 2 days ago

      It is also legacy from Khronos point of view.

  • kccqzy 2 days ago

    Well but the portable API is too low-level and error prone. What is the last time you used getaddrinfo? How often do you actually need to use it?

    One can make a good technical argument based on the merit of the portable API without immediately resorting to the EEE argument.

    • o11c 2 days ago

      getaddrinfo isn't its predecessors, there's nothing error-prone about it. The only thing that's nontrivial is falling back if the first server is unresponsive, and even there the obvious calling code is fine for almost all apps.

      • kccqzy 2 days ago

        If you are using getaddrinfo directly, you likely wouldn't bother to implement Happy Eyeballs, for example.

        • o11c 2 days ago

          And for almost all programs, that doesn't matter in $CURRENTYEAR.