Mac Good For Programming

  1. Mac Air Good For Programming
  2. Mac Programming Software

Which Mac should I buy to learn coding and programming?

Learning how to code is a great idea: programming and coding is an increasingly important skill to acquire. And coding and programming are increasingly part of the school curriculum, so it's something to consider when buying a Mac for your family - which Mac would be best as a machine on which to learn coding?

The first thing we'll say is this: get a Mac over all other kinds of computer. Trust us on this. If you want to learn to code, you want to buy a Mac. Read our guide: Why programmers think Macs are best for coding.

Good

So in conclusion, the 13in MacBook Air would be a good option for anyone looking for a Mac to build an iOS or Mac app on. We’d recommend the 256GB version, adding 16GB RAM at point of sale which. For programming, you’ll want to consider getting a 256GB SSD, but you can also get good results from a 1TB standard drive. When you’re trying to program an application, speed is extremely important. You’ll spend a lot of time sifting through various files and folders.

We have lots of guides to learning to code, and you can discover a lot by reading our Complete guide to coding & programming on Mac article.

See also:

Best Mac buying guide 2016
Best MacBook 2016: Find out which Mac laptop is best for you
Best Mac for students 2016: Which Mac should you buy for university?

Best Mac for coding: Power requirements

The good news is that you don't need a powerful, expensive Mac to learn programming.

Many newcomers think that because programming is an advanced part of computing, they need an advanced computer. Actually, the opposite is true. Programming enables you to work closely with the hardware of a computer, and as a novice you're unlikely to place any demands on it.

Advanced app developers may have bigger requirements. See our Best Mac for app development feature if you already know how to program, and are looking to develop apps professionally.

But newcomers don't need a high-end Mac. Learning to code is much less demanding than using software developed by professionals. Compared to other activities, like video editing or playing video games, coding is an absolute featherweight when it comes to hardware demands.

In fact, the activity you do around coding, such as watching video clips on training sites and using interactive websites like Codecademy, are all going to be more demanding than coding itself.

Coding doesn't have heavy data requirements either. Apple's Xcode developer environment takes up a hefty 10GB of storage space, but that aside the programs you write will tend to be quite small.

So you don't need speed, and you don't need storage. What do you need to learn coding on a Mac?

Read next: Macmini vsMacBookAir: Which is thebestcheapMac?

Is macbook good for programming

Best Mac for coding and programming: Types of Mac

Apple currently offers six different types of Mac (three laptops, three desktops):

MacBook
MacBook Air
MacBook Pro
Mac mini
iMac
Mac Pro

You can learn to code on any of these machines, but each one offers different advantages. The first question is whether you want to learn coding on a desktop or laptop.

Both are valid choices. Coding requires focus and concentration, so working on a desktop in a quiet room is a good idea. But you can do that just as well on a laptop, and still take your Mac with you when you need to work on the move.

Laptops are more expensive than desktops. The cheapest desktop (the Mac mini) starts at £399 while the cheapest MacBook is the MacBook Air (£749).

Best Mac for coding and programming: Best laptop for learning to code

The new MacBook is a stylish machine, and its Retina display is gorgeous. But it is expensive and small.

The MacBook Air is a more cost-effective choice, offering a little more power for less money. We use a MacBook Air 11-inch to code, and it runs just fine. The additional screen estate on the 13-inch model is a good investment, though.

The MacBook Pro 15-inch is the best choice. The extra screen estate makes it easier to view two or more windows at the same time. This is handy for learning as you'll often have a text editor, or IDE (Integrated Developer Environment) open alongside a web browser or PDF document displaying a tutorial.

We are currently waiting for Apple to announce a new MacBook Pro range though, and expect the new model to have a flash interactive LED function bar. So right now is not a good time to buy a MacBook Pro, if you can hold out until after October 2016 you'll have much better options all around.

Best Mac for coding and programming: Best desktop for learning to code

One thing developers have in common, is that they all value large screens (and having lots of screen estate). You'll often find developers using two, or three screens at the same time.

With this in mind we're going to rule out the Mac Pro. It's expensive for what it offers anyway, but for a beginner learning to code the Mac Pro is a vast expensive and absolute overkill.

