1. 9

Hi Everyone, First of all i would like to thank this community has been really helpful. So here’s my question. I come from a linux world and have been using linux extensively for few years. Now I’m thinking about getting into developing apps for iPhone and for that i would definitely get a MacBook. I would love hear community input on do you own a MacBook and how long have you been using it for and is it customizable compared to linux.Furthermore, what dev machine do you use ?

  1.  

  2. 10

    I suggested the ‘mac’ and ‘ios’ tags since your post is very specifically about those things, and not general ‘programming’.

    1. 1

      Oh sorry I didn’t knew about these tags

    2. 9

      Before buying Apple hardware check the buyers guide to make sure you’re not accidentally buying 2-year-old hardware for the same price as when it was brand new.

      In Mac laptops currently the only sensible option is MacBook Pro 16”. Smaller models are either underpowered for development (Air) or are outdated and have a worse keyboard.

      1. 2

        Thank’s I’ll definetely check that out

        1. 1

          For buying new, that seems to be the case, yes.

          I don’t use macs on my own, but I want to add one thing, because this is about current dev machines:

          Someone in my team has one of the 15” pre-butterfly keyboard ones with maximum specs (i7, 16GB, etc) and he recently checked the 16” options for a possible upgrade after ~4 years. TLDR: The only upgrade would be an 8-core i9 cpu instead of the 8-core i7, so it’s at least 3400 EUR for just a slightly faster CPU, if the old one is still working fine. We do C++, so the work load is mostly compiling.

          1. 3

            Note that the older i7s are only quad core, albeit with hyperthreading so they appear as 8 vCPUs to the OS (current i7s in the 16” MacBook Pro are 6 core). The i9 in the 16” MacBook Pro is an 8 core CPU, so appears as 16 vCPUs to the OS. Compare, eg, the Geekbench 5 results for Macs and you’ll see how much faster a 2019 16” i9 MacBook Pro is compared to a 2015 15” (2015 was the last pre-butterfly keyboard year).

            1. 1

              Hmm, thanks for the links, I’m a little confused now, but maybe I just mixed up some of our benchmark results because I was comparing the one you linked (probably the correct one with an i7-4980HQ) with my Lenovo’s i5-7300HQ - but maybe HT was the difference I hadn’t accounted for

              So yeah, I guess now my point has to be rephrased to: If you’re CPU-bound then the 3500 EUR are maybe an option, but if you don’t really use your CPU the old one might be fine. Unless you want 16” instead of 15.4”.

        2. 6

          I have a MacBook Pro early 2017 (i5, 8gb, 128gb), and I’ve loved it as my dev machine. I also came from running Linux as my main OS for several years before getting my MacBook. MacOS is a breath of fresh air! Using Linux primarily is a great way to learn a lot of different things, but at some point you want something that will work without you having to be a sysadmin as well :P While MacOS is nowhere near as customizable in general, I didn’t miss the customizability of Linux mostly because those customizations were made to fix stuff that was broken, or to try to make the system compatible with consumer software. Pretty much all the commands and tools you’re used to on Linux are available on MacOS. Whenever you need something on Linux, you can use a VM. (my MBP, which the lowest spec’d model, handles a Ubuntu VM with relative ease)

          1. 2

            Do you miss the customization such as using WM like i3 or any other. I think if i switch to macbook I am going to miss that

            1. 1

              Yabai is a wonderful tiling window manager for macOS. Kitty and Alacritty are wonderful GPU accelerated terminal emulators that are customizable enough to make you feel at home. And if you miss the TUI status bar, as I did, you can use barbq a TUI status bar I made to scratch that itch (though it’s fairly coupled to my system at the moment).

              1. 1

                I never used a window manager, so I can’t speak to that specifically, but I do know that I haven’t really missed any Linux features since switching to MacOS. It really comes down to what is worth the change for you. I always compare Linux to driving a car with a manual transmission. It gives you much more fine-grained control over how the machine works, but the downside is that you can break things more easily. Other OSs like Windows are more like driving an automatic car. They take care of a lot of the nitty-gritty of making the machine work for you, but the downside is that you have less control. MacOS is, in my case, a good compromise. I’m not super into customization of the system itself, so I can let MacOS take care of those details and then focus on the things I care about more. Plus, having a Unix system with its assumptions and tools is very important to me, so when looking for somewhere to switch to from Linux, MacOS was the best choice for me.

            2. 5

              I switched to an ubuntu desktop last year after 13 years of mac laptops.

              I have mostly been struck by:

              • The price differential between the two. For the price of a basic macbook, I have a 24-core threadripper with 64g ram, a 6gb RTX GPU, and an insanely fast SSD.
              • Fan noise. Unless I really, really load it, the desktop is much quieter than any macbook I’ve used.
              • A very different set of things are broken on ubuntu vs mac. I am less bothered by the broken things in ubuntu than I was by the ones on mac, but that’s a question of personal usage.

              Macs are not customizable the way linux is, at all. You are expected to like what the (very competent) designers chose. For commonly-wanted features you can get closer than you might expect (eg: no tiling window managers, but apps like slate can sort-of approximate it).

              1. 4

                I use an iPad ssh’ed into an EC2 instance.

                1. 1

                  I use an iPad ssh’ed into an EC2 instance.

                  How is it like writing code on a tablet? I haven’t used one in a while, but I don’t remember wanting to use it for serious work, especially if you’re working with the command line (no modifier keys is enough to scare me away).

                  1. 3

                    I just hook up a Bluetooth keyboard and it’s basically the same as any other machine to run vim. With split screen I can also have both my vim/tmux session and my web browser open for docs.

                    1. 1

                      Do you use an external screen? (This iPad’s screen would be far too small to work on all day for me.)

                      1. 1

                        Not typically, but I also don’t usually have extended coding sessions like that.

                  2. 0

                    Nicee

                  3. 3

                    I have a Thinkpad x230, running Debian stable with MATE/Emacs. For most of what I do it’s all I need, except for Android development, because you practically need to use Android Studio (or I at least don’t know of a better way), and that needs at least 4GB of RAM to start (which is just as much as I have by default). I’ve considered using an old desktop with more RAM, and connect to it using VNC, do fix an old app I want to work on again, but setting that up is taking me forever.

                    1. 3

                      I’ve use my Macbook Air 2018 (previously 2011) as a browser and a dumb terminal to my Linux workstation at Digital Ocean, via mosh/tmux. Its just an Emacs instance running and everything happens inside that.

                      I use a Mac instead of OpenBSD on the desktop for Photos (and iPhone/iCloud sync of them), TablePlus, Messages, Spotify, Netflix, Teams and other minor hiccups. I dream of getting to use OpenBSD full time some day though.

                      Mostly Python, Go and terraform development.

                      1. 3

                        I love my MacBook Air 2018 too. 2 CPU cores and 16 GB is enough for me. It’s a perfect laptop with only one issue: the keyboard. I will try their replacement program someday.

                        If I had to buy a new computer now I’d get the 2020 version with the new keyboard and maybe a quad core CPU.

                        1. 2

                          I heard they replaced it with there new magic keyboard or maybe I could be wrong

                          1. 1

                            You’re right! The MacBook Pro 13 is the only laptop they are still selling with a butterfly keyboard. Other models are fixed.

                          2. 1

                            I had to get my keyboard replaced already. Still sucks. I have a HHKB I’ve used for many years that I love. But recently got a Ergodox-EZ. Haven’t used it much yet, as my productivity drops to zero when I use it.

                          3. 1

                            Oh nice I mostly write python so getting the macbook won’t be problem. I currently have dell xps13 with linux running on it

                          4. 2

                            I have a 2016 higher-spec (for 2016) Macbook Pro where the keyboard is dying. I need to try to use the Apple keyboard replacement program. Recently I built a Hackintosh with an overclocked 8-core 9700k and a fast SSD. Cost a lot less than a slower Mac Mini would have. It’s really fast, and now I use that for dev work (and gaming) when I’m at my desk, and the laptop when I’m on my walking desk (DIY treadmill setup) or on the couch.

                            I tried Ubuntu desktop before setting up the Hackintosh, but frustration with basic things like no option to control mousewheel scrolling speed, and Chrome crashing constantly, sent me down the Hackintosh route.

                            Edited to add: With a custom fan curve the desktop is quieter than my Macbook, which would often ramp up fans. The desktop is completely silent unless I’m gaming, when I’m wearing headphones anyway. It’s much easier to build a silent / very quiet PC in 2020 than last time I tried, probably 20 years ago.

                            1. 2

                              I have used Macs since 2007. I think the first choice to make is whether you want a laptop or desktop. In the case of a desktop, get a Mac Mini or iMac (the Mac Pro is expensive and the previous hardware generation had problems). If you buy an iMac, make sure you get one with a retina display and with an SSD. Non-retina looks terrible on macOS nowadays and APFS on a spinning splatter is slow. It is a disgrace that they still sell iMacs with spinning platters.

                              If you want a laptop, either buy a 16” MacBook Pro (expensive) or one of the newly released MacBook Airs (but do check whether the CPU is powerful enough for your purposes). If you are eying a non-16” MacBook Pro wait until Apple updates the MacBook Pros. The currently sold Pro still has a keyboard with the butterfly mechanism, which is prone to fail.

                              I currently use a MacBook Pro 2018, 256GB SSD, 16GB RAM. Luckily, the keyboard is still fine. I dislike the Touch Bar (get one without if you use the escape key). Overall, I am very happy with the machine. It’s fast enough, has a great screen, and has 4 USB-C ports. Even though macOS Catalina has its problems, macOS is still a great OS.

                              The macOS is less customizable than Linux. The upside is that (once you get used to it) has sane default, consistent keyboard shortcuts between applications, working suspend & resume (at least I never have problems), hardware acceleration of video in all places, application sandboxing (at least from the App Store, outside it’s opt-in), etc. For package management you probably want to install Homebrew, though I use Nix since I use NixOS on my other machine as well.

                              (I develop both on my MacBook Pro and a NUC8i5BEH with NixOS, and several remote GPU servers.)

                              1. 1

                                Nice, I would mostly be writing python and doing some devops stuff. My intention to buy macbook was to get into IOS development and do some video editing on the side for which macbooks are pretty good

                              2. 2

                                I had to use a 2015 MacBook Pro at a previous job. It was a powerful machine for the time, and any customizations I wanted to do were possible.

                                1. 0

                                  Really like can you rice it up

                                2. 1

                                  I use a Windows desktop with a last-gen Ryzen and 16GB of RAM. Here’s my full specs:

                                  https://www.userbenchmark.com/UserRun/19325657

                                  To answer the obvious question: I use Windows because it’s still the most common desktop environment in the world by a long shot, and we need to be able to support customers running it. Me and one other guy in our 10 person startup agreed to be the Windows guys. Everybody else uses MBPs.

                                  I am using windows subsystem for linux (WSL) for my command line experience, and it’s been surprisingly nice. For those not in the know, WSL is a Linux virtualization env that plays nicely with Windows. I can access my windows files pretty seamlessly from my virtual unbuntu instance (although at a performance penalty), and run windows executables from the command line on my ubuntu file system. For example, I have go aliased to go.exe, so that my command line go commands use the same go env as my GoLand IDE. There have been some bumps, but it all works pretty great overall.

                                  1. 2

                                    For those not in the know, WSL is a Linux virtualization env that plays nicely with Windows

                                    This is true only of WSL2, which runs a Linux kernel in a VM with 9P-over-VMBus for forwarding the filesystem in either direction. WSL is closer to the *BSD / Solaris Linux-compat layer: your Linux processes are NT processes (a special kind), system calls go to the NT kernel, and so on. This means that you can, for example, start a Linux X11 terminal, have it connect to a native Windows X server (I use vcxsrv, which is basically X.org built with Visual Studio and packaged), and then run cmd.exe or powershell.exe and get a Windows console.

                                  2. 1

                                    I’m using a 2014 Macbook Pro since I’m trying to take a pass on the touchbar models for as long as possible. I’m still doing lots of Android and iOS dev and it works fine. All that being said, the most common choice now for devs is probably the 16” Pro, but the new Air looks pretty promising too. The next gen chips from Intel look like a legit step forward, so that might be a good option if you’re looking for something more portable. Whatever you go with, probably worth getting as much RAM as you can get/afford.

                                    1. 1

                                      I have a late 2013 MBP that I use for Lisp, Python and C++ development when I’m not at home. It’s primarily for photo editing, though, and that’s why it still runs OSX ;-)

                                      The hardware quality on this model is really good,and it’s more solidly built than the newer ThinkPad I have for work. I upgraded the RAM to 16 gb and had to disassemble and blow out the fan vents one time, but otherwise I haven’t had to do any maintenance to the hardware. I think I can upgrade the hard drive in this model, but I haven’t tried yet.

                                      Emacs and SBCL run great, but I haven’t spent much time with XCode. In general, though, I feel the quality of Apple’s software has really gone down over the last few years. Lots of changes for change’s sake, settings that get reset after each upgrade, and a bunch of little bugs slipping through. It feels like they’re making OSX more like iOS, and I don’t like it.

                                      My “main” dev machine is a frankenstein monster of old hardware:

                                      • 3.2 ghz AMD Phenom II circa 2009
                                      • 16 Gb RAM (upgraded from 8 Gb a few months ago)
                                      • 2 x 1Tb SSDs, one with FreeBSD 12.1, the other with Debian Testing
                                      • 1 x GeForce GTX 650 Ti
                                      • 1 x GeForce GT 640
                                      • Roland UA-25EX USB sound card
                                      • Ancient SBLive sound card
                                      • 24” Dell monitor

                                      The graphics cards and monitor were salvaged from the e-recycling bin at my last job, and the Roland is from Goodwill.

                                      1. 1

                                        What are you doing with 2 GPUs ?

                                        1. 1

                                          Unfortunately not much right now.

                                          One has 2G of ram and 384 CUDA cores, while the other has 1G of ram and 768 CUDA cores, and I’ve used them compare GLSL performance a few times, but mostly the second one just wastes power.

                                      2. 1

                                        I use a Macbook Pro 15” (2017) at work, and I love the mix between the unix’ish environment and a neat UI. Hardware-wise, it’s nowhere near perfect though, and I would stay away from any model pre-2020 (or whenever the 16” model came out and they switched), as the keyboards are horrendous and keys break.

                                        Honestly, if I were doing it personally I would aim to build a hackintosh (desktop or laptop) - you get better value for money on the hardware, but still the aspects of MacOS that is, imo, the reason you buy macs in the first place. This does require time, patience and possibly accepting some quirks permanently, so it’s not for everybody. There are lots of guides out there on what hardware to chose for optimal compatibility.

                                        1. 1

                                          I use an early-2015 MacBook Pro (the last one before the butterfly keyboard and touch bar) dual booted with MacOS and a linux based distro. I think it’s going to be time for an upgrade in the next year or so, and I’ll probably get a ThinkPad and move my linux installation over to that.

                                          1. 1

                                            I still have a 13” 2013 MacBook Pro from before I switched to Linux. It’s still perfectly capable for the odd Mac specific task including Cocoa development. The laptop exterior and keyboard is as good as the day I bought it and the display and build quality still puts almost all modern PC laptops to shame.

                                            My main dev machine these days is a 12c/24t small form-factor desktop running Arch Linux. For mobile computing I use a Huawei MateBook X Pro running Void Linux musl edition.

                                            1. 1

                                              I always wanted to try void linux on my dell machine How’s your experience running void linux so far

                                              1. 1

                                                It’s been good. Initial setup of my standard environment took a bit to get right due to the use of runnit/lack of systemd user sessions but it’s been fine since then.

                                            2. 1

                                              If you do decide to buy a Mac, I’d recommend getting it from the Apple refurb store (link is to the US store but they sell refurbs in many countries) - the hardware is as good as new, is applicable for AppleCare and prices are ~15-16% less than retail. Sometimes choice can be a little limited if you want build-to-order models but that’s about the only downside. Refurb.me is good for getting alerts when your preferred model is back in stock.