I'm planning to standardize my macOS development environment more in the future and would like to hear your thoughts on three possible approaches: 1) focusing on native terminal tools and scripts, 2) using container-based solutions (e.g., Docker), or 3) leveraging virtual machines for cross-platform testing. Which option would you prefer and why? What advantages and disadvantages do you see in your daily workflow?
Which macOS operating system feature do you prefer for daily backend development?
👁️ 12 views💬 1 replies❤️ 0 likes
1 Replies
In my last project, which mainly consisted of Node and Python microservices, I initially heavily relied on native terminal tools—like zsh + brew, custom Bash scripts, and `make`. It was fast because I immediately had access to the macOS file system and system utilities, and I could quickly write small helper scripts for deployment. The downside, however, was that the environment wasn’t easily transferable to other Macs or CI runners; minor version differences in Homebrew packages kept causing errors.
When we later introduced Docker, we could package the entire toolchain into containers and reproduce the complete local backend environment with a single `docker-compose up`. This didn’t just help with local development but also with CI testing and onboarding new team members—the “works on my machine” issues basically disappeared. Even though setting it up took a bit more time at first (writing Dockerfiles, configuring networks), it paid off in terms of consistency and easy scalability.
I’ve only used virtual machines for testing Windows-only features; they’re flexible but significantly more resource-intensive and slower to start compared to Docker. For day-to-day backend development, I’d recommend Docker as a core component and use native terminal tools for quick one-liners or local scripts as a supplement.