3 ms·
Most responses so far support your view that it's difficult to get up and running. So many pieces and parts, which doesn't just mean getting an MVDE up and runn
by greggirwin 8y ago
Most responses so far support your view that it's difficult to get up and running. So many pieces and parts, which doesn't just mean getting an MVDE up and running, but learning and using all those tools, libraries, polyglot-based environs, and domains they each inhabit. The fact that you asked this question is telling.
As far as choices and diversity, how different are things, and how have they changed from what we had 25 years ago? That sets the context for my answer.
My language of choice is Red, a direct descendant of Rebol. You've likely never heard of either. And Red is still Alpha software. That doesn't mean we don't do real work though. In the spirit of full disclosure, I am part of Team Red, so I'm biased. :^) One of our taglines is "Fighting Software Complexity", which is what makes software development so painful today. The sad part is that it's not necessary (at least in most cases). I'll try not to evangelize, because anyone using any tool or language to fight software complexity is on the right track in my book.
Reducers (what we call Red Users) have widely varying setups, as Red is cross platform, with syntax configs for a number of editors and VSCode plugin. Any editor will do.
I like the short responses a couple gave: `PyCharm` and `Go+Plan9Port`. Simpler is better. Red falls into that category, as you just need to download a single 1MB EXE, which contains the entire toolchain. It will self-build GUI and CLI REPLs from that. Cross-compiling and a cross-platform GUI system are built in as well, not separate. No dependency on GCC, CLANG, JVM, or others (though we may add an LLVM back end, and compiling service to use it, this year).
We'd like to be even smaller than 1MB, but want to include useful features too, so it's a balancing act. We also give up features others get for "free" by resisting external dependencies. This comes back to avoiding difficulties. You can compile Red apps that have no external dependencies themselves, and will be ~1MB (I won't go into Red/System here, but it's like C in EXE size and speed). This is important if you consider deployment as part of real work. How do you deploy your apps? In the case of Red desktop apps, you just give the user an EXE.
That's about as non-evangelistic as I can get it seems. :^) This isn't meant as an ad for Red, but to provoke more thought about our entire ecosystem mindset. We can have recipes for swaths of tools and libraries, but how big is the entire dev/deploy/runtime system, how many places can things go wrong, and how much do you need to know to keep it all working?
Good question. Thanks for asking it.