> The Apple hardware and operating system have been standards for developers for many years now.
I disagree with that statement. You can argue that many developers like to use MacBooks, but from that to saying that it's standard there's a long way...
Apple recently sells obsolete hardware overpriced (e.g. 2-3 years old minis or Mac Pros).
Aside from that, they din't historically sell "overpriced" hardware. What they did sell was only/mainly high end hardware (not in raw cpu/gpu performance, in the construction, feature set, etc).
Time and again, when websites or people tried to match item per item the respective Apple PC with an equivalent Wintel PC (of the same class, e.g. VAIO back in the day, Dell XPS, etc) AND match the various features, they always ended up in parity or very near parity. And with some features without match at all on the other side (e.g. no magsafe option, lesser trackpad quality, etc).
Even in stuff like tablets, anybody who's been there at the time, remembers that competitors to the iPad took more than a year to bring a device with matching specs AND a smaller price out. The responses from various vendors were up to 20% to 30% higher than the iPad asking price.
I don't even agree with this. When the original Core Duo MacBooks came out, they were by far the cheapest dual core laptops about for quite some time. Even discounting the better build quality, trackpads etc that they had.
Overpriced, compared to what? To competitors, which can't even produce similar product? Overpriced in terms of market demand, while making big profit?
If you buy your PC components from Apple, that's your problem. Nobody complains that Bosch automotive industry components are expensive if you buy them from Tesla in the form of Model S.
Not to mention that Apple's price always include both hardware and software, because they are bundled, so you don't actually know the price of hardware, because with Mac, you also buy a licence for OS X, essentially.
I can't find the source just now though I do remember reading about apple prebuying all perfect chips of certain classes therefore making then unavailable to the competition. Given their purchasing power I don't find this wholly inconceivable.
No, a lot of Apple hardware was/is competitively priced when they launch, they just never lower the price so you have to be smart about the purchase.
Macbook Pros compared to similar quality Thinkpads/Elite Books/Dell Latitude/Precision have never been really overpriced for what they offer, it's different for the latest generation though.
Biggest problem for me is that it's too big of an issue to try and get my (Blizzard) games to work on Linux. Yes, it's possible - and I have done it before - but it's just so much easier with macOS.
macOS gives me that good balance between Windows (for play) and Linux (for work).
Increasingly the solution is vfio: have a gaming video card in the system and pass it on to a Windows VM exclusively. So Linux runs on Intel IGP which is fairly painless and the game gets a powerful videocard.
The abundance of cheap older Xeons also help. You can get an Intel board, 128GB DDR3 ECC RAM, two 2670 Xeons (SR0KX stepping which fixes VT-d) for $580 altogether either separately off eBay or in one kit from natex. That's an excellent base for such a development - gaming machine. And now there's even a decent yet cheap SSI EEB chassis, the Phanteks Enthoo Pro for only $100. (Nope, Rosewill cases do not count as decent, sorry.)
Lots of places are heavy Mac, even when they only develop server side software to run on Linux. The laptops are well behaved, low maintenance, have good UIs, and have good support.
I still don't understand why one would use a laptop as their main development environment instead of a proper workstation (more cores, more ram, larger disks).
My workstation is an 11" Macbook Air, and has been for years. For what I do -- mostly Ruby, some C, some shell -- it's perfect. I fullscreen everything, and switch between apps with cmd-tab. I avoid or have disabled most macOS GUI features. 4 cores is fine. 8GB is fine, though having a couple hundred open tabs in Safari slows things down a tad. If I need to do something requiring more screen space, like an InDesign layout or a SketchUp design, I just cable up an external monitor & keyboard. Simple, straightforward, no stress.
You're missing the point. I'm not saying macs are bad or whatever, I'm saying that "macs are the default hardware for everyone ^W developers" is just skewed overall. Backing that claim up by "but [I feel like] 90 % of conference people have a macbook on their lap" is just backing my claim up, that it's a skewed perception, because conference attendees are a minority of all developers (they have to be - just compare the number of developers to the attendee numbers of big conferences), and you can't just extrapolate (the same goes for "I only see {macbooks, XPSes, thinkpads (pick one)} at $coffeeShop").
Many people don't care about conferences at all, or their employers don't care (and hence these people don't feel like spending hundreds of bucks from their own pockets to attend), some don't want to go on conferences and so on. For/to many developers they are just irrelevant. Obviously not everyone goes to coffee shops, either.
There's going to be a lot of variance across different populations of developers. For tech sector, I've worked in big tech companies smaller ones, and the majority of developers consistently use macs as their laptops.
Your experience can be different, but without a global survey, there's no way to be sure.
The closest proxy we can probably find is what CS students are using - as they'll likely continue using that platform going forward. There aren't hard reasons to switch as there used to be -- VPN software tends to work well on all 3 platforms, and there's not nearly as much client-side native development as there used to be.
I don't think it's hate - at all, it's rather: dissapointment. So far, Apple didn't do anything malicious or evil, they just majorly underperformed to our audience.
Eh, maybe - I just remember being wrong myself about things like the iPad, for example. There was a ton of "it's just an oversized iPhone" speak everywhere but it turned out to be a pretty successful product (not better than iPhone but still successful by most standards). Right now there's a ton of "dongle catastrophe" speak.
Not saying that we should not demand more and better from Apple but I think many of the complaints are not very warranted.
For example, I don't know why people are complaining that MacOS has "suffered" compared to iOS. In my opinion, the latest Sierra version is way better than Lion for example.
Logic Pro X (no Ardour doesn't cut it, sorry. I even subscribed for a while).
Xcode (for iPhone/iPad development. KDevelop and Geany or Nemiver, CodeBlocks etc. isn't going to cut it, sorry).
Ability to AirPlay to my AppleTV 3rd gen. Does anyone know anything I can easily broadcast to from a video inside a web page? On Safari or Quicktime I just have to click the airplay icon.
For reference, I write C++ for my dayjob and for fun (who doesn't??)
> Ability to AirPlay to my AppleTV 3rd gen. Does anyone know anything I can easily broadcast to from a video inside a web page? On Safari or Quicktime I just have to click the airplay icon.
> Xcode (for iPhone/iPad development. KDevelop and Geany or Nemiver, CodeBlocks etc. isn't going to cut it, sorry).
For iPhone development I'm sure you need a mac, but if you want an IDE, look no further than IDEA. It's much better than Xcode in general, and does have a C++ plugin. (Of course.)
> Ability to AirPlay to my AppleTV 3rd gen. Does anyone know anything I can easily broadcast to from a video inside a web page? On Safari or Quicktime I just have to click the airplay icon.
I know Chromecast has been said a few times, but to expand a little.
You can 'cast' you whole desktop of a specific chrome tab. Youtube videos and many streaming sites can cast directly to your TV.
I currently use the VideoStream[0] extension to play local videos on my TV, but soon VLC should be able to do this. (It supposedly works in the beta releases, but it doesn't for me YMMV)
exactly was I was thinking. This are all heavy Mac software things which are never supposed to run on a different OSes. Nobody should blame Linux for not supporting that.
I wasn't blaming Linux for not supporting them - I am saying that encouraging a switch away from an OS when there is no replacement for applications I use daily is not a feasible recommendation. "Just switch to Linux" doesn't work when you can't do what you can currently do, that is all.
And I say this having used Linux from 2.0.n (RedHat 5.2 - no, not RHEL, proper RedHat when KDE1 and GNOME1 were new and LinuxConf was still a tool that existed) branch for years and years until ~4 years ago when I got tired of reinstalling Fedora every other release. I'm not here just to bash Linux for fun - I was stating the issue.
Some are. Also on the other direction (and to/from Windows). Complaints for Apple, 32GB RAM option etc aside, I see no much reason to believe the numbers have changed in any large way.
If for once a US-based developer conference (and its speakers) are not predominantly Apple laptops, we can check this again.
Some are switching, some are not. Some arguments are sound, some aren't. Its all rather vague and anecdotal, without hard numbers. It really depends on the needs of the developer (or user in general), and if they're willing to make compromises or allow changes.
The problems:
* Lack of focus on macOS (compared to iOS), and the iOSation of macOS.
* Lack of hardware upgrades on Mac Mini, Mac Pro, Macbook Air. MBP specific: focus on size and weight (and butterfly keyboard with less travel) instead of DDR4 32 GB RAM / stronger battery / latest gen processor (read: MBP becoming MBA). Gimmicks like touchbar, force touch.
* "Bullying." +300 EUR extra tax on MBP. Ridiculous things like having to pay 100 USD to release a Safari extension.
[Please, feel free to make addenda on these.]
A post with some random picture of GNOME 3 with a Terminal is just cringeworthy though. What does that have to do with developers? I see no development taking place. Could be a sysadmin's workstation for all we know.
I very much like macOS. Its excellent for development. You have the software from macOS (which includes some software not available on Linux). You got UNIX under the hood. All of the software is managed with Homebrew which is excellent (macOS has come a long way in that regard). Really need Windows? You got all the options available from Linux (VM, WINE) plus Bootcamp. Microsoft even provide a VM with Edge themselves. The keybinds and workflow in macOS are consistent and feel natural (with the addition of Amethyst for window management, Tmux in iTerm (fullscreen with Powerline, and Vim), and Alfred instead of Spotlight), and I'm very much used to them. That being said I could just use a Terminal with Git and SSH and Vim or Sublime Text on Linux or Windows as well, but I'd lose some of the above advantages. Linux has far less software, the workflow is clunky, and I'm scared for all the hardware working well. Windows just isn't UNIX under the hood and you notice that when you work with open source software just like you notice WINE isn't native on Linux or macOS.
Package managers on Linux work better than brew
IMO. They are more mature and better integrated with the OS. It would be nice if brew upgrade installed OS security patches etc.
Instead there are the unsolicited, constant, and annoying nags from the MAS.
I found it easier to rebind keys in GNOME than Mac OS.
Dual booting OSes has existed longer than Mac OS X.
Are there many truly Mac-only apps these days? Apple's own apps used to be a draw for me but they got rid of the one I used seriously (Aperture) and change the others so much it is hard to keep up.
Adobe apps are honestly the only reason I am keeping my Mac partition at this point.
Package managers on Linux work better than brew IMO.
I used Linux on the desktop for many years (1994 to 2007) and until now on servers, but I have to disagree respectfully. It's great that on macOS package management of third-party software is decoupled from the OS. It means that one can upgrade third-party software (per Homebrew) without upgrading (and potentially breaking) the whole OS. On Linux, it is normally a choice between a stable OS and stale software, or fresh software with an unstable OS. Of course, things like Snap, AppImage, etc. are changing that.
I found it easier to rebind keys in GNOME than Mac OS.
More important to me are consistent shortcuts. On macOS virtually every native application uses the same keyboard shortcuts. With Linux it's all over the place.
Are there many truly Mac-only apps these days?
Yes. Omni{Graffle,Focus}, Little Snitch, TweetBot, etc. And then there are many applications that are only available on Windows or macOS, besides Adobe software, the Affinity apps, Microsoft Office, 1Password, etc.
> Package managers on Linux work better than brew IMO. They are more mature and better integrated with the OS.
Brew is more than Brew because of Brew Cask.
More mature, how? Can you already install multiple versions of a package with Linux package management? From what I read, NixOS comes close to the way Apple works with .App. Debian and Fedora don't use that. Don't get me started on Debian. Stable, yet always out of date.
macOS is also UNIX while Linux is Linux (and has Systemd which I'd have to learn, while for example Launchctl I already know). macOS comes with PF (which I know how to use and is much easier than IPT), and a Little Snitch license is only 30 EUR. Then there's X11 and Wayland. Is Wayland default already? I don't know.
> It would be nice if brew upgrade installed OS security patches etc.
softwareupdate* allows that. If it bothers you to type, make some shell scripts. Not a big deal. You even see they're available in the Dock.
My main gripe with Brew is Brew Cask. I need to check with a shell script if the closed source packages have been updated. But on Linux I'd be using APT repositories or would have to check manually as well.
Windows has Chocolatey which is nice, but like I said you notice Windows isn't UNIX all the time (tho it has improved, and so is Microsoft!).
> I found it easier to rebind keys in GNOME than Mac OS.
You don't get it. I don't have to rebind much. The default are consistent, logical, and useful already. I don't use Spotlight or Siri so that is disabled. Alt + Space leads me to iTerm (with Tmux), and Cmd + Space leads me to Alfred. Caps Lock is bound to Ctrl. The rest is default.
When I looked for Linux notebooks the price of a MBP 2015 was slightly higher (while there was an in between 1080p and 4k) but then I know I don't have a learning curve, and the above advantages also remain.
Finally, my gf can use Microsoft Office on my MBP if she really has to (I don't use it myself). I tried to get her to LibreOffice but there's a learning curve involved and we both CBA.
Feel free to ad your own home-brew formula to run softwareupdate. But as it stands, having that handle OS updates, similar to freebsd-update works fine for me. I also personally use nix to handle package management on OS X which I argue works better than most linux package managers in general. If a bit finicky.
Sketch is a mac only app example, amongst others. I keep OS X for a few reasons:
- it upgrades fine, I've had issues with upgrades on almost every linux distribution ever
- it supports multiple monitors without pulling teeth and fingernails
- more recently, high dpi support, i tried windows 10 and its a bit of a tire fire based on what you run, not a fan, linux was pretty close
- overall just get out of my way ness of full screen mode works fine and the touch gestures
Honest questions since I read these sorts of things a lot right now. There's the assertion that there's a lack of focus on macOS (I agree w/ the hardware issues for the most part).
1) What data other than anecdotal (e.g. it feels like things crash more) do we have that supports the assertion?
2) What features would you ask Apple to focus on? What improvements are necessary for macOS to be a better development platform for you?
I don't have any major complaints about macOS itself for development purposes. Others may and I read a lot of gripes about it generically but very little specifically.
> (I agree w/ the hardware issues for the most part).
Oh, I was echoing the opinion of a vocal minority there. Personally, I find the software in a relatively good spot. I made some comments on potential improvements hereunder.
In the past I had issues with either WiFi or DNS (could've been both I honestly don't remember) but this was fixed in I think El Capitan (that I forgot as well...).
> What improvements are necessary for macOS to be a better development platform for you?
The filesystem. HFS+ is ancient, but stable. I'd like a filesystem with support for CoW for snapshotting and checksums for data integrity (like hardware RAID, ZFS, and Btrfs). I know Apple's new FS is going to support those features, as well as native cryptography. I know this partly overlaps with system administration which is a bit outside of macOS league but still [and I do think Apple could actually advance in that area with features like ZFS and PF but that is a totally different topic]. (A workaround is using ZFS, or just wait for the time being.)
Time Machine. I understand Apple wants to sell Airport Express and Airport Capsule but that is no longer developed. Why does it still need AFP? Make it support whatever protocols which can be used native or via Fuse (SMBFS, SSHFS, NFS), and make Time Machine integrated in the new FS. (A workaround is using AFP on a server, or using CLI software like Rsync and Git.)
Out of date software shipped. Bash, Python, Git, OpenSSL to name a few. (A workaround is using Homebrew [or an alternative for Homebrew like Macports or Fink or ..] and using those binaries and libraries in /usr/local one really needs to make sure they're using the correct binaries and libraries though.)
Apart from that I feel its Homebrew and .App format which makes software management good. (I don't use an IDE, but I know they're widely available for macOS.)
Situation is fairly simple. Linux on desktop has reached some kind of mature phase (as weird as it sounds, compared to previous years, Linux on desktop was never in better position), where you can get decent performance out of DE and GUI, without sacrificing comfort of CLI. On the other hand, many developers felt let down by Apple's last year, and decided to jump to Windows/Linux. And that is totally fine. I think few factors played crucial role in that, besides Apple's weak year. For example, people needed change. Many of devs got bored, and we know we developer are weird kind of people, sometimes little masochistic, where we constantly tweak and play with our systems.
Remember the times around 2006. when many developers were jumping to Apple ecosystem, rise of TextMate, Dtrace, the magnificent Snow Leopard came out year after that...
So I think things move, and that's the good thing. If you are not satisfied or productive on current platform/setup, then go and search for something that will fit your needs.
I bought 13" MBP last year (2015. model) and I am really happy with the machine, to the point where I don't have a single gripe (except macOS thingys).
I think 2015 mbp is the closest a laptop got to being perfect for me. Screen, battery life, trackpad, finish and performance. All in a beautiful balance.
I used to dislike macos so much that went mbp 2015 > thinkpad > sp4. I realised how much better macbooks were than their comptetition that I bought it again only with more storage. I think Surface line will bethe next thing for me but it was still too buggy for daily use.
Agree, bought my 2015 MBP about 6 months ago and it's all but perfect and satisfies all of my needs. When the time comes though, I'm jealously eyeing up a Razer Blade 14, which could dual boot to a Linux distro...
Surface was always tempting for me, but I can't stand Windows in any shape or form. I really hate it, and I never felt comfortable using it or developing on it (I never touched Microsoft stack, .NET, Azure and that stuff, so...).
What looks more tempting to me, is new Lenovo Carbon X1 that got announced a day ago on CES. That could be sweet Linux dev. machine, light, with solid battery life, thin bezels, nice keyboard, trackpoint...
Is Linux possible on a Surface? It to me looks like the only possible replacement for an MBP right now, but I too could not handle Windows for a second.
I don't have nerves nor time to write drivers... no way in hell I'll buy Surface device and fiddle with Linux on it. I think you can get much better laptops for same price, plus I have opportunity to install FreeBSD on them, where on Durface it isn't possible, or you have to sacrifice certain functions/components.
Linux works poorly on my SurfaceBook pro. When I connect a monitor to the DisplayPort, Ubuntu freezes at the login prompt. If I just use the laptop screen, it's usable, but I get OS errors.
I'm in the process of doing this, but it's difficult. When I switched from Linux to OS X as my desktop about a decade ago, I felt at home in a way I hadn't been since the Amiga. Now the Mac platform is stagnating, and in fact becoming somewhat of a prison, in both hardware and software.
There's very clearly no future here for me, but I'm switching to Linux sort-of by default, not because it's better. In many respects, it's worse. There's always Windows, which would have the benefit of a (comparatively) low-maintenance system, and I could get working versions of many apps that have been making my life easier on the Mac for some time, but the system itself feels alien to me.
I'm certainly not switching to Linux on already existing Macs, because macOS hasn't become bad enough to do that, not by a long shot. What's driving the slow changeover right now is hardware. So I got a PC, and I'm running it side-by-side with a Mac via Synergy, but honestly I spend most of my time on the Mac side. When I switched to OS X it was immediate and without looking back, whereas now I'm dragging my heels.
All of this makes me very unhappy. I wish more vendors would just cross-compile to all three platforms. There should be very few, if any, apps that absolutely can't exist on multiple platforms. I understand that a big part of the problem is platform-independent UI, but even that shouldn't be such a huge deal if you just take care of that from the start - instead of suddenly being in the situation where your app is so intricately interwoven with your UI toolkit that it can't be separated anymore.
The biggest issue isn't UI - GTK easily solves that. It's just that when you officially release something you have to support it. Support costs money. That isn't feasible for a ~3% market share OS.
I laid out above why this doesn't solve anything for products that haven't been developed with that in mind from the start. These are the majority of commercial software.
> Support costs money. That isn't feasible for a ~3% market share OS.
That's part of the reason why many vendors didn't (and still don't) support OS X either, whereas those who did turned a tidy profit. It's certainly worth it if you just charge for it. And there's always the prospect of growing your market share with an underdeveloped platform.
Personally I think it's largely psychological. Vendors assume Linux users will likely not pay for professional software. But with more developers switching over that could change.
The difference is that OS X is largely used by wealthier people (that can afford the entry fee into Apple's walled garden). OS X is also a stable target. Supporting all major Linux distros would already mean distributing your app in 4+ (!) package formats. Oh, and every distro has different libraries and bugs. Then there's the problem of Linux users, who are compromised largely of tinkerers and FOSS zealots. Believe me man, I would be stoked if I could use 1Password, Alfred, Amphetamine, Karabiner, etc. on Linux but it simply isn't happening for a few more years. Ingredients needed:
1 package format (so Flatpak needs to win because most other distros will never accept Snappy packages)
1 UI kit (GTK has this bagged)
1 core set of libraries
and most of all consistency. Even from LTS to LTS there shouldn't change too much. I'm pretty sure someone that's used to OS9 could pick up Sierra and be reasonably productive. Try teaching an average person Gnome 1.0 on Debian 2.1 and then drop him in Gnome 3.2 on Debian 8.6..... yeah
As far as package format goes, I think it depends on the complexity of your app. Electron is making development of rather simple apps pretty straight-forward - I'm using at least 2 apps daily that are developed using Electron, and I can access them on both Linux and Windows.
I'm not a really heavy application user, but I am curious about the limitations of centralizing packaging using something like Flatpak or Electron. If you try to build a program like Photoshop or Solidworks, do you run into some of the bottlenecks of those services?
Electron is a webbrowser-as-a-backend on which JS+HTML5 apps run. Photoshop is written in C++, or at least large parts of it. Plus its millions of lines of code. Adobe (or any company really) will never go to the effort (think ten-thousands of man hours) of completely rewriting Photoshop (let alone their entire Creative Suite) just so its on Electron and Linux geeks can run it. Plus, its JS- it will run like hog-shit compared to C++.
And even if you hypothetically did get it somewhat performant - we need to get rid of feeling the need to run everything on Electron. Atom runs on Electron. GitKraken runs on Electron. So does WhatsApp. I don't want to spawn 5 Electron instances just to run some apps. Its just horribly inefficient. WhatsApp on OS X, a chat client, uses 500Mb memory(!). Safari with 5 tabs open uses 550Mb. Telegram, which basically does the same as WhatsApp uses 125Mb, because its written natively.
What would be best is a unified repo that solely contains Flatpaks. Flatpaks contain all the libraries the application needs to work, so no more issues supporting 20 different distros. However, that will never happen: 2/3+ of Linux users are on Ubuntu and Canonical will always want control (and they want to force their own standard- Snappy packages), and the other 1/3 does not want to bend to Canonical and their weird contributor license.
I've already voiced it elsewhere but (mainline) Linux could be as solid as OS X, if only there was more consistency. If almost all distros were purely Wayland+Gnome+Flatpak (and mostly on the same versions) then most companies would feel comfortable targeting that instead of the constant moving multi-target that Linux is now.
As a linux dev, I find regression testing my code on macs a royal pain in the ass. There are virtual machines but they're flaky.
brew also causes all manner of issues. It's not the best designed package manager in the first place and it also suffers by dint of not being the default mode of installing software on a mac.
Not being the default either, but I find Macports a better, and cleaner, alternative to Homebrew. It keeps all its stuff in `/opt/local`, and thereby separate from both system (`/usr`) and my private shit (`/usr/local`).
Homebrew went away from using /opt recently, for $reasons (I read the discussion approx half a year ago on Github). They also changed the location of Casks recently as well. You can still install all your Homebrew software elsewhere, if you insist.
Oops, my bad. Then it was just the Cask installation point which was changed [1]. I ended up reinstalling everything (sounds worse than it was) because merely moving and symlinking broke some software.
Do you know if other package managers for macOS (or Mac OS X as it was called back then) did install in /opt?
I feel like it's not so much that there's a lack of good UI libraries (e.g. GTK, QT5), but rather a lack of good design. I've been using Linux exclusively since Windows 10 came out, and even big UI focussed projects like Gnome seem to make the most inexplicable design decisions. Anyone who has used Nautilus file manager for 10 minutes will know exactly what I'm talking about. Or look at the Gnome 'tracker' project: a technically elegant system that is completely unusable (unless you're comfortable writing cli SPARQL queries or interacting with the underlying sqlite database directly).
To be clear, I don't mean to be pointing the finger or blaming anyone. Rather, I think there's an inherent (but by no means unsolvable) problem with large, volunteer-driven free software/open-source projects: how do you make these projects attractive to good designers, in the same way that they are attractive to good engineers and developers?
This is just my gut feeling as someone who has used Linux daily for the past few years, so take with a big grain of salt...
But I'd have to develop with GTK on windows to support that, which is a worse experience now than using e.g. XAML/WPF on Windows (which is declarative, has better HiDpi support etc). So I would hesitate to make a windows desktop app cross platform at that cost, unless the linux user base was large.
Same here, a lot of people used linux and the machines at university all had a linux option to choose from apart from windows, which was the preferred choice for many courses.
I never really considered developping on a mac until I had to do it for my first programming job.
The thing is that it felt better than programming on Windows (because you do have a neat terminal), but it still felt inferiour to programming on linux.
It felt like being less in control on a mac and I for one did not like the UI of the mac at all. I'm sure the latter is purely subjective and the former is maybe due to me not looking around enough to figure out how to do so on a mac.
Still happy to not have to develop on those machines anymore though.
Personally i came from Windows being a gamer for most of my teenager years so i used Windows to develop initially. But all solutions like using Xampp, over Linux VMs to Vagrant where painful in some way or another so i switched to Macs in 2009 and never looked back (still have a Windows Box for rare gaming). Today i run docker for my local projects but since OSX is Unix it works much better then on Windows.
No with Bash on Ubuntu on Windows, this could change though and Windows could become viable again.
> I found it strange that they switched from Linux to OSX in the first place.
Linux would still be my favourite OS for development, and on a "work-only" desktop that's still what I would use. But I have one laptop, that I use for both development work and personal stuff.
OSX comes with a proper unix base, with almost all "Linux tools" installable from homebrew. It's not as good as apt-get, but good enough. At the same time, OSX handles hardware and multimedia out of the box:
* No more xorg.conf hacking. Can hotplug external monitors via HDMI and displayport, and rescale my screen resolution smoothly.
* When I turn on my bluetooth headphones, they connect automatically, and adjust volume to my previous settings.
* Power-saving and sleep modes work. I killed my previous Linux laptop by closing the lid, putting it in my padded backpack, and boiling the battery because it didn't go to sleep.
And probably countless other such "casual comfort" benefits that work out of the box, but would need a few hours of config file hacking on Linux for each. I'd rather pay $1000 in Apple tax than spend time on it.
If you're a software dev in 99% of cases you don't need the extra juice you'd get from a desktop set up. For most of the day, I dock my laptop to a 4k display with an hhkb and a nice mouse. But if I want to wander somewhere else, work in a coffeeshop, hop on an airplane, sit in a lounge chair, I can just unplug it, and walk off with it.
Honestly I'm baffled that anyone doesn't use a laptop, except for people with extremely heavy computational workloads that can't be offloaded to a server cluster, ec2 instance or equivalent.
> you simply have to look around during workshops and speakings to see 90% of Apple systems
Are these perhaps apple events?
But seriously, that numbers seems hugely exagerated, at least from the events I have been at. He is probably talking about a specific field for these talks, but this is quite a silly statement imo.
At my local Groovy users group if people bring laptops the vast majority are Mac. At the last Groovy US conference virtually everybody had Macs (as in a non-Mac laptop stood out). These aren't Apple conferences or even startup meetings, these are real users.
Use Browserstack (or one of the alternatives). The situation is exactly the same as every other browser you don't have direct access to, whether it's IE10 on Windows 7, Android Browser on a Galaxy S4, or a Windows phone, etc.
I believe it's the combination of a UNIX-like system and the "It just works" / batteries included mentality. Also the amount of popular commercial applications available for OS X, as compared to Linux.
As a fellow developer i say:
Development on Windows is really REALLY painful. Any *nix is so much better. I chose OSX because it's "okay linux distro" ;) not real linux but close enough on practice
> As a fellow developer i say: Development on Windows is really REALLY painful.
I think the statement really is "development in a unix/linux style on windows is really painful". If you like doing development with text editors and shells and have any tools that are command-line only then yes - it sucks on windows.
Windows development in an IDE is usually just fine, not to mention that it's often exactly the same as running the same IDE on linux.
I found that for my development pipeline that GIT (SSH)/Conemu together worked out really well on windows. Considering that vast majority of the time I'm connected via a shell to a Linux mainframe and or cluster does it really matter what I ssh into as long as its a working console?
I left Windows many years ago because of constant crashes, application freezes, multitasking so bad that I felt the user interface was not under my control, often being unable to shutdown due to some freeze etc etc etc
It depends what you're developing for. These days, a lot of developers are web or app developers and for this purpose, Windows is terrible. Most app and web dev tools fit neatly into a *nix environment. You can get up and running with a few lines in the terminal, whereas you need a clumsy installer or cygwin and a manual with screenshots to start on Windows.
I came to MacOS back in 2003 (PowerBook times) because
- it was Unix (I'm a vi/command line guy) and you
could run all the backend software (Apache, Oracle, WebLogic/JBoss and other Java stuff such as Ecplise)
- yet you also could use commercial desktop apps (Adobe, MS Office, other graphics apps, the occasional game)
- great out of the box experience with optimal hardware support and no time consuming tinkering required; practical innovations like Expose, Spotlight, later also TimeMachine
Basically "Linux with QA and taste". And because using MacOS put a smile on your face.
Now Mac OS and Apple's latest computers only serve to demonstrate a lack of vision for the platform. Apple seems focused to integrate/unify iOS and MacOS, which might make sense in a beancounter way of thinking (eg. seeing MacOS as a cost center), but sends out the message that Apple is willing to loose "Pro" users as collateral damage.
I certainly hate to loose the ability to buy Apple equipment for my work, but without Apple taking really bold measures, Apple is a lost cause in the Pro market as it stands.
Price itself isn't so much an issue as is the feeling that you're being ripped off for rigs that lack any "pro" features, yet are as expensive or even more expensive than the "pro" stuff Apple used to make.
Long term i don't think many will switch away from OSX, at least i don't see anyone complaining around me and most happily use macs.
Sure there will be some, but i don't think it's significant.
Those who prefer Linux have always used Linux anyway.
To this date I really don't think there's a polished GUI/WM that can compete with OSX. The app ecosystem is vast but spotty. Even CLI work feels clunkier in any of the desktop distros. Is it better than 5 years ago? Maybe a bit. I just think with this huge community there'd be something as attractive and natural as OSX or Win10.
And that's ignoring the hardware aspect altogether. Yes, you can buy some very solid machines now, but every review I read about Mac-killer laptop hardware ends with a bunch of things that just don't work as well as a MBP.
> To this date I really don't think there's a polished GUI/WM that can compete with OSX.
Elementary Os is probably the closest, imo.
> And that's ignoring the hardware aspect altogether. Yes, you can buy some very solid machines now, but every review I read about Mac-killer laptop hardware ends with a bunch of things that just don't work as well as a MBP.
I think the ideal linux setup would be a slightly older MPB with a good distro running on it. Prob Ubuntu for compatibility.
I find it strange that you think the CLI is clunky on Linux.
Up until recently Mac shipped with an 3.x version of Bash. To star it had a version of sed that was in effect broken in several use cases. Mac also lacks the system profile capabilities of Linux such as perf and the new BPF tools.
Most of the tools like top, netstat, strace, and vmstat aren't as up to date on Mac either.
Mac doesn't have perf, but it has DTrace. They added it in OS X 10.5 which was released 9 years ago.
Regarding the other tools you mention, keep in mind they are system tools. You cannot simply take the source of Linux netstat, compile it on your mac and call it a day. The data displayed by these tools is obtained from the kernel and different kernels have different interfaces (for instance, OpenBSD doesn't have /proc which is where Linux netstat gets information).
I remember using OS X in the early years of its existence, and it was non-stop spinning beach ball of death. I switched to Windows for a while and then Ubuntu in 2006 which I still use. Everytime over the past 10 years that I try out a new Mac laptop or even desktop, the spinning beach ball still happens, even just clicking on a text field, despite faster processors, more RAM, SSD, etc. I see it in Windows 7 & 10, too, but basically never in Linux.
I have no clue what you are doing, but I have never seen this happen by just clicking a textfield (Mac user since 2005).
I have my gripes with Apple, but to say everytime over the last 10 years, just clicking a textfield you get the beachball makes me doubt you. That or you are the unluckiest person I know that always touches a broken mac.
Fair enough... but still weird I never saw it (and I end up reinstalling my system quite regularly) with the more than 8 mac machines I've own in the last few years (plus a couple from the wife)
Coming from someone who's used Windows and Linux for years, but bought a Macbook a few years back when they were the only ones offering high DPI displays - personally I found the OSX UI really clunky - confusing file manager which seems to prefer keeping icons in the same physical place even if they overlap others, weird buried menuing system. I can't even figure out how to properly maximize a window, I find myself pressing every different combination of shift+click, ctrl+click, cmd+click, etc. It's very confusing and annoying for someone who's never used it before.
I couldn't even figure out how to shutdown via the GUI for the first few months of using the system and would always open a terminal and run a shutdown command until a friend caught me doing it and told me how.
So - in my experience, any decent desktop environment feels a lot better than OSX. Be it Unity, KDE or Windows. CLI is much better on Linux or FreeBSD than OSX, simply look to the clunky hack package management systems used on OSX.
Maybe I'm past the point now where learning is easy for me, or maybe I just wasn't interested in learning OSX that much. But with all the "oh the GUI is so amazing" reviews I sort of assumed it would Just Work.
Eventually I just gave up, I had to get off it - the GUI was too annoying on OSX to use on a daily basis and I found myself always running my Bootcamp'd Windows. Last week I blew OSX away and replaced it with Ubuntu, it took a bit of hoop jumping to get all the hardware happy, but it works now and I'm never buying Apple again. As for better hardware - I'm probably buying Dell next time, they ship 4k displays now, better resolution than Apple and have better Linux support. Also, cheap accidental warranty and a better GPU at a lower price.
I assumed it would be under the user button where logout was, similar to Ubuntu I suppose. Ubuntu has this clever little gear combined with a power button to represent shutdown and setting very clearly visible on the desktop. And I knew the unix way, so I just went with it when it wasn't where I first thought. I didn't even realize you could click the Apple logo until after that happened I don't think, I had assumed it was just an application icon. Seems dumb now, but it was out of the way enough that I didn't think about even trying it.
That makes sense. Back before multitasking when you could have many applications open at the same time the Apple menu was really convenient for small applications like calculators.
Much later once they had a multi-user operating system and a user menu, it would make more sense to have the user's name, shutdown, logout, and switch user in one menu.
It sounds like you were just trying to get work done. I suppose if you'd wasted an hour a day for a week or so exploring, that the operating system might have revealed some advantages.
This is why I moved from Linux to OS X. However, dear Apple are getting me concerned about their future because:
1. The main innovation in the newest MBPros is... an Emoji keyboard accessory? Okay, that might actually be useful but:
2. Worse, said newest laptops have battery issues to which Apple responds by removing the battery ETA indicator? That was actually useful since I knew how much battery life I could rely on while doing the same task.
3. Since 2013, they don't have a desktop for desktop (not web) developers any more.
Minis are too underpowered, iMacs are noisy under load and who knows how long they will last when kept heated the whole time, the Mac Pro is a video editing machine and little else.
Right now I'm doing fine with a MBPro and a hackintosh, but if they keep making dubious decisions about the laptops and not offering a developer's desktop, I'll have to consider Linux again.
I may be the only developer on HN that doesn't have this issue or on the entire internet for that matter, but I have no issues with battery life on my tMBP 15". I do all day development in eclipse and have music playing in the background. I think the battery life issues are overblown based on the few other devs around me that also use the new tMBP but I haven't personally asked them how long theirs last, just see they keep theirs unplugged for long periods of time too.
It's not the issue's existence that's my cause for concern, it's Apple's reaction to it.
They've always had some process that went runaway and ate most of the CPU for no reason. Just the name of the process changed across hardware and software versions.
The problem is, now they're removing an useful indicator to swipe the current problem (and I'm sure a large amount of people do have it) under the rug. It's this decision that worries me, not that they botched something on this laptop generation.
I can't tell if you literally think that's what it is, or if you're just trying to be dismissive. Emoji support in text fields is just one of the many things it does. It's a dynamic set of buttons that change depending on your task, and I actually really want it. I've been running a third-party app called Touché (https://red-sweater.com/touche/) which gives you the touch bar in a window on your computer, so I can see what things it offers (this isn't actually very useful for actually using, because if I have to switch to my mouse and click a button, there's probably a faster way anyway), and there's some cool stuff in there. What looks especially useful is if you're using Xcode to debug an app, the touch bar has a dedicated button that pauses the debugger, even if Xcode isn't in the foreground, and AFAIK there's no other way to accomplish this (even if you set up an applescript to pause the debugger and hook it up to a keypress, the app will still see you beginning to press the keys before it pauses, potentially changing the state that you were trying to debug at).
> Since 2013, they don't have a desktop for desktop (not web) developers any more. […] iMacs are noisy under load
I haven't ever noticed my iMac being noisy. I'm pretty sure it's quieter than my laptop, and my laptop is pretty darn quiet.
> and who knows how long they will last when kept heated the whole time
I'm really confused as to why you said this. If you think iMacs are noisy, then you think they have strong fans, which means there should be no problem with heat. Now of course I don't think iMacs are noisy, but I think they still do have good heat dissipation and have no worries whatsoever about lifetime.
If you want a developer's desktop, you really should look at an iMac.
I am using both Linux (Ubuntu) and Mac OS X all the time. The annoyance on Linux for me is very minimal; basically only the lack of iOS dev. If I can fix that somehow I would never use anything else. A while ago i installed Qemu with Mac OS X and that kind of worked, but was way too slow. Advantage is that USB ports work. Without that I will have to use both; if I dev for Android/Web/Desktop then I use my Ubuntu laptop; for iOS I open up my MacBook. Hope that will change in the future.
Everybody is talking about switching because the MBP is about $1000 more than they expected. But then you go and look at PC laptops and you realise that nothing out there is built like MBP. And there's seriously nothing wrong with 2013 MBP. You have to be doing something really insane to find it slow.
The buck stops at not offering a 15" Macbook Pro WITHOUT the touchbar. Heck: they could even charge the same price for with and without -- I wouldn't care.
But not even offering the option of having a normal keyboard with function keys... that's just ignorance.
I bought my new MBP right before the revamp. Everyone at work was letting me know I could return it and get the new one. I was so happy I got the last good one just in time. I think this model will realistically get me through the next few years, but after that I'll seriously consider a move back to Linux or Windows.
I bought my new MBP right before the revamp. Everyone at work was letting me know I could return it and get the new one. I was so happy I got the last good one just in time. I think this model will realistically get me through the next few years, but after that I'll seriously consider a move back to Linux or Windows.
This is my first week back on Linux after using OSX for ~4 years. I switched because it's cheaper. I needed more power and building a Linux desktop is way cheaper than buying Mac hardware.
So far: KDE is incredibly nice. I'm pretty blown away. Aesthetically I actually like it more than Aqua. The file manager is nice, the terminal is fine, there is a spotlight style search, virtual desktops, pretty much everything I would miss moving from OSX.
I miss 1Password the most. Right now I'm using a CLI client (passcards) to access my 1Password vault. I haven't setup notes yet but it seems like there are decent Notational Velocity alternatives. Relearning muscle memory to use CTRL instead of CMD is painful. I'm wasting a lot of time tweaking keyboard shortcuts.
Interesting. So for you the change was on desktop, not laptops.
What changed you mind wrt price? I wasn't under the impression that apple computers have gotten more expensive than they were before?
410 comments
[ 4.2 ms ] story [ 90.0 ms ] threadI disagree with that statement. You can argue that many developers like to use MacBooks, but from that to saying that it's standard there's a long way...
> and sells overpriced hardware
Apple has ALWAYS sold overpriced hardware
But people realised it now, so they write short blog posts about it now.
I always thought a good device was going to cost at least £1000.
Apple recently sells obsolete hardware overpriced (e.g. 2-3 years old minis or Mac Pros).
Aside from that, they din't historically sell "overpriced" hardware. What they did sell was only/mainly high end hardware (not in raw cpu/gpu performance, in the construction, feature set, etc).
Time and again, when websites or people tried to match item per item the respective Apple PC with an equivalent Wintel PC (of the same class, e.g. VAIO back in the day, Dell XPS, etc) AND match the various features, they always ended up in parity or very near parity. And with some features without match at all on the other side (e.g. no magsafe option, lesser trackpad quality, etc).
Even in stuff like tablets, anybody who's been there at the time, remembers that competitors to the iPad took more than a year to bring a device with matching specs AND a smaller price out. The responses from various vendors were up to 20% to 30% higher than the iPad asking price.
Overpriced, compared to what? To competitors, which can't even produce similar product? Overpriced in terms of market demand, while making big profit?
If you buy your PC components from Apple, that's your problem. Nobody complains that Bosch automotive industry components are expensive if you buy them from Tesla in the form of Model S.
Not to mention that Apple's price always include both hardware and software, because they are bundled, so you don't actually know the price of hardware, because with Mac, you also buy a licence for OS X, essentially.
Got a source saying that the i7 I buy from Intel is somehow inferior to the one that ships in an Apple product?
I can't find the source just now though I do remember reading about apple prebuying all perfect chips of certain classes therefore making then unavailable to the competition. Given their purchasing power I don't find this wholly inconceivable.
Okie dokie.
I did come across this article where Cook essentially says buying these components is a company secret.... http://appleinsider.com/articles/11/01/18/apple_commits_3_9_...
It looks like this:
Memory controller went bad and can't handle ECC? Looks like an that E3-1??? vX just became an i7-X???.
Virtualization went bad? That i7-X??? just became an i5-X???
Bad 1/2 cores? Well that i5-X??? just became an i3-X???
There is additional binning but that just determines if the processor can have an unlocked multiplier or not.
No, a lot of Apple hardware was/is competitively priced when they launch, they just never lower the price so you have to be smart about the purchase. Macbook Pros compared to similar quality Thinkpads/Elite Books/Dell Latitude/Precision have never been really overpriced for what they offer, it's different for the latest generation though.
macOS gives me that good balance between Windows (for play) and Linux (for work).
I think this is yet-another kind of bubble people submerge themselves in.
Many people don't care about conferences at all, or their employers don't care (and hence these people don't feel like spending hundreds of bucks from their own pockets to attend), some don't want to go on conferences and so on. For/to many developers they are just irrelevant. Obviously not everyone goes to coffee shops, either.
Your experience can be different, but without a global survey, there's no way to be sure.
The closest proxy we can probably find is what CS students are using - as they'll likely continue using that platform going forward. There aren't hard reasons to switch as there used to be -- VPN software tends to work well on all 3 platforms, and there's not nearly as much client-side native development as there used to be.
Not saying that we should not demand more and better from Apple but I think many of the complaints are not very warranted.
For example, I don't know why people are complaining that MacOS has "suffered" compared to iOS. In my opinion, the latest Sierra version is way better than Lion for example.
Logic Pro X (no Ardour doesn't cut it, sorry. I even subscribed for a while).
Xcode (for iPhone/iPad development. KDevelop and Geany or Nemiver, CodeBlocks etc. isn't going to cut it, sorry).
Ability to AirPlay to my AppleTV 3rd gen. Does anyone know anything I can easily broadcast to from a video inside a web page? On Safari or Quicktime I just have to click the airplay icon.
For reference, I write C++ for my dayjob and for fun (who doesn't??)
Chromecast is really cheap and works like a charm. I can mirror my desktop or web browser tabs.
Chromecast would fit your needs, maybe?
For iPhone development I'm sure you need a mac, but if you want an IDE, look no further than IDEA. It's much better than Xcode in general, and does have a C++ plugin. (Of course.)
> Ability to AirPlay to my AppleTV 3rd gen. Does anyone know anything I can easily broadcast to from a video inside a web page? On Safari or Quicktime I just have to click the airplay icon.
Chromecast.
I'm wondering, can one use a VM?
However, there's no way to do it legally. It violates the Apple EULA. If you ever get in trouble and take it to court, Apple will probably win: https://en.wikipedia.org/wiki/Psystar_Corporation
You can 'cast' you whole desktop of a specific chrome tab. Youtube videos and many streaming sites can cast directly to your TV.
I currently use the VideoStream[0] extension to play local videos on my TV, but soon VLC should be able to do this. (It supposedly works in the beta releases, but it doesn't for me YMMV)
Plex can cast directly to your TV.
[0] - https://chrome.google.com/webstore/detail/videostream-for-go...
[0] - http://airflowapp.com/
And I say this having used Linux from 2.0.n (RedHat 5.2 - no, not RHEL, proper RedHat when KDE1 and GNOME1 were new and LinuxConf was still a tool that existed) branch for years and years until ~4 years ago when I got tired of reinstalling Fedora every other release. I'm not here just to bash Linux for fun - I was stating the issue.
Some are. Also on the other direction (and to/from Windows). Complaints for Apple, 32GB RAM option etc aside, I see no much reason to believe the numbers have changed in any large way.
If for once a US-based developer conference (and its speakers) are not predominantly Apple laptops, we can check this again.
The problems:
* Lack of focus on macOS (compared to iOS), and the iOSation of macOS.
* Lack of hardware upgrades on Mac Mini, Mac Pro, Macbook Air. MBP specific: focus on size and weight (and butterfly keyboard with less travel) instead of DDR4 32 GB RAM / stronger battery / latest gen processor (read: MBP becoming MBA). Gimmicks like touchbar, force touch.
* "Bullying." +300 EUR extra tax on MBP. Ridiculous things like having to pay 100 USD to release a Safari extension.
[Please, feel free to make addenda on these.]
A post with some random picture of GNOME 3 with a Terminal is just cringeworthy though. What does that have to do with developers? I see no development taking place. Could be a sysadmin's workstation for all we know.
I very much like macOS. Its excellent for development. You have the software from macOS (which includes some software not available on Linux). You got UNIX under the hood. All of the software is managed with Homebrew which is excellent (macOS has come a long way in that regard). Really need Windows? You got all the options available from Linux (VM, WINE) plus Bootcamp. Microsoft even provide a VM with Edge themselves. The keybinds and workflow in macOS are consistent and feel natural (with the addition of Amethyst for window management, Tmux in iTerm (fullscreen with Powerline, and Vim), and Alfred instead of Spotlight), and I'm very much used to them. That being said I could just use a Terminal with Git and SSH and Vim or Sublime Text on Linux or Windows as well, but I'd lose some of the above advantages. Linux has far less software, the workflow is clunky, and I'm scared for all the hardware working well. Windows just isn't UNIX under the hood and you notice that when you work with open source software just like you notice WINE isn't native on Linux or macOS.
Instead there are the unsolicited, constant, and annoying nags from the MAS.
I found it easier to rebind keys in GNOME than Mac OS.
Dual booting OSes has existed longer than Mac OS X.
Are there many truly Mac-only apps these days? Apple's own apps used to be a draw for me but they got rid of the one I used seriously (Aperture) and change the others so much it is hard to keep up.
Adobe apps are honestly the only reason I am keeping my Mac partition at this point.
I used Linux on the desktop for many years (1994 to 2007) and until now on servers, but I have to disagree respectfully. It's great that on macOS package management of third-party software is decoupled from the OS. It means that one can upgrade third-party software (per Homebrew) without upgrading (and potentially breaking) the whole OS. On Linux, it is normally a choice between a stable OS and stale software, or fresh software with an unstable OS. Of course, things like Snap, AppImage, etc. are changing that.
I found it easier to rebind keys in GNOME than Mac OS.
More important to me are consistent shortcuts. On macOS virtually every native application uses the same keyboard shortcuts. With Linux it's all over the place.
Are there many truly Mac-only apps these days?
Yes. Omni{Graffle,Focus}, Little Snitch, TweetBot, etc. And then there are many applications that are only available on Windows or macOS, besides Adobe software, the Affinity apps, Microsoft Office, 1Password, etc.
Brew is more than Brew because of Brew Cask.
More mature, how? Can you already install multiple versions of a package with Linux package management? From what I read, NixOS comes close to the way Apple works with .App. Debian and Fedora don't use that. Don't get me started on Debian. Stable, yet always out of date.
macOS is also UNIX while Linux is Linux (and has Systemd which I'd have to learn, while for example Launchctl I already know). macOS comes with PF (which I know how to use and is much easier than IPT), and a Little Snitch license is only 30 EUR. Then there's X11 and Wayland. Is Wayland default already? I don't know.
> It would be nice if brew upgrade installed OS security patches etc.
softwareupdate* allows that. If it bothers you to type, make some shell scripts. Not a big deal. You even see they're available in the Dock.
My main gripe with Brew is Brew Cask. I need to check with a shell script if the closed source packages have been updated. But on Linux I'd be using APT repositories or would have to check manually as well.
Windows has Chocolatey which is nice, but like I said you notice Windows isn't UNIX all the time (tho it has improved, and so is Microsoft!).
> I found it easier to rebind keys in GNOME than Mac OS.
You don't get it. I don't have to rebind much. The default are consistent, logical, and useful already. I don't use Spotlight or Siri so that is disabled. Alt + Space leads me to iTerm (with Tmux), and Cmd + Space leads me to Alfred. Caps Lock is bound to Ctrl. The rest is default.
When I looked for Linux notebooks the price of a MBP 2015 was slightly higher (while there was an in between 1080p and 4k) but then I know I don't have a learning curve, and the above advantages also remain.
Finally, my gf can use Microsoft Office on my MBP if she really has to (I don't use it myself). I tried to get her to LibreOffice but there's a learning curve involved and we both CBA.
I just run softwareupdate -dir.
Feel free to ad your own home-brew formula to run softwareupdate. But as it stands, having that handle OS updates, similar to freebsd-update works fine for me. I also personally use nix to handle package management on OS X which I argue works better than most linux package managers in general. If a bit finicky.
Sketch is a mac only app example, amongst others. I keep OS X for a few reasons:
- it upgrades fine, I've had issues with upgrades on almost every linux distribution ever
- it supports multiple monitors without pulling teeth and fingernails
- more recently, high dpi support, i tried windows 10 and its a bit of a tire fire based on what you run, not a fan, linux was pretty close
- overall just get out of my way ness of full screen mode works fine and the touch gestures
1) What data other than anecdotal (e.g. it feels like things crash more) do we have that supports the assertion? 2) What features would you ask Apple to focus on? What improvements are necessary for macOS to be a better development platform for you?
I don't have any major complaints about macOS itself for development purposes. Others may and I read a lot of gripes about it generically but very little specifically.
Oh, I was echoing the opinion of a vocal minority there. Personally, I find the software in a relatively good spot. I made some comments on potential improvements hereunder.
In the past I had issues with either WiFi or DNS (could've been both I honestly don't remember) but this was fixed in I think El Capitan (that I forgot as well...).
> What improvements are necessary for macOS to be a better development platform for you?
The filesystem. HFS+ is ancient, but stable. I'd like a filesystem with support for CoW for snapshotting and checksums for data integrity (like hardware RAID, ZFS, and Btrfs). I know Apple's new FS is going to support those features, as well as native cryptography. I know this partly overlaps with system administration which is a bit outside of macOS league but still [and I do think Apple could actually advance in that area with features like ZFS and PF but that is a totally different topic]. (A workaround is using ZFS, or just wait for the time being.)
Time Machine. I understand Apple wants to sell Airport Express and Airport Capsule but that is no longer developed. Why does it still need AFP? Make it support whatever protocols which can be used native or via Fuse (SMBFS, SSHFS, NFS), and make Time Machine integrated in the new FS. (A workaround is using AFP on a server, or using CLI software like Rsync and Git.)
Out of date software shipped. Bash, Python, Git, OpenSSL to name a few. (A workaround is using Homebrew [or an alternative for Homebrew like Macports or Fink or ..] and using those binaries and libraries in /usr/local one really needs to make sure they're using the correct binaries and libraries though.)
Apart from that I feel its Homebrew and .App format which makes software management good. (I don't use an IDE, but I know they're widely available for macOS.)
Remember the times around 2006. when many developers were jumping to Apple ecosystem, rise of TextMate, Dtrace, the magnificent Snow Leopard came out year after that...
So I think things move, and that's the good thing. If you are not satisfied or productive on current platform/setup, then go and search for something that will fit your needs.
I bought 13" MBP last year (2015. model) and I am really happy with the machine, to the point where I don't have a single gripe (except macOS thingys).
I used to dislike macos so much that went mbp 2015 > thinkpad > sp4. I realised how much better macbooks were than their comptetition that I bought it again only with more storage. I think Surface line will bethe next thing for me but it was still too buggy for daily use.
What looks more tempting to me, is new Lenovo Carbon X1 that got announced a day ago on CES. That could be sweet Linux dev. machine, light, with solid battery life, thin bezels, nice keyboard, trackpoint...
There's very clearly no future here for me, but I'm switching to Linux sort-of by default, not because it's better. In many respects, it's worse. There's always Windows, which would have the benefit of a (comparatively) low-maintenance system, and I could get working versions of many apps that have been making my life easier on the Mac for some time, but the system itself feels alien to me.
I'm certainly not switching to Linux on already existing Macs, because macOS hasn't become bad enough to do that, not by a long shot. What's driving the slow changeover right now is hardware. So I got a PC, and I'm running it side-by-side with a Mac via Synergy, but honestly I spend most of my time on the Mac side. When I switched to OS X it was immediate and without looking back, whereas now I'm dragging my heels.
All of this makes me very unhappy. I wish more vendors would just cross-compile to all three platforms. There should be very few, if any, apps that absolutely can't exist on multiple platforms. I understand that a big part of the problem is platform-independent UI, but even that shouldn't be such a huge deal if you just take care of that from the start - instead of suddenly being in the situation where your app is so intricately interwoven with your UI toolkit that it can't be separated anymore.
I laid out above why this doesn't solve anything for products that haven't been developed with that in mind from the start. These are the majority of commercial software.
> Support costs money. That isn't feasible for a ~3% market share OS.
That's part of the reason why many vendors didn't (and still don't) support OS X either, whereas those who did turned a tidy profit. It's certainly worth it if you just charge for it. And there's always the prospect of growing your market share with an underdeveloped platform.
Personally I think it's largely psychological. Vendors assume Linux users will likely not pay for professional software. But with more developers switching over that could change.
1 package format (so Flatpak needs to win because most other distros will never accept Snappy packages)
1 UI kit (GTK has this bagged)
1 core set of libraries
and most of all consistency. Even from LTS to LTS there shouldn't change too much. I'm pretty sure someone that's used to OS9 could pick up Sierra and be reasonably productive. Try teaching an average person Gnome 1.0 on Debian 2.1 and then drop him in Gnome 3.2 on Debian 8.6..... yeah
I'm not a really heavy application user, but I am curious about the limitations of centralizing packaging using something like Flatpak or Electron. If you try to build a program like Photoshop or Solidworks, do you run into some of the bottlenecks of those services?
And even if you hypothetically did get it somewhat performant - we need to get rid of feeling the need to run everything on Electron. Atom runs on Electron. GitKraken runs on Electron. So does WhatsApp. I don't want to spawn 5 Electron instances just to run some apps. Its just horribly inefficient. WhatsApp on OS X, a chat client, uses 500Mb memory(!). Safari with 5 tabs open uses 550Mb. Telegram, which basically does the same as WhatsApp uses 125Mb, because its written natively.
What would be best is a unified repo that solely contains Flatpaks. Flatpaks contain all the libraries the application needs to work, so no more issues supporting 20 different distros. However, that will never happen: 2/3+ of Linux users are on Ubuntu and Canonical will always want control (and they want to force their own standard- Snappy packages), and the other 1/3 does not want to bend to Canonical and their weird contributor license.
I've already voiced it elsewhere but (mainline) Linux could be as solid as OS X, if only there was more consistency. If almost all distros were purely Wayland+Gnome+Flatpak (and mostly on the same versions) then most companies would feel comfortable targeting that instead of the constant moving multi-target that Linux is now.
brew also causes all manner of issues. It's not the best designed package manager in the first place and it also suffers by dint of not being the default mode of installing software on a mac.
Homebrew has been installing to /usr/local since the beginning of times:
http://web.archive.org/web/20100317015208/http://mxcl.github...
Do you know if other package managers for macOS (or Mac OS X as it was called back then) did install in /opt?
[1] https://github.com/caskroom/homebrew-cask/issues/21913
A lot of commercially available software for Linux actually uses Qt, not GTK.
To be clear, I don't mean to be pointing the finger or blaming anyone. Rather, I think there's an inherent (but by no means unsolvable) problem with large, volunteer-driven free software/open-source projects: how do you make these projects attractive to good designers, in the same way that they are attractive to good engineers and developers?
This is just my gut feeling as someone who has used Linux daily for the past few years, so take with a big grain of salt...
But I'd have to develop with GTK on windows to support that, which is a worse experience now than using e.g. XAML/WPF on Windows (which is declarative, has better HiDpi support etc). So I would hesitate to make a windows desktop app cross platform at that cost, unless the linux user base was large.
You've described all the reasons it's currently sucking, but not any of the ones that would motivate you to switch to a platform you admit sucks.
Where I started programming, every dev had a Linux machine.
I remember one gig, where I had to build a site with Mac that had these metal trackpads that give you instant RSI.
I thought, Macs, in a dev shop!? Did I enter the wrong door or something?
But then a few people around me started using MacBooks, especially in the start-up world it's considered good taste.
I never really considered developping on a mac until I had to do it for my first programming job.
The thing is that it felt better than programming on Windows (because you do have a neat terminal), but it still felt inferiour to programming on linux.
It felt like being less in control on a mac and I for one did not like the UI of the mac at all. I'm sure the latter is purely subjective and the former is maybe due to me not looking around enough to figure out how to do so on a mac.
Still happy to not have to develop on those machines anymore though.
No with Bash on Ubuntu on Windows, this could change though and Windows could become viable again.
Also, some of us didn't like where gnome went.
I never used this sleep stuff, so I probably didn't notice.
I used xfce most of the time
Linux would still be my favourite OS for development, and on a "work-only" desktop that's still what I would use. But I have one laptop, that I use for both development work and personal stuff.
OSX comes with a proper unix base, with almost all "Linux tools" installable from homebrew. It's not as good as apt-get, but good enough. At the same time, OSX handles hardware and multimedia out of the box:
* No more xorg.conf hacking. Can hotplug external monitors via HDMI and displayport, and rescale my screen resolution smoothly.
* When I turn on my bluetooth headphones, they connect automatically, and adjust volume to my previous settings.
* Power-saving and sleep modes work. I killed my previous Linux laptop by closing the lid, putting it in my padded backpack, and boiling the battery because it didn't go to sleep.
And probably countless other such "casual comfort" benefits that work out of the box, but would need a few hours of config file hacking on Linux for each. I'd rather pay $1000 in Apple tax than spend time on it.
Honestly I'm baffled that anyone doesn't use a laptop, except for people with extremely heavy computational workloads that can't be offloaded to a server cluster, ec2 instance or equivalent.
Are these perhaps apple events?
But seriously, that numbers seems hugely exagerated, at least from the events I have been at. He is probably talking about a specific field for these talks, but this is quite a silly statement imo.
The events hosted by my former university have a _few_ macs, but mostly I see people running Linux or Windows.
And then there are the microsoft-oriented events, but it is safe to say these do not count here :-)
I think the statement really is "development in a unix/linux style on windows is really painful". If you like doing development with text editors and shells and have any tools that are command-line only then yes - it sucks on windows.
Windows development in an IDE is usually just fine, not to mention that it's often exactly the same as running the same IDE on linux.
None of these things were problems with OSX.
Are things different in the Windows world?
I like the polished look of macOS, and its Unix roots which make it fairly easy to follow instructions for Linux on macOS.
Because EVERYONE used Windows. That changed mid-00s (Ubuntu and x86 Macs).
Personally Firefox stoked a lot of interest in FOSS for me, and the mature version (2.0 was a big deal) came out around then too.
- it was Unix (I'm a vi/command line guy) and you could run all the backend software (Apache, Oracle, WebLogic/JBoss and other Java stuff such as Ecplise)
- yet you also could use commercial desktop apps (Adobe, MS Office, other graphics apps, the occasional game)
- great out of the box experience with optimal hardware support and no time consuming tinkering required; practical innovations like Expose, Spotlight, later also TimeMachine
Basically "Linux with QA and taste". And because using MacOS put a smile on your face.
Now Mac OS and Apple's latest computers only serve to demonstrate a lack of vision for the platform. Apple seems focused to integrate/unify iOS and MacOS, which might make sense in a beancounter way of thinking (eg. seeing MacOS as a cost center), but sends out the message that Apple is willing to loose "Pro" users as collateral damage.
I certainly hate to loose the ability to buy Apple equipment for my work, but without Apple taking really bold measures, Apple is a lost cause in the Pro market as it stands.
Price itself isn't so much an issue as is the feeling that you're being ripped off for rigs that lack any "pro" features, yet are as expensive or even more expensive than the "pro" stuff Apple used to make.
This article makes the assertion with pure zero facts to back it up.
To this date I really don't think there's a polished GUI/WM that can compete with OSX. The app ecosystem is vast but spotty. Even CLI work feels clunkier in any of the desktop distros. Is it better than 5 years ago? Maybe a bit. I just think with this huge community there'd be something as attractive and natural as OSX or Win10.
And that's ignoring the hardware aspect altogether. Yes, you can buy some very solid machines now, but every review I read about Mac-killer laptop hardware ends with a bunch of things that just don't work as well as a MBP.
Elementary Os is probably the closest, imo.
> And that's ignoring the hardware aspect altogether. Yes, you can buy some very solid machines now, but every review I read about Mac-killer laptop hardware ends with a bunch of things that just don't work as well as a MBP.
I think the ideal linux setup would be a slightly older MPB with a good distro running on it. Prob Ubuntu for compatibility.
Up until recently Mac shipped with an 3.x version of Bash. To star it had a version of sed that was in effect broken in several use cases. Mac also lacks the system profile capabilities of Linux such as perf and the new BPF tools.
Most of the tools like top, netstat, strace, and vmstat aren't as up to date on Mac either.
Regarding the other tools you mention, keep in mind they are system tools. You cannot simply take the source of Linux netstat, compile it on your mac and call it a day. The data displayed by these tools is obtained from the kernel and different kernels have different interfaces (for instance, OpenBSD doesn't have /proc which is where Linux netstat gets information).
I know you can't just compile and call it a day... Kind of what I was getting at :)
I have my gripes with Apple, but to say everytime over the last 10 years, just clicking a textfield you get the beachball makes me doubt you. That or you are the unluckiest person I know that always touches a broken mac.
I couldn't even figure out how to shutdown via the GUI for the first few months of using the system and would always open a terminal and run a shutdown command until a friend caught me doing it and told me how.
So - in my experience, any decent desktop environment feels a lot better than OSX. Be it Unity, KDE or Windows. CLI is much better on Linux or FreeBSD than OSX, simply look to the clunky hack package management systems used on OSX.
Maybe I'm past the point now where learning is easy for me, or maybe I just wasn't interested in learning OSX that much. But with all the "oh the GUI is so amazing" reviews I sort of assumed it would Just Work.
Eventually I just gave up, I had to get off it - the GUI was too annoying on OSX to use on a daily basis and I found myself always running my Bootcamp'd Windows. Last week I blew OSX away and replaced it with Ubuntu, it took a bit of hoop jumping to get all the hardware happy, but it works now and I'm never buying Apple again. As for better hardware - I'm probably buying Dell next time, they ship 4k displays now, better resolution than Apple and have better Linux support. Also, cheap accidental warranty and a better GPU at a lower price.
Much later once they had a multi-user operating system and a user menu, it would make more sense to have the user's name, shutdown, logout, and switch user in one menu.
It sounds like you were just trying to get work done. I suppose if you'd wasted an hour a day for a week or so exploring, that the operating system might have revealed some advantages.
1. The main innovation in the newest MBPros is... an Emoji keyboard accessory? Okay, that might actually be useful but:
2. Worse, said newest laptops have battery issues to which Apple responds by removing the battery ETA indicator? That was actually useful since I knew how much battery life I could rely on while doing the same task.
3. Since 2013, they don't have a desktop for desktop (not web) developers any more.
Minis are too underpowered, iMacs are noisy under load and who knows how long they will last when kept heated the whole time, the Mac Pro is a video editing machine and little else.
Right now I'm doing fine with a MBPro and a hackintosh, but if they keep making dubious decisions about the laptops and not offering a developer's desktop, I'll have to consider Linux again.
They've always had some process that went runaway and ate most of the CPU for no reason. Just the name of the process changed across hardware and software versions.
The problem is, now they're removing an useful indicator to swipe the current problem (and I'm sure a large amount of people do have it) under the rug. It's this decision that worries me, not that they botched something on this laptop generation.
This was changed before the issues referred noted.
I can't tell if you literally think that's what it is, or if you're just trying to be dismissive. Emoji support in text fields is just one of the many things it does. It's a dynamic set of buttons that change depending on your task, and I actually really want it. I've been running a third-party app called Touché (https://red-sweater.com/touche/) which gives you the touch bar in a window on your computer, so I can see what things it offers (this isn't actually very useful for actually using, because if I have to switch to my mouse and click a button, there's probably a faster way anyway), and there's some cool stuff in there. What looks especially useful is if you're using Xcode to debug an app, the touch bar has a dedicated button that pauses the debugger, even if Xcode isn't in the foreground, and AFAIK there's no other way to accomplish this (even if you set up an applescript to pause the debugger and hook it up to a keypress, the app will still see you beginning to press the keys before it pauses, potentially changing the state that you were trying to debug at).
> Since 2013, they don't have a desktop for desktop (not web) developers any more. […] iMacs are noisy under load
I haven't ever noticed my iMac being noisy. I'm pretty sure it's quieter than my laptop, and my laptop is pretty darn quiet.
> and who knows how long they will last when kept heated the whole time
I'm really confused as to why you said this. If you think iMacs are noisy, then you think they have strong fans, which means there should be no problem with heat. Now of course I don't think iMacs are noisy, but I think they still do have good heat dissipation and have no worries whatsoever about lifetime.
If you want a developer's desktop, you really should look at an iMac.
But not even offering the option of having a normal keyboard with function keys... that's just ignorance.
- better UI. Window management in i3 is much more usefull for me than macOS window management
- native Docker (partly solved for macOS now)
- control and security
- belief, that Apple goes the wrong direction
- HW choices
- SW I write is deployed on linux anyway
So far: KDE is incredibly nice. I'm pretty blown away. Aesthetically I actually like it more than Aqua. The file manager is nice, the terminal is fine, there is a spotlight style search, virtual desktops, pretty much everything I would miss moving from OSX.
I miss 1Password the most. Right now I'm using a CLI client (passcards) to access my 1Password vault. I haven't setup notes yet but it seems like there are decent Notational Velocity alternatives. Relearning muscle memory to use CTRL instead of CMD is painful. I'm wasting a lot of time tweaking keyboard shortcuts.