i have a large set of scripts i use to automate the boring parts of my job. i originally wrote them in bash. past a certain amount of complexity, that became unworkable, so i ported it all to python. after about a year, i found python to be too limiting as well, based on my own coding style, so i am porting it all again, this time to dart.
the dart compiler makes it a cinch to create command-line apps that work on basically anything with a terminal.
oh man, so many things. i'll choose the most annoying for me personally. let's say i am creating a new dart source file in a dart package, something i have to do quite often. the import section will look like this:
import "package:crystal/crystal.dart";
super easy. i can add it from memory, or copy an existing module in this package, which will already have that line at the top. it is extremely rare that i ever need to modify this, or add a second line to the import section.
meanwhile, let's say i am adding a new python source file to a package. the import section will end up looking like this:
import os, base, dart, execute
from typing import List, Optional
from .build import build
from .build_args import BuildArgs
from .build_type import BuildType, buildTypeList, buildTypeParse
from .build_type import buildTypeStrings, buildTypeValid
... and pretty much every change to this source file will require modifying the imports section, in ways that i definitely have not memorized, even after years of python programming.
trying to write a large program in python was, for me, death by a thousand paper cuts like this, which don't occur in dart.
Whatever one wants to say about Dart or Flutter, it sounds like the tooling and dev experience compares quite favorably to the more established stacks.
Yup, Dart itself is an ok language (and has improved dramatically in the time I've used it), but the tooling around Dart and Flutter are what make me stay. It's all fairly standard, but complete, and it basically always just works, and the handful of times it doesn't, it's when I've known I'm doing something odd.
The community has lots of great, well built packages, and the Dart and Flutter teams are also quite responsive to the community, and helpful when an issue does arise. I've spent several threads going back and forth with maintainers trying to figure out a bug, and I'm happy to say that every single time we've found a solution.
Have you tried powershell? I use pwsh (powershell cross platform) for CLI. This gives good intellisense and powershell wing object based makes everything better
one of my (many!) objections to using python for automation tasks was what a gigantic pain in the ass it is to transfer a codebase from one computer to another. i once helped a coworker install my python scripts, which took the better part of a day. given that i can now compile my automation app as a single binary, i am in no hurry to add yet another external dependency. and i tend to avoid anything from microsoft whenever possible. i remember when they were doing their dead level best to destroy tech innovation in the eighties and nineties, and i still don’t trust them.
i have a large set of scripts i use to automate the boring parts of my job. i originally wrote them in bash. past a certain amount of complexity, that became unworkable, so i ported it all to python. after about a year, i found python to be too limiting as well, based on my own coding style, so i am porting it all again, this time to dart.
the dart compiler makes it a cinch to create command-line apps that work on basically anything with a terminal.