Mac Or Linux For Development



For software development, Linux is vastly better. Software development on MacOS X is tedious in comparison. The basic Unix layer hasn't been maintained properly for over a decade now. Seriously, it's FreeBSD from 2006-7 with no updates. The clang/llvm toolchain is non-standard with various bits not working as they should (it's a custom Apple. Differences Between Linux vs Mac. Though both Linux and Mac are the operating systems for computer devices, Linux is an open-source operating system that can be used on any device, and Mac is an operating system that can be used only in Mac devices. Linux acts as an operating system, a platform to run other system applications, also as a server unit.

  1. Linux Mac Look
  2. Mac Or Linux For Development Software
  3. Run Linux On Mac
Linux-->
  1. Apps and utilities The following tips and control equivalents should help you in your transition between a Mac and Windows (or WSL/Linux) development environment. For app development, the nearest equivalent to Xcode would be Visual Studio. There is also a version of Visual Studio for Mac, if you ever feel the need to go back.
  2. Stack Overflow Public questions and answers; Teams Private questions and answers for your team; Enterprise Private self-hosted questions and answers for your enterprise; Jobs Programming and related technical career opportunities; Talent Hire technical talent; Advertising Reach developers worldwide.

The following tips and control equivalents should help you in your transition between a Mac and Windows (or WSL/Linux) development environment.

For app development, the nearest equivalent to Xcode would be Visual Studio. There is also a version of Visual Studio for Mac, if you ever feel the need to go back. For cross-platform source code editing (and a huge number of plug-ins) Visual Studio Code is the most popular choice.

Keyboard shortcuts

OperationMacWindows
CopyCommand+CCtrl+C
CutCommand+XCtrl+X
PasteCommand+VCtrl+V
UndoCommand+ZCtrl+Z
SaveCommand+SCtrl+S
OpenCommand+OCtrl+O
Lock computerCommand+Control+QWindowsKey+L
Show desktopCommand+F3WindowsKey+D
Open file browserCommand+NWindowsKey+E
Minimize windowsCommand+MWindowsKey+M
SearchCommand+SpaceWindowsKey
Close active windowCommand+WControl+W
Switch current taskCommand+TabAlt+Tab
Maximize a window to full screenControl+Command+FWindowsKey+Up
Save screen (Screenshot)Command+Shift+3WindowsKey+Shift+S
Save windowCommand+Shift+4WindowsKey+Shift+S
View item information or propertiesCommand+IAlt+Enter
Select all itemsCommand+ACtrl+A
Select more than one item in a list (noncontiguous)Command, then click each itemControl, then click each item
Type special charactersOption+ character keyAlt+ character key

Trackpad shortcuts

Note: Some of these shortcuts require a “Precision Trackpad”, such as the trackpad on Surface devices and some other third party laptops.

OperationMacWindows
ScrollTwo finger vertical swipeTwo finger vertical swipe
ZoomTwo finger pinch in and outTwo finger pinch in and out
Swipe back and forward between viewsTwo finger sideways swipeTwo finger sideways swipe
Switch virtual workspacesFour fingers sideways swipeFour fingers sideways swipe
Display currently open appsFour fingers upward swipeThree fingers upward swipe
Switch between appsN/ASlow three finger sideways swipe
Go to desktopSpread out four fingersThree finger swipe downwards
Open Cortana / Action centerTwo finger slide from rightThree finger tap
Open extra informationThree finger tapN/A
Show launchpad / start an appPinch with four fingersTap with four fingers

Note: Trackpad options are configurable on both platforms.

Command-line shells and terminals

Windows supports several command-line shells and terminals which sometimes work a little differently to the Mac's BASH shell and terminal emulator apps like Terminal and iTerm.

Windows shells

Windows has two primary command-line shells:

  1. PowerShell - PowerShell is a cross-platform task automation and configuration management framework, consisting of a command-line shell and scripting language built on .NET. Using PowerShell, administrators, developers, and power-users can rapidly control and automate tasks that manage complex processes and various aspects of the environment and operating system upon which it is run. PowerShell is fully open-source, and because it is cross-platform, also available for Mac and Linux.

    Mac and Linux BASH shell users: PowerShell also supports many command-aliases that you are already familiar with. For example:

    • List the contents of the current directory, using: ls
    • Move files with: mv
    • Move to a new directory with: cd <path>

    Some commands and arguments are different in PowerShell vs. BASH. Learn more by entering: get-help in PowerShell or checkout the compatibility aliases in the docs.

    To run PowerShell as an Administrator, enter 'PowerShell' in your Windows start menu, then select 'Run as Administrator.'

  2. Windows Command Line (Cmd): Windows still ships the traditional Command Prompt (and Console – see below), providing compatibility with current and legacy MS-DOS-compatible commands and batch files. Cmd is useful when running existing/older batch files or command-line operations, but in general, users are recommended to learn and use PowerShell since Cmd is now in maintenance, and will not be receiving any improvements or new features in the future.

Linux shells

Windows Subsystem for Linux (WSL) can now be installed to support running a Linux shell within Windows. This means that you can run bash, with whichever specific Linux distribution you choose, integrated right inside Windows. Using WSL will provide the kind of environment most familiar to Mac users. For example, you will ls to list the files in a current directory, not dir as you would with the traditional Windows Cmd Shell. To learn about installing and using WSL, see the Windows Subsystem for Linux Installation Guide for Windows 10. Linux distributions that can be installed on Windows with WSL include:

Just to name a few. Find more in the WSL install docs and install them directly from the Microsoft Store.

Windows Terminals

Linux Mac Look

In addition to many 3rd party offerings, Microsoft provides two “terminals” – GUI applications that provide access to command-line shells and applications.

  1. Windows Terminal: Windows Terminal is a new, modern, highly configurable command-line terminal application that provides very high performance, low-latency command-line user experience, multiple tabs, split window panes, custom themes and styles, multiple “profiles” for different shells or command-line apps, and considerable opportunities for you to configure and personalize many aspects of your command-line user experience.

    You can use Windows Terminal to open tabs connected to PowerShell, WSL shells (like Ubuntu or Debian), the traditional Windows Command Prompt, or any other command-line app (e.g. SSH, Azure CLI, Git Bash).

  2. Console: On Mac and Linux, users usually start their preferred terminal application which then creates and connects to the user’s default shell (e.g. BASH).

    However, due to a quirk of history, Windows users traditionally start their shell, and Windows automatically starts and connects a GUI Console app.

    While one can still launch shells directly and use the legacy Windows Console, it’s highly recommended that users instead install and use Windows Terminal to experience the best, fastest, most productive command-line experience.

Apps and utilities

AppMacWindows
Settings and PreferencesSystem PreferencesSettings
Task managerActivity MonitorTask Manager
Disk formattingDisk UtilityDisk Management
Text editingTextEditNotepad
Event viewingConsoleEvent Viewer
Find files/appsCommand+SpaceWindows key
Mac Or Linux For Development

Looking for Mac or Linux Development? Give us a call.

In the business market, Windows has tended to dominate – but the recent resurgence of Apple, and the growth of Linux means these markets are becoming more significant.

Mac

Blueberry’s primary expertise lies in Windows custom software development. But the company has worked with Linux systems and technologies for much of the last 5 years, and individual programmers within the company have strong past experience of Mac and Linux development.

The company has recently worked on a substantial cross-platform development, involving the creation of a portable code base and platform specific GUI which sits on top of the common portable layer.

We’re very happy to discuss your Mac or Linux development requirements.

With the advent of OS-X, the Mac is now based on an operating system that is very similar to Linux. For simple, command line programs, it’s possible to run the same code on both Mac and Linux systems. Unfortunately, unlike Linux users, the vast majority of Mac users don’t use command line programs.

Creating GUI programs for the Mac is where the similarity with Linux ends. To create the most compatible Mac GUIs, programmers need to use the Cocoa library, and write code in Objective-C – a programming language that is similar to C and C++ , but is primarily used on Mac OSX. Alternatively, developers can use the recently released Swift language, which allows developers to target platforms beyond OSX due to the open source nature.

Linux continues to grow in popularity, and recent developments with low-end laptops have seen Linux sold as an alternative to Windows.

Development on Linux breaks down into a number of different areas: for simple system automation tasks, and small systems, Linux makes strong use of scripting languages such as Bash, Python or Ruby – all of which Blueberry has strong skills in. For larger GUI applications, the main approach is C++ programming using one of two major graphics toolkits, Qt or Gtk.

Commercial development of standalone programs for Linux is a relatively small field, with some unique challenges:

  • Linux users tend to expect their software to be gratis, which makes it more difficult to successfully sell Linux applications – although this isn’t really a problem for companies, as they tend to sell support contracts for free open source software.
  • The large number of Linux “distributions”, each with different configurations and packaging systems makes it more or less impossible to build and ship a single program. Some distributions promote source-code distribution of software, which isn’t always the best commercial option.

Mac Or Linux For Development Software

The technical challenge of the second problem is solvable, but it normally requires an investment in automated build tools which can produce specific versions of the packaged software for each distribution. Blueberry already has auto-build systems in place which can be used to deliver this capability.

Run Linux On Mac

Please see ‘Cross-Platform Development’.