Wine Is For Windows And Darling Is For MacOS

Wine has become a highly optimized and useful piece of software for those that live in Linux, but occasionally need to walk on the Windows side. In case you’d wondered, there’s a similar tool for when you need to run a MacOS program in your Linux environment. Enter Darling, the translation layer you’ve needed all along.

Just as Wine is not an emulator, nor is Darling. As a translation layer, it duplicates functions of the MacOS operating system that programs need to operate but within Linux. It’s fast, because it’s effectively running the MacOS software directly. Initially, Darling was mostly only capable of running MacOS apps at the console level. However, there is rudimentary support for running graphical applications that are based on the Cocoa framework.

Hilariously, if you’re into weird recursive situations, you can go deeper and run Darling within Windows Subsystem for Linux, itself running within Windows. Why? Well, you’re probably bored or just trying to for the sake of it. Regardless, we don’t judge. If you’ve got your own nifty translation or virtual machine hacks in the works, don’t hesitate to let us know!

44 thoughts on “Wine Is For Windows And Darling Is For MacOS

  1. Never really considered this, i always assumed OSX and Linux were close enough that this wasn’t really an issue and releasing software for both is easy enough (or at least much easier compared to win+osx) but i guess a lot of OSX software makers still try to maintain the elusive status of that OS (that you ‘need’ it + latest mac(book) for design and video stuff etc) so good to see that this is a thing.

    1. MacOS is a qualified UNIX. Linux shares a lot of design philosophy with Unix. However, Linux has moved on WAY forward from UNIX. The top 500 supercomputers in the world run Linux, not UNIX, and none of them run Windows or MacOS, or BSD or anything else! Darling is a mildly interesting project, in that users of other operating systems, are intrigued by the MacOS culture and wonder why the adopters adopt! Hackintosh is a temptation for about 2 minutes and then is discarded! Walled gardens prevail e.g. Microsoft office (which is considered commercially redundant nowadays by most) is an example of “required” software that is still not available on Linux (and hence why it is dying). Unified user experiences could be argued in a pair programming environment. However, the vast majority of development is done in/for, Linux instances. MacOS requires most developers to use some kind of Linux container technology to produce something useful! There is a view that MacOS users think that their computers are like company cars – the more expensive the better! The reality is that Linux based machines are FAR better! Software developers that write code for Linux on Linux, do NOT argue this point!

      1. Go on how are Linux based machines far better than Mac for development?
        What magic editor do you use on Linux that you can’t get for Mac?

        Btw my team does plenty of pair programming and we’ve a mix of Windows Mac and Linux. As long as I’ve a bash prompt and can install the gui editors I want why would I care about the underlying OS?

        MacBook pros feel nice, and look nicer than any other laptops I’ve seen. Only issue I’ve noticed with Mac is you can’t get an Nvidia graphics card.

        1. I believe the Linux killer app is called “15% of the cost of a Mac”.

          It’s also nice not having to buy $300 proprietary gloves just to be allowed the privilege of typing on a keyboard I already paid for.

          1. It’s 2023 — personal computers are inexpensive commodities. That means even the relatively expensive brands are still fairly cheap. Most employers will spend more than the cost of a new computer each and every week on an employees’ salary, so it behooves them to provide whichever computer maximizes their employees’ productivity, rather than trying to save a few bucks by purchasing whatever is cheapest. And for a lot of people, it’s a Mac that provides the highest ratio of “time getting my work done” vs “time spent trying to figure out why the computer won’t do what I want”.

            No idea what the $300 gloves are for; you can use any keyboard you want with a Mac, it’s standard USB.

          2. This is a reply to Jeremy Friesner: Greater productivity with MacOS? That is a bold claim that I strongly refute! MacOS is clunky and crashes from time to time. Linux can use lots of different desktops that are amazingly customisable. I was given an old iMac and I installed Ubuntu on it and KDE and customised it to look and work exactly like MacOS (obviously it did run MacOS software) and it fooled a Mac using friend of mine who thought it was MacOS! Linux is WAY faster than MacOS also! Take a look at Asahi Linux on a M1 Macbook Pro – it is faster than MacOS!

        2. For me, it’s all the little macOS differences when compared with other OSs.

          I hate the keyboard layout, the fact that you have to memorize shortcuts to things that have dedicated keys on anything not Apple — yes, I use external keyboards when I use a Mac and that makes it less portable.

          The other thing that is annoying is the multiple multi-key shortcuts for many features.

          Last, the cost of entry into that walled garden. I liked their products before they had an ecosystem that they care more about and dedicate the resources for.

        3. Really don’t want to get into this game cause I have and use both regularly for development. However doing anything non trivial with docker or kubernetes on a Mac simply requires a huge impediment to development that after 5 people spending days trying to solve doesn’t work. Either everything has to be inside containers or almost nothing because of how for really dynamic stuff and Mac using virtual machines behind the scenes that problems exist.

          It’s a fringe case but yeah complex application microservices architectures are infinitely more work to develop on Mac than Linux.

          Also getting everyone to upgrade bash because the Mac version is like 20 years old is a huge hinderence to development. A few other things that can be solved like bash but create a lot of obstacle.

          The corporate agents that sir on the computer to ensure compliance are far more limited as well.

          The list goes on for things that 99% of the target username will never need or care about but from a pure development perspective Linux is a lot more productive than a Mac and really requires each developer to have dedicated external systems to ramp up development and reduce learning curve before productivity gaps.

          That said, there tend to be better talent pool of Mac developers than Linux developers. Mac devs think more frequently at the product level than do Linux developers which focus more on engineering prowess.

      2. I’m a die hard Linux fan and I totally enjoy my expensive Mac Pro for all my professional work. It’s much faster than anything w Intel or AMD inside it just works all the time and has the added benefit of enough kernels and GPUs to be useful for a lot of AI / ML stuff – not to mention when you have to build for IOS.

        I simply don’t see your point. Yes its slightly painful the first time you discover that you missed a step in providing an x86 runnable container, but then you know and then you change your CI accordingly maybe just defer the build step to a Linux box.

        Linux for sure have a lot of interesting work going on on the GUI side but if you’re real developer you use the CLI – not?

          1. > It is WAY slower in fact

            That’s not what your link shows. In fact, I didn’t know the M2 was that performant until I read this result. That’s super neat and honestly pretty impressive for a single company.

          2. stfw: The link shows that the i9-13900k is faster that the M2 Max and the 4090 is faster than the M2 Max and as I said before you can put more than one 4090 in a PC!

          3. You live in opposite world? My Linux (Debian) workstations crash easily (Debian on a 28 core server is rock solid). Dependency problems are a constant waste of time and frustration. I mean days lost on a project in “making things work”.

            My iMac (Intel quad I7 4GHz, 32G RAM) never crashes and everything I install just works. It runs all the usual stuff like the Arduino IDE, KiCAD, LibreOffice, Jupyterlab, STM32Cube, Sublime text, Inkscape, Gimp, and balenaEtcher stuffs images onto SD cards without complaint. Why do you think all the computer science departments and big data researchers use MacBook Airs? A while back I was visiting Palo Alto and stopped at the library to use the WiFi. The WiFi room was packed with people. My laptop with Ubuntu was the ONLY one in the room that played bongo’s on startup.

      3. Hi there! Software engineer who writes code on Linux for Linux. I absolutely do argue this point.

        My custom rust code to process terabytes of gzip compressed data cargo builds on macOS and Linux just fine with zero changes. My Python code doesn’t give a damn where it runs, and if I’m doing stuff with AI/ML, the biggest thing I have to worry about is detecting the GPU: am I using the 3090, the 6900XT, or the M1 Max? Cuda/ROCM/Metal? Other than that, I do not care about the hardware or even most of the OS details beyond “has cores, will run.”

        Even if I’m doing development on Linux directly, I’m still often using containers simply because it’s easier to try different versions of libraries and OSs in an automated way.

        So if that’s the case, why am I typing this on an m2 MacBook Air instead of my Asus with a 2070 Max Q and a 12 Core Intel CPU running Ubuntu? I don’t want to listen to a fan for 6 hours and then silence when I run out of battery. If you’re bolted to your desk all the time it doesn’t really matter what OS you use as long as it makes you happy. Once you want to code anywhere else (like from the couch, or my dining room table like I’m doing right now) suddenly a Mac is insanely great.

      4. The debates comparing Linux, Windows, and MacOS are quite amusing. A key advantage of MacOS and Windows is their lower entry barriers. While Linux has improved in accessibility, it’s not yet on par with 1) being universally accessible and 2) offering a seamless “it just works” experience for the majority.

        The statement “and hence why Microsoft Office is dying… because everyone I know hasn’t used it for years” seems to be a case of generalization fallacy. The idea that the lack of a Linux version will soon lead to the demise of a globally popular, non-niche software like Microsoft Office is premature. Maybe one day, but not just yet.

        That said, I’m equally curious about Darling’s long term utility.

      5. “However, Linux has moved on WAY forward from UNIX. The top 500 supercomputers in the world run Linux, not UNIX”

        Here’s the thing, Linux is merely a kernel. UNIX/POSIX is a userland environment. Linux can be a UNIX/POSIX environment (see also: Adélie Linux). The reason HPC uses Linux is because it’s open source is absolutely vital for being able to tweak information is processed (and even get mainlined) which is central to HPC workloads.

        That said, your tangent is not relevant to the topic.

      6. Honestly your comment comes off like a preschy college student. There’s many practical reasons to use Mac over windows and Linux. Any amount of time working in IT engineering roles will reveal this.

        Linux desktops are a pain in the ass in a corporate setting. Finding a company willing to support linux software is one thing. Finding software that will do what they need and also get the OK from the security team is a nightmare. It’s been like this at every company I work at.

        Windows and Mac dont have that problem. Likely because of the ubiquity of the OS’s. It’s just the way the world is right now.

        If I could run a Linux laptop my workflow would be more efficient as I work on Linux servers all day. But you know what works really well? That’s right, Mac.

        I don’t need to download WSL on windows and deal with their annoying network stack that causes all sorts of issues that IT infrastructure generally doesn’t give a shit about and won’t help you fix.

        I have a native terminal that I can use to do all my work, and even run my kubernetes staging clusters

    2. Stuff run from the command line compiles pretty easily in both, but anything with graphics is relying on a completely different approach to the display manager. Qt5 bridges this somewhat, but leaves things looking somewhat unfinished on both sides.

      1. I’m interested to hear how Qt leaves things look unfinished. My desktop environment and most applications I use are written with C++/Qt and they all seem quite complete. In my experience, it’s Python-based applications that are half-assed.

    3. In my experience it’s more the other way around; when using macOS there are built in programs that do more or less the same as Linux on the command line, and for GUI apps most major Linux software has been ported to macOS already.

    4. As a Linux user, MacOS lacks essentially every feature (Or else uses their own version of it) that makes modern Linux interesting to me. They seem like very different OSes.

    1. Somebody else mentioned iMessage, and Garage Band is also a thing, but more interesting is the third party software. For instance, the theater at my local school keeps a Mac Pro around for the sole purpose of handling their light and sound cues(it’s a proprietary system without many alternatives)

  2. “Hilariously, if you’re into weird recursive situations, you can go deeper and run Darling within Windows Subsystem for Linux, itself running within Windows. ”

    Hilarious here is that Microsoft still uses the wrong description.
    Logically, it must be “Linux Subsystem for Windows” or just “Linux Subsystem”.
    Just like it used to be with the POSIX and OS/2 subsystem in the Windows NT days.
    Because, it’s a subsystem based on Linux, for the Windows system. Windows is the host, the important part.
    Personally, I suspect this loss of understanding is due to the current social decline in general.

    https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem

    Also, Darling seems to be a word play on Darwin, the Unix core of Mac OS X.
    I can be wrong, though. To err is human.

    1. > Logically, it must be “Linux Subsystem for Windows” or just “Linux Subsystem”.

      To err is human indeed. Windows Subsystem for Linux is correct nomenclature: It’s a Windows Subsystem for the purpose of supporting Linux. Therefore it’s a Windows Subsystem for Linux.

      Precursors include: Windows Subsystem for OS/2 (CLI OS/2 app support), Windows Subsystem for POSIX (for NT-built POSIX things that is particularly awful), and even the Windows Subsystem for Win32 which allows (of course) Win32 apps to run but is also the block which VDM (the Virtual DOS Machine) communicates with. Outside of that, you have SFU, the [Windows] Services for Unix, and so on and so forth.

      The “Windows X for Y” has been standard nomenclature for decades. This is just the first instance a lot of younger power users have come in contact with it.

    1. You mean, it’s a way to make something accessible that’s FOSS but you want to gatekeep it? I absolutely would never use Linux as my desktop OS (don’t combat that, it’s just a fact) and find WSL very convenient. In what way is it in the spirit of FOSS to call that an attack? Is using OpenSSL in a proprietary system an attack? Is using a free JS library on a company website an attack?

  3. It is sad to see that everyone in the comments has devolved into bashing in each other’s heads over operating systems and if the hardware has an apple on it or not:

    Every system is stable, until the user interacts with it.

    MacOS hangs from time to time, so does any Linux distribution and any windows version, it’s called computing.

    Neither of the OSes crashes inherently more or less, and yes sometimes a OS takes more time to set up to develop on.

    I rock all three just for fun and I’ve seen all three of the systems crash on stuff that makes you scratch your head and think: why the fuck did it crash on such a easy task.

    In the end, as long as you save often, keep backups around, and use your head, any of the big three will get you wherever you want to be.

    Oh and freaking stop bashing eachothers heads in over branding or operating system, makes all of y’all look like a bunch of knuckleheads.

  4. The comments here are beyond hilarious. Why is everything so ideological? I see how using iMessage is stupid (in fact nobody outside the US does so) because it impacts other people. But using whatever diffuse you want in whatever way you find most convenient?
    I, for example, enjoy games, do music production and programming plus some other stuff. Best for my personal dev projects might be Linux since I only do web dev. Best for gaming is Windows, music Mac and windows. So, I pick Windows. I don’t need any of your customizations because I don’t touch the OS as soon as I’m within the app I need. I like WSL though for web dev. So somebody else might find Darling useful, and they’ll be happy it exists!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.