SlideShare a Scribd company logo
1 of 27
Comparison of
                   Programming
                   Platforms
                     C++ vs. Java vs. C# vs. PHP
                                    Presentation By
                                    Anup Hariharan Nair
                                    Date: 23 December
                                    2011
                                    http://HiFiCoding.com/




Prepared using :
What's new ?


 Looks are everything
    Hardware accelerated graphics
    WPF on .NET, Java FX, Adobe FLEX.
 Dynamic Equation
    Dynamic language support in .NET 4, Java SE 7 and C++11(C++0X).
 Parallel Computing
 Mergers and Acquisitions
    Acquisition of Sun Microsystems and BEA by ORACLE
Major programming
                                       Platforms
   C++ (QT/BOOST/WT/C++0x)
   JAVA (ME,SE,EE)
   C# (MONO/.NET)
   PHP/PERL/PYTHON(LAMP)
C++ (QT/WT/Boost/C++11)


 Pros:
      The most widely used programming language.
      Works in almost any platform known to mankind.
      Fastest Platform. No other can compare it.
      Probably millions of libraries available for C++ on the internet.
      “There is a Library for that”.
      Every major computer companies in the world employ C++.
      Virtually all major applications like Google Earth, Adobe
       Photoshop, VMware, Skype etc… is written in C++.
C++ (QT/WT/Boost/C++11)


 Cons:
    Coding is a little complex.
    You have to take care of memory references on your own.
    GUI development and library references looks cryptic when compared to Java
     & C#.
C++ (QT/WT/Boost/C++11)


 Present trend:
    C++11
       • New specification C++11(C++0x), is a true successor to the existing
         specification C++03.
       • Significant improvement over the existing C++ specification includes
         generic programming support and performance enhancements.
    Dynamic type Support using “auto” keyword.
    Need for an easy framework for developing hardware accelerated graphics
     based GUI.
    On 9th May 2011, it was announced that Qt 5 would be released in 2012.
    Main objective of Qt5 is to make better use of GPU, and accelerated
     graphics, with minimal complexity.
JAVA Platform (ME/SE/EE)


 Pros:
    Cross Platform.
    Managed Code environment using JVM.
    Business Applications development companies like SAP, Oracle, etc; have
     been long supporters of JAVA.
    One of the Simplest Languages.
JAVA Platform (ME/SE/EE)


 Cons:
    Performance.
      • Java makes use of interpreted byte code, and it also needs to load a ton
         of frameworks before it actually starts executing the main program.
      • JIT compiler is also of little help as it only compiles interpreted byte code
         to machine code on the fly and does not start until the program has been
         running for a while.
      • Compared to other languages like Perl or Ruby, Java is still fast.
JAVA Platform (ME/SE/EE)


 Client-Server
    Once a client/server application is started, only responsibility of the
     Application server is to respond to the HTTP requests and call compilers,
     interpreters and other HTTP modules as needed.
    So in this paradigm, Java is not slow and is the principal reason why
     Business Application developers like SAP and Oracle still trust JAVA.
    The notion that JAVA runs almost as fast as C++ is just not true (at least for
     now).
    Compiled C++ is possibly 10 times faster.
JAVA Platform (ME/SE/EE)


 Performance of JAVA when compared to .NET/MONO?
    Architecturally .NET and MONO are very similar to JAVA. .NET on windows
     is faster than JAVA.
    JAVA 1.6 memory usage is still more than 2 times when compared to .NET
     4.0.
    Also the initialization and deletion operation of types is slower compared to
     .NET, which is the principle reason why .Net applications run faster than
     JAVA.
    In case of MONO, though memory initialization and deletion is nearly equal to
     JAVA, the memory usage is half, which surprisingly implies that even MONO
     can outperform JAVA.
C# (.NET/MONO)


 Compilation frameworks
    .NET
    MONO
C# on .NET


 Architecturally .NET is very much similar to JAVA, except that the
  core framework only runs on windows or other Microsoft
  supported platforms.
 However the .NET framework and Application Server (IIS) is not
  open.
 One will not have the flexibility to add custom modules as easily
  as in case of LAMP, JAVA, or MONO.
 Most consumers and developers find this monopolistic and are
  always cautious while choosing this framework.
