+ 8
[DUPLICATE] In practice, what is the difference between C#, C++ and python. What are the reasons to choose one over another?
I like python and everytime I find someone complaining about something that python can't do well, I find another post describing how to do it and get good performance. I am thinking of also learning C something but I can't really decide on which one I should have a go first. What are the real practical differences between these languages?
19 Answers
+ 26
Syntax is the main difference, Python is higher level than C++, but not necessarily higher than C#. C++ and C# have a stark contrast in the way they work. C++ is much closer to C, it's C's subset, and it has many qualities of both C and C#. But you have to do a lot of stuff yourself in C++ where as C# and Python do a lot of it for you. Python is a interpreted language for the most part while C# and C++ are both compiled. If you're thinking about learning C, I highly recommend it. Warning, you'll end up having to do almost everything from scratch. But it will teach you better Programming and you'll learn a lot of the under the hood stuff of Programming. I'm trying to teach C here on SoloLearn, you should check out my Teaching C codes. See if you like them. You can then make a better decision if you want to learn C or not from there, I'm sure of it.
+ 16
Bare with me here; C is much closer to the metal. It corresponds closely with the underlying assembly language -- this means well written C runs very quickly, so for applications that are time intensive (I.e an operating system / nuclear power plant valve control) C is useful for squeezing out as much performance as possible.
C++ is a different language than C, but most C programs compile in C++ (if you want examples of this breaking lookup IOCCC). For this reason C++ is useful because you have access to low level C and high level language construct, not to mention robust libraries and data structures.
I have done some projects in C# and it's in the high level language category. it's useful for engineering software because it has a very large set of libraries, and in general is a bit easier to develop OOP style in.
Python on the other hand is useful as well for a wide range of things, albeit not as useful for software engineering in some cases. The GIL prevents multi threading solutions to parallel processing system -- albeit Python does have multiprocessing which is like multithreading with more overhead. All in all you wouldnt want Python for time sensitive programs (the plane carrying an atom bomb or etc) because it has overhead. Like you said though it can still be very fast. For this reason Python is mostly used for research and areas were quick design and ease of use helps drive research forward.
In a practical scenario I would imagine you would be expected to know multiple languages for software engineering. Sometimes you need the quick scripting of python. Other times you need different things. For science and math you will use mostly python/R.
+ 8
@victory, it dungeonsandanime@gmail.com. Email me any time ^_^
+ 4
All these languages general purpose. But I use these languages for:
C# as a rule for Win .net. It's for hight level bisness logic when portability and performance not so important.
C++ It's when portability and performance very important.
Python - for quick problems solving, for system administration and WEB development.
+ 4
I read all those coments and I have now a question : so why is blender write in Python?
+ 3
C# is high level language. In C++, you can directly point to memory locations, unlike C#, where you can only point to the reference of memory address. Python is more dynamic than C#, which is more dynamic than C++. Python is open source and platform independent but C# isn't. If you want to learn code fast, Python is way to go, but its actually very hard to build a robust program with python, as you can literally play around with how your code runs (dynamic) which could result in non scalable application. C# is more useful if you want to work as integrator or developer for web and GUI application. C++ is better if you want to build a core application or libraries that allow higher level language, C#, Java, JavaScript, and etc to use. Python is good if you want to build platform independent application.
+ 1
use ++ to get hi speed and if you have enough time to write the code. if the speed is not your priority, use python.
+ 1
I tried C/C++ and found it a lot harder to understand then Python. Eventually I will get back to C, but for my current level Python seems just right. I don't plan to build software that critically relies on speed.
+ 1
If you want programm driver for a device such as a DVD-Rom Drive you can't use Python and have to use C# or C++ or other low-level languages.
+ 1
Comparing syntax is useless. If you think about the power of those languages (feature set) they are identical. Real difference is that C++ compiles to native binaries, programs in C# require .NET and Python has lowest performance and control over memory than both C++ and C#. Also, programs in Python require Python runtime installed on the user's machine and they are not native binaries.
+ 1
Thank you all for the replies.
I think that for my current needs, speed is not crucial. I am very interested in having the tools for data analysis for scientific research and I really like the ability to interact with the data on the spot without having to compile. I'm also more convinced that python is growing fast and many of the issues that I heard of or had to deal with myself can be worked out using the correct python tools.
I have decided that for now I am going to focus on improving my python skills, including tools like django, aiming on becoming proficient. I'll definitely have a go at some flavour of C... after I improve on python.
All your answers helped. Cheers!
0
python is sexier
- 1
i dont know. good question:D
- 1
different father
- 1
up
- 2
I don't know
- 3
i think it depend what do you want to do
- 3
love paerents
- 5
hello @sorakatadzuma please can I have ur personal email I would love to send a mail