This depends on personal preferences but for learning purposes I prefer Python. I'd define a scope for starters and work through each item and then add more support from there on, eg:
  • generate memoic seedphrase (bip-39)
  • only support HD wallet (bip-32)
  • only support segwit addresses (p2wpkh, p2wsh)
  • query Bitcoin RPC for data (balances and nr of tx confirmations)
I haven't checked if there's more JS support for Bitcoin so not sure if it would be easier or not. Might be a good section for bitcoinpy.dev to include an example how to build a light cli python wallet. :)
Forgot to add, Electrum wallet is written in Python: https://github.com/spesmilo/electrum