C# on .NET


 Architectural criticisms
     “Web Forms vs. MVC”. Server based Web-Forms architecture speeds up the
      time required to create a Web Application by employing Server Controls and
      associating events to those controls.
     At execution, server controls are converted to the native HTML client controls.


 Major limitations of Server based Web-Forms Architecture:
     There is an overhead of compiling the Server controls and converting them
      back to the Client side controls.
     Certain logic is best applied when you have perfect control over the HTTP
      request.
C# on .NET


 Certain logic is best applied when you have perfect control over
  the HTTP request.
     Example - one wants to create number of HTML input types based on a
      condition.
     In the classic Form Get/Post model, we can simple apply a “for loop” and
      create the input controls in the mark-up page, but with server controls, we
      have code that as Server Script and identify how to associate the Post back
      event with the controls which is an inefficient programming model.


 The Client Side selection of elements using DOM or jQuery is
  horrible as you have to realize the name of processed input tags.

 The classic Form Get/Post model exists by default in .NET, but
  what people criticized was the inefficient research while
  proposing a programming architecture to developers.
C# on .NET


 But 80% of the time you don’t need that degree of control. Make
  no mistake; the industrial acceptance of Web-Forms was huge.

 Even Sun Microsystems (now Oracle) implemented JSF (Java
  Server Faces) specification to enable development in a Web
  Forms Architecture using Java.

 To counter the criticism, Microsoft also gave the option of MVC
  (Model View Controller) specification based ASP.NET
  development in .NET 3+. There was huge criticism in terms of
  how the implementation was done.
 With MVC 3+ Microsoft plans to remove all possible criticisms.
C# on .NET


 All and all, .NET is great platform for development as long as you
  and the customer have no issues with using a complete Microsoft
  Environment for entire application lifecycle.

 Performance as compared to C++ compiled application is still
  slower.

 But similar to the case of Java, .NET has the benefit of reduced
  coding complexity when compared to C++.

 The performance of a .NET application running on windows is
  faster compared to a similar Java application.
C# on MONO


 MONO is an open community platform; that brings the power of
  C# specification defined by ECMA and Microsoft to all POSIX
  platforms as well as Windows.
 When it was released, it only allowed for Console and Web
  application development. Since GDI based forms implementation
  would not work on other Operating systems, Desktop application
  development was not present in earlier versions of MONO.
C# on MONO



 However, recently the community created GTK# (GUI Took Kit
  Sharp) which is a C# implementation of GTK+ (in C++).

 So now, MONO developers are equally capable of creating
  Console, Desktop and Client-Server applications.

 Nowadays MONO is also capable of creating application that
  work on Android & iPhone; something .NET framework will never
  support.
C# on MONO


 Also, MONO removes the limitation of .NET of being a closed
  system.
 We can implement my own modules to the core framework or the
  application server like Apache.
 We can even make use of existing apache framework modules
  for my Client/Server application.
C# on MONO


 So the question is what’s wrong with this platform?
     Mono is relatively new.
     It is still not a credible platform to work on.
     There are number of situations where you will find your console application
      hung for no reason.
     Your ASP.NET page breaks and your code is not the culprit; it’s the
      framework which is at fault.
     It is an open source initiative from Novell Inc and has not completely matured
      yet.
C# on MONO


 However, it should be pointed out that MONO is ”surprisingly
  fast”.
 If you try to compare a Client-Server application developed in
  JAVA & an exact implementation in C# on MONO you will be
  surprised to find that MONO is fast.
 However until the time it becomes more mature & stable, it is
  strictly recommended not to develop application in C# on MONO.
PHP/Perl/Python (LAMP)


 Of the three P’s; PHP is the most widely used. LAMP is primarily
  employed for Client- Server (Web) development.

 Almost 70% of all open source applications are written in LAMP.

 Major giants like Yahoo, Twitter, Facebook etc; make use LAMP
  for developing most of their applications.

 LAMP is the most dominating platform for web (client/server)
  development, and there is a very good reason for that.
