

A Scripter at Heart - bdfh42
http://www.codinghorror.com/blog/archives/001216.html

======
rbanffy
Well... While coding mostly in Python, I am still a programmer. I am only
using a more refined tool more adequate to my needs than C would ever be.

Obviously, I disagree with the "C programmers have to be masochists" view of
the article. C is powerful and can be cruel and unforgiving, but once you get
it (and it's not that hard), you can appreciate how powerful it really is.

As for the pain of going from interactive-prompt-nirvana to edit-compile-link-
run-wonderwtf-reboot hell, it took me years to learn C++ because I was
introduced to OOP in Smalltalk and then wrote some stuff in Actor. C++ most
definitely, did not look like a step in the right direction. In fact, it
wasn't.

For years, I used the following tagline in my BBS messages:

"Hello World in Assembly: 30 bytes, Hello World in Turbo Pascal: 10K, Hello
World in C: STACK-OVERFLOW: SYSTEM HALTED"

------
cbetz
IMO, knowing C is absolutely essential for a true understanding of how modern
computer systems work. It should not be avoided, even if it is "hard".

~~~
sanswork
10-12 years ago I was hearing people say that exact same thing about asm when
I was first learning C. I wonder what they will be saying in 10 years is
essential?

~~~
lbrandy
Uhm. Maybe 25 years ago. That was when you had to actually check the output
from time to time because the compilers were so bugged and often terrible at
their job. 10 years ago you needed to learn C to understand how Perl worked.

In 10 years "they" will still be saying learn C because C is nothing but a
glorified assembly language with some syntactic sugar. C shows you how your
computer works. There is very little to gain by using assembly over C (with
the special exception of specialized instruction sets, like SIMD).

Until the computer changes so fundamentally that a simple imperative language
no longer matches the hardware, or some other simple imperative language does
a better job (unlikely), learning C will always be good advice.

~~~
pwk
_In 10 years "they" will still be saying learn C because C is nothing but a
glorified assembly language with some syntactic sugar. C shows you how your
computer works._

It's possible to be a solid C programmer (ie clear understanding of pointers,
stack vs. heap, etc) while still not having the depth of knowledge one gets
from understanding at least some assembly. When I first learned about the
concept of stack overflows (ie as explained in Smashing The Stack For Fun And
Profit: <http://insecure.org/stf/smashstack.html>) my understanding of C
really expanded, mostly through the added insight provided by thinking about C
in the context of assembly.

------
silentbicycle
It's often a better design to keep the parts that are largely set/need to be
efficient in a "hard" language like C (or something like Common Lisp with type
annotations), but keep the parts that need to be flexible in a "soft" language
like an embedded Lua, Python, or Scheme, etc. _You don't have to use just one
language._

<http://c2.com/cgi/wiki?AlternateHardAndSoftLayers>

------
bayareaguy
_Larry Wall's epic Programming is Hard, Let's Go Scripting attempts to survey
the scripting landscape and identify commonalities._

I would hardly call it an "epic". To the contrary people I spoke with who saw
his state of the onion keynote that year said that unlike his prior
presentations (which were often entertaining) that one was a disappointment
especially considering the state of Perl at the time.

------
omouse
Why are we continuing to have the same old conversations about these things?

So-called scripting languages were discussed a decade or so ago.

