Abhinav Upadhya, B. K. Srinivas; International Journal of Advance Research, Ideas and Innovations in Technology © 2020, www.IJARIIT.com All Rights Reserved Page |557 ISSN: 2454-132X Impact factor: 6.078 (Volume 6, Issue 3) Available online at: www.ijariit.com A comparative study on usage of Python and C/C++ for firmware development Abhinav Upadhya abhinavupadhya.is16@rvce.edu.in R. V. College of Engineering, Bengaluru, Karnataka B. K. Srinivas bksrinivas@rvce.edu.in R. V. College of Engineering, Bengaluru, Karnataka ABSTRACT The C/C++ programming languages dominate embedded systems programming, though they have a number of disadvantages. Python, on the other hand, has many strengths that make it a great language for embedded systems. This Paper presents a comparative analysis of Python and C Programming Language in the context of firmware development. KeywordsC, Python, RTOS, IOS, GUI, MicroPython, Cython, Garbage Collection, Theano, JIT, Modules, Stackoverflow, Unix, Macintosh 1. INTRODUCTION C/C++ are compiled languages, while Python is an interpreted language. C/C++ have been around for ages; C was first developed in 1969, and C++ came along in 1983. Python is younger as it was created in 1989 by Guido van Rossum. Since then, it's become one of the most popular open source programming languages. All Python releases are open source and freely usable and distributable, even for commercial projects. Python isn't just the most-famous language for starting CS programs, it's likewise the quickest developing language for inserted processing. Possibly that sounds senseless when you filter the numbers again and understand it's the quickest developing language of the rest of the 5% of inserted frameworks code that aren't C/C+ +, however Python will begin eating into C/C++'s restraining infrastructure significantly progressively throughout the following not many years. Specialists moving into the business with experience programming automatons, robots, or different ventures every now and again have an Arduino or Raspberry Pi foundation. They'll likely have managed Python in some way or another in that time, and all things considered, they'll have knock facing some inserted frameworks programming. This paper is structured as follows. Section II discusses the significance of C/C++ language in general [1]. Section III discusses the significance of Python Language in general. Section IV Discusses the Difference between Python and C/C++ language in case of firmware/embedded system development [3]. 2. SIGNIFICANCE OF C/C++ The below list gives an overall significance of C/C++ as a firmware development language. (a) C is neither low-level nor high-level language. You can closely work with the registers of the CPU. You can embed assembly code in your C program. (b)Bare metal (No OS) programming is possible with C for a given computer architecture. This bare metal programming is possible with the help of Cross-compilation for a particular architecture. For Ex: Arduino and other development boards. (c) C is very fast. Most RTOS (Real Time Operating Systems) that are prevalent are coded with C. Alongside your phone’s OS like IOS and Android, there is a second OS for the baseband processor (phone calls and network operation) which is a RTOS. There are several RTOSs like VxWorks, ThreadX, QNX.,etc. (d)Direct access to low level hardware API's. (e) You can find a C compiler for the vast majority of these devices. This is not true for any high level language in my experience. (f) C (the runtime and your generated executable) is "small". You don't have to load a bunch of stuff into the system to get the code running. (g)The hardware API/driver(s) will likely be written in C or C++. (h)C creates more compact and faster runtime code, and it’s already the language of choice for 95% of embedded system code, so it has a whole legacy that Python will have to overcome. (i) C++ plays a part in the development of applications such as servers and microcontroller programs. (j) C++ is the leading language for 3D, multiplayer, or other types of game development. It is powerful enough to create such elaborate games as CounterStrike, Doom, and Red Dead Redemption. (k)C++ is multi-paradigm means it follows three paradigms Generic, Imperative, and Object-Oriented. (l) Game development is the key to C++. That's why C++ is becoming more popular among game developers. 3. SIGNIFICANCE OF PYTHON Python is currently one of the most popular dynamic