[Gllug] Dealing with "Word-Only" organisations

Nix nix at esperi.org.uk
Wed Nov 10 00:32:27 UTC 2010


On 9 Nov 2010, general stated:

> On 09/11/10 20:59, Nix wrote:
>> Excellent idea. It's a very different language from any you're likely to
>> learn anywhere else, with some superb ideas in it, so it ensures that
>> you learn at least two very different languages from different parts of
>> the language family tree.
>
> That's fine in theory but in practice, compared to the imperative coding 
> I was used and OO coding I was being introduced to I found ML so oblique 
> and practically useless as to be nothing but frustrating, plus the book 
> cost £50 I could ill afford at the time. I'm still not convinced it has 
> any use at all in the real world.

It's not: but that's not what universities are for. It does what it's
meant to (assuming you learn something more conventional as well), which
is to teach you a wide spread of the total domain of computer languages.
If you can learn ML and something conventional, nothing much is going to
give you trouble.

> I take issue with your other point too: "If you don't think learning 
> languages is a high joy, you shouldn't be writing code at all."
>
> Well that's a bit conceited.

Nah. Each language teaches you something new about how to think about
programming: if you don't learn them for fun, you're constraining your
abilities unnecessarily. I note a very strong correlation between people
who don't like learning languages and people who don't like keeping
their code neat and maintainable and whose code I thus have to clean up
or rewrite all the bloody time: call it *pride in craft*.

> I love coding but learning and relearning and relearning syntaxes and 
> grammars over and over again isn't my idea of fun. I'm an applied 

It's not almost automatic for you? Perhaps you haven't learnt enough
languages for it to get really fast: it gets easier and easier the more
languages you know, as you find more and more relationships between
them. I learnt enough Lua to be getting on with in two days, for
instance, with the main constraint being the speed I could read the
manual. And I don't consider that unusual.

> person, I like making things that do stuff. I can happily spend all day 
> creating algorithms and structures and protocols, having to learn new 
> languages is a royal pain in the arse as it can put weeks or months of 
> learning in between me having an idea and getting it up and running. 

Weeks or months?! To get good enough to write production code in a
new language, perhaps, but surely not to learn it. (Maybe we're using
'learn' to mean different things?)

> Besides, most languages are awful. The vast majority of them are only 
> created to gain an academic a doctorate (or if they're lucky a measure 

Hardly. Academic languages are so obscure that I hardly ever pay any
attention to them. Most academics seem in any case to be totally stuck
in a Haskell bubble, isolated from the world outside: the 'languages'
they come up with are endless variants on Haskell. I just ignore that on
the basis that Haskell is nearly incomprehensible and I'd rather learn
it when it isn't necessary to acquire a degree in advanced gibberish to
figure out how to do anything nontrivial in it. (ocaml is *so* much
easier.)

> of posterity) and are nowhere near complete enough to use in actual 
> application development.

I learn those for the hell of it sometimes, but it's true that things
like Cayenne aren't likely to be of general utility (not least because
Cayenne in particular is almost impossible to get working, stupid
academic depends-on-two-different-varieties-of-Haskell nonsense).

> The only languages I've ever enjoyed learning have been ones that 
> significantly increase my capabilities (and hence productivity) such as 
> Python or ones that really broaden the mind like Smalltalk. Most other 

Well, yes. That's the sort of thing I'm talking about.

> languages with their ugly brackets everywhere syntaxes, barren libraries 

If that's all you think Lisp is about you're missing the core of it:
macros and what you can do with them (which are intimately tied to the
lack-of-syntax parenthetic notation). Now *that* is mind-expanding.

(btw, Lisp programmers largely ignore the brackets and use indentation
like programmers everywhere else. The brackets are there, but they're no
more annoying than the semicolons in C. The editor matches them for
you.)

> and nasty workflows can jump in the sea for all I care. If I'd known at 

You see, I think that probably makes you a worse programmer than you'd
otherwise be. What matters about those languages isn't whether they're
directly useful: it's how they affect how you think about programming
*no matter what language you are using*. When I learnt Lisp, it made me
a better C programmer. When I learnt Lua, it made me a better Python
programmer and Lisp programmer. I even learnt something from SQL (mostly
how *not* to design languages, admittedly). Every language reflects on
every other in a myriad ways, and all are useful to learn. Languages
distantly related to any other you've learnt are slower to learn, but
often more valuable to learn for the same reason.

Your attitude is one I encounter a lot, that programming languages are
just a way to tell a computer what to do. This is very much not the
case. They're ways to communicate with other people and ways to express
algorithms first, and ways to instruct computers only secondarily.
Functional languages make this especially clear, but it's true of
everything, even assembler (hence Knuth's MIX/MMIX). (Indeed Lisp
started life as a mathematical notation, and became an actual computer
language on real hardware only once 'eval' was implemented.)

> the time that Soft Eng would be teaching me I would have signed up for 
> Comp Sci instead, I hear they got to learn useful languages things like 
> C and Java and ASM.

Not in my uni. Nor in any half-decent one, I'd hope.
-- 
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list