tags:

views:

2925

answers:

29

I noticed a rise in the number of developers (mostly doing web development) using Apple machines. Does Mac OS offer a better environment for programming or is it because of the hardware? What are the reasons?

+34  A: 

Mac OS X is based on Unix but is more user friendly than most Unix distributions, I think that counts.

Also a lot of nice software (TextMate...) is available.

marcgg
I think this is the main reason I like to use it. You can jump down to a comfortable UNIX CLI whenever the GUI fails you.
cdmckay
Just try out a recent GNU/Linux distribution (e.g. Ubuntu), the UI is pretty decent. Regarding TextMate, gedit is a nice alternative (see http://stackoverflow.com/questions/1457406/textmate-alternative-for-linux/1457414#1457414).
Pascal Thivent
I like Ubuntu. Ubuntu does not even compare to OS X.
Milan Ramaiya
@ReverendGonzo: I agree, Ubuntu is superior :)
Pascal Thivent
+49  A: 

I prefer Macs for all forms of development (except .NET development of course) because it has a UNIX command line. I can't stand it when I can't access standard UNIX command line tools to speed up my development. It feels like a crippled development environment without them.

I've also found, in my opinion anyway, that the quality of software in general that is written for Macs is much higher than that written for Windows, especially when it comes to friendly development tools such as Coda and TextMate.

Marc W
Same reason I use Linux, I can't stand not having the command line tools. If I get stuck on Windows the first thing I have to install is cygwin.
tj111
You could do .Net development as well with Monodevelop. The latest release for OSX looks pretty nice, though I don't know how stable it is.
Adam Lassek
And even cygwin is gross. It screws up your environment variables and stack traces if you use it for debugging. It's just a massive hack. I prefer the all-natural real thing. :-)
Marc W
@Marc Yeah, cygwin is awful. Better than nothing, though.
Adam Jaskiewicz
Heard of Powershell ?
PQW
@Robert: I think you posted in the wrong place. Nobody was talking about iTunes.
Chuck
@Chuck: "that the quality of software in general that is written for Macs is much higher than that written for Windows"
Matthew Whited
Bashing one application (deservedly) in no way addresses the topic of “the quality of software in general that is written for Macs”.
Gunnlaugur Briem
I voted this one up because I generally agree, but I do love Visual Studio.
Brad Gignac
why pay for textmate? Aquamacs FTW!
myfreeweb
mingw with msys is better than Cygwin in my opinion.
Chris Dennett
+2  A: 

I don't use a Mac, but I can see part of the appeal; it looks good, it works out of the box, and it offers a real Unix environment (with all the power that brings) with less of the hassle. Even programmers get peeved when Linux doesn't behave itself.

I understand that some platforms work better under Mac OS; allegedly Ruby, for example - maybe there's a slight increase in uptake due to people wanting to get going with the latest "trendy" language?

Rob
+22  A: 

There are a few reasons I switched to Mac. One by one I am replacing all the windows development boxes in my environment.

Mainly, it just gets out of the way and let's me work.

1) Backups - My old HP Laptop died. I was screwed for a few weeks having to set everything up again when a Mac friend showed me he could take a live backup of his hard drive, plug it into another mac, and boot. This was because the hardware inside a macbook pro was identical to an iMac's internals. Pretty cool. Backups happened as often or as little as he wanted. This meant near zero downtime (even if I ran windows in a virtual machine).

2) Vista - It was bad enough 2 years ago that it was easier to switch. Switching was made easier due to the VM Software that came out.

3) VMWare Fusion/Parallels - It was easier to switch to Apple and run Windows in Parallels. Parallels ended up being unreliable, but VMware Fusion came out and it's been great. Today I have any number of virtual machines kicking around from servers, to windows 98 machines, all available for testing or development as I need.

4) It just works. It's hard to explain, the computer itself seems to melt away and you can focus on the task at hand. I go weeks without rebooting, standby is actually stand by (near instant on and off)

5) Better Tools - Many of the tools I used in Windows, seemed to have better counterparts in the Mac world.. Skitch (Instead of SnagIt), OmniGraffle (instead of visio), TextMate (although I am more into Eclipse now), Scrivener (Writing/research tool).

6) Multimedia - Handy to be able to mess around with your own video/audio editing, a small bonus for me.

