C++ is an object-oriented programming (OOP) language. It literally means "increased C", reflecting its nature as an evolution of the C language. C++ treats programming from a perspective where each component is considered an object, with its own properties and methods, replacing or complementing strutured programming paradigm, where the focus was on procedures and parameters. C++ has certain characteristics over other programming languages. The most remarkable ones are:
ROOT is an object-oriented framework aimed at solving the data analysis challenges of high-energy physics. There are two key words in this definition, object oriented and framework.First, we explain what we mean by a framework and then why it is an object-oriented framework.
In one hand, programming inside a framework is a little like living in a city. Plumbing, electricity, telephone, and transportation are services provided by the city. In your house, you have interfaces to the services such as light switches, electrical outlets, and telephones. The details, for example, the routing algorithm of the phone switching system, are transparent to you as the user. You do not care; you are only interested in using the phone to communicate with your collaborators to solve your domain specific problems.
If you are interested in doing physics, a good HEP framework will save you much work. Below is a list of themore commonly used components of ROOT:
There are also less commonly used components, as:
The benefits of frameworks can be summarized as follows:
On the other hand, Object-Oriented Programming offers considerable benefits compared to Procedure-Oriented Programming:
Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.
Python runs on Windows, Linux/Unix, Mac OS X, OS/2, Amiga, Palm Handhelds, and Nokia mobile phones. Python has also been ported to the Java and .NET virtual machines.
Python is distributed under an OSI-approved open source license that makes it free to use, even for commercial products.