SlideShare a Scribd company logo
SIRYKT
Sharing Knowledge is Learning
C# Tutorial
Difference between c,
c++, c#
• C - an older programming language that is described as Hands-on. As
the programmer you must tell the program to do everything. Also this
language will let you do almost anything. It does not support object
oriented code. Thus no classes.
• C++ - an extension language per se of C. In C code ++ means increment
1. Thus C++ is better than C. It allows for highly controlled object
oriented code. Once again a very hands on language that goes into
MUCH detail.
• C# - Full object oriented code resembling the style of C/C++ code. This
is really closer to JAVA. C# is the latest version of the C style languages
and is very good for developing web applications.
• Both C and C++ give you a lower level of abstraction that, with increased
complexity, provides a breadth of access to underlying machine functionality
that are not necessarily exposed with other languages.
• C++ adds the convenience (reduced development time) of a fully object oriented
language which can, potentially, add an additional performance cost. In terms of
real world applications, I see these languages applied in the following domains:
• C is a Kernel level software for Hardware device drivers withApplications where
access to old, stable code is required.
• C,C++ is a Application or Server development where memory management
needs to be fine tuned (and can't be left to generic garbage collection solutions).
• Development environments that require access to libraries that do not interface
well with more modern managed languages.
• Although managed C++ can be used to access the .NET framework, it is not a
seamless transition.
• C# provides a managed memory model that adds a higher level of abstraction again. This level
of abstraction adds convenience and improves development times, but complicates access to
lower level APIs and makes specialized performance requirements problematic.
• It is certainly possible to implement extremely high performance software in a managed
memory environment, but awareness of the implications is essential.
• The syntax of C# is certainly less demanding (and error prone) than C/C++ and has, for the
initiated programmer, a shallower learning curve.
• C# is a Rapid client application development. With High performance Server development
(Stack Overflow for example) that benefits from the .NET framework.
• Applications that require the benefits of the .NET framework in the language it was designed
for.
• Johannes Rössel makes the valid point that the use C# Pointers, Unsafe and Unchecked
keywords break through the layer of abstraction upon which C# is built. I would emphasize
that type of programming is the exception to most C# development scenarios and not a
fundamental part of the language (as is the case with C/C++).
Garbage Collection
• Garbage Collection (GC) is the single most important factor in differentiating between these
languages.
• While C and C++ can be used with GC, it is a bolted-on afterthought and cannot be made to
work as well (the best known is here) - it has to be "conservative" which means that it cannot
collect all unused memory.
• C# is designed from the ground up to work on a GC platform, with standard libraries also
designed that way. It makes an absolutely fundamental difference to developer productivity
that has to be experienced to be believed.
• There is a belief widespread among C/C++ users that GC equates with "bad performance". But
this is out-of-date folklore (even the Boehm collector on C/C++ performs much better than
most people expect it to).
• The typical fear is of "long pauses" where the program stops so the GC can do some work. But
in reality these long pauses happen with non-GC programs, because they run on top of a
virtual memory system, which occasionally interrupts to move data between physical memory
and disk.
• Since adopting C# about 18 months ago I've gone through several phases of
pure performance tuning with a profiler, and the GC is so efficient that it is
practically invisible during the operation of the program.
• GC is not a panacea, it doesn't solve all programming problems, it only really
cleans up memory allocation, if you're allocating very large memory blocks
then you will still need to take some care, and it is still possible to have what
amounts to a memory leak in a sufficiently complex program - and yet, the
effect of GC on productivity makes it a pretty close approximation to a
panacea!
• There is also widespread belief that GC can be replaced with shared_ptr, but
it can't; the irony is that in a multi-threaded program, shared_ptr is slower
than a GC-based system.
• There are environments that are so frugal that GC isn't practical - but these
are increasingly rare. Cell phones typically have GC. The CLR's GC that C#
typically runs on appears to be state-of-the-art.
Undefined Behavior
• C++ is founded on the notion of undefined behavior. That is, the language
specification defines the outcome of certain narrowly defined usages of language
features, and describes all other usages as causing undefined behavior, meaning in
principle that the operation could have any outcome at all (in practice this means
hard-to-diagnose bugs involving apparently non-deterministic corruption of data).
• Almost everything about C++ touches on undefined behavior. Even very nice
forthcoming features like lambda expressions can easily be used as convenient way to
corrupt the stack (capture a local by reference, allow the lambda instance to outlive
the local).
• C# is founded on the principle that all possible operations should have defined
behavior. The worst that can happen is an exception is thrown. This completely
changes the experience of software construction.
• (There's unsafe mode, which has pointers and therefore undefined behavior, but that
is strongly discouraged for general use - think of it as analogous to embedded
assembly language.)
Complexity
• In terms of complexity, C++ has to be singled out, especially if we
consider the very-soon-to-be standardized new version. C++ does
absolutely everything it can to make itself effective, short of assuming
GC, and as a result it has an awesome learning curve.
• The language designers excuse much of this by saying "Those features
are only for library authors, not ordinary users" - but to be truly
effective in any language, you need to build your code as reusable
libraries. So you can't escape.
• On the positive side, C++ is so complex, it's like a playground for
nerds! I can assure you that you would have a lot of fun learning how
it all fits together. But I can't seriously recommend it as a basis for
productive new work (oh, the wasted years...) on mainstream
platforms.
• C keeps the language simple (simple in the sense of "the
compiler is easy to write"), but this makes the coding techniques
more arcane.
• Note that not all new language features equate with added
complexity. Some language features are described as "syntactic
sugar", because they are shorthand that the compiler expands
for you. This is a good way to think of a great deal of the
enhancements to C# over recent years. The language standard
even specifies some features by giving the translation to
longhand, e.g. using statement expands into try/finally.
• At one point, it was possible to think of C++ templates in the
same way. But they've since become so powerful that they are
now form the basis of a whole separate dimension of the
language, with its own enthusiastic user communities and
idioms.
Libraries
• The strangest thing about C and C++ is that they don't have a standard
interchangeable form of pre-compiled library. Integrating someone else's code
into your project is always a little fiddly, with obscure decisions to be made
about how you'll be linking to it.
• Also, the standard library is extremely basic - C++ has a complete set of data
structures and a way of representing strings (std::string), but that's still
minimal.
• Is there a standard way of finding a list of files in a directory? Amazingly, no! Is
there standard library support for parsing or generating XML? No. What about
accessing databases? Be serious! Writing a web site back-end? Are you crazy?
etc.
• So you have to go hunting further afield. For XML, try Xerces. But does it
use std::string to represent strings? Of course not!
• And do all these third-party libraries have their own bizarre
customs for naming classes and functions? The situation in C#
couldn't be more different;
• the fundamentals were in place from the start, so everything
inter-operates beautifully (and because the fundamentals are
supplied by the CLR, there is cross-language support).
• It's not all perfect; generics should have been in place from the
start but wasn't, which does leave a visible scar on some older
libraries; but it is usually trivial to fix this externally.
• Also a number of popular libraries are ported from Java, which
isn't as good a fit as it first appears.
Closures (Anonymous Methods with Local
Variable Capture)
• Java and C are practically the last remaining mainstream languages to lack
closures, and libraries can be designed and used much more neatly with them
than without (this is one reason why ported Java libraries sometimes seem
clunky to a C# user).
• The amusing thing about C++ is that its standard library was designed as if
closures were available in the language (container
types, <algorithm>, <functional>). Then ten years went by, and now they're
finally being added! They will have a huge impact (although, as noted above,
they leak undefined behavior).
• C# and JavaScript are the most widely used languages in which closures are
"idiomatically established". (The major difference between those languages
being that C# is statically typed while JavaScript is dynamically typed).
Leave feedback & question in the comments
for our channel updates
Hit on like button below
For more visit our website
www.sirykt.blogspot.com

More Related Content

What's hot

Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
Wan Muzaffar Wan Hashim
 
Programming paradigm
Programming paradigmProgramming paradigm
Programming paradigm
busyking03
 
React native
React nativeReact native
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
Kevin Langley Jr.
 
Flutter
FlutterFlutter
React hooks
React hooksReact hooks
React hooks
Sadhna Rana
 
Introduction to Qt
Introduction to QtIntroduction to Qt
Introduction to Qt
Puja Pramudya
 
Introduction Of C++
Introduction Of C++Introduction Of C++
Introduction Of C++
Sangharsh agarwal
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | Edureka
Edureka!
 
Brief History of JavaScript
Brief History of JavaScriptBrief History of JavaScript
Brief History of JavaScript
Rifad Ainun Nazieb
 
Mobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool LabsMobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool Labs
Harutyun Abgaryan
 
React workshop
React workshopReact workshop
React workshop
Imran Sayed
 
React js
React jsReact js
React js
Rajesh Kolla
 
Effective C++/WinRT for UWP and Win32
Effective C++/WinRT for UWP and Win32Effective C++/WinRT for UWP and Win32
Effective C++/WinRT for UWP and Win32
Windows Developer
 
MERN PPT
MERN PPTMERN PPT
Reactjs
ReactjsReactjs
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic Framework
Cihad Horuzoğlu
 

What's hot (20)

Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
 
Programming paradigm
Programming paradigmProgramming paradigm
Programming paradigm
 
React native
React nativeReact native
React native
 
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
 
Flutter
FlutterFlutter
Flutter
 
React hooks
React hooksReact hooks
React hooks
 
Introduction to Qt
Introduction to QtIntroduction to Qt
Introduction to Qt
 
Introduction Of C++
Introduction Of C++Introduction Of C++
Introduction Of C++
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | Edureka
 
Brief History of JavaScript
Brief History of JavaScriptBrief History of JavaScript
Brief History of JavaScript
 
Mobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool LabsMobile application development React Native - Tidepool Labs
Mobile application development React Native - Tidepool Labs
 
React workshop
React workshopReact workshop
React workshop
 
Hybrid Mobile App
Hybrid Mobile AppHybrid Mobile App
Hybrid Mobile App
 
React js
React jsReact js
React js
 
Effective C++/WinRT for UWP and Win32
Effective C++/WinRT for UWP and Win32Effective C++/WinRT for UWP and Win32
Effective C++/WinRT for UWP and Win32
 
MERN PPT
MERN PPTMERN PPT
MERN PPT
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Reactjs
ReactjsReactjs
Reactjs
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic Framework
 
Loops in c
Loops in cLoops in c
Loops in c
 

Similar to C c#

difference between c c++ c#
difference between c c++ c#difference between c c++ c#
difference between c c++ c#
Sireesh K
 
Migrating From Cpp To C Sharp
Migrating From Cpp To C SharpMigrating From Cpp To C Sharp
Migrating From Cpp To C SharpGanesh Samarthyam
 
C# and java comparing programming languages
C# and java  comparing programming languagesC# and java  comparing programming languages
C# and java comparing programming languages
Shishir Roy
 
Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction
Ganesh Samarthyam
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
miniproject.pptx
miniproject.pptxminiproject.pptx
miniproject.pptx
AnkurMahour1
 
20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptx20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptx
Suman Garai
 
Java for C++ programers
Java for C++ programersJava for C++ programers
Java for C++ programers
Salahaddin University-Erbil
 
Consider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdfConsider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdf
fasttrackscardecors
 
Golang : A Hype or the Future?
Golang : A Hype or the Future?Golang : A Hype or the Future?
Golang : A Hype or the Future?
Mindfire LLC
 
Difference between java and c#
Difference between java and c#Difference between java and c#
Difference between java and c#
TECOS
 
Modern c
Modern cModern c
Modern c
Stanley Ho
 
Swift programming language
Swift programming languageSwift programming language
Swift programming language
Nijo Job
 
c# usage,applications and advantages
c# usage,applications and advantages c# usage,applications and advantages
c# usage,applications and advantages
mohamed drahem
 
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189
Mahmoud Samir Fayed
 
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTREC & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
jatin batra
 
Programming languages
Programming languagesProgramming languages
Programming languages
www.myassignmenthelp.net
 

Similar to C c# (20)

difference between c c++ c#
difference between c c++ c#difference between c c++ c#
difference between c c++ c#
 
Migrating From Cpp To C Sharp
Migrating From Cpp To C SharpMigrating From Cpp To C Sharp
Migrating From Cpp To C Sharp
 
Java
JavaJava
Java
 
C# and java comparing programming languages
C# and java  comparing programming languagesC# and java  comparing programming languages
C# and java comparing programming languages
 
ewili13_submission_14
ewili13_submission_14ewili13_submission_14
ewili13_submission_14
 
Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
 
miniproject.pptx
miniproject.pptxminiproject.pptx
miniproject.pptx
 
20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptx20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptx
 
Java for C++ programers
Java for C++ programersJava for C++ programers
Java for C++ programers
 
Consider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdfConsider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdf
 
Golang : A Hype or the Future?
Golang : A Hype or the Future?Golang : A Hype or the Future?
Golang : A Hype or the Future?
 
Difference between java and c#
Difference between java and c#Difference between java and c#
Difference between java and c#
 
Modern c
Modern cModern c
Modern c
 
C tutorial
C tutorialC tutorial
C tutorial
 
Swift programming language
Swift programming languageSwift programming language
Swift programming language
 
c# usage,applications and advantages
c# usage,applications and advantages c# usage,applications and advantages
c# usage,applications and advantages
 
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189
 
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTREC & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
 
Programming languages
Programming languagesProgramming languages
Programming languages
 

More from Sireesh K

Cn10
Cn10Cn10
Cn10
Sireesh K
 
chanakya neeti
chanakya neetichanakya neeti
chanakya neeti
Sireesh K
 
chanakya neeti
chanakya neetichanakya neeti
chanakya neeti
Sireesh K
 
What is mvc
What is mvcWhat is mvc
What is mvc
Sireesh K
 
31c
31c31c
31cs
31cs31cs
31cs
Sireesh K
 
45c
45c45c
44c
44c44c
43c
43c43c
42c
42c42c
41c
41c41c
40c
40c40c
39c
39c39c
38c
38c38c
37c
37c37c
35c
35c35c
34c
34c34c
33c
33c33c
30c
30c30c
29c
29c29c

More from Sireesh K (20)

Cn10
Cn10Cn10
Cn10
 
chanakya neeti
chanakya neetichanakya neeti
chanakya neeti
 
chanakya neeti
chanakya neetichanakya neeti
chanakya neeti
 
What is mvc
What is mvcWhat is mvc
What is mvc
 
31c
31c31c
31c
 
31cs
31cs31cs
31cs
 
45c
45c45c
45c
 
44c
44c44c
44c
 
43c
43c43c
43c
 
42c
42c42c
42c
 
41c
41c41c
41c
 
40c
40c40c
40c
 
39c
39c39c
39c
 
38c
38c38c
38c
 
37c
37c37c
37c
 
35c
35c35c
35c
 
34c
34c34c
34c
 
33c
33c33c
33c
 
30c
30c30c
30c
 
29c
29c29c
29c
 

Recently uploaded

Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 

Recently uploaded (20)

Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 

C c#

  • 3. • C - an older programming language that is described as Hands-on. As the programmer you must tell the program to do everything. Also this language will let you do almost anything. It does not support object oriented code. Thus no classes. • C++ - an extension language per se of C. In C code ++ means increment 1. Thus C++ is better than C. It allows for highly controlled object oriented code. Once again a very hands on language that goes into MUCH detail. • C# - Full object oriented code resembling the style of C/C++ code. This is really closer to JAVA. C# is the latest version of the C style languages and is very good for developing web applications.
  • 4. • Both C and C++ give you a lower level of abstraction that, with increased complexity, provides a breadth of access to underlying machine functionality that are not necessarily exposed with other languages. • C++ adds the convenience (reduced development time) of a fully object oriented language which can, potentially, add an additional performance cost. In terms of real world applications, I see these languages applied in the following domains: • C is a Kernel level software for Hardware device drivers withApplications where access to old, stable code is required. • C,C++ is a Application or Server development where memory management needs to be fine tuned (and can't be left to generic garbage collection solutions). • Development environments that require access to libraries that do not interface well with more modern managed languages. • Although managed C++ can be used to access the .NET framework, it is not a seamless transition.
  • 5. • C# provides a managed memory model that adds a higher level of abstraction again. This level of abstraction adds convenience and improves development times, but complicates access to lower level APIs and makes specialized performance requirements problematic. • It is certainly possible to implement extremely high performance software in a managed memory environment, but awareness of the implications is essential. • The syntax of C# is certainly less demanding (and error prone) than C/C++ and has, for the initiated programmer, a shallower learning curve. • C# is a Rapid client application development. With High performance Server development (Stack Overflow for example) that benefits from the .NET framework. • Applications that require the benefits of the .NET framework in the language it was designed for. • Johannes Rössel makes the valid point that the use C# Pointers, Unsafe and Unchecked keywords break through the layer of abstraction upon which C# is built. I would emphasize that type of programming is the exception to most C# development scenarios and not a fundamental part of the language (as is the case with C/C++).
  • 6. Garbage Collection • Garbage Collection (GC) is the single most important factor in differentiating between these languages. • While C and C++ can be used with GC, it is a bolted-on afterthought and cannot be made to work as well (the best known is here) - it has to be "conservative" which means that it cannot collect all unused memory. • C# is designed from the ground up to work on a GC platform, with standard libraries also designed that way. It makes an absolutely fundamental difference to developer productivity that has to be experienced to be believed. • There is a belief widespread among C/C++ users that GC equates with "bad performance". But this is out-of-date folklore (even the Boehm collector on C/C++ performs much better than most people expect it to). • The typical fear is of "long pauses" where the program stops so the GC can do some work. But in reality these long pauses happen with non-GC programs, because they run on top of a virtual memory system, which occasionally interrupts to move data between physical memory and disk.
  • 7. • Since adopting C# about 18 months ago I've gone through several phases of pure performance tuning with a profiler, and the GC is so efficient that it is practically invisible during the operation of the program. • GC is not a panacea, it doesn't solve all programming problems, it only really cleans up memory allocation, if you're allocating very large memory blocks then you will still need to take some care, and it is still possible to have what amounts to a memory leak in a sufficiently complex program - and yet, the effect of GC on productivity makes it a pretty close approximation to a panacea! • There is also widespread belief that GC can be replaced with shared_ptr, but it can't; the irony is that in a multi-threaded program, shared_ptr is slower than a GC-based system. • There are environments that are so frugal that GC isn't practical - but these are increasingly rare. Cell phones typically have GC. The CLR's GC that C# typically runs on appears to be state-of-the-art.
  • 8. Undefined Behavior • C++ is founded on the notion of undefined behavior. That is, the language specification defines the outcome of certain narrowly defined usages of language features, and describes all other usages as causing undefined behavior, meaning in principle that the operation could have any outcome at all (in practice this means hard-to-diagnose bugs involving apparently non-deterministic corruption of data). • Almost everything about C++ touches on undefined behavior. Even very nice forthcoming features like lambda expressions can easily be used as convenient way to corrupt the stack (capture a local by reference, allow the lambda instance to outlive the local). • C# is founded on the principle that all possible operations should have defined behavior. The worst that can happen is an exception is thrown. This completely changes the experience of software construction. • (There's unsafe mode, which has pointers and therefore undefined behavior, but that is strongly discouraged for general use - think of it as analogous to embedded assembly language.)
  • 9. Complexity • In terms of complexity, C++ has to be singled out, especially if we consider the very-soon-to-be standardized new version. C++ does absolutely everything it can to make itself effective, short of assuming GC, and as a result it has an awesome learning curve. • The language designers excuse much of this by saying "Those features are only for library authors, not ordinary users" - but to be truly effective in any language, you need to build your code as reusable libraries. So you can't escape. • On the positive side, C++ is so complex, it's like a playground for nerds! I can assure you that you would have a lot of fun learning how it all fits together. But I can't seriously recommend it as a basis for productive new work (oh, the wasted years...) on mainstream platforms.
  • 10. • C keeps the language simple (simple in the sense of "the compiler is easy to write"), but this makes the coding techniques more arcane. • Note that not all new language features equate with added complexity. Some language features are described as "syntactic sugar", because they are shorthand that the compiler expands for you. This is a good way to think of a great deal of the enhancements to C# over recent years. The language standard even specifies some features by giving the translation to longhand, e.g. using statement expands into try/finally. • At one point, it was possible to think of C++ templates in the same way. But they've since become so powerful that they are now form the basis of a whole separate dimension of the language, with its own enthusiastic user communities and idioms.
  • 11. Libraries • The strangest thing about C and C++ is that they don't have a standard interchangeable form of pre-compiled library. Integrating someone else's code into your project is always a little fiddly, with obscure decisions to be made about how you'll be linking to it. • Also, the standard library is extremely basic - C++ has a complete set of data structures and a way of representing strings (std::string), but that's still minimal. • Is there a standard way of finding a list of files in a directory? Amazingly, no! Is there standard library support for parsing or generating XML? No. What about accessing databases? Be serious! Writing a web site back-end? Are you crazy? etc. • So you have to go hunting further afield. For XML, try Xerces. But does it use std::string to represent strings? Of course not!
  • 12. • And do all these third-party libraries have their own bizarre customs for naming classes and functions? The situation in C# couldn't be more different; • the fundamentals were in place from the start, so everything inter-operates beautifully (and because the fundamentals are supplied by the CLR, there is cross-language support). • It's not all perfect; generics should have been in place from the start but wasn't, which does leave a visible scar on some older libraries; but it is usually trivial to fix this externally. • Also a number of popular libraries are ported from Java, which isn't as good a fit as it first appears.
  • 13. Closures (Anonymous Methods with Local Variable Capture) • Java and C are practically the last remaining mainstream languages to lack closures, and libraries can be designed and used much more neatly with them than without (this is one reason why ported Java libraries sometimes seem clunky to a C# user). • The amusing thing about C++ is that its standard library was designed as if closures were available in the language (container types, <algorithm>, <functional>). Then ten years went by, and now they're finally being added! They will have a huge impact (although, as noted above, they leak undefined behavior). • C# and JavaScript are the most widely used languages in which closures are "idiomatically established". (The major difference between those languages being that C# is statically typed while JavaScript is dynamically typed).
  • 14. Leave feedback & question in the comments for our channel updates Hit on like button below For more visit our website www.sirykt.blogspot.com