COBOL as a Programming Language

I worked with COBOL near the end of my last contract and found aspects of it fascinating compared to today's languages. Everything is about structures that map directly to the bits on disk, with fine grain control on precision and data types. But then the language reads as a series of macros where you don't have to remember the low level details: do this to this, put this here, if this do that.

It's also a terribly difficult language to parse because it was designed for ease of use by humans. This was at a time when programmers were thought of as translators that mainly converted human language to binary. There is an element of independence to COBOL that I wasn't expecting, and I imagine there was some resistance to it when it was first introduced. I didn't know Grace Hopper was behind COBOL until I was actually using it, but I wonder sometimes if the challenges she faced as a woman at that time influenced its design. It's probably the first language to really confront dogma in computer science.

I personally really enjoy learning about languages like Erlang and Lisp but they have an achilles heal that everybody is in real denial about. They are very difficult to read once they've been written. So most programmers scrap what they've written and start over. COBOL isn't like that. Even someone unfamiliar with computer science (all those business types who don't have time for this stuff) could read it and get a general understanding of what it's doing. The only other language I've used that surpasses COBOL in readability is Hypertalk, invented by Bill Atkinson in the 1980s. I look at some of the top languages and methodologies today, say Ruby and Angular.js and I wonder if we're racing down a rabbit hole. Conceptually what they are trying to do is admirable but they are starting to feel like dogma to me. How do they help the average person accomplish what they are trying to do? I've only seen the one interview with Grace Hopper on David Letterman but I have to wonder if she was a hacker in today's world what she would think of the current state of things.

Notes:

Comment captures what's interesting about it historically, how early programmers needed algorithms to handle all the bit-switching.

Folksonomies: history computer science

Taxonomies:
/technology and computing/programming languages (0.626436)
/science/computer science (0.437719)
/technology and computing/programming languages/c and c++ (0.272622)

Keywords:
Programming Language Comment (0.910989 (positive:0.658018)), Grace Hopper (0.894633 (positive:0.255819)), COBOL (0.892593 (negative:-0.050287)), terribly difficult language (0.889006 (negative:-0.350555)), fine grain control (0.872505 (positive:0.697572)), low level details (0.867324 (negative:-0.492476)), surpasses COBOL (0.723200 (positive:0.235616)), achilles heal (0.611779 (negative:-0.218250)), data types (0.603079 (positive:0.697572)), human language (0.598798 (neutral:0.000000)), real denial (0.597883 (negative:-0.218250)), average person (0.590891 (positive:0.381033)), David Letterman (0.590327 (positive:0.255819)), general understanding (0.579474 (positive:0.389677)), current state (0.576691 (negative:-0.201647)), rabbit hole (0.570313 (neutral:0.000000)), business types (0.570302 (neutral:0.000000)), programmers (0.518273 (neutral:0.000000)), time (0.469039 (negative:-0.307666)), languages (0.456830 (positive:0.448997)), dogma (0.447972 (negative:-0.520899)), science (0.406958 (negative:-0.414593)), readability (0.364584 (positive:0.235616)), bit-switching (0.360419 (neutral:0.000000)), macros (0.360134 (negative:-0.492476)), end (0.359987 (positive:0.477390)), contract (0.359930 (positive:0.477390)), aspects (0.359888 (positive:0.477390)), everybody (0.359667 (negative:-0.218250)), ease (0.358772 (negative:-0.350555))

Entities:
COBOL:OperatingSystem (0.796750 (positive:0.030205)), Grace Hopper:Person (0.483822 (negative:-0.131358)), Programming Language:FieldTerminology (0.326277 (positive:0.658018)), computer science:FieldTerminology (0.323843 (negative:-0.414593)), Bill Atkinson:Person (0.212217 (neutral:0.000000)), David Letterman:Person (0.211363 (positive:0.255819)), Hypertalk:Company (0.210137 (positive:0.235616))

Concepts:
Programming language (0.950517): dbpedia | freebase
Language (0.639565): dbpedia | freebase | opencyc
Computer (0.569702): dbpedia | freebase | opencyc
Type system (0.550626): dbpedia | freebase | yago
Algorithm (0.504645): dbpedia | freebase | opencyc
Grace Hopper (0.491117): website | dbpedia | freebase | yago
Compiler (0.476708): dbpedia | freebase | opencyc
Linguistics (0.452953): dbpedia | freebase | opencyc

 Grace Hopper (wikipedia.org)
Electronic/World Wide Web>Message Posted to a Newsgroup:  zackmorris, (08/31/2013), Grace Hopper (wikipedia.org), Retrieved on 2013-08-31
  • Source Material [news.ycombinator.com]
  • Folksonomies: computer science