That leaves you choosing between a Mac mini and iMac. There's a big price difference between the two, and if you have a spare monitor, keyboard and mouse we see no problem with the entry-level Mac mini for learning to code.

If you want to other tasks, like run design software or play games then it's better to upgrade to the mid-range Mac mini model. It has a much faster processor.

If you don't have any of the parts required for a Mac mini, then it's better to get an iMac. Buy the entry-level 21-inch or 27-inch Retina display is our advice. The larger screen is gorgeous and well worth the money.

Best Mac for coding and programming: Conclusion

You can learn to code on any Mac, so the best Mac you can afford is the one to get. But don't feel pressured to buy the latest Mac. In fact, you can pick up a pretty good deal on the refurb store. We've been seeing entry-level Mac mini computers for £339 lately, which is a great entry point for newcomers.

If we had to pick any Mac to learn to code with, it'd be the iMac with 27-inch Retina display. The huge screen estate makes it easy to run many programs at once. It has all the power you need and is a joy to behold.

Surface Book 3 vs the six must-haves for your next laptop purchase
More from Microsoft

Join the newsletter!

< Computer Programming

About the platform[edit]

macOS is the primary operating system for the Macintosh computer. It was originally a system designed privately by Apple Inc, however with Mac OS X, it has been based on Unix. Specifically, a modified FreeBSD operating system called 'Darwin'.

There are many different kinds of software that can be developed for Mac OS X. People generally think of applications, but we'll briefly cover some of the other kinds.

Types of Software for Mac OS X[edit]

Applications[edit]

Applications are what people generally think of when they think about software for Mac OS X. Cocoa applications include: Finder, Mail, Address Book, Safari, Microsoft Word, and Microsoft Excel. Anybody can develop applications using Apple's free development tools which includes XCode. Mac OS X applications are developed using Objective-C though there are other possible programming languages that could be used.

The most popular languages for use on the macOS platform is Objective-C which could be thought of as Mac OS X's 'native language' since the Mac OS X libraries, or 'frameworks', all have an Objective-C interface. Objective-C includes everything that plain C can do, and adds object-oriented programming. See: Objective-C.

C++ can be used in developing for the Mac, but generally, it is used in addition to Objective-C rather than being in place of Objective-C. Using both Objective-C and C++ is called 'Objective-C++' and is considered to be optional when developing software for Mac OS X: C++

See Programming:Objective-C for a lesson on the basics of Objective-C [1] may also be of assistance.

Some preliminary thoughts:

Objective-C is the language most commonly used in Mac OS Programming. Objective-C entered Mac OS X and has ancestry in NeXT. Cocoa. Before you learn Mac programming you must know the basics of C since it is the basis for Objective-C.

There used to be three separate APIs for developing a Mac application with a GUI:

1. Classic (Mac OS 9 and lower). Developing for the Classic API is no longer done. When Mac OS X first came out, users and developers had a huge investment in software written for Mac Classic OS and Mac OS X used to have an emulation mode so that users could run their old software. Apple has long since stopped support of the Classic API and Classic emulation in Mac OS X.

2. Carbon (Mac OS 8.5 up to and including Mac OS X 10.6 Snow Leopard). Carbon was an API for developers to update their applications that used the Classic API to be run without the Classic emulator. Carbon was a great way that Apple provided developers to upgrade their software to run on Mac OS X without having to totally rewrite their software, but Carbon, like Classic, is no longer supported by Apple.

3. Cocoa (All versions of Mac OS X). Cocoa is the most native API that can be used to develop applications for Mac OS X that are truly 'Mac-like'. Generally, Objective-C will be used along with Cocoa, though there are other options such as Cocoa-AppleScript and Cocoa-Python, but Cocoa-Objective-C is really the 'mainstream' way to develop Cocoa applications.

Resource Forks Files in Mac OS X have a feature that is unique to Mac OS and that is that each file on disk can have two 'forks'. This feature used to be used for Classic and Carbon applications to separate code from resources (such as menus, windows, etc.), and the Mac OS X file system still supports two forks, but you should only use the 'data fork'. The resource fork is non-standard and can be lost when transferring Mac files to other file systems.

AppleScripts[edit]

