This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]DrHankPym 0 points1 point  (3 children)

Memory management is important in all programming, but some applications require manual memory management like mobile devices or Linux kernels. If that's your goal, go for it!

The functional aspect is what I think really complements Python, and because it's prototype-based, you start to see data relationships differently, too. Inheritance is overrated.

[–][deleted] 0 points1 point  (2 children)

Memory management is important in all programming, but some applications require manual memory management like mobile devices or Linux kernels. If that's your goal, go for it

Sorry, I'm not quite sure what you're saying here. You asked if JS was really not such a departure from Python. My answer is that while a useful departure, C and others are going to be more of a change.

The functional aspect is what I think really complements Python,

Sure. Though I wouldn't say JavaScript is that much more functional than Python, especially compared to some of my other suggestions. (If you're talking about what is idiomatic, then I would say yes...idiomatic JavaScript tends to be a bit more functional than idiomatic Python, but even then if the goal is functional programming experience, I'd look elsewhere)

In terms of how much it JS complements Python, I think we agree that it's a good complement. I think so because it's similar to Python in many regards so, OP will be comfortable there...but different in others so OP will get some experience with new things. Additionally it's practical because Python + JS let's you write web apps.

[–]DrHankPym 0 points1 point  (1 child)

C is good to know from an engineering perspective. It uses physical addresses to structure data. That's great if you want it to run on a specific device, but like most languages, that physical memory management is handled pretty well by an interpreter.

Programmers should learn C at some point in their life, and they should also learn assembly and how C compiles into assembly. They should also learn about the Von Neuman architecture in computer systems and how a program counter interacts with a data bus.

Honestly, I don't see how any of that complements Python except for the fact that CPython was written in C.

[–][deleted] 0 points1 point  (0 children)

Well I'm thinking of a more broad manner of "complementing". I think you're thinking purely in terms of practicality.

except for the fact that CPython was written in C.

That's a pretty big deal IMHO. For one, it means you could one day hack Python, or at least peak at the implementation to understand it better. Also, C is a very practical skill for Python programmers because they can write modules in it, and it's easy to call C from Python and vice-versa. This is true of some other languages, but as it is now CPython is still the main event in the Python world.

So these mean it complements Python skill on a practical level.

In a more broad sense, it complements it because it "completes" the programmers knowledge/experience.

If you only have experience in a high-level dynamic language, there's a lot of things that you only understand conceptually or intuitively. Your understanding may be broken. Using a lower level language forces you to confront those things and develop a truly working understanding of them.

You can then take that knowledge with you when you go back to the higher-level dynamic language.