PHP/Perl/Python (LAMP)


 There are possibly 1000’s or more open source
  frameworks, which significantly simplify the overall development
  time.

 Also they are very highly featured.

 Though PHP code may look cryptic at first but it is really simple to
  code.

 Also there is a framework for every web development; you will
  end up coding very few lines of code.
PHP/Perl/Python (LAMP)


 Dynamic Language paradigm:
    It should be pointed out that PHP is dynamic programming language.

    Being a Dynamic language as compared to a Static language like C++, JAVA
     or C# has certain advantages when it comes to development of Database
     driven Applications in terms of the overall memory consumption.

    Compiler does most of the calculation of allocating the memory to Types
     based on its usage.

    It is so significant that Microsoft added “System. Dynamic” namespace in its
     .NET 4.0 to support Dynamic Type based specification for C#, VB.NET and
     other .NET supported languages. Oracle also added support for Dynamically
     Typed Language in Java 7 specification.
PHP/Perl/Python (LAMP)


 The reason why LAMP has been so successful over the years is
  the huge community of Open Source developers.

 There are thousands of free open source applications which suits
  almost any need.
 Applications like Joomla, Drupal for Content Management
  system, Wordpress for blog, etc.

 Not only that. Even after being an open platform it is stable as it is
  years in the making and there are millions of developers to
  support it.

 However, being an open platform, you will have to
  take care of security vulnerabilities.
PHP/Perl/Python (LAMP)


 All and all, this is the most matured platform for web
  (Client/Server) development.

 Every major technology in web development like URL
  routing, HTTP compressions, ETag caching etc; are first
  implemented on LAMP and later ported to other platforms like
  JAVA and .NET/MONO.
References


   http://en.wikipedia.org/wiki/C%2B%2B
   http://en.wikipedia.org/wiki/Java_%28programming_language%29
   http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29
   http://en.wikipedia.org/wiki/JavaServer_Pages
   http://en.wikipedia.org/wiki/PHP
   http://qt.nokia.com/
   http://www.gtk.org/
   http://php.net/
   http://www.asp.net/
   http://www.asp.net/web-pages
   http://www.asp.net/mvc
   http://mono-project.com
   http://en.wikipedia.org/wiki/Mono_%28software%29
   http://www.mono-project.com/GtkSharpBeginnersGuide
   http://java.sun.com/developer/technicalArticles/DynTypeLang/
   http://msdn.microsoft.com/en-us/library/dd233052.aspx

More Related Content

What's hot

C# programming language
C# programming languageC# programming language
C# programming languageswarnapatil
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#rahulsahay19
 
Ten compelling reasons to learn .net framework
Ten compelling reasons to learn .net frameworkTen compelling reasons to learn .net framework
Ten compelling reasons to learn .net frameworkJanBask Training
 
Entwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptEntwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptBill Buchan
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupMurat Yener
 
C++ vs java which is best for future
C++ vs java which is best for futureC++ vs java which is best for future
C++ vs java which is best for futurecalltutors
 
Mastering Regex in Perl
Mastering Regex in PerlMastering Regex in Perl
Mastering Regex in PerlEdureka!
 
Object oriented-programming-in-c-sharp
Object oriented-programming-in-c-sharpObject oriented-programming-in-c-sharp
Object oriented-programming-in-c-sharpAbefo
 
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Katy Slemon
 
Web programming UNIT II by Bhavsingh Maloth
Web programming UNIT II by Bhavsingh MalothWeb programming UNIT II by Bhavsingh Maloth
Web programming UNIT II by Bhavsingh MalothBhavsingh Maloth
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.netsuraj pandey
 

What's hot (20)

Week1 dq3
Week1 dq3Week1 dq3
Week1 dq3
 
Programming with c#
Programming with c#Programming with c#
Programming with c#
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
C# programming language
C# programming languageC# programming language
C# programming language
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
C#.NET
C#.NETC#.NET
C#.NET
 
