3 ms·
> Unfortunately high-quality bundling into executables just isn’t a focus of Python (nor of any other high-level language) Wouldn't Dart's [1] and Go's executa
by serial_dev 5y ago
> Unfortunately high-quality bundling into executables just isn’t a focus of Python (nor of any other high-level language)
Wouldn't Dart's [1] and Go's executable support qualify as such (high levels languages and good executable support)?
For example, Sass is also using now Dart [2].
[1] https://dart.dev/tools/dart-compile https://dart.dev/tools/dart-compile
[2] https://sass-lang.com/dart-sass https://sass-lang.com/dart-sass
- moffkalast 5y agoLet me know once dart or go can run a wide ecosystem of libraries and middleware that apply to almost any situation. There's a reason people still use languages like C++, Python, and Java despite them being objectively bad in some respects. Without mainstream adoption you've got a chicken and the egg problem.
- grey-area 5y agoSure, here's your reminder that Go supports a wide ecosystem of libraries and middleware that apply to almost any situation.
- moffkalast 5y agoI think you're missing my point here. Let's say you're given a pytorch model. You can either run it with native python or grab the golang bindings that are used by 5 people, and if you get stuck there, god help you. You'll be hitting obscure bugs in no time. Even if something officially supports multiple languages, the obscure ones will be usually get inferiorly implemented bindings just because they're not used as much and will consequently not be as tested and as patched as the main ones. It's unfortunate but that's life I guess.
- chrisseaton 5y ago> I think you're missing my point here. Let's say you're given a PyTorch model. You can either run it with native python or grab the golang bindings that are used by 5 people, and if you get stuck there, god help you. You'll be hitting obscure bugs in no time. To use a Python-specific framework you're better off using Python. Well duh.
- quietbritishjim 5y agoPytorch, despite the name, is really a C++ library with well developed Python bindings. There's certainly nothing in principle about it that's Python specific.
- chrisseaton 5y agoPyTorch is not a Python binding into a monolithic C++ framework.
- joconde 5y agoPyTorch's C++ API is experimental and doesn't have feature parity. PyTorch is a Python lib that heavily uses C++ extensions, but I don't think it has ever been a C++ library.
- elcritch 5y agoThat’s one thing I like about Nim. It can compile to C++ and so can directly wrap C++ code. While Nim’s ecosystem is small it’s easy enough to wrap most any C/C++ library. It’s great for OpenCV. Some folks have been updating direct PyTorch C++ api (1)! 1: https://github.com/SciNim/flambeau https://github.com/SciNim/flambeau
- korijn 5y agoThese languages face the same challenges as python do once you look beyond compiling pure-<language> to executables. This common misconception is beyond frustrating to constantly have to deal with in these arguments.
- throwaway894345 5y agoI haven't used Dart, but I have 15 years of experience with Python and 10 years with Go. Go absolutely solves many of Python's problems including performance, single-native-binary compilation, dependency management, a lackluster-at-best static typing system, and many others. If you're an experienced Python developer, then you're used to announcements that promise a lot and utterly fail to deliver (consider all of the different package management "solutions", alternative runtimes, etc), but Go really does what it says on the tin.
- ViViDboarder 5y agoCould you provide an example of what you mean? It seems obvious that using a non-Go library with Go would be more complicated, but is that not also the case with C or C++? Do they have some special way of using a Go or Python library that Go does not reciprocate?
- korijn 5y agoThat's exactly the point. The common misconception that I am frustrated by, is that people compare their experience working on a pure-go project with pure-go dependencies to their experiences working on pure-python projects with non-python (e.g. c , or rust, or anything else really) dependencies. So to illustrate: if you were to work on a pure-python project with pure-python dependencies, existing tooling (such as pyinstaller, or nuitka, or others) can provide single binary executables, just as easily as you can in go.