Live data from Hacker News

Three virtues of a great programmer

thethreevirtues.com

121–130 of 141 posts

Re: Three virtues of a great programmer

#121
post #59
post #47

Earlier quoted context omitted.

Yes, but that is not what the word hubris means. It means pride in the seven deadly sins sense. The pride that comes before a fall. Hubris would not mean working hard to reduce the scope for criticism. It would mean not accepting valid criticism because you think you are better than the critics. He could have just used the word "pride" (which is far broader and has positive meanings too) instead. In some ways "ambiti…

Ambition might stand out in the same list as laziness. Plus I'd be reticent to tell programmers to "be more ambitious!" - I see greenhorns esp just trying to do too damn much at once. In the context of "code that is going to be reviewed" maybe even "vanity" might have been closer to what he was getting at? (did you even RUN this?) Except us old neck beards obviously don't care about how WE look ;)} - just how our cod…

Or just "pride" and then an explanation.

Using a word and then redefining it seems very humpty dumpty "a word means what I want it to mean"

Re: Three virtues of a great programmer

#122

Earlier quoted context omitted.

And then, python.

I love Python, but basically 96% of Python code and developers absolutely suck at everything, I'm fixing a shit python codebase right now. It's like a language which people love to use to write shit code.

Python has become my goto for anything more complicated than a 3 line bash script, but not so complex it need multiple files to logically separate the code. Argparse isn't perfect, but it lets you get 90% of the way to a nice functional argument parsing system, with auto-generated help output that mostly doesn't suck. It's also built in so I can rely on it being anywhere python is already installed. And python is ubiquitous enough in default installs now I can pretty much rely on it being present as much as I can rely on bash being present.

As a result, every command line bit of glue code I've written for the last decade or so has been in python. At a certain point, it does start to get unwieldy and you can indeed write some awful code in it, but then again, I've seen some pretty awful bash scripts too.

My favorite trick is the fact that you can tell python to

Re: Three virtues of a great programmer

#123
post #81

Laziness, Impatience, and Hubris were especially clear/obvious in Perl at the time. Perl was a gazillion times more powerful than Bourne and C-shell (including all the Unix shell tools like `awk`), much more rapid than working in C, incredibly terse (perhaps too much so), and also portable (to all the oddball systems you might have). And the purposes to which Perl was put were often to automate things you'd been doin…

And then, python.

I'd say rather - ruby.

Ruby has the syntactic power to write stuff very succintly, lot of good apis (and some crappy too), had since its inception a good repl which perl always ignored..

There was a time, just before the rails boom, when ruby had a lot of traction in admins and that-era-devops circles

Re: Three virtues of a great programmer

#125
post #119

Earlier quoted context omitted.

I love Python, but basically 96% of Python code and developers absolutely suck at everything, I'm fixing a shit python codebase right now. It's like a language which people love to use to write shit code.

It's the same as in Visual Basic: those who request programming languages for dummies, they have a tendency not to be the brightest software developers in the toolbox.

Visual Basic as a language is just C# for people who want to type more to do the same thing.

Visual Basic as a tool for building Windows programs with GUIs was pretty hard to beat though.

Maybe there are tools that churn out fully-polished react just as easily nowadays, but I wrote a janky little data visualization app in 2 hours at my internship and they ended up using it for almost 15 years.

Re: Three virtues of a great programmer

#126
post #81

Laziness, Impatience, and Hubris were especially clear/obvious in Perl at the time. Perl was a gazillion times more powerful than Bourne and C-shell (including all the Unix shell tools like `awk`), much more rapid than working in C, incredibly terse (perhaps too much so), and also portable (to all the oddball systems you might have). And the purposes to which Perl was put were often to automate things you'd been doin…

'all the unix tools like awk...'

Not ad-hominem but where were you 95-2006 because Gawk, Sed and Burne shell were the answer to read only perl scripts. That is one of the reasons Perl is basically no longer used: it was used without discipline.

There was actually a progressive mode amongst those systems programmers I knew who knew what they were doing at the time.

* bash + sed for the easy stuff * bash + gawk or just gawk for the ETL stuff * TCL for systems glue + swig * C when you are bespoke or need performance

Perl was great in theory but I cringed every time I saw a script.

Re: Three virtues of a great programmer

#127

Earlier quoted context omitted.

I love Python, but basically 96% of Python code and developers absolutely suck at everything, I'm fixing a shit python codebase right now. It's like a language which people love to use to write shit code.

Python has become my goto for anything more complicated than a 3 line bash script, but not so complex it need multiple files to logically separate the code. Argparse isn't perfect, but it lets you get 90% of the way to a nice functional argument parsing system, with auto-generated help output that mostly doesn't suck. It's also built in so I can rely on it being anywhere python is already installed. And python is ubi…

It's evolution. I like Python, it gets love and support. And it's all about the data structures - really. With python all I have to do is figure out the data - the rich set of OO, functional or imperative approaches and APIs does the rest.

Re: Three virtues of a great programmer

#128
post #81

Laziness, Impatience, and Hubris were especially clear/obvious in Perl at the time. Perl was a gazillion times more powerful than Bourne and C-shell (including all the Unix shell tools like `awk`), much more rapid than working in C, incredibly terse (perhaps too much so), and also portable (to all the oddball systems you might have). And the purposes to which Perl was put were often to automate things you'd been doin…

'all the unix tools like awk...' Not ad-hominem but where were you 95-2006 because Gawk, Sed and Burne shell were the answer to read only perl scripts. That is one of the reasons Perl is basically no longer used: it was used without discipline. There was actually a progressive mode amongst those systems programmers I knew who knew what they were doing at the time. * bash + sed for the easy stuff * bash + gawk or just…

Agreed, Perl scripts were often write-only, especially when people get cute with the shorthands.

At the same time, it is rare for me to see a Bourne/Bash script without obvious serious defects in it.

(Many people don't understand the shell script textual substitution evaluation model at all. And even those people who do, the model gets very hard to reason about as soon as you try to do some data value handling that's absolutely trivial in most high-level languages.)

Re: Three virtues of a great programmer

#130
post #14

I've never really liked his inclusion of hubris here. Hubris is often defined as unjustified arrogance. Justified confidence, even if you're a jerk about it, was never the fatal flaw of a Greek hero. So I've always substituted arrogance for hubris: the belief that you better understand, and can better address, the requirements than any off-the-shelf library/program/ecosystem.

He gives his meaning for hubris. Seems silly to disagree based on a different definition that he's not using.
Post reply on HN