On Mar 9, 12:43 am, ZikO <ze...@op.pl> wrote: > Hi > > I hope I won't sound trivial with asking my question. > > I am a C++ programmer and I am thinking of learning something else > because I know second language might be very helpful somehow. I have > heard a few positive things about Python but I have never writen any > single line in python so I do not know this language at all. > > Do you think python would be good complementary language for C++? Do you > think it's worth learning it or let's say try Java? and how difficult it > would be for me if I know C++ pretty well I would say? > > Thanks
I'm not even going to read the replies first because I have my own. I was a C and C++ programmer exclusively for over a decade. During that time I had a "whatever tool for the problem" approach to language selection but C++ continued to be the best for the sort of thing I was doing. During that time I continued to learn other languages at least enough to consider them. I appreciated the role of interpreted languages were filling, but also never felt comfortable in them. Python, imo, is an excellent language to learn as a C++ programmer. It is relatively easy to extend with C/C++ and so works together well. When you find yourself writing some configuration language, you'll be able to use python instead. Also, I have found that Python helped open my mind a bit about object orientation and to realize that while the compile-time decisions in C++ are great for the C/C++ linking model, and provides a certain sort of power and control, that it also really does (as many had complained to me) take a few blows at how you really want OO to work. So I love python's OO and things which can be done structurally in C++ (like metaclass programming) but with which the C++ syntax is not cooperative, and which is very much harder to safely extend modularity too (I could go into detail but why bother here, it's either already clear what I mean or isn't that important)... Finally, Python is a multiparadigmed language, like C++. It very much seems to believe in Bjarne's original trust the programmer outlook on languages. As a C++ programmer I enjoyed the responsibility and power of choosing one's paradigms at the outset of a project. Such choices are best made consciously, one learns a lot about their project and develops a lot of philosophical standards for the design and implementation by having to think first "what models and programming paradigms will we adopt". It makes you think what sort of code you will be writing often, and which idioms will be efficient and maintainable. Honestly, I've become more of a Python fan than I am really comfortable with... it can't be as good as I think. -craig -- http://mail.python.org/mailman/listinfo/python-list