
Teaching scripting postpones students discovering CS is not for them = Good - misham
http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2011-02.html#e2011-02-11T16_15_44.htm
======
russell
>> When they do discover that CS isn't for them, they will be stuck with the
ability to write scripts and analyze data.

>> With all due concern for not wasting students' time, this is a problem we
in CS should willingly accept.

Or, programming skills are good for you, even if you dont do it
professionally.

~~~
jarin
Or, you can learn programming skills without learning computer science.

~~~
arethuza
You can also work at a high level in CS research without doing any
programming.

~~~
al05
Depends what role obviously. If your doing research into compliers, or
programming language semantics or something then programming will be required.

------
T-hawk
In the business world, there's a significant distinction between a scripting
language or not: whether it needs a compiler. This is a very relevant and real
distinction for enterprise-scale applications and implementations.

Code being in a scripting language means that the "operations" data center
folks can tweak and poke it. Need an extra parameter passed in or a magic
constant changed? Just do it. But compiled code is no exaggeration often an
order of magnitude harder to maintain. A whole chain of change requests must
come into being, from whoever found the need back to a "developer" who has the
right tools and environment and access to the source and even knowledge of
what and where the source is. (We don't see that kind of problem at the scale
of a YC startup or a well-managed Google-size tech behemoth, but
organizational tech knowledge is a gigantic problem for companies whose
primary problem domain is not tech. Like say a bank or medical provider or
retailer.)

I've written significant amounts of code in SQL stored procedures when C#
(we're a Microsoft shop) would be a more appropriate platform, simply because
my company's culture is that SQL is accessible and open to the business
analysts and managers while C# really has a walled-fortress image. It grates
on my sensibilities but "scripting" really does save effort in the long run
simply thanks to greater transparency.

Back to the original article, it's really just saying that a scripting
language has lower barriers to entry and maintainability, which is absolutely
true.

~~~
gte910h
Python has a compiler. Runs every time you run python code.

I think you have it wrong there T-Hawk.

~~~
kalmi10
Python doesn't actually "compile" the code on each run. It only "recompiles"
when something changes.

~~~
gte910h
You are correct.

------
petercooper
Python and Ruby aren't really "scripting" languages in the modern sense of the
term: <http://en.wikipedia.org/wiki/Scripting_language#History> .. 10-20 years
ago, sure.

Calling them such does them a disservice. They're just as "general purpose" as
Java, say. The distinction made in this post seems to be more about the
problem domain and using a realistic language to tackle it rather than the
language itself.

~~~
iron_ball
True, but I see it as a defining characteristic of "scripting" languages that
they are great at quickly and easily automating everyday computing tasks...
Something you would be hard pressed to say about Java. But is there a term
that expresses this attribute without seeming to rule out others?

~~~
eru
Perhaps something about `dynamic languages'?

------
noahth
i've lately been espousing the opinion that colleges should add some scripting
and data manipulation to gen ed requirements in order to adequately prepare
students for the next generation of white-collar work.

then again, i barely remember a thing from my entry-level stats course.

~~~
alinajaf
This. My little sister is working at The Economist and will go to Princeton
next year to study Developmental Economics. She could work magic with the data
she can get from the kiva API or the UK government data website, but she has
no easy way to parse it other than nag me (who got a 3rd in CS from UCL) to
write a little script in ruby that does it for her.

~~~
adw
In part, this is what we're working on solving at Timetric; the skills gap
between people who understand the physical nature of data and people who have
the domain knowledge to tell you what it means.

------
palehose
If someone enjoys scripting but doesn't like CS, it is probably the CS
curriculum that should change.

~~~
kenjackson
What does scripting have to do with CS? Scripting is nice, but it has as much
to do with CS as running cable (OK, slightly more, but not by much).

~~~
randall
Yeah, I've become acutely aware that I'm a product guy. I don't dream in
algorithms. Scripting is really good for me, but CS is something I don't like.
Scripting solves a problem for me the same way a camera solves a problem for a
photographer. For most people, they'll be able to remember the images they
produce, and they won't try to create something that means something the same
way a photographer would. I'm similar. I create technology that solves an
immediate problem for me, rather than some technological piece of mastery.

~~~
jessedhillon
I don't mean to offend you but it sounds like you might not be a great
programmer, although you still enjoy the idea of making stuff that's useful
(even if it's not written well or a particularly challenging thing to do from
a CS perspective).

~~~
fuzzmeister
This sentiment annoys the hell out of me. There are many great programmers
(mainly in the web world) that rarely work with algorithms or other
traditional CS topics. Just because he says he's product-focused doesn't mean
that his code isn't well written.

~~~
jessedhillon
If it doesn't solve any challenging or interesting problems, in what sense is
it well written then? In other words if it's easy to write, it's easy to write
well. (I hope we are talking about something more substantial than consistent
braces and spacing style here.) I have a difficult time imagining that OP
enjoys doing some of the more difficult things that are part of the
programming universe: seems like he is interested in applying just enough
script to Make It Go.

You mentioned web development: I'm sorry but the majority of what's called web
development is writing WordPress themes or Drupal modules, and most of this
work is leveraging some API in tedious and uninteresting ways. Create this
content type, do this when you save it, make this form, validate it like that,
blah blah. A person who writes a plugin in WordPress to do the Nth most
routine thing in the world (say, list posts in a particular order, for
example) -- something that I have to do from time to time, just like anyone
else who writes web-based software -- _is merely connecting tubes_. (Something
I wrote elsewhere.)

The point is this: _to be a programmer means a specific thing, and it means
more than stringing together statements in a language._

My mom who can write `SUM(A1:A10)` in Excel is not a programmer, even though
she can do some fairly complex things in a high-level language.

And most kinds of contract web dev out there is writing the exact same
functionality for the Nth time (or integrating someone else's plugin for the
Nth time), by typing out the correct sequence of API calls against a commodity
CMS. Or the frontend equivalent: embedding some off-the-shelf Javascript
slideshow or a Facebook like button.

If this is programming then we have a linguistic deficiency, because it's not
even in the same category as the kind of work that goes on at the most
innovative startups.

~~~
IsaacL
" I'm sorry but the majority of what's called web development is writing
WordPress themes or Drupal modules, and most of this work is leveraging some
API in tedious and uninteresting ways. Create this content type, do this when
you save it, make this form, validate it like that, blah blah. "

You're correct that lots of web development is simple. However, a very large
assemblage of simple components is not simple, and lots of web apps are very
large. For example: one of the first web projects I worked on was a game
written in PHP and MySQL. At first, it went much faster than expected, as
writing a basic CRUD app in PHP is very simple. However, as it grew, it turned
into an unmaintainable mess, and I got my first lesson in some basic coding
standards.

My friend had a good distinction - there's "difficult" projects and
"complicated" projects. Something that is difficult might require some clever
algorithms and maybe more time spent with a pen and paper than at the
keyboard/ Something that is complicated requires a lot of coding, and thus a
lot of effort spent in organising that code.

~~~
jessedhillon
That distinction between difficult and complicated is great, thanks for
sharing that. My answer looks arrogant by comparison, because the distinction
you shared allows both types of folks to be called programmers.

------
tesseract
Why the "scripting" qualifier? Arguably if you are writing code with the
intent that it will ever actually be executed, that's not CS, in the same way
that designing a car is not physics. So what, though? What something is called
ought to have little to no bearing on whether it's deemed useful, or worthy of
being taught.