Another 'native language' for developing Mac OS X applications is AppleScript. AppleScript is a language that Apple invented to automate repetitive tasks. The AppleScript application is located on your Mac at /Applications/Utilities/AppleScript Editor. AppleScript can be used to record AppleEvents, the events that applications send to themselves or to other applications. Why don't you try it out. Open AppleScript Editor, press the record button, do some things with your other applications and watch the script write itself. AppleScript can be used alone or it can be used along with XCode to develop Cocoa Applications using mostly AppleScript instead of Objective-C. This option is mostly for experienced AppleScript programmers who don't know Objective-C.

Automator Workflows[edit]

Apple also provides an application called 'Automator' that can be used to easily automate repetitive tasks. It is located at /Applications/Automator.app

Shell Scripts[edit]

Mac OS X has an application called Terminal that provides a command-line interface to Mac OS X. It is possible to develop scripts for the command line. Terminal.app is located at /Applications/Utilities/Terminal.app To create a shell script, you need a text editor. There is a text editor that comes with Mac OS X called 'TextEdit.app'. It is located in /Applications/TextEdit.app. But actually, what is better than TextEdit is a program such as TextWrangler.app which is available for free from the following link: http://www.barebones.com/products/textwrangler/

The shell that Terminal.app uses by default is called 'bash'. Here is a simple tutorial on developing bash scriptshttp://www.maclife.com/article/columns/terminal_101_automate_terminal_bash_scripts

We won't go any more deeply into shell scripts here in this wikibook, but it's just good to know what they are. You can always google for more information now that you know what to google for.

Command Line Tools[edit]

When you open Terminal and you learn how to type in commands. The commands are usually command-line tools or scripts. Above, we just talked about developing your own scripts with a text editor. It's also possible to develop your own command-line tools, using XCode. This is an advanced thing to do. Usually, power-users will write a shell-script (or some other kind of thing such as an AppleScript or an Automator Workflow) but it's good to know what a command-line tool is. Command-line tools have a textual user-interface rather than a graphical user interface (GUI).

Java[edit]

Java used to be treated by Apple as a 'first class language' to develop for Mac OS, however in recent years, Apple has less support for Java. Now with Mac OS X 10.7 'Lion' and 10.8 'Mountain Lion', Java doesn't even come pre-installed in Mac OS X. Java is still available, but users have to download Java from Oracle's website and install it themselves. Apple's Mac App Store doesn't even allow Java apps to be sold at their store calling Java 'deprecated'.

However, there still are Mac developers who use Java because it has the advantage of being cross-platform compatible. For example, the same source-code can be used to generate software that runs on Mac, Windows, and Linux.

Apple has said that Java reduces the Mac to the 'least common denominator'. That's why they support it less.

Python[edit]

Python is somewhat supported by Apple. In fact, Python is shipped with Mac OS X and is part of the System Folder. There are third-party libraries that allow developers to develop applications using Python and Cocoa together, but these are not very well maintained, and Python on the Mac is most suitable for developing command-line utilities, or cross-platform scripts that aren't really very Mac-like.

Ruby[edit]

Mac Air Good For Programming

Similar to Python.

Websites[edit]

Most Mac users use Safari for their web browser. Safari uses the standards set by w3c.org You can develop websites that work with Safari by following the standards of the w3c.org. Remember to validate your HMTL, CSS, and JavaScript.

HTML Validator:http://validator.w3.org/

CSS Validator:http://jigsaw.w3.org/css-validator/

JavaScript Lint:http://www.javascriptlint.com/online_lint.php

If you're developing websites using your Mac and using Safari, remember to test your webpages on other platforms and with other web browsers.

Mac OS X Specific Languages[edit]

Objective-C is really the 'native' language for Mac OS X development

You could call AppleScript a 'native' language too, but it isn't really used to make commercial applications. It was designed to be used by real power-users to automate their tasks. Although it is possible to use AppleScript to build Cocoa applications in XCode, this would be more for users who already know AppleScript and don't want to learn Objective-C.

Mac Programming Software

Mac OS X Frameworks[edit]

Retrieved from 'https://en.wikibooks.org/w/index.php?title=Computer_Programming/MacOS_Programming&oldid=3608589'