Python
Last updated: Oct 28, 2026
Rationale
Python is the primary back-end programming language of Fluid Attacks.
These are the primary reasons why Fluid Attacks selected it:
- It is open source.
- It is a high-level programming language that is easier to understand than most other languages.
- It has a large community that supports thousands of libraries. Thus, it is very flexible.
- It has a large market. Thus, Fluid Attacks can easily find developers with experience in it.
- It supports static typing only with an extension, not as a part of the language. Static typing helps with maintainability, clarity, and debugging.
- It is an interpreted language. Thus, compilation before execution is not necessary, which saves time.
Alternatives
Fluid Attacks examines these languages:
Go and TypeScript are better than Python in some cases, but Fluid Attacks does not use them for back-end components at this time, for these reasons: (a) New languages make the work of developers harder, because they must learn those languages, and the cognitive complexity increases. (b) More languages make the stack more complex. (c) Technical debt (for example, the migration of a component from one language to a different language) is not an easy task.
Go
- It is open source.
- Its syntax is not as easy as the Python syntax, but the difference is small.
- It is a modern programming language. Thus, its community continues to become larger, but it is not as large as the Python community.
- Its market becomes larger, and the number of companies and developers that use it increases.
- Because it became popular quickly, it can be the Python of the future.
- It is a compiled language. Thus, compilation before execution is necessary, which uses more time. But it also increases the source code quality, because it validates many items that interpreted languages like Python do not validate.
- It is much better than Python for dependency management and environment configuration.
- It supports self-contained binaries, which make the distribution of applications for any platform easy.
- It has built-in async support, ideal for intensive I/O applications.
- It has satisfactory multi-processing support, ideal for CPU-intensive applications.
Go can be a very good alternative for almost all the components that Fluid Attacks builds in Python at this time. It gives a balance between modernity, accessibility, and high-quality software.
TypeScript
- It is open source.
- Its syntax is not as easy as the Python syntax, but the difference is small.
- Like Python, it has a large community, which makes it very flexible.
- It also has a large market. Thus, it is easy to find developers.
- Its static typing support is much better than the Python support.
- It is a compiled language (transpiled to JavaScript), but Python is interpreted. Compilation improves the correctness before execution.
- It is much better than Python for dependency management and environment configuration.
- It has built-in async support, ideal for intensive I/O applications.
- It is the second most-used language of Fluid Attacks. Thus, if Fluid Attacks migrates components to TypeScript, the number of languages that it supports decreases (less complexity). The cognitive load on developers also decreases.
TypeScript can be a very good alternative for components that are not CPU-intensive, for example:
- Integrates Back
- Forces
- Observes ETLs
- Melts
Rust
- It is open source.
- It has a much more complex syntax than Python.
- It is a modern programming language. Thus, its community continues to become larger, but it is not as large as the Python community.
- It has a small market. Thus, it is much harder to find experienced developers.
- It is one of the most reliable programming languages at this time. It is memory-safe, has very powerful static typing, and lets developers write very maintainable and reliable applications for the long term.
- It is a compiled language. Thus, compilation before execution is necessary, which uses more time. But it also increases the source code quality, because it validates many items that interpreted languages like Python do not validate.
- It is much better than Python for dependency management and environment configuration.
- It supports self-contained binaries, which make the distribution of applications for any platform easy.
- It is one of the fastest programming languages on the market.
After this evaluation, Fluid Attacks started to use Rust for CPU-intensive components. For details, read Rust.
Usage
These components use Python:
- Integrates Back
- Skims
- Sorts
- Forces
- Observes ETLs
- Melts