The art of programming Updated 2025-07-16
Big goals:
- the pursuit of AGI
- physics simulations, including scientific visualization software
- formalization of mathematics
Build automation Updated 2025-07-16
Compiler Updated 2025-07-16
Computer-aided design Updated 2025-07-16
Graphics software Updated 2025-07-16
Computer program Updated 2025-07-16
Computer security Updated 2025-07-16
As mentioned at Section "Computer security researcher", Ciro Santilli really tends to like people from this area.
Also, the type of programming Ciro used to do, systems programming, is particularly useful to security researchers, e.g. Linux Kernel Module Cheat.
Computer user-interface Updated 2025-07-16
Data compression Updated 2025-07-16
Database Updated 2025-07-16
File manager Updated 2025-07-16
Ciro Santilli used to use file managers in the past.
But he finally converted to a shell
cd
aliases that auto-ls
: github.com/cirosantilli/dotfiles/blob/a51bcc324f0cff0eddd4c3bb8654ec223a0adb7b/home/.bashrc#L1058 File sharing Updated 2025-07-16
Game engine Updated 2025-07-16
Geographic information system Updated 2025-07-16
Integrated development environment Updated 2025-07-16
IDEs are absolutely essential for developing complex software.
The funny thing is that you don't notice this until someone shows it to you. But once you see it, there is not turning back, just like Steve Jobs customers don't know what they want quote.
Unfortunately, after the Fall of Eclipse (archive), the IDE landscape in 2019 is horrible and split between:
Programmers of the world: unite! Focus on one IDE, and make it work for all languages and all build systems. Give it all the features that Eclipse has, but none of the bugginess. Work with top project to make sure the IDE works for all top projects.
Projects of the world: support one IDE, with in-tree configuration. Complex integration is often required between the IDE and the build system, and successful projects must to that once for all developers. Either do this, or watch you complex project wither away.
Build tool maintainers: make it possible for IDEs to support your tool! E.g., implement JSON Compilation Database output so that IDEs can read the exact compiler commands from that, in order to automatically determine how files should be parsed! Or better, just use libllvm in your IDE itself as the main parser.
Ciro is evaluating some IDEs at: github.com/cirosantilli/ide-test-projects
Killer application Updated 2025-07-16
Memory management Updated 2025-07-16
Garbage collection (computer science) Updated 2025-07-16
Messaging software Updated 2025-07-16
Multimedia software Updated 2025-07-16