Hacker News new | ask | show | jobs
by alexhill 4088 days ago
This is just speculation, but since as you rightly point out the space is optional in many programming languages, I suspect the existence of the no-space convention simply reflects that a majority of programmers, over the last however many decades, have preferred to read and write code that way.

There are two factors involved: I reckon most people (a) see a function call as a single logical unit and write it as such and (b) feel compelled to follow conventions. The result is that once there's a clear majority, most code will converge on that style. Clearly you do neither :)

Personally I just try to adopt the conventions of the language or ecosystem I'm working in as closely as possible and try not to let my personal leanings get in the way. The most important thing is that others can easily read my code.

I would love to write Python like this, but sadly for me PEP8 and society frown upon it:

  some_dict = {'a_key':       an_expression,
               'another_key': another_expression}
1 comments

>"I would love to write Python like this, but sadly for me PEP8 and society frown upon it:"

Indeed, that is one of those "big argument" type of minor formatting discussions. Despite my OCD, it doesn't bother me, and in fact, I prefer formatting them as below:

    some_dict = {
      'a_key': an_expression,
      'another_key': another_expression,
    }
Question, if you add another entry, and it throws off the formatting, do you go up and change all the other entries prior so they all align? Because that does bring up questions about code-commits. I.e. you're touching code that hasn't changed.

    some_dict = {
      'a_key': an_expression,
      'another_key': another_expression,
      'a_really_long_key_that_throws_you_off': expression,
    }
As opposed to:

    some_dict = {'a_key':                                 an_expression,
                 'another_key':                           another_expression,
                 'a_really_long_key_that_throws_you_off': expression}
I expect that's why the current convention was adopted, and another reason I'm happy to do it that way. I don't ever actually format my code like my example - but if I'd learned Python from first principles in a cave, I probably would. :)

Would be cool if IDEs could do this for you at the display level without touching the underlying code!