back

by jeffreyrogers·11y ago·view on hn ↗
I often wonder about how much programmers of my generation are missing out on because of our relative lack of understanding of the full stack of software and hardware. Many of my peers have never written C code outside of school and largely expect to only work in high level scripting languages like Python or Ruby.
2 comments
I think you're definitely missing out a bit if you don't know anything about low-level stuff. If you've never programmed in C or something like it. I'm a compiler writer, ant it seems to me people who have only ever used high-level programming languages have pretty poor intuitions about the cost of the language features they use.

This being said, I think there there are many more programmers today than there were in the 1980s. So while there is a smaller proportion of programmers doing low-level stuff, there are still many programmers with low-level work experience. I'm doing a PhD in compiler design and I've been approached by several major companies. I think I've been approached 8 or 9 times now. There is still quite a bit of demand for low-level expertise. Low-level coding isn't going to disappear, and luckily for us, the internet allows us to archive all of this knowledge like never before.

> high level scripting languages like

I'm sorry, I thought that term died a long time ago. What exactly is a scripting language to you and how is it different than whatever you may call a "normal" programming language?

Basically perl, Python, sh/bash, and so on. Not C or C++. (Well, there's '#!/usr/local/bin/tcc -run' [1] which can do C but, you know, that's the exception to the rule.) Moar here: [2]

[1] http://bellard.org/tcc/tcc-doc.html [2] http://en.wikipedia.org/wiki/Scripting_language

That's insane. Perl and Python are both general purpose programming languages. This reminds me of the days Java developers used to call Ruby developers "script kiddies."

So if C and C++ are the only true programming languages, we're all just script kiddies? :/

No. I didn't say anyone was a "script kiddie." I merely stated that the manner in which Perl and Python function is different than the manner in which C and C++ function and that's enough of a difference that they belong in two categories of languages: 'scripting languages' (which are not compiled to assembly and typically require an interpreter) and 'compiled languages' (which can be compiled to assembly and typically do not require an interpreter.) Nor did I say Perl and Python aren't suitable for general purpose tasks. If you think 'using a scripting language' is the same as 'being a script kiddie,' then you're just wrong. [I don't know enough of how Java or Ruby function to say which category they belong in.]
I recall somebody (can't recall who or when) gave this definition: a scripting language is one where most of the work gets done by invoking programs written in a different language. So sh and bash (etc.) are definitely scripting languages, Python (etc.) can be used as scripting languages, even if that isn't their typical use.