Tell me more ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

This is not really a programming question; more of a curiosity but I thought it could be best answered by SOers. I am really into web, so have no idea about non-web apps. I wanted to know in which language is Miscrosoft Word, Windows etc. written in? Is it C, C++? Do they use Visual C++ or Visual C# something?

Actually, being a hard-core programmer I felt rather strange when a friend asked me this and I had no definitive answer.

Also, how do I explain someone why we can't really use Perl to make an app like Ms Word?

share|improve this question
1  
I would like to know the answer too. My guess it's C++ for most of the core/reusable libraries. Could be C# for the newer stuff or add-ons. – o.k.w Aug 23 '09 at 4:46

migrated from stackoverflow.com Aug 23 '09 at 7:55

5 Answers

Windows (ntoskrnl.exe) is written in C, and compiled with Microsoft C, using nmake. The source is available through the Windows Research Kernel for inspection.

Many of the Office applications, as well as the internet explorer, heavily rely on COM components; see the registry of on a machine having office installed for a list. I believe most of these components are written in C++; you can use depends.exe to find out.

Visual Studio (the user interface) used to be written in C++, but reportedly, the GUI of VS 2010 is written in C#.

share|improve this answer
I always thought they used build and not nmake for the kernel. But since I've not looked at this stuff for more that 10 years.... – Preet Sangha Aug 23 '09 at 10:02

Many of the stuff that has a lot of legacy code laying around is C++ or plain C (this would include the Office suites). When the Win2k source leak happened years ago, much of the APIs were C++, though the kernel remained in C. I'm not sure of more recent tools, but I'd imagine that, with the shift to the .NET framework, a lot of new stuff in the Windows world is in C#. (Also, "Visual C++" is an IDE, not a language.)

In UNIX land, C is king. Most apps and core OS code are written in plain C, with C++ taking the back seat. Mac OS X, being UNIX, has at least an underpinning layer of C, with the user side of things featuring lots of Objective-C (though some is still C++, or at least Objective-C++, such as the current, pre-Snow Leopard version of Finder). Then again, Objective-C is basically C with Smalltalk-style objects (it's a true superset, unlike C++), so you could argue that's all C, as well.

Some popular *nix apps are C++, though. Firefox is, and since WebKit is as well, I would assume that Chrome follows suit.

Hopefully that helps. To put it simply, most apps seem to be in the C family :)

EDIT:

You can make something like MS Word in Perl or random interpreted language X. One of the primary reasons you don't ever see it is because it would run like molasses.

share|improve this answer

Windows kernel is written in C. The rest is mostly C++. Wikipedia says Office is written in C++/MFC, C#/.NET.

As for writing a word processor in Word, you can; Perl is Turing-complete, after all. But you can also hit nails into wood with a screwdriver. It just easier to use a hammer.

share|improve this answer

Windows: The win32 kernel were written in C, with other parts written in C++ (VC++).

share|improve this answer

Most operating systems (and big client applications that need performance) are written in C/C++.

There's no reason you couldn't write an office suite in Perl. You'd still need to bind to C libraries to draw the UI, and you might want to use C for a intensive calculation, but it's certainly possible.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.