Originally I had a bootcamp partition due to paranoia of having to run Windows. As time has gone on, I have found Mac equivalents of most the software and keep the Windows VM for client environments where I have to deal with their windows only software.

Jas Panesar
So it seems you're not a programmer, which this question is about.
Andrew from NZSG
Programming for 10+ years. Eclipse works great anywhere. I run my webservers in VM's as well. Hope that helps.
Jas Panesar
I don't know about the other points, but point #3 is actually a point **against** OSX; Apple has gone out of their way to make sure you can't virtualize it.
R. Bemrose
@R. Bemrose - I use OSx to run non-mac VM's. You can run Mac VM's on Macs, just not any other platform. Annoying for some, but you can get around it like anything if you really need to. I'm happy with what I have.
Jas Panesar
@OMG Unicorns: in practice it is actually a point for *using* OSX.
Wahnfrieden
+1  A: 

The software offered is quite appealing to both designers and programmers alike. Although, most (if not all) the functionally isn't exclusive on the Mac, it's been my experience that a major factor of being drawn to the Mac platform was indeed, the available tools.

I suspect it being from a surge of consumers from the ad campaign wars and/or iPhone developers meandering around.

Rev316
+7  A: 

Reliable hardware with great aesthetics and the ability to run Mac OS X, Windows, and Linux via virtualization. In my case I work mostly on Windows systems, but I have a Macintosh laptop that lets me take multiple environments with me wherever I go.

tvanfosson
I prefer to think of it as great industrial design, rather than mere aesthetics.
John Topley
+7  A: 

The .NET developers I know that have bought MacBook Pros, did so because they like the hardware and since they are using Intel CPUs, they can run Windows on it. With the people I know, they didn't buy it for Mac OS X, but again, mainly because they have pretty solid hardware.

They are also nice looking machines. I wouldn't mind getting one, but my IBM T60p will suffice for now.

Gromer
I recently bought a MacBook for exactly this reason. It looks nice, feels nice to work with (I love the keyboard), wasn't actually too expensive (MacBook White, which has all the horses I need, though to be fair a PC with these specs would be cheaper; I'm talking about absolute cost) and I just pulled the drive from my bricked Dell laptop and stuck it in my new MacBook -- no effort. I presently have no desire to run OS X (prefer Ubuntu if I want *nix), though the option is always there if I ever decide to get into iPhone development, for example.
Zach Snow
Oh, forgot to mention: it was definitely my favorite for a 12" - 13" laptop, a space that is surprisingly sparse these days.
Zach Snow
+14  A: 

Pros (In no particular order)

  1. They look great
  2. They don't slow down over time as badly as PCs do
  3. Seperate graphics engine makes for cool stuff in the GUI
  4. Very good out of the box toolset
  5. You don't get all the rubbish that PCs come pre-installed with
  6. You can run Parallels or VMWare to run windows on you mac very easily (2 in 1)
  7. As a web developer/designer you are highly regarded and targeted by Apple's products
  8. You can look cool with one on your lap at a conference
  9. Good open source software support out of the box (helps the wallet)

Cons (In no particular order)

  1. They're expensive
  2. There's not as much software out there as you get with PCs
  3. Games are EXPENSIVE and limited
  4. What you get is what you get. Building Macs is very difficult (compare to a PC)
  5. You could end up being a smug Apple user, who think's their machine never crashes

Oh by the way. I'm a web developer and I'm a PC.... but I would have no issue with being a Mac

Nick Allen - Tungle139
+1  A: 

On the one hand, there is of course the iPhone. I wouldn't say it accounts for all switching developers, but at least half of them do so because they want to develop for the iPhone.

Another reason is that Macs can run Windows, but not vice versa. That, plus the fact that Macs are way more "stylish" than PCs could account for another large part.

And last but not least Windows Vista, and its not that different successor, Windows 7, have the potential to drive away another bunch of developers.

Mononofu
+4  A: 

For me, and I'm sure for many others, it is due to the fact that a Mac is required to develop iPhone applications.

And I don't intend to run a Hackintosh machine ;)
Unfortunately true. Also not VM'able.
Andrew Lewis
+1  A: 

I bought a Mac just out of curiosity and to keep myself educated in the areas beyond my field of expertise. Overall I did not find Mac any better than Windows but I guess that depends on kind of work you do. I imagine *nix fans should really like it.

