My favorite question to the programming language expert


[I am fairly certain this idea came from my discussions with Mahmoud]

The Greeks while trying to answer the all important question “Who’s God?” figured out it’s much easier to answer the question - “Who’s not God?”. Hence was born Apophatic theology or via negativa. I often use this line of thinking as my personal BS-meter.

Here’s an example.

“Expert” is an overloaded term. Overestimating one’s own capacity at something is so well documented that there’s an entire field of psychology dedicated to this particular cognitive bias. How do you know when someone is in fact an expert in (say) programming language? Apply via negativa. You cannot answer the question if someone is an expert, but you can (to reasonable extent) answer if someone isn’t.

Here’s my favorite question - “Tell me what you hate/don’t like about the programming language?”. These are things I look out for:

  1. A real expert isn’t stumped by the question. Neither is he/she surprised. This is most likely something he/she has given serious thought into.
  2. Experts are generally opinionated. The correct stuff we are looking for is not just being opinionated for the sake of it, but being respectably opinionated. What does that mean? It means you can back your opinion with reasons and in some cases cold data. You understand the underlying assumptions that guide your opinion (if any) and are willing to change your opinion if presented with the correct logic/data.
  3. Every language has it’s weaknesses. That does not necessarily make the language bad.

Some concrete examples.

C++

  1. Exception handling. Google style guide explicitly disallows exceptions.
  2. Reference syntax. I personally don’t like the fact that you can’t figure out by looking at the caller code if the variable is passed by reference or not. Explicit is better than implicit

Python.

  1. Packaging. This will need another long post.
  2. Slowness. Again needs another longer post.

Gopalan Priyaranjan

Experienced Software Developer

8y

The expert term itself is overloaded ... Is it somebody who can guide all routine tasks in the domain with ease and accuracy? Or is it somebody who can solve the difficult and borderline cases with an accuracy that normal practicing professionals cannot? One will get different perceptions from each of the two groups.

Like
Reply

Google disallow exceptions for legacy reasons and state that it would probably be different if they started from scratch

Like
Reply

I would agree with the author, Experts are opinionated. If you think everything about a technology is "just right" then you haven't spent enough time reflecting on your technology and the way that you use it.

Like
Reply
John Carter

Senior Design Engineer at Tait Radio Communications

9y

This is one of the very notable things about D. A lot of the talks available on the subject are given by Andrei Alexandrescu... he seems to.... a) Make a point of describing the Good and the Bad points of the language and... b) Work in the background like a daemon fixing the bad ones. All this is doubly notable as Andrei literally wrote the book on C++ template meta-programming, devising some of the more insanely cunning techniques to do so.... and then said this is all way too hard and went off and started contributing to D.

George Jansen

Senior Systems Analyst at AFL

9y

Surely that should be "apophatic' theology.

Like
Reply

To view or add a comment, sign in

Insights from the community

Explore topics