+ 2
What to study after C++: Python or C#? - Что изучать после C++: Python или C#?
I already know C++ well and I want study smth new. What advise can you give me? Я уже неплохо знать C++ и хочу выучить что-нибудь новое. Что вы мне посоветуете?
4 Respostas
+ 4
Вместо C# стоит рассмотреть Vala. Про Objective-C и C++ ничего хорошего сказать не могу, Objective-C даже не смотрел, а C++... создалось впечатление, что язык не был продуман с самого начала и возникающие трудности решались костылями. Да собственно эти двое мне и не нужны Python, Pascal, C, Vala и JavaScript покрывают все мои потребности.
В пользу Python могу сказать, что он имеет вполне себе заряженные батарейки и исчерпывающее количество третьих пакетов (@see: pypi.python.org). Тем не менее не стоит надеяться на окружающих и быть готовым писать биндинги (как правило с C) на Pyrex/Cython или Python/C API (т.е. на самом же C). Безусловно он (и особенно ванильная реализация на CPython) тормозный, это всё же интерпретатор (без JIT) с дин. типизацией. Но врядли кому-то придёт в голову писать на алгоритмы сортировки или другие ресурсоёмкие, всё уже есть в нативных либах, осталось разобраться с биндингом. Так же Python это ещё Pyrex/Cython и т.д. имеющие весьма схожий синтаксис и нативный выхлоп (стат. типизация). Ещё есть реализация Jython (весьма качественная), что даёт тебе возможность писать для JVM, использовать библиотеки Java и получать более-менее быстрый код. IronPython (dorNet, C# и ко.) не рассматриваю. Ну это просто весьма элегантный язык :-).
Для GameDev'а есть PyGame (хотя это всего лишь тот же SDL с небольшим количеством плюшке), Ogre3D и ещё несколько портов. Есть возможно и на низкоуровневом OpenGL пописать (PyOpenGL), ну до кучи: pyglet, pysoy, cocos2d, pyirrlicht и т.д. Выбор есть, хотя стоит быть готовым к тормозам при реализации некоторых алгоритмов, возможно что-то придётся переписывать на натив.
Python обеспечит тебе быстрый старт, это факт, а болячки в виде динамической природы и невозможности использовать все ядра/процессоры системы в одном процессе (GIL) подтолкнут тебя к изучению и использованию нативных языков (таких как C, т.е. именно для оптимизации), причём это уже будет обдуманный и взвешенный поступок. Разные языки, для разных задач.
p.s. Извиняюсь за много букв :-).
by BW
+ 3
I've always encouraged people to start learning Python, since it is more of an "educational" language (id est, it teaches you as you use it).
+ 2
If you "already know C++ well", you are the master of programming, you need not learn anything else :))
But if you think it, because you finished C++ course here , there is only a basic, there is much more about of C++ to learn.
So the main question is now. Do you like programiing in C++ - on the basis of this course)? If yes, learn it deeper. If not, learn another programming language. (the C# is simillar but simpler]
Of course, there is another way, to study more (or all) programming course here, and choose your main programming language after..
+ 1
Petr, I meant "I know C++ not bad" :)
I've finished one course on stepik.org(basic of C++), read a book of Bjarne Stroustrup "Programming - Principles and practice using c++"(but only Russian version). And yes, I liked this language.