If I did any amount of Ruby/Rails, Python, PHP, Java, iPhone or anything beyond my standard .NET stuff I would consider making Mac my dev platform but still, I have to too many utilities, tricks, performance improvement tools on Windows and I don't know *nix shells that much so I think my performance would suffer.

For now I'm using it solely as a home PC - mail, internet, music, photos, skype.

zvolkov
+11  A: 

I'm a developer who is thinking of buying an Apple. Here are my reasons:

  1. I like having a UNIX command line available. Cygwin is nice, but it just feels klunky compared to a real UNIX/Linux. Thus, I would like my primary OS to be a UNIX or UNIX-like environment. This limits me to Mac OS X, Linux, Solaris, or a BSD. I'm mainly a Linux guy, but I've messed with all of those enough that I'm comfortable with whatever.

  2. I'm into photography. There is some really nice photo software out there that my pro-photographer friends swear by (Photoshop, Lightroom), and from what I've seen of the Open Source competitors, they just aren't there yet. This software is only available for Windows and Mac OS X.

  3. The combination of 1 and 2 leaves me with Mac OS X as a primary OS.

  4. I don't want to deal with Hackintosh stuff. It's worth it to me to spend a little extra and have it work out of the box. Yeah, I'll probably buy with fairly minimal specs and upgrade RAM/hard drive myself if I feel the need, and save some $$$ that way.

  5. I can always run Windows, Linux, Solaris, *BSD, etc. in a VM.

  6. Apple hardware is cute.

Most of my actual development work isn't platform-specific, and what is I can always run in a VM or on one of my other computers.

Adam Jaskiewicz
Photoshop is on windows... I am a former professional photog and my fav photo tools: Picasa, Photoshop, Photo Mechanic... 99% of the time Lightroom is useless (in my experience) though it may have improved since I last used it
jle
Photoshop is on Windows, yes. I mentioned that it's available for Windows and MacOS X. Since I don't like Windows, and Linux doesn't have that software, I use MacOS.
Adam Jaskiewicz
+10  A: 

I bought a Mac for iPhone development.

But I think the biggest difference between now and ten years ago is the rise of the web developer and interpreted languages. Web developers can use Java, Python, PHP, Perl, JavaScript, etc. Doesn't matter what OS they use, so they can use the computer they WANT to use.

Nosredna
What a racket apple has with the iPhone development thing... Apple gets continual praise even though it is vendor lock-in in the most severe of terms (although if you can make money developing iPhone apps, more power to you)
jle
I don't know. Can you do Windows Mobile development on the Mac? I really don't know. Problems is--I don't think anyone cares if you can or not. Apple just happens to have what people want in the iPhone. It doesn't surprise me that you use their tools to do it. After all, the iPhone OS is based on the Mac OS.
Nosredna
No, Apple tells people what they want and they buy it. It's amazing!
dotjoe
+3  A: 

I think the rise is largely due to the change to using Intel processors and therefore the ability to run Windows natively or in a VM. Macs are solid performers but a bit overpriced. I personally run VirtualBox with Windows 2003 Server and Visual Studio 2008 to do C# development.

Jeffrey Hines
I am willing to bet that is Apple allows OS-X to run on any hardware and not just their selected few machines many more people would run it... But then they would have just as many hardware related issues as Windows..
Matthew Whited
+1  A: 

The iPhone App Store is a great marketplace for apple software. If you start playing around with developing iPhone software you are by default learning how to develop on the Mac.

codingguy3000
+32  A: 

It's currently trendy?

(Awaits downvotes from fan-boys...)

EDIT

In response to the responses, to quote Charlie Brooker in "I hate Macs":

"Cue 10 years of nasal bleating from Mac-likers who profess to like Macs not because they are fashionable, but because "they are just better". Mac owners often sneer that kind of defence back at you when you mock their silly, posturing contraptions, because in doing so, you have inadvertently put your finger on the dark fear haunting their feeble, quivering soul - that in some sense, they are a superficial semi-person assembled from packaging; an infinitely sad, second-rate replicant who doesn't really know what they are doing here, but feels vaguely significant and creative each time they gaze at their sleek designer machine. And the more deftly constructed and wittily argued their defence, the more terrified and wounded they secretly are."

EDIT2: Another recommended reading The Case Against Apple by Jason Calcanis.

