5 ms·
I think that's one of the strength of Python: - implement your work intensive logic with the adapted tools - glue everything together with Python
by linkdd 6y ago
I think that's one of the strength of Python:
- implement your work intensive logic with the adapted tools
- glue everything together with Python
- lmm 6y agoI used to think that until I found Scala. It's easier than writing Python - I can write pretty much the same thing as I would in Python, but I have a more complete IDE and I can ask it what the types of things are. I'd never want to use a Java/C++-style language for exploratory programming, but it turns out not all reasonable-performance languages are like that.
- fxtentacle 6y agoI actually do lots of exploration with C++ and ReSharper. There's excellent C++ libraries for everything these days. And cmake has made them easy to install.
- lmm 6y agoI really don't see it. No first-class REPL and REPLs/IDEs will always be limited due to the ecosystem relying on macros; no proper dependency manager and certainly nothing comparable to maven central/CPAN/etc. And the language is missing even the most basic support for sum types, making its type system painfully restrictive.
- pjmlp 6y agoconan and vcpkg are the proper dependency management. Macros are less of an issue with modern IDEs, and that is hardly any different from any other language with macro support, including Scala.
- gilbertmpanga12 6y agoI think you're trying to oversell here, Scala is bloated with lots of paradigms and lots of features. It's pretty hard to know what to use. Python in most ML frameworks is just a frontend, other beefy stuff gets processed by c++ or c
- lmm 6y ago> Scala is bloated with lots of paradigms and lots of features. It's pretty hard to know what to use. 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.
- pjmlp 6y agoExcept, there are several languages as dynamic as Python that don't need "adapted tools", because they also offer AOT/JIT compilers in the same package.
- tasubotadas 6y agoHow many times you've tried glueing C++/C code with Python? It's a pain in the ass, and there is no need to pretend that it's great just because Python sucks (performance wise).
- Nimitz14 6y agoEver heard of pybind11? It's easy as fuck.
- ummonk 6y agoHow is that a strength? Why should you need to implement the work intensive logic in one language and glue it together in another?
- evgen 6y agoThe standard reply to this that has been repeated over and over is that for 99.99999% of the people performing such a task they are not going to implement the work intensive logic, they are going to use a well-tested and well-supported library that is built and maintained by domain experts.
- pjmlp 6y agoWhich can have bindings to every language in existence, thus diminishing even more the role of Python.
- linkdd 6y agoWhy would it diminish the role of Python ? 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.
- evgen 6y agoGiven the choice between using library bindings in Python and similar bindings in C++ or Java, the world has voted with their feet. When it comes to easy to use glue languages, Python won.