T
T
tugo2013-12-28 23:02:32
Python
tugo, 2013-12-28 23:02:32

Qt. Is it worth switching from C++ to Python?

I read somewhere that the speed of development in Python is 1.5-2 times higher than in C++ (using the Qt framework). I want to increase my efficiency and, at the same time, learn Python. Has anyone gone this route? What are the pros and cons?

Answer the question

In order to leave comments, you need to log in

5 answer(s)
D
Deerenaros, 2014-01-11
@tugo

These are funny questions. Is it worth learning $programming_language1 than better $programming_languageA $programming_languageB, etc. Just funny. Not that they are not needed - each business has its own tool. It is difficult to hammer nails with a screwdriver, and cut wood with a fork (although it is possible).
So, I'll do my bit - of course it's worth it! And it's not even worth it, but it's required. Python is steadily seeping into life and often requires a C ++ specialist with knowledge (acquaintance) of Python. Slightly expands the horizons - still dynamic programming with little functionality.
But do not think that there is a tool for all occasions. Python is ideal where there is an idea and nothing else, it is also good for prototyping, it is not very bad in a scientific environment. But it is contraindicated for further scaling, it is also bad in stress testing, in general, production from it is so-so, approximately like in C ++. However, it is close to the average for the hospital.
I have walked this path. There was a time when I knew only C++ (not even C) well enough. And that had its problems. Now I am a polyglot. Pros: Learn something new very quickly. I literally immediately catch the differences and can copy-paste the whole project - this skill is hard to overestimate. It has already been written hundreds of times that Python is good for prototyping - I repeat: you drive python into the terminal and print. Formulas, graphs, reports immediately appear in the laboratory. A startup immediately has a UI, logic, and a prototype. But... There are huge disadvantages: at some point, without good documentation, it is very difficult to move on - the fault is very cool dynamic typing. try: catch'and: here and there - again, because you never know what you will be served in the arguments. Now the sacred warriors of spaces vs tabs (ala K&R vs BSD) can bring down the whole project along with the deadlines.
Well, yes. pyqt is terrible. It is better to use something else (although there is nothing else in particular). Heisenbugs (those that appear and disappear) - thousands of them. And that very interactivity is reduced to nothing, just let the project grow to 100 lines - and this will happen very quickly, no pythonic-way will help. So many projects died before they could start.
Finally, if we want cross-platforms, we bitterly recall the nights (!) Spent trying to compile some kind of half-abandoned boost-like lib-dependency of some geek on the git, who was the only one who thought to throw off a couple of examples of using the forgotten protocol by everyone.
But all the rumors about the low performance of python are nonsense and slander. This @#$% is very fast, at least, if you write properly, and not go through dictionaries of millions of elements for the hundredth time (if there are such dictionaries, it's time to connect the database, probably).

A
Ali Aliyev, 2013-12-29
@ali_aliev

Python is ideal for rapid application prototyping, then critical sections can be rewritten in C ++.

V
vehsakul, 2014-01-02
@vehsakul

An increase in development speed can be trite due to the fact that you do not need to compile anything. The number of dialed code will also be less. It's easier to experiment with something. Performance isn't important everywhere, and where it isn't, Python can make life a lot easier.

T
tsarevfs, 2013-12-29
@tsarevfs

It's always good to learn something new. +python works well in conjunction with c++ (boost::python)

A
Andrey Belov, 2013-12-29
@Andrey_Belov

As a second language, it's a good option. Then you will have access to vacancies like: company.yandex.ru/job/vacancies/dev_linguistic_cpp.xml, company.yandex.ru/job/vacancies/release_engin.xml , etc.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question