Some Software Patterns That I Don't Like

2026-06

Traceback (most recent call last):
    File "/usr/bin/http", line 7, in <module>
    sys.exit(main())
            ~~~~^^
    File "/usr/lib/python3.14/site-packages/httpie/__main__.py", line 9, in main
    exit_status = main()
    File "/usr/lib/python3.14/site-packages/httpie/core.py", line 162, in main
    return raw_main(
        parser=parser,
    ...<2 lines>...
        env=env
    )
    File "/usr/lib/python3.14/site-packages/httpie/core.py", line 77, in raw_main
    parsed_args = parser.parse_args(
        args=args,
        env=env,
    )
    File "/usr/lib/python3.14/site-packages/httpie/cli/argparser.py", line 190, in parse_args
    self._guess_method()
    ~~~~~~~~~~~~~~~~~~^^
    File "/usr/lib/python3.14/site-packages/httpie/cli/argparser.py", line 430, in _guess_method
    assert not self.args.request_items
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError
What the hell happened? I can make an educated guess that the `--json` flag is used in the wrong position. But there's nothing in the error message that would tell me that! Instead I get a Traceback from Python which is less than useless to me as a user. It may be useful to the _developer_ of the tool but to the user of the tool, it is just confusing. In general, I feel a good rule of thumb is "the user should not be able to guess which programming language was used to implement the application they are using". (This does not apply to software libraries, frameworks, etc., of course.)