Pool
I think it's fair to say it's trendy. But the fact that it can be is due to the rise in web development. Web developers can work from any OS.
Nosredna
bias
No sense of humour, a judgemental reply, and a downvote. Hmmm, do you own a Mac?
Pool
IMHO my comment *is* funny (what, you can tease people but I can't?). Moreover, your post wasn't humorous it was simply trolling, and it's the first time I've seen it at SO, hence why I responded and down-voted; shame on you.
bias
Yes, I own a Mac, several versions of windows. And, my Linux distro is ubuntu which is just as trendy as Apple (as far as Linux distros go).
bias
Oops ". And," should read " and," sorry my iPhone keyboard is hard to type with.
bias
i am a fanboy, but try to look at this kind of discussions in a sober-mind-manner.i honestly think that most of the "new" developers became only because of a trend...
Eimantas
@bias - Please don't group awesome bands like Rage in with crap like Theory of a Crapman. Rage created a very distinctive sound, and Tom Morello is a phenomenal guitarist. Theory sounds like Yet Another Nickelback Ripoff (and don't get me started on them).
Chris Lutz
bias has a point in that there is a trend for people to portray themselves as not conforming to the masses but who ultimately do conform to some group. If you define yourself by the fact you buy a product (mac) or make a point that you don't by a product then it's kind of a sad thing to do.
Damien
So you've hardly used one and you don't like it ... and you don't like the image ... Maybe you should not then read posts with "rise", "Apple", "programmers" words in the subject ... we apple fun boys do like our Macs and we do like the image, that's the reason we buy our toys ... you go and post answer to http://stackoverflow.com/questions/1701080/do-windows-developers-users-feel-threatened-by-apple-users
stefanB
I'll answer whatever questions I like, lad.
Pool
Answer is just fine. After all - it is trendy and many devs switch to it because of that. Are there arguments against that?
Arnis L.
I think the people who were upset were commenting on the picture rather than the words.
Pool
You should have stopped at "It's currently trendy"... The rest is just sheer flame baiting. -1
Gab Royer
I'm a fan boy, but I am voting you up (although yes, you went a bit too far). The reason is: I think you are right. However, let me present you my point. I do research, and I need two things to perform my job: a standard, easy to use, well deployed _in_ _my_ _environment_ development platform (this removes windows), providing nice tools for graphic adaptation when publishing articles (this removes linux). Mac is, right now, the only platform fully and easily compatible with linux and also a host for Illustrator and many other nice tools for publishing (which is what a researcher mostly does).
Stefano Borini
+4  A: 

For me it's:

  • The ability to run or develop either UNIX (any x86 variant), Windows, or Mac OS X applications on a single machine.
  • UNIX command line
  • Because of the above access to all the development tools I could want (iPhone SDK springs to mind)
  • No viruses (yet)
  • I like the bundled applications with Mac OS X such as iLife
  • Exposé and Spaces are awesome
  • Well designed computer

The only disadvantage is the cost. But I don't mind paying for quality.

nolim1t
no viruses? --just make sure that you don't download iLife with bittorrent: http://blargkaboom.com/2009/01/27/ilife-09-iwork-09-torrented-with-virus/
jle
macs DO HAVE VIRUSES. Only reason they dont have as many as windows is because macs are nowhere near as popular as windows pc's are...
baeltazor
Don't forget most Windows viruses are spread by the users doing something stupid and not magically over the air. (Just so happens that stupidity can affect OS-X, Linux, and any other OS)
Matthew Whited
Mac DO NOT HAVE viruses. The handful of malware that have been found are not viruses. And saying that it's because the Mac is not popular enough is pure delusion. Just think "ROI" for the would be hacker (well, the "R" part, because the "I" part is what seems too high): Mac user are wealthy, not security-aware, and have no security software installed.
Jean-Denis Muys
+22  A: 

In one sentence: you get all the power of UNIX with (almost) none of the headache.

For a lot of us out there who are UNIX fans but never had the time / inclination to get UNIX / Linux working without an IT department to back us up, OS X is something we've been wishing for since about the mid-80s.

(Personally, I was expecting Solaris to have broken through and become this OS by the early 00s. Boy was I wrong.)

Electrons_Ahoy
Theres a lot of added headache with getting certain Linux tools working in OSX though. Macports is awful too.
Wahnfrieden
+3  A: 

