3 ms·
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
by jcelerier 5y ago
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 ?
- mkl95 5y agoIf 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.
- jcelerier 5y ago> 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).
- mkl95 5y agoImo 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.