f



Was Windows coded in C/C++ completely?

Hello,
Just wondering, which versions of Windows coded in C/C++ "completely"
or was coded particularly? Or which parts(APIs, interface, kernel...)
of Windows contains C++?

Also i want to know which programming language is much efficent and
easy-to-organize/learn under Windows platform for me? C++ or Visual
Basic or other?

Just want to see recommendations and comments.

Thanks...

0
10/9/2007 7:41:25 PM
comp.programming 11491 articles. 2 followers. Post Follow

11 Replies
519 Views

Similar Articles

[PageSpeed] 41

On Oct 9, 12:41 pm, kimiraikkonen <kimiraikkone...@gmail.com> wrote:
> Hello,
> Just wondering, which versions of Windows coded in C/C++ "completely"
> or was coded particularly? Or which parts(APIs, interface, kernel...)
> of Windows contains C++?

It's coded in C, C++, and Assembly language.
I guess it is the same with every other operating system (though there
was a version of VMS coded completely in Assembly language, IIRC).
Vista might even have some .NET stuff in it (but just for the GUI
portion, I imagine).

> Also i want to know which programming language is much efficent and
> easy-to-organize/learn under Windows platform for me? C++ or Visual
> Basic or other?

There is no connection whatsoever between what an OS was written in
and what programming languages should be used for applications on that
OS.

C++ is for efficiency and VB is for GUI development.  The different
tools are best fitted for different jobs.

For a new beginner, VB.NET will be fairly easy to learn (I like C# a
bit better, but there is little difference between them really), but
that tool will be for a different problem set than C++.
I would not write a database engine in VB, for instance.

So you should ask yourself, "What kind of programming am I interested
in?" and then learn tools for that kind of thing.

C is good for operating system level stuff and device drivers.  It is
used in embedded work.
C++ is used for larger systems like database engines, office packages
and things of that nature.
Fortran is used for number crunching (e.g. weather forecasting
software)
..NET languages are used for front end development
Java is like .NET but it run on everything (.NET will tie you to
Windows front ends -- there is a MONO thingie for UNIX but it does not
have the weight of the Windows version for usage)
There are scripting languages like Python and Perl that are useful for
process control and web servers.

There are (of course) lots of alternatives.  You can develop GUIs
using TCL/TK or with (wxWidgets and C++).  There is lots of crossover
between C, C++, and Fortran (e.g. you can do number crunching in C++).

I would suggest that you figure out what sort of things interest you
the most and then study languages that fill that niche.
IMO-YMMV.

0
user923005
10/9/2007 8:06:50 PM
On Oct 9, 11:06 pm, user923005 <dcor...@connx.com> wrote:
> On Oct 9, 12:41 pm, kimiraikkonen <kimiraikkone...@gmail.com> wrote:
>
> > Hello,
> > Just wondering, which versions of Windows coded in C/C++ "completely"
> > or was coded particularly? Or which parts(APIs, interface, kernel...)
> > of Windows contains C++?
>
> It's coded in C, C++, and Assembly language.
> I guess it is the same with every other operating system (though there
> was a version of VMS coded completely in Assembly language, IIRC).
> Vista might even have some .NET stuff in it (but just for the GUI
> portion, I imagine).
>
> > Also i want to know which programming language is much efficent and
> > easy-to-organize/learn under Windows platform for me? C++ or Visual
> > Basic or other?
>
> There is no connection whatsoever between what an OS was written in
> and what programming languages should be used for applications on that
> OS.
>
> C++ is for efficiency and VB is for GUI development.  The different
> tools are best fitted for different jobs.
>
> For a new beginner, VB.NET will be fairly easy to learn (I like C# a
> bit better, but there is little difference between them really), but
> that tool will be for a different problem set than C++.
> I would not write a database engine in VB, for instance.
>
> So you should ask yourself, "What kind of programming am I interested
> in?" and then learn tools for that kind of thing.
>
> C is good for operating system level stuff and device drivers.  It is
> used in embedded work.
> C++ is used for larger systems like database engines, office packages
> and things of that nature.
> Fortran is used for number crunching (e.g. weather forecasting
> software)
> .NET languages are used for front end development
> Java is like .NET but it run on everything (.NET will tie you to
> Windows front ends -- there is a MONO thingie for UNIX but it does not
> have the weight of the Windows version for usage)
> There are scripting languages like Python and Perl that are useful for
> process control and web servers.
>
> There are (of course) lots of alternatives.  You can develop GUIs
> using TCL/TK or with (wxWidgets and C++).  There is lots of crossover
> between C, C++, and Fortran (e.g. you can do number crunching in C++).
>
> I would suggest that you figure out what sort of things interest you
> the most and then study languages that fill that niche.
> IMO-YMMV.