Ten compelling reasons to learn .net framework
Ten compelling reasons to learn .net frameworkTen compelling reasons to learn .net framework
Ten compelling reasons to learn .net framework
 
Java
JavaJava
Java
 
Introduction of .net framework
Introduction of .net frameworkIntroduction of .net framework
Introduction of .net framework
 
Entwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptEntwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscript
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client Roundup
 
C++ vs java which is best for future
C++ vs java which is best for futureC++ vs java which is best for future
C++ vs java which is best for future
 
Mastering Regex in Perl
Mastering Regex in PerlMastering Regex in Perl
Mastering Regex in Perl
 
Object oriented-programming-in-c-sharp
Object oriented-programming-in-c-sharpObject oriented-programming-in-c-sharp
Object oriented-programming-in-c-sharp
 
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
 
Web programming UNIT II by Bhavsingh Maloth
Web programming UNIT II by Bhavsingh MalothWeb programming UNIT II by Bhavsingh Maloth
Web programming UNIT II by Bhavsingh Maloth
 
Characteristics of c#
Characteristics of c#Characteristics of c#
Characteristics of c#
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.net
 
Phalcon overview
Phalcon overviewPhalcon overview
Phalcon overview
 

Viewers also liked

Difference between Java and c#
Difference between Java and c#Difference between Java and c#
Difference between Java and c#Sagar Pednekar
 
Python Intro For Managers
Python Intro For ManagersPython Intro For Managers
Python Intro For ManagersAtul Shridhar
 
Mku virtual campus presentation
Mku virtual campus presentationMku virtual campus presentation
Mku virtual campus presentationsalesiokiura
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net frameworkArun Prasad
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
Programowanie gier znów stało się łatwe
Programowanie gier znów stało się łatweProgramowanie gier znów stało się łatwe
Programowanie gier znów stało się łatweMaciej Miąsik
 
Atelier google adwords pour OT Auxerre
Atelier google adwords pour OT AuxerreAtelier google adwords pour OT Auxerre
Atelier google adwords pour OT AuxerreStéphanie DURVILLE
 
C# 6.0 - April 2014 preview
C# 6.0 - April 2014 previewC# 6.0 - April 2014 preview
C# 6.0 - April 2014 previewPaulo Morgado
 
The Lord of the Rings analogy to programming Languages
The Lord of the Rings analogy to programming LanguagesThe Lord of the Rings analogy to programming Languages
The Lord of the Rings analogy to programming LanguagesUmberto Tessitore
 
Texas.gov Presents: Battle of Programming Languages
Texas.gov Presents:  Battle of Programming LanguagesTexas.gov Presents:  Battle of Programming Languages
Texas.gov Presents: Battle of Programming LanguagesTexas.gov
 
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...Robert Nicholson
 
Languages formanandmachine
Languages formanandmachineLanguages formanandmachine
Languages formanandmachineGireesh Punathil
 
Accelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayAccelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayJohn Duimovich
 
2011-03-15 Lockheed Martin Open Source Day
2011-03-15 Lockheed Martin Open Source Day2011-03-15 Lockheed Martin Open Source Day
2011-03-15 Lockheed Martin Open Source DayShawn Wells
 

Viewers also liked (20)

Difference between Java and c#
Difference between Java and c#Difference between Java and c#
Difference between Java and c#
 
Python Intro For Managers
Python Intro For ManagersPython Intro For Managers
Python Intro For Managers
 
Php Vs Phyton
Php Vs PhytonPhp Vs Phyton
Php Vs Phyton
 
Mku virtual campus presentation
Mku virtual campus presentationMku virtual campus presentation
Mku virtual campus presentation
 
Java vs .net (beginners)
Java vs .net (beginners)Java vs .net (beginners)
Java vs .net (beginners)
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Future of Java
Future of JavaFuture of Java
Future of Java
 
Programowanie gier znów stało się łatwe
Programowanie gier znów stało się łatweProgramowanie gier znów stało się łatwe
Programowanie gier znów stało się łatwe
 
2. java oop
2. java oop2. java oop
2. java oop
 
