C#
  Home arrow C# arrow Programming Languages: Managed versus Nati...
ASP Free Forums 
.NET  
ASP  
ASP Code  
ASP.NET  
ASP.NET Code  
BrainDump  
C#  
Code Examples  
Database  
Database Code  
IIS  
Microsoft Access  
MS SQL Server  
Silverlight  
Visual Basic.NET  
Windows Scripting  
Windows Security  
XML  
Mobile Linux 
App Generation ROI 
IBM® developerWorks 
ASP Web Hosting  
ASP.NET Web Hosting 
Windows Web Hosting
 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
C#

Programming Languages: Managed versus Native
By: Gabor Bernat
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 4 stars4 stars4 stars4 stars4 stars / 4
    2009-05-20

    Table of Contents:
  • Programming Languages: Managed versus Native
  • The Marketing
  • The Fight
  • The Decision

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    Programming Languages: Managed versus Native


    (Page 1 of 4 )

    If you're ready to learn how to code, you have a tough choice ahead of you: which programming language to learn first. While there are a plethora of languages to choose from, the vast majority approach coding from one of two opposed philosophies: managed or native. This article will help you decide between the two.

    I frequent a number of forums, and periodically someone always brings up the question of whether C# or C++ is the better language to use when learning how to program. This illustrates the battle of native coding, represented by C++, and managed coding, used by the Microsoft-made C#. I will not observe the question from the point view of what differences are between the two and which can be learned with less headaches.

    Rather than fall into that trap, we will explore the war between native and managed coding, examining it first from the side of the market, and later consider the advantages you gain while coding. 

    Finally, we will sum it up in a stylish manner by giving to you some advice that will point out when to use one or the other approach. Remember that this is just for the purpose of guidance, and may be subject to change based on the details of your own project. 

    Coding languages are divided into two or three different groups depending on the level of their complexity. "Level of complexity" in this case indicates how abstract they are, and at which level they communicate with the hardware.

    First there are the low-level programming languages. These have only a minimal level of abstraction, and no concept of Object Oriented Programming (OOP). They interact directly with almost every level of hardware you possess. Assembly belongs at this level, as does any native code that does not require a compiler or interpreter to run. 

    On the other side of the coin, you will find high-level coding. Anything in this category features a very high level of abstraction. OOP is at home here, and you are completely separated from the hardware. Instead, you receive at your disposal a multitude of functions, and each one internally handles hardware-related tasks.

    Furthermore, at this level you will not find anything like pointers; nor will you work with the memory directly. You just create the objects and let the Garbage Collector take care of this task. Languages that work like this include C#, Java, Python and Perl. They are called managed codes.

    Of course, these distinctions are made purely on the level of theory. In everyday usage, some languages can move slightly towards one or the other direction. The third road is in the middle between the two; not surprisingly, it is called middle-level coding. This is the most low-level high-level coding, to be more exact; here we are talking about the C/C++ group. Although this group has a minimal idea of management, it is still strongly native code, with everything that implies (i.e. leaving many tasks to the user).

    The languages of middle-level coding know about OOP, and maintain a good level of readability and direct memory handling with the help of the pointers. In return, though, middle-level coding loses a lot of direct hardware access. There are languages that are between even these languages, so think of these terms as a representation of the general concept, not a rule and point of reference.

    More C# Articles
    More By Gabor Bernat


     

    C# ARTICLES

    - Coding a CRC-Generating Algorithm in C
    - Cyclic Redundancy Check
    - Handling Methods and Functions
    - Destroying Objects in C#
    - Creating Objects in C-Sharp
    - Classes and Objects
    - Programming Languages: Managed versus Native
    - LINQ-to-MySQL with DbLinq in C#
    - Working with Dates and Times in C#
    - Generics, Dictionaries, and More
    - More About Generics
    - Working with C# Collections
    - Generics
    - C# and XML
    - Pointers and Arrays in C#





    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 2 Hosted by Hostway
    For more Enterprise Application Development news, visit eWeek