4 ms·
Just a matter of setting the environment on the right compiler binary and retrieving dependencies Which is exactly how it works in Python. I'm pretty sure too
by icebraining 8y ago
Just a matter of setting the environment on the right compiler binary and retrieving dependencies
Which is exactly how it works in Python.
I'm pretty sure too I'll very quickly run into dependencies hell by picking randoms ruby/python programs. Just take a look at that SO question:
That SO question is about a tool for "setting the environment on the right compiler binary and retrieving dependencies". But you can also do it manually just fine; that's how I usually did it, in fact. Just retrieve the dependencies to a directory and call Python with PYTHONPATH set to it.
Pyenv is essentially the same as Go's new modules tool, it's just not called through the same binary as the interpreter/compiler.
Interpreted languages have their uses, of course, but there's a clear difference in both ease of deployment and development between the realms of interpreted languages (Ruby/Python/PHP/etc.), VM/IL/JIT based languages (JVM/.NET/etc.) and 'plain old' compiler based languages (C/C++/Rust/Go/etc.).
Yes; with Python, you can both run directly from source without wasting time compiling after each change, or you can produce a standalone binary (dependent only on libc) for distribution, using a tool like PyInstaller. Plain old compiled based languages are much more limited.
- bpizzi 8y ago> Yes; with Python, you can both run directly from source without wasting time compiling after each change As I said, interpreted languages have their uses, of course. My initial point was about delivery to end users.
- icebraining 8y agoAnd my point, which you cutoff early, is that with Python you can have both.
- bpizzi 8y agoYes, you can have everything in every language. After all it's turtles all the way down. What makes us successful as software engineers, in the end (and IMHO), is the efficiency level at which we reach our goals. To my eyes, when deliverability is the goal, then a language where native (cross)compilation is first class citizen is the most efficient path. But don't get me wrong, Python is really great and still a good choice for that scenario (I'm thinking of dropbox, for ex).
- ric2b 8y agoBut setting up a build system is a tiny part of time it takes to finish a project, so why would it be a major factor when choosing a language?
- bpizzi 8y agoMainly because I currently work on long term projects, building entreprise grading systems. Here you want simple, dumb technologies for which you'll still be able to put up build OS in the years to go.