Here I’m listing most of the software I’m using for my software developpements.
I want to thank here all the people who worked on on great projects so I’m able to use them for making my own stuff.
IDE
More simpler editor sometimes:
Source diff:
Compilers
Debugger
- gdb
- nemiver (a lighweight GTK GUI for GBB)
- cgdb (a lighweight CURSES GUI for GDB)
- valgrind (to debug memory accessed)
- trace (to trace syscalls)
Profiling
- valgrind (to know costs of functions)
- kcacgrind (to display the valgrind cost profile)
- intel advisor (for cpu deep optim)
- intel vtune amplifier (for cpu deep optim)
- sysprof (The nvidia cuda profiler) (for GPU profiling)
- malt (for memory allocations profiling)
- numaprof (for memory NUMA profiling)
- perf
Look on assembly
Look on libraries & linking
Build
Libraries often used
C/C++:
- qt (for GUI)
- GoogleTest + GoogleMock (for unit tests)
- cairo
C/C++/Fortran & HPC:
Memory allocators:
Python:
- pytest (for unit tsets)
- tqdm (progress bars)
- flask
- flask-restful
- flask-sqlalchemy
- fastapi
NodeJS:
Web:
OS
- gentoo (User since a very long time now, I’m fan).
- debian
- ubuntu
- redhat (professionally, but don’t like it too much).
VM
Forge
- github
- gitlab (no some self hosting or in my companies or labs)
- bitbucket (in companies I worked for)
- jira (in companies I worked for)
- gitlist (for some readonly archived repos)
Versioning
- git
- tig (git browser in curses)
- gitg (git short GUI)
- kdiff3 (solve conflicts)
- VSCode (to solve conflicts)
I used CVS & SVN in the past, but long time ago now.
Making my UML class diagrams
Documentation
- doxygen
- sphinx
- inkscape (draw schemas)
- antidote (spell checking the doc…. old version (9) which supports linux).