It looks like "my garage" is cheaper by far even when I include installing an HVAC system and 3 phase power when I look at yearly costs for a spot with 20kW's of power.
A rare mention of Intentional Programming aka IP (https://en.wikipedia.org/wiki/Intentional_programming) on HN. I first came to know of this from an article by Charles Simonyi titled "The Death of Computer Languages, The Birth of Intentional Programming" on MSDN. But alas, the promise never came to pass. The only other place i know of which covers it is a chapter in the book Generative Programming Methods, Tools, and Applications by Krysztof Czarnecki et al. IP is rather hard to understand (i still don't get it completely) and afaik there are no publicly available tools/IDEs to learn/play with it.
I don't believe Jetbrains MPS is a IP programming editor, it is meant for designing DSLs. IP has aspects of a DSL but is not the same.
Finally a huge upvote for mentioning Markus Voelter who is THE Expert in DSL design/implementation/usage. Checkout his articles/essays and the free ebook "Domain Engineering: Designing, Implementing and Using Domain-Specific Languages" from his above mentioned site.
It's nice to be able to convey your feelings to your audience through writing, but great writers go further.
The world needs great writers, because they are travel guides. They guide us to visit places we couldn't reach alone. Worthwhile places that would go unvisited and unknown without our guides.
That's why "Kitchen Confidential" is such an amazing book. It's a travelogue.
When Gay Talese wrote "Frank Sinatra Has a Cold", he didn't write a profile of Frank. He was inviting us to go see Frank with him, to sign up to the great adventure of finding out who Frank really was.
If you would like to be one of our guides, I thank you.
Study the book "On Writing", by Stephen King, and begin inviting us to your travels!
For example, I can easily imagine something like this:
import 'use-perl'
while (await ls_lr('./*.txt')) {
while (await read_lines($filename)) {
print($ln, $line)
But it's not idiomatic as it uses awful implicit iterators and hideous globals. This conflict is purely dogmatic and doesn't need special syntax, for the most part.If I am in charge of those decisions, I can use Perl to build a prototype, to validate the solution I am creating.
But if I don't decide anything, my job is to code whatever. No chance for me to be creative.
Most quirks of Perl are there to make the construction of prototypes easier and faster.
The "creation" part is key. Perl is a tool for "easy creation", for creators that want to be more productive. This is what Larry Wall wanted.
This is why Perl is good for prototyping. You "create" the prototype, and then you "translate" it to something else.
Perl is quite relevant for me, but I say this as a creator.
- "Programming is (should be) fun!", by Gerald Jay Sussman. https://m.youtube.com/watch?v=2MYzvQ1v8Ww
- "On Writing", by Stephen King. Just the chapter "Toolbox".
I don’t think investing in it is wise when you can invest in something more relevant. Although there’s barely anything that covers the subj as much as Perl, which is a shame on us all. A programming language that requires an import or two to dig through a file is degenerate. Old languages understood well what a programmer needs.
The "creation" part is key. Perl is a tool for "easy creation", for creators that want to be more productive. This is what Larry Wall wanted.
This is why Perl is good for prototyping. You "create" the prototype, and then you "translate" it to something else.
Perl is quite relevant for me, but I say this as a creator.
I wonder if AI will make limitless languages easier to work with and maintain.
Limited languages are suitable for those that are willing to manage only so much. That's why Java has no "goto".
But Perl does offer "goto". Why? Because Larry Wall built Perl for himself, and he wanted the most powerful tool that he could conceive. That's exactly what Perl is.
And I accept that, and I really want that. Every time I mess up with Perl, I don't blame my tool. I just laugh out loud and exclaim: "Thanks, Larry, for letting me know another way to not be up to my job".
Perl is the magic wand. If you don't want to be a magician, you don't need it.
But if you want to be a magician, you'll be thrilled to know Perl has three forms of "goto", not just one. This is what the textbook says about the third one: "The goto &NAME form is highly magical and sufficiently removed from the ordinary goto to exempt its users from the opprobium to which goto users are customarily subjected".
Why Perl gets such a bad rap, then? I'll tell you.
I've used Perl for almost 30 years now, and I've never found any limits in the tool. This means every limit I found was _mine_. Many programmers feel bad when they find their own limits, but it doesn't have to be the case.
You should be OK with finding your own limits, and be willing to overcome them, and strive to become a Perl power user, just like the founder, Larry Wall.
If you choose this, to grow and improve and be better, and better, and better, then Perl is the best option.
It's up to you.