I noticed that too, then it mentioned that compilation should work on macOS and Linux, even though they use Windows. But then they compile to a .exe in the test example to make sure everything is working. This kind of makes it a non-starter for someone who doesn’t already have some idea what they’re doing.
I have some professional experience using a visual programming language on the same files with many coworkers. Here are the biggest pain points I experienced:
Diff, merge, search/replace, copying code directly from chat or websites into a REPL or file to try it out.
I have used a handful of other visual languages and when I see a new one I am on the lookout for use cases that involve more than one programmer, sometimes not even knowing each other; features that make it compatible with existing file and line oriented version control systems or provide an alternative(which is a project in itself, hard, and might not be as modular)
Learning about visual programming languages gave me a new appreciation for the simple elegance of text and IMHO the future of them will be those that easily map back and forth between text and graphics so you can have the best of both worlds and continue to stand on the shoulders of giants.
Does anyone konw of languages that translate to/from text well?
Well, if you like the general sound of playing the home row in this layout, then simply remapping this thing for Dvorak might get you somewhat far toward that goal since the home row actually contains the vowels and common consonants.
I don't know what qualifies as "really good examples" but there are lots of random things that use metaprogramming in some capacity and are popular. Lots of IDLs, serialization formats, ORMS etc. I am thinking stuff like Protocol Buffers, Hibernate, Swagger, etc.
I dunno, it seems like metaprogramming seems to refer to something more powerful than just reflecting over definitions, which is mainly what those things need. Although some ORMs emit runtime code.
I guess my question is better phased as "Ruby goes on a lot about metaprogramming. I've used .NET reflection quite a bit. What does Ruby's metaprogramming really enable that I'm missing out on?"
I actually like Ruby's limited and verbose meta-programming. It's just painful enough that when I get the urge to reach for it, I think just that much harder about ways to go about what I'm trying to do without it.
And the methods themselves, while verbose and clumsy, are actually fairly transparent and intention-revealing. I understood perfectly what the article author was trying to do and why.
Ruby is expressive enough that you usually don't need it, and when you do need it, the stark stylistic difference between the normal methods and the meta-programming code feels safe and comforting. You see `define_method` or `Class.new` and your brain instantly reads it as magic and start wondering what the hell caused the programmer to start delving into the hard stuff.
You almost never see meta-programming in Ruby where it wasn't needed, and it's almost always limited to solving one or two problems.
In my own brief foray into C#, it wasn't long before I found a problem that, when brought to a more experienced coworker, he solved with reflection. I couldn't remember the details, but I knew that had I had to solve it in Ruby, I'd never need anything like that.
Thanks, I also love mason jars. I hate to point it out, but isn't that Cuppow product also made of ambiguously "BPA Free" plastic? Better than an all plastic container anyway.