Surely in any language you would have to learn tooling ? What happens when your user report performance problems on Python, Java or JS programs, you surely use some profiling tool there, no ?
If you use Python and JS chances are you do some form of web development, where most performance issues have to do with I/O, and most of those I/O issues are caused by bad queries. It ultimately comes down to using application performance monitoring software and analyzing query plans. Memory issues are an oddity and are usually caused by users doing stuff like uploading gigantic files.
> using application performance monitoring software and analyzing query plans.
soo... tooling ? how is that different from using valgrind ? it's literally one click in my IDE to use it and it will show e.g. the time spent at each line of code directly in it.
> If you use Python and JS chances are you do some form of web development, where most performance issues have to do with I/O, and most of those I/O issues are caused by bad queries.
I don't know about this, what I know is that multiple times in my career I had people come at me with python software that was slow, and transliterating them almost line by line to C++ made them much, much, much faster.
Also I have all these apps on my system which apparently depend on python, none of them being a web app:
Name : 3dsconv
Name : anydesk-bin
Name : arandr
Name : asciidoc
Name : bind
Name : binwalk
Name : bpytop
Name : breezy
Name : carla
Name : ceph-libs
Name : cmake-format
Name : cppcheck
Name : cppman-git
Name : cython
Name : deluge
Name : deluge-gtk
Name : diffuse
Name : distcc
Name : fio
Name : fontforge
Name : fvwm
Name : fwupd
Name : gconf
Name : gcovr
Name : gdb
Name : gdb-common
Name : gdown
Name : glusterfs
Name : gnome-tweaks
Name : gobject-introspection
Name : gtk-doc
Name : i3-workspace-groups-git
Name : ibus
Name : inkscape
Name : iotop
Name : ipython
Name : itstool
Name : jack_mixer
Name : kajongg
Name : kig
Name : kitty
Name : kitty-shell-integration
Name : libffado
Name : libixion
Name : libopenshot
Name : libreoffice-fresh
Name : libsearpc
Name : libsigrokdecode
Name : lldb
Name : mallard-ducktype
Name : meld
Name : mercurial
Name : meson
Name : mono
Name : mypy
Name : namcap
Name : node-gyp
Name : nuitka
Name : openshot
Name : pahole
Name : paperwork
Name : pax-utils
Name : pcsclite
Name : perf
Name : ps_mem
Name : pyalpm
Name : pyside2
Name : qemu-tools
Name : reflector
Name : repo
Name : rubber
Name : samba
Name : scons
Name : seafile
Name : setconf
Name : smbclient
Name : smem
Name : solaar
Name : speech-dispatcher
Name : tellico
Name : thefuck
Name : thonny
Name : torbrowser-launcher
Name : udiskie
Name : virtualbox
Name : yelp-tools
Name : youtube-dl
Name : yt-dlp
Name : zim
incidentally, my day to day experience definitely does not classify any of the software I actually use in the "fast and enjoyable" category, except zim and tellico. Like, just launched a couple that I had forgotten about: solaar, a GUI for configuring logitech mice, and thonny, a minimalistic IDE for arduinos, etc. and they take actually observable time to start, on a 1k€ CPU, which I really find to be entirely ridiculous (and made me remember why I don't use them more).
Imo the biggest difference is that in the Python / JS world you can be considered a senior developer at many respectable companies and still be clueless about tooling, optimization etc. Most shops (exceptions being places that do a lot of ETL, data processing...) are OK with clunky Python as long as it is not unusable. On the other hand if you are working with C / C++ a more active approach is needed if you don't want your software to blow up.