Atelier google adwords pour OT Auxerre
Atelier google adwords pour OT AuxerreAtelier google adwords pour OT Auxerre
Atelier google adwords pour OT Auxerre
 
C# 6.0 - April 2014 preview
C# 6.0 - April 2014 previewC# 6.0 - April 2014 preview
C# 6.0 - April 2014 preview
 
The Lord of the Rings analogy to programming Languages
The Lord of the Rings analogy to programming LanguagesThe Lord of the Rings analogy to programming Languages
The Lord of the Rings analogy to programming Languages
 
Texas.gov Presents: Battle of Programming Languages
Texas.gov Presents:  Battle of Programming LanguagesTexas.gov Presents:  Battle of Programming Languages
Texas.gov Presents: Battle of Programming Languages
 
3.1 oracle salonika
3.1 oracle salonika3.1 oracle salonika
3.1 oracle salonika
 
Final Presentation
Final PresentationFinal Presentation
Final Presentation
 
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
 
Languages formanandmachine
Languages formanandmachineLanguages formanandmachine
Languages formanandmachine
 
Accelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayAccelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is Today
 
2011-03-15 Lockheed Martin Open Source Day
2011-03-15 Lockheed Martin Open Source Day2011-03-15 Lockheed Martin Open Source Day
2011-03-15 Lockheed Martin Open Source Day
 

Similar to Comparison of Programming Platforms

.Net framework vs .net core a complete comparison
.Net framework vs .net core  a complete comparison.Net framework vs .net core  a complete comparison
.Net framework vs .net core a complete comparisonKaty Slemon
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRainingsunil kumar
 
Asp.net Web Development.pdf
Asp.net Web Development.pdfAsp.net Web Development.pdf
Asp.net Web Development.pdfAbanti Aazmin
 
Rich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientRich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientFabian Lange
 
Rcs project Training Bangalore
Rcs project Training BangaloreRcs project Training Bangalore
Rcs project Training BangaloreSunil Kumar
 
Aspnet2.0 Introduction
Aspnet2.0 IntroductionAspnet2.0 Introduction
Aspnet2.0 IntroductionChanHan Hy
 
Built Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfBuilt Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfI-Verve Inc
 
Bn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot netBn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot netconline training
 
Net Framework vs .Net Core A Complete Comparison.pdf
Net Framework vs  .Net Core  A Complete Comparison.pdfNet Framework vs  .Net Core  A Complete Comparison.pdf
Net Framework vs .Net Core A Complete Comparison.pdfWPWeb Infotech
 
Cross Platform Net Development With Mono And My Sql Presentation
Cross Platform  Net Development With Mono And My Sql PresentationCross Platform  Net Development With Mono And My Sql Presentation
Cross Platform Net Development With Mono And My Sql Presentationsnowland nk
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) Sascha Sambale
 
Top 11 Front-End Web Development Tools To Consider in 2020
 Top 11 Front-End Web Development Tools To Consider in 2020 Top 11 Front-End Web Development Tools To Consider in 2020
Top 11 Front-End Web Development Tools To Consider in 2020Katy Slemon
 
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...WDP Technologies
 
DotNet Fundamentals
DotNet FundamentalsDotNet Fundamentals
DotNet FundamentalsMajdi SAIBI
 
Selenium Training in Mohali
Selenium Training in MohaliSelenium Training in Mohali
Selenium Training in MohaliE2MATRIX
 
Chapter 1 introduction to java technology
Chapter 1 introduction to java technologyChapter 1 introduction to java technology
Chapter 1 introduction to java technologysshhzap
 
Selenium Training in Chandigarh
Selenium Training in ChandigarhSelenium Training in Chandigarh
Selenium Training in ChandigarhE2MATRIX
 

Similar to Comparison of Programming Platforms (20)

.Net framework vs .net core a complete comparison
.Net framework vs .net core  a complete comparison.Net framework vs .net core  a complete comparison
.Net framework vs .net core a complete comparison
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRaining
 