Yes, no connection but i also want to know if you know which language
was used in Windows as a seperate question.

For other comments of you about C++ vs. VB comparision, very thanks.

0
kimiraikkonen
10/9/2007 8:15:36 PM
kimiraikkonen wrote:

> Hello,
> Just wondering, which versions of Windows coded in C/C++ "completely"
> or was coded particularly? Or which parts(APIs, interface, kernel...)
> of Windows contains C++?

Windows is coded in C. It probably starts with 'void main'.

(That's an inside joke - 'void main' is not well-formed C, and MS flouts
this compliance issue.)

Much of Windows probably uses the C++ compiler settings. MS marketects claim
Windows is written in C++. If were, then its APIs would take objects
instead of handles.

> Also i want to know which programming language is much efficent and
> easy-to-organize/learn under Windows platform for me? C++ or Visual
> Basic or other?

To do what? Most user-level coding (GUIs, desktop applications) should use a
soft language, such as Ruby. These apps don't need to do anything to the
kernel, and they should only access files and windows in stereotypical
ways.

-- 
 Phlip
 http://www.oreilly.com/catalog/9780596510657/
 ^ assert_xpath
0
Phlip
10/9/2007 10:14:34 PM
On Oct 9, 4:06 pm, user923005 <dcor...@connx.com> wrote:
> On Oct 9, 12:41 pm, kimiraikkonen <kimiraikkone...@gmail.com> wrote:
>
> > Hello,
> > Just wondering, which versions of Windows coded in C/C++ "completely"
> > or was coded particularly? Or which parts(APIs, interface, kernel...)
> > of Windows contains C++?
>
> It's coded in C, C++, and Assembly language.
> I guess it is the same with every other operating system (though there
> was a version of VMS coded completely in Assembly language, IIRC).
> Vista might even have some .NET stuff in it (but just for the GUI
> portion, I imagine).

I guess you're guessing.  There exist OS's coded largely in PL/I
(Multics), FORTRAN (Varian IDS), Lisp (Genera for lisp machine),
Pascal (UCSD P-system for PDP-11), and Mesa (Pilot for Xerox Alto).
I'm sure there are many more.  Just about all early microprocessor
OS's (CPM, MSDOS, Motorola Exorcisor, and the original Apple OS for
the Mac) are coded entirely in assembly or nearly so.


0
Gene
10/9/2007 11:13:33 PM
On Tue, 09 Oct 2007 18:14:34 -0400, Phlip <phlip2005@gmail.com> wrote:

[snip]

> To do what? Most user-level coding (GUIs, desktop applications) should  
> use a
> soft language, such as Ruby. These apps don't need to do anything to the
> kernel, and they should only access files and windows in stereotypical
> ways.
>

Your assertion that GUI's and desktop applications should be written using  
a "soft" language is an opinion, and should have been expressed as such.

I find that assertion complete nonsense.

0
dbtid
10/10/2007 12:29:15 AM
dbtid wrote:

> Your assertion that GUI's and desktop applications should be written using 
> a "soft" language is an opinion, and should have been expressed as such.
>
> I find that assertion complete nonsense.

Your last statement is an opinion, hence...

-- 
  Phlip 


0
Phlip
10/10/2007 1:12:06 AM
Thanks for the comments.

I also wonder that: It's explict that Windows means GUI,almost
everything is presented via menus and visual interfaces (top seed in
Vista), almost associated with GUI except Windows's Shell functions
(command processor), but in the other hand a lot of GUI-based programs
were developed under C++? Were they made by Visual C++ or like that?
Because i see C++ is powerful for console apps (command-line software
programming).

So, what's the power of C++'s in GUI league?

Thanks...

0
kimiraikkonen
10/10/2007 8:23:06 PM
kimiraikkonen wrote:

> I also wonder that: It's explict that Windows means GUI,

Sorry, but this is an MS marketing point: MS Windows is a full-stack OS, 
including hardware protocols, device drivers, file systems, and oodles of 
cute-as-a-button buttons, menus, and windows. So when we hear "Windows" 
these days...

> almost
> everything is presented via menus and visual interfaces (top seed in
> Vista), almost associated with GUI except Windows's Shell functions
> (command processor), but in the other hand a lot of GUI-based programs
> were developed under C++?

