- implement your work intensive logic with the adapted tools
- glue everything together with Python
- implement your work intensive logic with the adapted tools
- glue everything together with Python
Macros are less of an issue with modern IDEs, and that is hardly any different from any other language with macro support, including Scala.
It's a flexible language, but I wouldn't say bloated - there actually aren't so many language-level features, but the features there are are very general. Some parts are simpler, e.g. in Python I struggle to remember which method you have to define to overload the * operator, whereas in Scala you just define a method called * . But I'd agree that there are a bunch of overcomplicated frameworks that can be pretty confusing - it's not always an easy language to get started with. But I stand by the statement that you can write Python-like code in it, at least once you know what you're doing.
> Python in most ML frameworks is just a frontend, other beefy stuff gets processed by c++ or c
Right, and that introduces a bunch of overhead and possibilities for weird errors - e.g. when you hit a bug in a library you pretty much have to learn how to debug C. In Python the benefits are worth it, but there's undeniably an overhead - if you could use the same language top-to-bottom but still have all the nice things Python gives you, that would be a much nicer way to work.
It's a pain in the ass, and there is no need to pretend that it's great just because Python sucks (performance wise).
One of the strength of Python is its capacity to integrate with anything. We never said it was the only language with that strength.
With Python comes an ecosystem, another language another ecosystem. Choose the tool that fits your need.
Alternatives abound.
Python seems to have won.