| ▲ | StopDisinfo910 3 days ago |
| The initial argument was that MacOS is nice because it has the core Unix tool. I find this baffling because MacOS has very little to do with a traditional Unix apart from the certification and the core utils are literally usable on approximately anything. Speed bumps regarding what? I’m mostly using Linux nowadays but when I have to use Windows, the experience is fairly ok. The tooling when you want to manage it is imho superior to what Apple provides. I’m not used to develop on it but I have seen people do and it didn’t seem particularly worse than Linux-like environment. Not that I really have anything against MacOS. I think it’s neglected by Apple and not as enjoyable as it used to be. I dislike Apple and the policies it’s pushing for. Nevertheless, it’s ok to use. Everything pretty much is nowadays. |
|
| ▲ | yndoendo 3 days ago | parent | next [-] |
| When producing cross-platform software I find creating it on Linux first to be the most cost effective. Porting it to macOS has the least resistance. Windows is where it cost more time and code to release. macOS, Linux, and BSD treat CMD and GUI applications the same while Windows separates applications. Window's two type of application approach brakes the ability to use STDIN and STDOUT for logging and other useful means. Simple debugging of `./app > app.log` does not work on Windows with `app.exe > app.log` with GUI applications. The Windows variant needs a specialized logging system and more boilerplate code. Windows also has one of the worst automation system when it comes to solution deployment. One needs to create custom mouse and keyboard emulation scripts to automate the installation of 3rd party applications when their installer does not support silent mode. AutoIT helps me with this greatly. |
| |
| ▲ | kid64 3 days ago | parent [-] | | Windows does have quirks: MSI installers, Inno Setup, NSIS, and custom EXEs may or may not support silent mode. When they don’t, automation is ugly (AutoIt, AutoHotKey). But Windows also has strong automation tooling: PowerShell, WinRM, Chocolatey, Winget, MSIX packaging. These provide far more than “mouse and keyboard emulation.” So your statement ignores the modern ecosystem and overstates the weakness. | | |
| ▲ | yndoendo 2 days ago | parent [-] | | Please note, you are assuming I have the ability to control the version of Windows the product lives on. Some products still have to support up to Windows XP. Also the PowerShell is actually broken. I can use standard network powershell commands that brake the OS applied to network interfaces. Currently waiting on a laptop with bare metal Windows installation to verify if those sanitized PowerShell commands are crashing the VM or Windows itself. .NET for the longest time was broken with _NetworkInterface.GetAllNetworkInterfaces()_ only returning enabled NICs. This was finally fixed in .NET 9. Work around his to go WIN32 custom coding when older .NET must be used. .NET WPF touch screen event messaging system is also broken where it would latch depending on how the finger is swiped off a button. Had to dump that and go with WIN32 as work around so that bug didn't have the capability to crush someone's appendage when being used in machinery. The registry system the OS is built upon is flawed. It does not have well defined layout such as a configuration file. | | |
| ▲ | Joker_vD 2 days ago | parent | next [-] | | > Please note, you are assuming I have the ability to control the version of Windows the product lives on. Some products still have to support up to Windows XP. It's what, 6 different versions of Windows, with quite clearly defined API "eras"? For Linux, you have just a huge ball of mud^H^H^H distros each of which has (or doesn't have) who knows versions of what, but of course, there you can just give out a .tgz with source code and say to your users "it's your problem now to build it for yourself since you're using Arch". | |
| ▲ | p_ing 2 days ago | parent | prev [-] | | Configuration files have a /well defined/ layout? I don't have to guess if it is YES|NO|TRUE|FALSE|0|1... or does it use quotes or no quotes around the variable and/or value? Or a space between the variable and the equals sign? Hard to tell with a config file. |
|
|
|
|
| ▲ | pjmlp 3 days ago | parent | prev [-] |
| If you mean UNIX System V via green phosphor text terminals, thankfully not. Speed bumps regarding compilation of tooling written with UNIX semantics in mind, without taking into consideration Windows development culture and OS semantics. |
| |
| ▲ | StopDisinfo910 3 days ago | parent [-] | | What are these mythical Unix semantics? Linking to Glibc? Sharing a roughly similar file system structure? Expecting bash to be there? Because from where I stand the people that care about BSD have spent the past decade complaining it’s getting more and more complicated to port Linux software so I’m very curious to know what the common DNA is supposed to be. | | |
| ▲ | pjmlp 3 days ago | parent [-] | | Everything that UNIX has and Windows doesn't. | | |
| ▲ | StopDisinfo910 2 days ago | parent [-] | | That’s as vague as it gets. The amount of things various Unix have in common is, well, not that much. Not that people care in any way because frankly speaking no one uses Unix. I get that you meant is probably that MacOS is close enough to Linux that you can somehow pretend it is the same when developing things which are ultimately going to run on Linux. To which I say, I personally think that buying Apple is wasting a lot of money for something which would work fine in a VM but well, that’s nice aluminium I guess. | | |
| ▲ | pjmlp 2 days ago | parent [-] | | It is super easy, pick any random UNIX tutorials and follow it using Visual Studio, or Windows Terminal. | | |
| ▲ | StopDisinfo910 2 days ago | parent [-] | | But certainly, but I invite you to pick any of this supposed Unix tutorial and try it on AIX or HP-UX the other two certified Unix and see if it works. As a reminder, AIX ships with ksh, the IBM XL compiler, is configured via smit, stores parameters in ODB. It has no port system and while it supports gcc, the gnu linker doesn’t work. Also it is entirely compiled for the Power ISA architecture. | | |
| ▲ | pjmlp 2 days ago | parent [-] | | I have experience across Xenix, DG/UX, Solaris, Aix, HP-UX, Tru64, NeXTSTEP, OS X, FreeBSD and all major Linux distributions starting with Slackware 2.0. So I might know a thing or two about portable UNIX code, and getting it to run on a non-UNIX system like Windows. Here is a reminder for you as well, one of those follows the same dynamic linking model as Windows. | | |
| ▲ | StopDisinfo910 2 days ago | parent [-] | | You have experience with them and you are trying to pretend a guide written for them will work on MacOS. I’m glade to know you are not misinformed but actively disingenuous. I stand by my point. Unix semantics don’t really exist in a meaningful manner. The SUS gives you very little. To get back to the Windows side discussion, you can get a POSIX compliant shell on Windows in minutes nowadays be it Cygwin, gsh, git shell or WSL if you don’t mind using virtualisation and the C headers defined in the XBD are also minutes away. The days when developing on Windows was painful are long gone. The rational for MacOS at this point for me is pretty much limited to “I want a MacBook as a status symbol”, same than the iPhone. They are nice machines. They are just far too expensive for what they do imho at least in Europe where Apple prices them significantly higher than in the US. | | |
|
|
|
|
|
|
|