For me:

  1. The hardware is pretty rock solid. I have had 10 Apple machines and only had to use Apple Care once.

  2. Stability - My mac Pro has been running without a reboot for 91 days.

  3. Awesome GUI and still has command-line which I am in all the time.

  4. The development tools make it possible to develop cross platform software easily.

  5. Virtualization - I can run ANY other OS on a Mac. Not true in Windows land.

About that last thing... it is Mac refusing to run on exotic (virtual) hardware. Don't say it is Windows/Linux's fault.
Dykam
@5: Obviously you're unaware of VirtualBox (http://www.virtualbox.org/)
Anax
So becasue the vendor (Apple) makes it difficult to use it's OS in a VM on another machine (Windows/Linux)... it's the other vendors fault. Let me guess it's also Microsoft's fault that vendors don't write new drivers for new versions of the OS...
Matthew Whited
+1  A: 

RoR - Ruby on Rails. This is becoming a very popular framework, and the preferred environment environment is using the TextMate (or something like that) editor on Mac OS.

Larry Watanabe
Thanks for the editing fixes :) I need a new pair of glasses.
Larry Watanabe
+2  A: 

To actually answer the question:

The reason you've seen a recent rise in programmers working on Apple machines isn't because Apple is awesome or trendy. It's because it's actually possible.

The compatibility gap between platforms has been greatly reduced in recent years thanks to technologies such as virtualization, cross platform run-times, and mainstream cloud/internet services.

As the operating system and application platforms become more and more irrelevant and commoditized, programmers will be less bound to the platform they are developing for and will seek out new environments to work in that better fit their tastes.

Given that Apple clearly occupies the high end 'luxury-computer' niche, it's no surprise that certain types of (well paid) programmers have gone there.

Matias Nino
+1  A: 

I believe it is the great UI running on UNIX that makes a Mac very attractive ( and they look very good ).

Yanush
+2  A: 

I wouldn't be so quick to assume that the basis of your question is actually true. It's impossible to say without some level of research whether more developers really ARE switching to macs.

See this page on the Biased Sample fallacy, which I believe applies to this situation. Sample S, in your case, would be the combination of (F) the developers you've noticed using PC's and (G) those you've noticed using macs. It is not necessarily true that that the percent of people using macs from your sample group S is the same as, or even anywhere close to, the percent of people using macs in the entire population P. For example, CS students at a university may be more likely to use macs if the facilities provided by that university are more mac-friendly than PC-friendly (though this situation is very unlikely - it's merely an example).

In short, just because you have noticed a trend around you, does not mean that the trend actually exists.

And thanks for the down-flag with no reasoning.

Chris
+1 for making a coherent argument.
Amardeep
A: 

That's quite a new trend for me :) Never ever ever heard, that programmers are starting to use Apple as developping environment. I'm gonna keep an eye on it...

Hoffmann from Stuttgart
A: 

I also noticed this trend, and as a web developer I recently made the leap and bought a mac and stuffed my PC in the closet. Two months later, I gave up and installed Windows 7 on the mac (atleast the hardware is nice..).

For people claiming that macs are made for programming...come on...the mac keyboard doesn't even have keys for "|", "{" or "}"...

OSX is pretty nice most of the time, but its the little things that bothers me. First of all, I can't stand the window handling. Decoupling the menubar from the window is stupid. Period. Resizing only in the bottom right corner - who came up with that? Maximize isnt really maximize...just "make bigger"...wtf?

Then came the obvious "moving to OSX from windows" things:

  • Home/end moves to top/bottom of document/console instead of the line - wtf?
  • Keyboard bindings...20 years of CTRL-C/V is hard to get rid of
  • Window controls to the left instead of right - it's like Apple is trying real hard to be different

Don't even get me started on the Apple lock-in... Pressing the play/pause button on the keyboard starts iTunes (but Apple, all I wanted was to play/pause Spotify!), and the (best) way to get rid of that behaviour is to "chmod -x" iTunes. Then chmod back when you need iTunes, which you of course do if you have an iPhone... Great user experience!

