5 ms·
Yes, but Rust is far from unique in this regard. Maybe I shouldn't be surprised that "written in language without onerous runtime and installation overhead" is
by colanderman 8y ago
Yes, but Rust is far from unique in this regard.
Maybe I shouldn't be surprised that "written in language without onerous runtime and installation overhead" is apparently now rare enough to be a selling point.
- wybiral 8y agoLanguages like Rust and Go are just really easy to cross-compile compared to working with lower level OS-dependent APIs in C or something. There's nothing inherently unique, they're just a good combo of features.
- saagarjha 8y ago> Languages like Rust and Go are just really easy to cross-compile compared to working with lower level OS-dependent APIs in C or something. You make it seem like C has no standard library. C is really easy to cross compile: you just add a -arch flag to your compiler frontend and, provided you're staying inside POSIX (which you should!) it should "just work".
- hsivonen 8y agoC's standard library is completely broken for text handling (depends on external locale instead of caller-specified locale) and on Windows broken for file system access if your paths contain non-ASCII. (At least until the latest dev version of Windows 10.) Rust has the best file system abstraction for exposing Windows file paths in a way that allows you to write common file path handling application code for Windows and *nix.
- colanderman 8y agoFor basic load/munge/save stuff (like CSV processing) the C standard library more than suffices, and is cross-platform. You don't need OS-dependent stuff (like POSIX) to do that. (I'm not arguing C vs. Rust though... just pointing out that "cross-platform" is a much more meaningful descriptor for a CLI tool than "in Rust". The latter just reads like noise to me.)
- jaipilot747 8y agoDo you know of any libraries in C that give me an easy way to manipulate tabular data by columns, like pandas does?
- petre 8y agoThere is miller. But it's a CLI tool, not s library. Maybe it comes bundled with a library? https://github.com/johnkerl/miller https://github.com/johnkerl/miller
- colanderman 8y agoWhat does that have to do with "lower level OS-dependent APIs"?
- jaipilot747 8y agoNothing, honestly. I was just looking to learn if there was a tool in C that could let me be just as productive as Pandas.
- paulddraper 8y agoJava, C#, Python, Ruby, Perl, PHP, Visual Basic, Scala, Clojure, Dart, Groovy, F#, Kotlin, JavaScript, and Lua are (almost always) interpreted languages. So that leaves C, C++, Rust, D, Pascal, Haskell, and maybe Go (depending how large the binary gets and if the GC gods are on your side). Whether or not it is "unique", it is a highly significant choice.
- zmmmmm 8y agoSlightly semantic argument, but most of those languages are normally considered compiled. They have an interpreter, but it operates on a compiled form of the language. Eg: Java is "compiled", Java Byte Code is "interpreted". Slightly semantic but not completely, as a tremendous amount of optimisation can actually be done by that compile step.
- paulddraper 8y agoYes that is semantic. And not real distinguishing, given that most languages have bytecodes. This is true even of many "scripting" languages such as Python, PHP, and Ruby. > as a tremendous amount of optimisation can actually be done by that compile step. Not really. Look at something like Proguard which (among other things) is the #1 JVM bytecode optimizer. And yet the runtime performance differs very little before and after optimization. As long as you deliver reasonable bytecode, the JIT will capture every optimization and more that you could make to it. --- At the end of the day, machine code is thing that actually moves the needle on performance, whether JIT machine code or AOT machine code.