(04-06-2012, 09:44 AM)Shonumi Wrote: It seems you're talking about the semantics of language here, whereas I've been talking about abstract concepts behind them. In regards to memory management, if you learn the concepts on a low enough level, you need only examine how the language itself implements it. There's no need to completely redefine what your ideas of the stack and the heap are; you only need to see how XYZ language goes about using them.Okay, assuming you started with a language that had those concepts, it's easy to dismiss them. If you started with python, wrapping your head around C memory management is not as easy.

Of course, the abstract concepts of most languages are roughly the same. Learning how you can use a particular implementation to your advantage might be very difficult, tough.
The same can be said of other things like variables, arrays, file manipulation, objects, functions, etc. Every time you start a new language, you (usually) don't fundamentally shift these ideas. You just learn how the language specifies how they are used. The syntax of how the language does it is different, but the underlying ideas are largely the same.
(04-06-2012, 09:44 AM)Shonumi Wrote: In C++, you know memory is used, but you have to take care of it yourself, so you learn how the language expresses that through pointers. In Python, you still know memory is used, but the language takes care of that for you, and it expresses that by exposing little to no code that deals with it manually. Their syntaxes, as a result, are different in that regard, but that doesn't change the larger idea of memory management. Memory gets allocated to things, and that memory needs to be freed by someone.Well, the python and C++ ideas of "objects" are very different. Of course it's an advantage to know either of the two languages if you want to learn the other one, but you'll have to seriously rethink your idea of an "object".
(04-06-2012, 09:44 AM)Shonumi Wrote: Ultimately, what I've been saying for the past few posts is that once you know how to code, e.g. how to program on the computer, once you've got those concepts solidly put in your head, it doesn't take much to learn a new language. You just need to learn how that language does what it does, which can be relatively easy with those previous concepts in mind.For reaching a beginner level in the new language, yes. For reaching a state where you're really comfortable with the new language (and where others are comfortable with the code you write) it is not guaranteed that your previous knowledge will help you much (it might, of course, if the languages have similar concepts).
(04-06-2012, 06:22 PM)DacoTaco Wrote: ...oh and btw. phyton is not a programming language imo. its a scripting language.Oh no, not *that* again. Look, here's a C interpreter, now C isn't a programming language any more either: http://root.cern.ch/drupal/content/cint
Also, this compiles python-code at runtime: http://pypy.org/
Seriously tough, python is a language and you can write programs in it. So it's a programming language. "Scripting languages" focus on interactivity and are not meant to write programs longer than 20 or 30 lines in them (bash, awk, ...). I'd call those languages "scripting languages" because it fits their common use case; still, they're programming languages, too. Everything that is touring-complete is.
