3 ms·
> I routinely use vanilla PHP (no special libraries) for CLI scripts Vanilla PHP has better argument parsing than many recent hipster language. Go has some sor
by camus2 9y ago
> I routinely use vanilla PHP (no special libraries) for CLI scripts
Vanilla PHP has better argument parsing than many recent hipster language. Go has some sort of ugly non conventional argument library which is barely usable, Node has none. But nothing beats vanilla Python for that tasks IMHO.
- terminalcommand 9y agoI haven't used PHP for CLI scripting, however I've used Python and Golang. I can say that Golang argument library (flag) feels more straightforward to me than Python's argparse. import "flag" var ip = flag.Int("flagname", 1234, "help message for flagname") ... // flag.Parse() once in the main function vs import argparse parser = argparse.ArgumentParser() parser.add_argument("square", help="display a square of a given number", type=int) ... args = parser.parse_args() In the Go example you get a pointer just like in C, in the python example you get a special object and can access its fields. Both are simple, but Golang is IMHO closer to C in this matter.
- camus2 9y agoPHP and C have getopt in their standard library which work mostly the same way. flag package bothers me because it breaks getopt conventions for no good reason.
- combatentropy 9y ago> . . . argument parsing . . . > Node has none. https://nodejs.org/docs/latest/api/process.html#process_process_argv https://nodejs.org/docs/latest/api/process.html#process_proc...
- camus2 9y ago> https://nodejs.org/docs/latest/api/process.html#process_proc.. https://nodejs.org/docs/latest/api/process.html#process_proc.... This is not argument parsing. I'm pretty sure Node doesn't even do anything, it just gets an array of strings from the CLI, argv C style isn't getting options prefixed with - or -- directly from the CLI, and putting them in a map or something. So no, node has no facility in its standard library for that. Node is not known for its extensive standard library in anyway.