Asp.net Web Development.pdf
Asp.net Web Development.pdfAsp.net Web Development.pdf
Asp.net Web Development.pdf
 
Rich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientRich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich Client
 
Rcs project Training Bangalore
Rcs project Training BangaloreRcs project Training Bangalore
Rcs project Training Bangalore
 
Aspnet2.0 Introduction
Aspnet2.0 IntroductionAspnet2.0 Introduction
Aspnet2.0 Introduction
 
Built Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfBuilt Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdf
 
Programming in c#
Programming in c#Programming in c#
Programming in c#
 
Bn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot netBn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot net
 
Net Framework vs .Net Core A Complete Comparison.pdf
Net Framework vs  .Net Core  A Complete Comparison.pdfNet Framework vs  .Net Core  A Complete Comparison.pdf
Net Framework vs .Net Core A Complete Comparison.pdf
 
Food borne human diseases
Food borne human diseasesFood borne human diseases
Food borne human diseases
 
Cross Platform Net Development With Mono And My Sql Presentation
Cross Platform  Net Development With Mono And My Sql PresentationCross Platform  Net Development With Mono And My Sql Presentation
Cross Platform Net Development With Mono And My Sql Presentation
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :)
 
Top 11 Front-End Web Development Tools To Consider in 2020
 Top 11 Front-End Web Development Tools To Consider in 2020 Top 11 Front-End Web Development Tools To Consider in 2020
Top 11 Front-End Web Development Tools To Consider in 2020
 
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
 
DotNet Fundamentals
DotNet FundamentalsDotNet Fundamentals
DotNet Fundamentals
 
Selenium Training in Mohali
Selenium Training in MohaliSelenium Training in Mohali
Selenium Training in Mohali
 
Chapter 1 introduction to java technology
Chapter 1 introduction to java technologyChapter 1 introduction to java technology
Chapter 1 introduction to java technology
 
Codename one
Codename oneCodename one
Codename one
 
Selenium Training in Chandigarh
Selenium Training in ChandigarhSelenium Training in Chandigarh
Selenium Training in Chandigarh
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 