The best C-style API for Windows - the one friendliest to both the developer 
and the hardware - is WTL - Windows Template Language. But that doesn't mean 
anyone should automatically use it.

> Were they made by Visual C++ or like that?
> Because i see C++ is powerful for console apps (command-line software
> programming).

The C++ documentation emphasizes internal logic because the GUI is just a 
library, one among many. And many GUI libraries have bindings for more than 
one kind of language.

> So, what's the power of C++'s in GUI league?

Pick a language based on a trade-off. For the overwhelming majority of 
projects, programmer speed is most important. This is why the most popular 
GUI system in the world, HTML and its attendant technologies, use extremely 
soft, uncompiled languages. Servers cost much less than programmers, hence 
programmers should spend their time rapidly adding features and not worrying 
about most mundane performance issues.

If you actually need high performance on one CPU, use C++. Most applications 
don't need the overhead of C++'s difficult learning curve and complex 
statements.

-- 
  Phlip 


0
Phlip
10/11/2007 2:15:14 AM
> From:  Gene <gene.ress...@gmail.com>
> Just about all early microprocessor OS's (CPM, MSDOS, Motorola
> Exorcisor, and the original Apple OS for the Mac) are coded
> entirely in assembly or nearly so.

Strange, I always thought that while the bootstrap stuff for the
Macintosh was in assembly, all the high-level operating system
stuff, even most of the workings of the device drivers, was coded
in Pascal, probably cross-compiled from the Apple II or IBM 370 or
PDP-10 etc. until the MacOS was sufficiently working to allow
compiling new versions directly on the Macintosh.

Oh well, you learn something new every day in these technical newsgroups.

By the way, the Portable Standard Lisp environment had a tiny
bootstrap written in assembly language but the rest was
cross-compiled using SysLisp (similar to LAP = Lisp Assembly Program).
I always thought that a actual operating system might likewise
be written as assembly language bootstrap plus all the rest SysLisp.
But we never had funding for that, and had better things to do with
our time anyway than write Yet Another Operating System. Tops-20
and Macintosh System 6.0.7 and Unix and VM/CMS were plenty good
enough for our needs already. But still it would have been a great hack!
I was dissappointed when Common Lisp didn't include LAP or anything
remotely like that, killing it as a possible replacement for C in
writing operating systems.
0
rem642b
10/14/2007 7:32:28 AM
On Oct 14, 3:32 am, rem6...@yahoo.com (Robert Maas, see http://tinyurl.com/uh3t)
wrote:
> > From:  Gene <gene.ress...@gmail.com>
> > Just about all early microprocessor OS's (CPM, MSDOS, Motorola
> > Exorcisor, and the original Apple OS for the Mac) are coded
> > entirely in assembly or nearly so.
>
> Strange, I always thought that while the bootstrap stuff for the
> Macintosh was in assembly, all the high-level operating system
> stuff, even most of the workings of the device drivers, was coded
> in Pascal, probably cross-compiled from the Apple II or IBM 370 or
> PDP-10 etc. until the MacOS was sufficiently working to allow
> compiling new versions directly on the Macintosh.
>

Now that you mention it, I probably exaggerated.  I remember reading
about all the effort that was put into getting as much of the OS into
ROM as possible so the machine would boot quickly.  I think that was a
64K ROM.  That's much more than bootstrap routines took in this era,
but it probably wasn't anything like the whole OS...

Thanks for keeping me straight.

0
Gene
10/15/2007 3:27:32 AM
On Sun, 14 Oct 2007 00:32:28 -0700, Robert Maas, see http://tinyurl.com/uh3t wrote:
>> From:  Gene <gene.ress...@gmail.com>
>> Just about all early microprocessor OS's (CPM, MSDOS, Motorola
>> Exorcisor, and the original Apple OS for the Mac) are coded
>> entirely in assembly or nearly so.

> Strange, I always thought that while the bootstrap stuff for the
> Macintosh was in assembly, all the high-level operating system
> stuff, even most of the workings of the device drivers, was coded
> in Pascal, probably cross-compiled from the Apple II or IBM 370 or
> PDP-10 etc. until the MacOS was sufficiently working to allow
> compiling new versions directly on the Macintosh.

As I recall the early development on the Mac involved using a Lisa.  This
went on until Macs had enough memory to run a decent development
environment on their own.


-- 
Dave Seaman
Oral Arguments in Mumia Abu-Jamal Case heard May 17
U.S. Court of Appeals, Third Circuit
<http://www.abu-jamal-news.com/>
0
Dave
10/15/2007 12:20:35 PM
Reply: