4 ms·
I am definitely a gremlin, in a specific sense: I love tools that are quirky and complicated in a way that makes me more productive. But this idea of programmi
by throwawaaarrgh 3y ago
I am definitely a gremlin, in a specific sense: I love tools that are quirky and complicated in a way that makes me more productive.
But this idea of programming in The Large vs The Small: I disagree with that comparison. A less wise person might assume that means it makes a bad language for The Large work. On the contrary, it's probably just as good as any other language at it, maybe better. The problem, as it was with other gremliny languages, is you need wisdom to use it.
Simplest example: using $x instead of @x. Any person who has used a similar language "enough" would never confuse these. In fact, the sigils actually make your life easier when reading the code, because you now know the type (well, the simple type, or with Raku, the interface) just by looking at that variable anywhere it's used. Now you don't have to go look it up, and you can do useful things with the same variable namespace using different sigils. It looks weird, and it's extra characters you shouldn't need, and you need to know what it means to use it, but it can make life easier. (https://www.perl.com/article/on-sigils/ https://www.perl.com/article/on-sigils/)
The problem comes for people without wisdom. The people who don't really know what they're doing. They will probably find this gremlin language a living nightmare. These people need a lot of bowling-bumpers and floaties and kevlar gloves and hard hats and GPS. Somebody let them into a store full of sharp objects and they need a lot of padding to navigate it without killing themselves.
That doesn't mean you can't build a skyscraper with the gremlin language. It just means the accident-prone unwise non-gremlins can't build a skyscraper with it. But wise gremlins can.
- capitol_ 3y agoThe notion/mindset that "This tool can only be used if you are good enough" is an enormous design smell in my opinion. Tooling exist to help you and your team do the required work as good or fast as possible. If you are using tools to gate keep juniors in your field, or that are unnecessary complex in order to stroke your own ego. Then the tool is more of a weapon against the rest of your organisation instead of something helpful.
- 2colours 3y agoHave to agree with this one, and also, there is something that I think is easy to forget until you actually face code that has been worked on by dozens of people of completely random backgrounds, over decades: your wisdom doesn't necessarily coincide with someone else's wisdom. Context switching across people - and especially people who barely have anything in common - can be really troublesome. You have to know everything that somebody else you work with has ever used.
- throwawaaarrgh 3y agoTools aren't all made the same. Some are made equally well for novices and experts, and some require expertise. It's not a "design smell". Haven't you ever used a tool that wasn't made for toddlers?
- creer 3y agoAbout that, I loved that perl could be learned in layers. You learned the basics while using the language, and could discover one layer after another and Perl, mostly, kept you going and behaved as you expected. (By contrast, as I see it, to C++). Except that no: Many people were not even paying attention to that. And the perl sigil system - which was taught pretty much from the start - was still one of the top objections! It wasn't gatekeeping. It was people refusing to learn the tools they were meant to use.