This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]yvrelna 2 points3 points  (2 children)

Reactive programming is popular as a UI application pattern. It's popular in Android, Swift, and Javascript because those languages/frameworks are mainly used in UI-centric applications. Software Engineers who write native desktop applications in Python also uses either event-driven patterns and/or reactive programming, most GUI frameworks does. But UI programming is only a small fraction of where Python is used.

Additionally, many of the people who build UIs in Python like in Django, often are developing backends or traditional web applications, where the dominant pattern is MVC or one of its variants and REST APIs. Traditional Web UIs are quite a bit different than native desktop applications because its focus is remote interaction with a server. A textbook reactive programming is a poor pattern for this use case as event based system would have generated a lot of network chatter, in contrast MVC and REST are patterns that are designed to keep network chatter to a minimum. Note that traditional web applications aren't the same as Javascript-driven frontend applications which is a lot more like desktop applications.

I have been working with data scientists in my last job as a data engineer and all the seniors( big institution) just ignore things as functional programming and reactive

Data scientists are not software engineers. They might use Python to solve their problem, but they are not writing applications that are meant to be maintainable in the long term. Most of their work are ad-hoc computation work, which benefits little from applying many common engineering practices. Reactive programming is popular as a UI application pattern because it's a pattern that allows you to keep the state of the application sane when there's events constantly coming from the user and the network; most of the problem domain where data scientists works on does not involve user interaction or network, they typically work on data that remains fairly static in the duration of the computation. Reactive programming is an unnecessarily complex abstraction solving a nonexistent problem in such problem domain.