truppo
About the keyboard, qwerty keyboard has those keys...Window management, it doesn't "make bigger" it fits the window to the right size (for some programs, other maximize like windows).Appart from the play/pause opening (which is a real pain), the rest of your problems are habits issues.
Loïc Wolff
Apple keyboards do not have those keys. Look for yourself. Of course you can type the character by pressing a magical combo, but that wasn't the point.Yes, the stuff in the bullet list are things of habit (as I declared). The window management stuff is not, I just find them incredibly stupid (a subjective opinion ofc).
truppo
What a fool you make. Are you trolling? - maximize grows the window up to the point that all information is visible. Not more. Change that and you will have all Mac users in arms in the street. Windows control position? Windows decided to go the contrarian way (Apple was first you know). My mac keyboard does have {|}, and so on and on...
Jean-Denis Muys
Early MacOS had window controls in both left and right. But who cares who was first? It's as stupid as Great Britain driving to the left when the rest of the world drives to the right.I know what "maximize" does in OSX, and it sucks. Real maximizing (as in filling the whole screen) reduces clutter and accidental clicks on background windows.Sorry about the keyboard, it seems the US layout really does have those keys, but most localized european doesn't.
truppo
Which keyboard are you looking at? All of my (US) Mac keyboards have always had those keys.
brian d foy
A: 

One other reason not mentioned yet, of course it's me alone, and this has not significance:

The Mac OS is the only one (that I know) that allows me to use a QWERTY keyboard (muscle memory, historical reasons, well adapted to programming C-family languages…)

AND ALSO

easily enter the French diacriticals é, è, ê, ü, ç, œ and the likes.

Jean-Denis Muys
I never noticed the different layout in Apple keyboard. And you are right. Seems it is more adapted to curly braces languages :-)
jassuncao
A: 

I'm a programmer because I used an Apple machine. I'm an engineer by training and had always been mildly interested in programming, but never enough to overcome the initial setup learning curve on Windows. Once I made the switch to a MacBook, I had the ability to write Bash scripts, Applescripts, Ruby, Cocoa... all with no or trivial setup.

Also, newbie tutorials written for OS X back then (~2001) were much better than the ones written for Windows. Judging by the results of a google search (.net tutorial vs. cocoa tutorial) it looks like this is still true.

kubi
+1  A: 

I recently switched to a MacBook Pro (13"). Previously I had always used PC laptops from Dell, HP, Sony, etc ... The major reason for my shift to Mac was the durability and build quality I saw in the uni-body design of the MacBook Pro. I had difficulty finding a durable, well built PC laptop under $1,000. In the past I would have gone with a Thinkpad but I feel their build quality has gone "downhill" since Lenovo purchased them. A major plus for the MacBook Pro was that I could go into an Apple store and actually try one out before purchase.

As a software developer the majority of my work has been Windows based. I use ASP.NET, WinForms, WPF, and SQL Server. However, as the Mac uses the Intel processor I can run Windows natively or as a virtual machine with the Mac OS. To me it is the best of both worlds. When developing PHP, MySQL and Java I stay within Mac OS. When doing .NET and SQL Server work I use Windows via a Virtual Machine.

webworm
13" seems too small. How are you liking it?
kirk.burleson
I like the 13" size quite a bit. For me, it is a perfect balance between portability and function. When I need a larger screen I just hook it up to an external LCD monitor. I bumped the RAM up to 8 GB and it runs like a charm. I run all windows apps within VMWare Fusion and don't even bother with BootCamp.
webworm
+1  A: 

Does Mac OS offer a better environment for programming or is it because of the hardware? What are the reasons?

OSX has its own UNIX underneath: which means for a web developer who works with webservers (that are commonly dominated by Linux/FreeBSD), can get the advantage of using unix-to-unix(/linux). This means rsync, cron, scp and secure shell.

OSX has its own UNIX underneath: this means, developers can use a unix build of popular databases such as MySQL, but also their favorite webserver (nginx, apache, lighttpd) local. This switch makes the workstation more effective and efficiently (develop-test and upload when done). FOSS admirers don't have to wait for the Windows port to arrive.

Ruby projects (Rails, Merb, Ramaze, Gosu, etc) are good FOSS examples. But also Python projects, like Panda3D, Unity, Django, etc. find more love on OSX. The XCode developer tools have bindings for these languages and these tools come with the Operating System DVD's. Oh, and Ruby and Python are standard on the system.

OSX supports spaces (virtual desktops). This allows me to keep application realms in order, like my editor, api references and shell.

Shyam