Comparison of Programming Platforms

  • 1. Comparison of Programming Platforms C++ vs. Java vs. C# vs. PHP Presentation By Anup Hariharan Nair Date: 23 December 2011 http://HiFiCoding.com/ Prepared using :
  • 2. What's new ?  Looks are everything  Hardware accelerated graphics  WPF on .NET, Java FX, Adobe FLEX.  Dynamic Equation  Dynamic language support in .NET 4, Java SE 7 and C++11(C++0X).  Parallel Computing  Mergers and Acquisitions  Acquisition of Sun Microsystems and BEA by ORACLE
  • 3. Major programming Platforms  C++ (QT/BOOST/WT/C++0x)  JAVA (ME,SE,EE)  C# (MONO/.NET)  PHP/PERL/PYTHON(LAMP)
  • 4. C++ (QT/WT/Boost/C++11)  Pros:  The most widely used programming language.  Works in almost any platform known to mankind.  Fastest Platform. No other can compare it.  Probably millions of libraries available for C++ on the internet.  “There is a Library for that”.  Every major computer companies in the world employ C++.  Virtually all major applications like Google Earth, Adobe Photoshop, VMware, Skype etc… is written in C++.
  • 5. C++ (QT/WT/Boost/C++11)  Cons:  Coding is a little complex.  You have to take care of memory references on your own.  GUI development and library references looks cryptic when compared to Java & C#.
  • 6. C++ (QT/WT/Boost/C++11)  Present trend:  C++11 • New specification C++11(C++0x), is a true successor to the existing specification C++03. • Significant improvement over the existing C++ specification includes generic programming support and performance enhancements.  Dynamic type Support using “auto” keyword.  Need for an easy framework for developing hardware accelerated graphics based GUI.  On 9th May 2011, it was announced that Qt 5 would be released in 2012.  Main objective of Qt5 is to make better use of GPU, and accelerated graphics, with minimal complexity.
  • 7. JAVA Platform (ME/SE/EE)  Pros:  Cross Platform.  Managed Code environment using JVM.  Business Applications development companies like SAP, Oracle, etc; have been long supporters of JAVA.  One of the Simplest Languages.
  • 8. JAVA Platform (ME/SE/EE)  Cons:  Performance. • Java makes use of interpreted byte code, and it also needs to load a ton of frameworks before it actually starts executing the main program. • JIT compiler is also of little help as it only compiles interpreted byte code to machine code on the fly and does not start until the program has been running for a while. • Compared to other languages like Perl or Ruby, Java is still fast.
  • 9. JAVA Platform (ME/SE/EE)  Client-Server  Once a client/server application is started, only responsibility of the Application server is to respond to the HTTP requests and call compilers, interpreters and other HTTP modules as needed.  So in this paradigm, Java is not slow and is the principal reason why Business Application developers like SAP and Oracle still trust JAVA.  The notion that JAVA runs almost as fast as C++ is just not true (at least for now).  Compiled C++ is possibly 10 times faster.
  • 10. JAVA Platform (ME/SE/EE)  Performance of JAVA when compared to .NET/MONO?  Architecturally .NET and MONO are very similar to JAVA. .NET on windows is faster than JAVA.  JAVA 1.6 memory usage is still more than 2 times when compared to .NET 4.0.  Also the initialization and deletion operation of types is slower compared to .NET, which is the principle reason why .Net applications run faster than JAVA.  In case of MONO, though memory initialization and deletion is nearly equal to JAVA, the memory usage is half, which surprisingly implies that even MONO can outperform JAVA.
  • 11. C# (.NET/MONO)  Compilation frameworks  .NET  MONO
  • 12. C# on .NET  Architecturally .NET is very much similar to JAVA, except that the core framework only runs on windows or other Microsoft supported platforms.  However the .NET framework and Application Server (IIS) is not open.  One will not have the flexibility to add custom modules as easily as in case of LAMP, JAVA, or MONO.  Most consumers and developers find this monopolistic and are always cautious while choosing this framework.
  • 13. C# on .NET  Architectural criticisms  “Web Forms vs. MVC”. Server based Web-Forms architecture speeds up the time required to create a Web Application by employing Server Controls and associating events to those controls.  At execution, server controls are converted to the native HTML client controls.  Major limitations of Server based Web-Forms Architecture:  There is an overhead of compiling the Server controls and converting them back to the Client side controls.  Certain logic is best applied when you have perfect control over the HTTP request.
  • 14. C# on .NET  Certain logic is best applied when you have perfect control over the HTTP request.  Example - one wants to create number of HTML input types based on a condition.  In the classic Form Get/Post model, we can simple apply a “for loop” and create the input controls in the mark-up page, but with server controls, we have code that as Server Script and identify how to associate the Post back event with the controls which is an inefficient programming model.  The Client Side selection of elements using DOM or jQuery is horrible as you have to realize the name of processed input tags.   The classic Form Get/Post model exists by default in .NET, but what people criticized was the inefficient research while proposing a programming architecture to developers.
  • 15. C# on .NET  But 80% of the time you don’t need that degree of control. Make no mistake; the industrial acceptance of Web-Forms was huge.  Even Sun Microsystems (now Oracle) implemented JSF (Java Server Faces) specification to enable development in a Web Forms Architecture using Java.  To counter the criticism, Microsoft also gave the option of MVC (Model View Controller) specification based ASP.NET development in .NET 3+. There was huge criticism in terms of how the implementation was done.  With MVC 3+ Microsoft plans to remove all possible criticisms.
  • 16. C# on .NET  All and all, .NET is great platform for development as long as you and the customer have no issues with using a complete Microsoft Environment for entire application lifecycle.  Performance as compared to C++ compiled application is still slower.  But similar to the case of Java, .NET has the benefit of reduced coding complexity when compared to C++.  The performance of a .NET application running on windows is faster compared to a similar Java application.
  • 17. C# on MONO  MONO is an open community platform; that brings the power of C# specification defined by ECMA and Microsoft to all POSIX platforms as well as Windows.  When it was released, it only allowed for Console and Web application development. Since GDI based forms implementation would not work on other Operating systems, Desktop application development was not present in earlier versions of MONO.
  • 18. C# on MONO  However, recently the community created GTK# (GUI Took Kit Sharp) which is a C# implementation of GTK+ (in C++).  So now, MONO developers are equally capable of creating Console, Desktop and Client-Server applications.  Nowadays MONO is also capable of creating application that work on Android & iPhone; something .NET framework will never support.
  • 19. C# on MONO  Also, MONO removes the limitation of .NET of being a closed system.  We can implement my own modules to the core framework or the application server like Apache.  We can even make use of existing apache framework modules for my Client/Server application.
  • 20. C# on MONO  So the question is what’s wrong with this platform?  Mono is relatively new.  It is still not a credible platform to work on.  There are number of situations where you will find your console application hung for no reason.  Your ASP.NET page breaks and your code is not the culprit; it’s the framework which is at fault.  It is an open source initiative from Novell Inc and has not completely matured yet.
  • 21. C# on MONO  However, it should be pointed out that MONO is ”surprisingly fast”.  If you try to compare a Client-Server application developed in JAVA & an exact implementation in C# on MONO you will be surprised to find that MONO is fast.  However until the time it becomes more mature & stable, it is strictly recommended not to develop application in C# on MONO.
  • 22. PHP/Perl/Python (LAMP)  Of the three P’s; PHP is the most widely used. LAMP is primarily employed for Client- Server (Web) development.  Almost 70% of all open source applications are written in LAMP.  Major giants like Yahoo, Twitter, Facebook etc; make use LAMP for developing most of their applications.  LAMP is the most dominating platform for web (client/server) development, and there is a very good reason for that.
  • 23. PHP/Perl/Python (LAMP)  There are possibly 1000’s or more open source frameworks, which significantly simplify the overall development time.  Also they are very highly featured.  Though PHP code may look cryptic at first but it is really simple to code.  Also there is a framework for every web development; you will end up coding very few lines of code.
  • 24. PHP/Perl/Python (LAMP)  Dynamic Language paradigm:  It should be pointed out that PHP is dynamic programming language.  Being a Dynamic language as compared to a Static language like C++, JAVA or C# has certain advantages when it comes to development of Database driven Applications in terms of the overall memory consumption.  Compiler does most of the calculation of allocating the memory to Types based on its usage.  It is so significant that Microsoft added “System. Dynamic” namespace in its .NET 4.0 to support Dynamic Type based specification for C#, VB.NET and other .NET supported languages. Oracle also added support for Dynamically Typed Language in Java 7 specification.
  • 25. PHP/Perl/Python (LAMP)  The reason why LAMP has been so successful over the years is the huge community of Open Source developers.  There are thousands of free open source applications which suits almost any need.  Applications like Joomla, Drupal for Content Management system, Wordpress for blog, etc.  Not only that. Even after being an open platform it is stable as it is years in the making and there are millions of developers to support it.  However, being an open platform, you will have to take care of security vulnerabilities.
  • 26. PHP/Perl/Python (LAMP)  All and all, this is the most matured platform for web (Client/Server) development.  Every major technology in web development like URL routing, HTTP compressions, ETag caching etc; are first implemented on LAMP and later ported to other platforms like JAVA and .NET/MONO.
  • 27. References  http://en.wikipedia.org/wiki/C%2B%2B  http://en.wikipedia.org/wiki/Java_%28programming_language%29  http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29  http://en.wikipedia.org/wiki/JavaServer_Pages  http://en.wikipedia.org/wiki/PHP  http://qt.nokia.com/  http://www.gtk.org/  http://php.net/  http://www.asp.net/  http://www.asp.net/web-pages  http://www.asp.net/mvc  http://mono-project.com  http://en.wikipedia.org/wiki/Mono_%28software%29  http://www.mono-project.com/GtkSharpBeginnersGuide  http://java.sun.com/developer/technicalArticles/DynTypeLang/  http://msdn.microsoft.com/en-us/library/dd233052.aspx