19 votes

What's your "must have" software for a MacBook Pro, especially for programming?

Just got my first MacBook Pro, and I've been setting things up. Wondering what people's "must have" software on MacOS is and what programming tools you might recommend. I've heard that I should definitely install homebrew so that I can have a real package manager like I've got on Linux.

40 comments

  1. [9]
    Ember
    Link
    Try using Apple's first-party apps first. Seriously. You just spent a large sum of money on a great software experience. I would recommend spending a month going "full Apple". Use Safari (at the...

    Try using Apple's first-party apps first.

    Seriously. You just spent a large sum of money on a great software experience. I would recommend spending a month going "full Apple". Use Safari (at the very least, it's got the best battery life). Try out the iWork suite. Set up Time Machine, and use Preview for editing PDFs instead of Adobe. Use native multitasking, even though everyone will recommend BetterTouchTool. The default Terminal is great, and it's gonna get better with zsh in the next update.

    Then, after the month is up, start to fill in the holes. I bet, if you give it an honest try, there will be less 3rd party software you need to install.

    17 votes
    1. [7]
      Akir
      Link Parent
      Safari is the only part I would disagree with. The last time I used it it was painfully slow. It's not worth any battery savings IMHO. I was going to disagree with you on iWork, too, but that was...

      Safari is the only part I would disagree with. The last time I used it it was painfully slow. It's not worth any battery savings IMHO.

      I was going to disagree with you on iWork, too, but that was before I realized that it was free now.

      My mac is very old now. :(

      3 votes
      1. [4]
        sqew
        Link Parent
        So far, for me, Safari is definitely a bit slower than Firefox Nightly, but it's not too terrible. Definitely 100% usable. In my opinion, it's worth the battery savings, as I watched Nightly munch...

        So far, for me, Safari is definitely a bit slower than Firefox Nightly, but it's not too terrible. Definitely 100% usable. In my opinion, it's worth the battery savings, as I watched Nightly munch like 5% of my battery in about the same amount of time last night (although, admittedly, I did have a page that was doing some pretty intense WebGL stuff open).

        Part of me wants to build a MacOS battery statistics application (emulating the one on iOS) so I can get some real answers about battery usage on this device.

        3 votes
        1. [2]
          Ember
          Link Parent
          The Activity Monitor has an Energy tab that will tell you about power usage. And if you want more, there's coconutBattery.

          The Activity Monitor has an Energy tab that will tell you about power usage. And if you want more, there's coconutBattery.

          2 votes
          1. sqew
            Link Parent
            Yeah, I know Activity Monitor or a third party app could do it, but it's also kinda fun to roll my own stuff, even when it ends up being a half-baked implementation of 60% of the functionality I...

            Yeah, I know Activity Monitor or a third party app could do it, but it's also kinda fun to roll my own stuff, even when it ends up being a half-baked implementation of 60% of the functionality I originally wanted.

            1 vote
        2. aymm
          Link Parent
          Interesting, I love FF on my windows machine, but t feels painfully slow on my Macbook. Both computers are starting to show their age though, so it might be that

          Interesting, I love FF on my windows machine, but t feels painfully slow on my Macbook. Both computers are starting to show their age though, so it might be that

          1 vote
      2. NaraVara
        (edited )
        Link Parent
        I mostly only notice Safari being slow on pages that have tons of external modules like twitter or disqus integration. I think it has to do with their built in stuff to foil device fingerprinting....

        I mostly only notice Safari being slow on pages that have tons of external modules like twitter or disqus integration. I think it has to do with their built in stuff to foil device fingerprinting. Most other sites I haven’t noticed any difference. And even in the former case it hasn’t bothered me much. The seamless integration across my two computers, my iPhone, and my iPad is worth the tradeoff to me.

      3. JXM
        Link Parent
        Were you running any extensions in Safari? I’ve noticed those can slow things down considerably if they aren’t well written.

        Were you running any extensions in Safari? I’ve noticed those can slow things down considerably if they aren’t well written.

    2. sqew
      Link Parent
      That's definitely good advice. For the most part, that was my plan, especially after watching FF nightly, my usual browser on my desktop, munch my battery. Definitely gonna stick more or less to...

      That's definitely good advice. For the most part, that was my plan, especially after watching FF nightly, my usual browser on my desktop, munch my battery. Definitely gonna stick more or less to Apple's offerings when they have something in the area I need.

      2 votes
  2. [14]
    stu2b50
    Link
    If you're use to Linux, honestly the best part of OSX for development is that you have a good terminal, a fully fledged unix system, competent package manager in brew, and (IMO) a much nicer...

    If you're use to Linux, honestly the best part of OSX for development is that you have a good terminal, a fully fledged unix system, competent package manager in brew, and (IMO) a much nicer desktop experience.

    Personally I install VSCode as the text editor that fullfills the space when I want more than vim but not a full IDE.

    I guess if you ever consider doing software for OSX/iOS, then you'll need XCode.

    16 votes
    1. [9]
      DrTacoMD
      Link Parent
      Xcode is helpful to install either way because it's the easiest way to get the most common UNIX-y dev tools (git, clang, gcc, etc) on newer versions of macOS. And another +1 for VSCode for any...

      Xcode is helpful to install either way because it's the easiest way to get the most common UNIX-y dev tools (git, clang, gcc, etc) on newer versions of macOS.

      And another +1 for VSCode for any programming you do outside of iOS/macOS native code. Xcode is still the king for Objective-C and Swift, but VSCode wins at just about everything else.

      I work with a few older Apple developers that prefer BBEdit, and I do agree that it's a powerful tool (and there's a pretty fully featured free version available). Doesn't hurt to keep around.

      Do you know what kind of programming you'll primarily be doing?

      9 votes
      1. [8]
        sqew
        Link Parent
        Going into college as a CS major, so I'm gonna guess that I'll mostly be doing Python, Java, C, and other typical academic languages for the foreseeable future. Also planning to learn Rust and CL...

        Going into college as a CS major, so I'm gonna guess that I'll mostly be doing Python, Java, C, and other typical academic languages for the foreseeable future. Also planning to learn Rust and CL and maybe some Go for side projects, as I've been fascinated by generative art for a while and also have some random ideas I think would be fun to implement.

        2 votes
        1. [3]
          feigneddork
          Link Parent
          If you are doing anything Java related, then I recommend downloading and installing IntelliJ IDEA - it is the de facto Java IDE as it is stupidly easy to use. You just point it at your source...

          If you are doing anything Java related, then I recommend downloading and installing IntelliJ IDEA - it is the de facto Java IDE as it is stupidly easy to use. You just point it at your source code, IntellIJ will think for a bit, and then 99% of the time it will work everything out. Also, good news - as you are still a student there may be a chance you will get free educational license and then you'll get additional licenses for other languages, such as Python and Go.

          As a college student, you might be fine with using Oracle's Java JDK but I'd strongly recommend you look elsewhere for your Java JDK, such as Azul Zulu JDK. The difference between Oracle and any other JDK out there is that Oracle slaps in some proprietary APIs and then tries to charge out the nose for anyone who is caught using those APIs. Meanwhile, other JDKs build from OpenJDK which is the open source implementation of the Java spec. For the most part, they are both the same and I'd like to think Oracle isn't so evil that they will go after poor uni students - but this is Oracle we are talking about.

          7 votes
          1. Omnicrola
            Link Parent
            Love me some IntelliJ, the community edition is pretty great. Bonus tips: the the following plugins: Rainbow brackets Nyan cat progress bar

            Love me some IntelliJ, the community edition is pretty great.

            Bonus tips: the the following plugins:

            • Rainbow brackets
            • Nyan cat progress bar
            4 votes
          2. sqew
            Link Parent
            I'll definitely keep your advice about the JDK in mind. Not sure if my school will have any specific requirements, but if they don't I'll definitely look towards a non-Oracle version (I've spent...

            I'll definitely keep your advice about the JDK in mind. Not sure if my school will have any specific requirements, but if they don't I'll definitely look towards a non-Oracle version (I've spent enough time around programming parts of the internet to know how shit they are as a corporation).

            3 votes
        2. [4]
          aymm
          Link Parent
          I'll chime in and tell you to give Sublime Text 3 and/or BBEdit a try!

          I'll chime in and tell you to give Sublime Text 3 and/or BBEdit a try!

          5 votes
          1. [3]
            sqew
            Link Parent
            I've heard Sublime is really good, and I tried TextWrangler for a while on a family Mac when I was younger. I'll make sure I take a look at both. Thanks!

            I've heard Sublime is really good, and I tried TextWrangler for a while on a family Mac when I was younger. I'll make sure I take a look at both. Thanks!

            2 votes
            1. [2]
              NaraVara
              Link Parent
              TextWrangler's been deprecated and had its functionality folded into BBEdit IIRC.

              TextWrangler's been deprecated and had its functionality folded into BBEdit IIRC.

              1 vote
              1. balooga
                Link Parent
                That's correct, I miss TextWrangler but BBEdit fulfills the same purpose. BBEdit is an extremely solid and full-featured application, even if you don't purchase it. It's the gold standard Mac text...

                That's correct, I miss TextWrangler but BBEdit fulfills the same purpose. BBEdit is an extremely solid and full-featured application, even if you don't purchase it. It's the gold standard Mac text editor as far as I'm concerned (though vim has its place in a companion role).

                I know a lot of people love Sublime Text but I don't really get it. I've known a number of devs who use it as their primary IDE but it's painful to watch their workflows in it. Depending on your needs you should really be using VS Code, IntelliJ, Xcode, or even Eclipse for actual programming in a project of more than, say, 5 files. At the same time, I don't think Sublime really brings any functionality to the table that isn't already in BBEdit or vim. It just seems superfluous to me.

                1 vote
    2. [4]
      FunnyFatGuy
      Link Parent
      VSCode is shockingly good. Really, it's hard to believe this amazing free app came from Microsoft. I use it on both my Mac and Windows PC.

      VSCode is shockingly good. Really, it's hard to believe this amazing free app came from Microsoft. I use it on both my Mac and Windows PC.

      6 votes
      1. [3]
        sqew
        Link Parent
        If your Mac is a laptop, how's the battery life with VSCode? IIRC, it's an Electron app, and I've seen from experience over the last little while that those munch battery quickly.

        If your Mac is a laptop, how's the battery life with VSCode? IIRC, it's an Electron app, and I've seen from experience over the last little while that those munch battery quickly.

        1. [2]
          FunnyFatGuy
          Link Parent
          It's much lower than Chrome and Discord and the computer game I regularly play... but higher than everything else? So, I'm not sure if that's good or bad. It surely doesn't sink my batter quickly.

          It's much lower than Chrome and Discord and the computer game I regularly play... but higher than everything else? So, I'm not sure if that's good or bad. It surely doesn't sink my batter quickly.

          2 votes
          1. sqew
            Link Parent
            Well, that's good to know. Thanks!

            Well, that's good to know. Thanks!

            1 vote
  3. [3]
    Comment deleted by author
    Link
    1. Micycle_the_Bichael
      Link Parent
      Im going to nitpick a bit. iTerm 2 is the second best terminal on macOS, right behind the iTerm3 beta ;) idk if you have looked at the new features added to it but they are really nice and helpful...

      Im going to nitpick a bit. iTerm 2 is the second best terminal on macOS, right behind the iTerm3 beta ;) idk if you have looked at the new features added to it but they are really nice and helpful IMO (also now that I say something I don’t know if it’s still a beta or if it’s been fully released. whoops). I’ll agree though, whenever I try to go back to macs default terminal (I haven’t gotten csshx to work with iTerm but I haven’t worked too hard on it since I usually use ansible over csshx) it is so painfully worse than iTerm.

      3 votes
    2. sqew
      Link Parent
      Already installed the Xcode CLI tools :) I've played with CL on Linux before, so I was already planning on using SBCL. Thanks for the advice, though! And I guess I wasn't exactly clear about the...

      Already installed the Xcode CLI tools :)

      I've played with CL on Linux before, so I was already planning on using SBCL. Thanks for the advice, though!

      And I guess I wasn't exactly clear about the generative art stuff, as I have no real intention of using Go for the generative art bits. I was thinking more along the lines of Python, Processing, and CL for that, if I actually go and try to make things.

  4. mian
    Link
    My process: Get homebrew first (via Safari before anything else) and use brew cask to easily install standard mac apps like browsers, terminals, editors, and all the other must-haves from the CLI....

    My process: Get homebrew first (via Safari before anything else) and use brew cask to easily install standard mac apps like browsers, terminals, editors, and all the other must-haves from the CLI. When I'm already using it on a previous machine, I run brew cask list on the old box to get an app list and just reinstall these to get up and running super fast.

    Here's a selection of important ones for my current setup:

    $ brew cask list
    bartender # clean up the menu bar icons
    bitwarden # password manager
    chromium # less evil chrome
    firefox # primary browser
    font-fantasque-sans-mono # programming font
    font-inconsolata # terminal font
    iterm2 # terminal
    karabiner-elements # complicated keyboard remapping
    krita # excellent free image editor
    spectacle # keyboard shortcuts for moving windows around
    
    7 votes
  5. widedub
    Link
    Havent seen Docker or VirtualBox mentioned yet but those usually find their way onto a fresh install pretty quickly

    Havent seen Docker or VirtualBox mentioned yet but those usually find their way onto a fresh install pretty quickly

    5 votes
  6. [4]
    FunnyFatGuy
    Link
    Gimp works very well. I use CyberDuck for ftp (though VSCode can do that, too). I use github desktop for simplicity's sake. There's an app called "scroll reverser" or something like that. I need...

    Gimp works very well. I use CyberDuck for ftp (though VSCode can do that, too). I use github desktop for simplicity's sake.

    There's an app called "scroll reverser" or something like that. I need it. It allows you to change the mac's native scroll option, but also do different for touchpad and mouse.

    4 votes
    1. [4]
      Comment deleted by author
      Link Parent
      1. [2]
        feigneddork
        Link Parent
        Indeed it is in the settings - Just untick "Natural Scroll" (like I did in the screenshot) - I just checked and it's under Trackpad for Macbooks and I believe it's under Mouse for iMacs or desktop...

        Indeed it is in the settings - Just untick "Natural Scroll" (like I did in the screenshot) - I just checked and it's under Trackpad for Macbooks and I believe it's under Mouse for iMacs or desktop based Macs.

        The most annoying thing about it is that it's the default on Macs and for some reason this behaviour has been cloned on some Windows Laptops and in some versions of Linux - I personally cannot stand it!

        2 votes
        1. Greg
          Link Parent
          I think it's more prevalent on (non-Mac) laptops that also have touchscreens. I can certainly see the logic there - it's an odd sensation to swipe one way on the screen itself but the opposite on...

          I think it's more prevalent on (non-Mac) laptops that also have touchscreens. I can certainly see the logic there - it's an odd sensation to swipe one way on the screen itself but the opposite on the touchpad, but 20 years of pre-touchscreen conditioning is obviously hard to overcome!

          1 vote
      2. FunnyFatGuy
        Link Parent
        Yeah, you can reverse the scroll direction... but it's "backwards" between the touch pad as mouse. So if I flip it so the touch pad is "right", the mouse is then "wrong". This app lets you control...

        Yeah, you can reverse the scroll direction... but it's "backwards" between the touch pad as mouse. So if I flip it so the touch pad is "right", the mouse is then "wrong". This app lets you control them independently.

        2 votes
  7. Chrozera
    Link
    If you are going to use a command line I reccomand using Iterm2 and instead of Using an outdated version of bash osx comes with. Is updating to zsh which will be the default on macos in the...

    If you are going to use a command line I reccomand using Iterm2 and instead of Using an outdated version of bash osx comes with. Is updating to zsh which will be the default on macos in the future.

    https://gist.github.com/derhuerst/12a1558a4b408b3b2b6e#file-mac-md
    And use oh my zsh to make it even better.
    https://github.com/robbyrussell/oh-my-zsh

    3 votes
  8. [2]
    moriarty
    Link
    Not so much for coding, but I've found BetterTouchTool awesome for enabling custom trackpad gestures in various apps. I've been using it so extensively, it feels weird to use someone else's...

    Not so much for coding, but I've found BetterTouchTool awesome for enabling custom trackpad gestures in various apps. I've been using it so extensively, it feels weird to use someone else's machine and not have it.

    3 votes
    1. balooga
      Link Parent
      I'm a little late on the reply, but a million times this. BetterTouchTool is the Mac user's secret weapon. I can't stress enough how useful and powerful it is, and how it has turbocharged the way...

      I'm a little late on the reply, but a million times this. BetterTouchTool is the Mac user's secret weapon. I can't stress enough how useful and powerful it is, and how it has turbocharged the way I work. It's got a silly name that makes it sounds trivial, and describing it as merely a trackpad gesture utility does it a disservice.

      In addition to custom trackpad gestures, BetterTouchTool lets you create Magic Mouse gestures, traditional mouse behaviors, keyboard shortcuts, remote control responses, and entire custom touch bar UIs. These things can trigger a deep library of configurable options, and can be made available globally or in app-specific contexts. You can define custom triggers for special use cases and easily automate tons of things. Whenever I dive into the settings I'm flabbergasted by how much control it gives you. It's still under active, heavy development after 10 years.

      You can get a lifetime license for $21, which is frankly a steal.

      2 votes
  9. onyxleopard
    Link
    I love TextMate 2 as an all-purpose, native macOS text editor. It has many bundles you can use to extend it, and you can write your own.

    I love TextMate 2 as an all-purpose, native macOS text editor. It has many bundles you can use to extend it, and you can write your own.

    3 votes
  10. IncreaseTheDosage
    Link
    As many others said, iTerm2 is superior to built-in Apple's Terminal. After downloading that, install homebrew, but don't expect it to be as good as package managers on Linux. Not all of this...

    As many others said, iTerm2 is superior to built-in Apple's Terminal. After downloading that, install homebrew, but don't expect it to be as good as package managers on Linux.

    Not all of this stuff is free/open source, but here's some stuff I use (listed in no particular order):

    • For file transfers, I use Cyberduck. People with money to spend swear by Transmit.
    • Dropzone is one of the most useful things ever. You can drag&drop files or text snippets, or anything that's draggable, and it will do stuff with it (like upload it to a file host, or do reverse image search on it). It's also scriptable in Python and Ruby.
    • Sluggard reminds you to do a light exercise every n minutes.
    • Clipy is a nice clipboard manager.
    • Keka for opening/creating file archives.
    • Typora is the best Markdown editor I've ever used
    • Soduto is a KDE Connect client for macOS
    • DaisyDisk is a nice disk usage analyzer
    • Gas Mask is great for managing multiple hosts files.
    • PopClip allows for quick actions on selected text
    2 votes
  11. NaraVara
    (edited )
    Link
    Get BetterTouchTool on there. You can configure all kinds of keyboard and mouse shortcuts that can make you way more efficient. I've got it set up at this point where I can navigate the entire...

    Get BetterTouchTool on there. You can configure all kinds of keyboard and mouse shortcuts that can make you way more efficient. I've got it set up at this point where I can navigate the entire interface without ever touching the mouse/trackpad, even to move and resize windows. Whenever I have to use someone else's Mac nowadays it's a bit disorienting.

    The other thing to do is get comfortable with using Spotlight (invoked by pressing Cmd+Space). It's much more elegant of an app launcher than using the GUI. And then once you get used to Spotlight, you can upgrade to something like Quicksilver, Alfred, or LaunchBar and take it to the next level.

    I use ByWord as a distraction free markdown text editor and pseudo-notebook. Though I've been considering switching over to BBEdit just for the file-manager features, but having to write everything in HTML is kind of a pain for how I use it.

    2 votes
  12. zigzagzig
    Link
    Sublime Text 3 or Visual Studio Code Transmit (FTP) iTerm 3

    Sublime Text 3 or Visual Studio Code
    Transmit (FTP)
    iTerm 3

    1 vote
  13. JXM
    Link
    No one seems to have mentioned BBEdit yet. It’s a text editor (and a lot more). I’ve used it for years and it can handle multi-gigabyte files with ease. It also has great find and replace...

    No one seems to have mentioned BBEdit yet. It’s a text editor (and a lot more). I’ve used it for years and it can handle multi-gigabyte files with ease. It also has great find and replace functionality that has made tedious tasks a lot less painful.

    It’s free to try and only $50 to buy. Well worth the money in my mind.

    As many others have mentioned, Transmit is a great FTP client. The same company, Panic, also makes a very nice text editor named Coda.

    1 vote