I think MSVC++ is best.
Main Topics
Browse All TopicsGreetings!
I have an simple question about which "type" programming language is the best!!??
I want to write small Operating System.... for learning purpose...
I want to use Assembler and C/C++ . There are many types of these languages NASM, Borland Assembler, Watscom C++ MASM, MS Visual C++ ....
Which ones are the best? I mean in each category Asm and C++? With explanation please... :)
Thanks!
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Ooooh! Zakabog! I know my question is silly!
if you so experienced may be you can explain me which compiler creates the best code? (small and fast?) and which compiler has minimum errors inside?
I beleive that all compilers create workable code but is this code absolutelly the same? no! (Compare exe files created in Visual C++ and CBuilder)
Also I want to use Freeware compiler. but I want good IDE too.
Some people said it is good to use NASM and DJGPP. some said MASM is not good. Why?
I want to use protected mode, 32 bit. realtime, microkernel...
As I said I am not a professional in this area!! But I want to learn more about it. And I know that if you choose the right tools you did 50% of task! :)
I wrote applications for MS Windows in Delphi, CBuilder, MS Visual C++ (i like it!) but who cares about speed and size of common applications?! (I know that this always important but... ) I guess you understand what I mean.
Here I as believe situation is different - code must be fastest, optimized and small... (and of cource it must meets my requerements)
I want to use protected mode, 32 bit. realtime, microkernel...
As I said I am not a professional in this area!! But I want to learn more about it. And I know that if you choose the right tools you did 50% of task! :)
I wrote applications for MS Windows in Delphi, CBuilder, MS Visual C++ (i like it!) but who cares about speed and size of common applications?! (I know that this always important but... ) I guess you understand what I mean.
Here I as believe situation is different - code must be fastest, optimized and small... (and of cource it must meets my requerements)
>> Also I want to use Freeware compiler. but I want good IDE too.
If it is freeware you want then you should use NASM. You can download it here: http://sourceforge.net/pro
As to an accompanying IDE you can use NASM IDE. You can download it here: http://uk.geocities.com/ro
If you are interested, Borland offers its C/C++ compiler Ver 5.5 free for download(If you register.) You can get it here: http://www.borland.com/pro
Hello,
I think you should use MSVC++.
Explaination of the language:
Microsoft Visual C++® .NET provides the dynamic development environment for creating Microsoft Windows®–based and Microsoft .NET–connected applications, dynamic Web applications, and XML Web services using the C++ development language. Visual C++ .NET includes the industry-standard Active Template Library (ATL) and Microsoft Foundation Class (MFC) libraries, advanced language extensions, and powerful integrated development environment (IDE) features that enable developers to edit and debug source code efficiently.
Visual C++ .NET Empowers the Developer with Advanced Capabilities and Options ====>
Visual C++ .NET provides developers with many professional-level features and enables them to create extremely powerful applications and components for Windows and the Web. From start to finish, the tool offers features that help streamline the process of C++ software development.
Application wizards provide powerful templates for getting projects underway quickly. The included MFC and ATL application-framework libraries are the most robust, productive, and popular libraries available for Windows-based application development, and they are now enhanced for Windows XP. These features are fully integrated with a professional-level compiler and an advanced debugger; together they provide a consistent and efficient development experience.
C++ is one of the world's most popular languages, and with Visual C++ .NET, developers enjoy a world-class C++ development tool. C++ is an interoperable, standards-based language, and C++ skills can be leveraged across multiple computing environments and communities.
New Features Keep Visual C++ in Step with the Future of Application Development====>
New features in Visual C++ .NET include C++ Attributes, Managed Extensions, ATL Server, and a host of new library, IDE, and compiler optimizations and enhancements.
C++ Attributes====>
C++ Attributes enable declarative programming, and they simplify development by minimizing repetitive boilerplate source code. Developers can expose new and existing ATL COM components as XML Web services by applying simple attribute tags. The need for separate Interface Definition Language (IDL) modules decreases with the introduction of C++ Attribute tags.
Managed Extensions for C++====>
With Managed Extensions for C++ developers can take advantage of Microsoft .NET and incorporate next-generation technology-including resource management, unified types, and component remoting. With .NET, developers gain superior memory-management technology for seamless garbage collection and reduced program complexity. Developers can leverage code written in any of the more than 20 languages that support .NET by using the .NET Framework Common Type System while making efficient remote procedure calls.
The .NET Framework Class Library====>
Visual C++ .NET developers can also use the Microsoft .NET Framework Class Library and leverage powerful built-in functionality—including a rich set of collection classes, networking support, multithreading support, string and regular expression classes, and broad support for XML, XML schemas, XML namespaces, XSLT, XPath, and SOAP.
ATL Server====>
When developers choose to write portions of their Web applications in C++, they usually do so for reasons of performance or control. ATL Server encapsulates the best practices for developing high-performance C++ Web applications into a set of simple and extensible ATL classes for developers to reuse. ATL Server includes features that enable Web applications and XML Web services to scale across CPUs in a Web server farm.
Asad.
Someone just beginning to experiment with O/S writing doesn't need to worry about speed or tightness of code... you should just express things simply and as elegantly as you can in a sufficiently standard way that you can compile with Borland, DJGPP or MS VC++. To re-write something as simple as early MS-DOS versions would take you a long time, and you only needed an 8086 to run that. Spend your time worrying about the concepts and not the compiler efficiency. When you want to code apps over an OS with excellent efficiency/speed/tightness
A major issue is how you'll try out and debug your O/S... you may want to consider whether you can create a virtual machine in which to run it so you don't have to boot out of your development O/S, then back in to write some more code.
Hello,
If you want to create an O/S then VC++.NET would be best, why do you want to rate the C++ compilers? If you want to create an O/S with VC++.NET then use VC++.NET compiler. You can ofcourse buy this from mostly any computer store.
Then if you do not know how to program in the language than you just need to learn it.
I do not think you need to compare C++ compilers, you just need to buy VC++.NET compiler, that would allow you to write an O/S.
Asad.
Hi, here is an overveiw of VC++.NET:
A Robust Development Environment Makes Visual C++ the Choice of Professional Application Developers
Visual C++ .NET provides high performance and fine-grained control for hard-core C++ developers. Visual C++ .NET lets developers build applications that run natively on the operating system. Developers also can target the .NET Framework and common language runtime with Managed Extensions for C++. Because Visual C++ .NET developers can write directly to the operating system, they have the most control—and because they also can write to the .NET Framework, they have the most flexibility. Like Microsoft Visual Basic® and Microsoft Visual C#™, Visual C++ also lets developers create powerful XML Web services.
Visual C++ .NET is unique among the languages that are compatible with .NET in that it supports both the managed code model that the .NET Framework provides and the unmanaged native Windows-based code model. By supporting both programming models, Visual C++ .NET preserves and enhances existing investments in code and skill, and it provides the maximum possible choices for developers and organizations.
With a superior IDE, Visual C++ .NET provides programmers with the ultimate developer cockpit. The Start Page offers developers a portal to one-click information on recently used projects, preferences, updates, and the MSDN® Online community. Microsoft IntelliSense® features, the Toolbox, and the Task List provide significant productivity enhancements, while the AutoHide windows and multiple-monitor support features help programmers maximize screen real estate and customize the development environment. So, I think you should choose VC++.NET.
Asad.
Maybe I did not make my self clear in my comment. I know you can use the visual studio ide to create an os. My main point was the majority of the reasons you are giving for using visual studio are Windows specific. That is those features don't do you any good at all when in comes to writing an os. If I am writing a kernel for an os(not windows), at what point will I even consider using calling a function from the windows api, mfc, atl, .NET, xml web services, or any thing else like that? The answer in short...NEVER. Because mfc, atl, and other components like them are windows specific and can not be used in any other os with out being ported, and because most of the code is hidden in .lib files you cant do that.
Also who cares about VB or C# for Kernel programming. You can only make windows apps with them anyway.
So in the end the only thing you can really judge a compiler and ide combo are: is it stable, does it produce stable output, is it easy to use, does it have the options I need for my purpose(mfc is not one of these!), can it generate small and/or fast output, etc.
I would have to say from everything I have read VC++ ide is one of the best around, however the bugs in the compiler itself leave a lot to be desired. Now it was about a year ago the last time I did any real research on the subject and there has a service pack released since then and I am sure they have fixed some of the bugs. But I go with experience and so far I have yet to find a Microsoft product that is not filled with bugs(I don't think I need any examples here).
I would say the best for your purposes is the Gnu Compiler Collection(GCC). It does not have a set IDE but they can be found if you want to look for one. It can be used in almost any OS and it has proven to produce very good code. Plus you can use it in Linux and you can use the Linux kernel as guide in you studies. It is free. And the normal arguments against Linux do not apply when it comes to writing an os. All the best software you need to write a kernel is in Linux. The same applies to Unix but Linux is free. And you can set up a duel boot if you want to still use windows.
The main choices I see are VC++ with a buggy compiler but very good ide, Borland ok compiler but no ide, and GCC with a great compiler but no ide. You can find an ide that is ok if you look around for it but I can't think of any I have seen that are as good as VC++.
oh and one more thing. the reason c++ does not use an automatic garbage collection like other langages like VB and C# is because that slows the program a lot. If you use managed classes in a time critical application like a kernel then you are asking for something too slow to use and will most likly end up taking it out. The only way it would not make a difference is if your os was so small all it could to is boot.
if you so experienced may be you can explain me which compiler creates the best code? (small and fast?) and which compiler has minimum errors inside?
Your real question was "Best programming language?" which is just a silly question.
Here's GCC's site, http://gcc.gnu.org/
Hello,
Some GCC sites are:
1-- http://www.gnu.org/softwar
2-- http://www.land-j.com/gccw
3-- http://users.actcom.co.il/
4-- http://havoc-tsa.hypermart
5-- http://www.osborne.com/pro
I hope this helps.
Asad.
Business Accounts
Answer for Membership
by: ZakabogPosted on 2002-11-05 at 23:18:37ID: 7413467
If you're asking such a silly question I doubt you should write any type of Operating System.