I'm finding it difficult to come up with and use a coping strategy for this. I feel like the best I can do is just to accept my lot at living in such an uncouth age. Sometimes I'll be inspired to make something better, but then I'll get in that same paralysis once I realize that in order to make something better I first have to do it with things that are horrible.
My primary desktop computer has two OSes on it: Gentoo Linux, my primary, and Windows 7, which I use when I want to play certain games, mine litecoins (bitcoins I do on Gentoo), build an EXE for some python program, or something else that requires me to use Windows. Thinking about trying to do productive work on Windows makes me metaphorically sick; I don't understand how millions of people do it. But I do understand somewhat why I find it so distasteful, and I can imagine that people who don't find it so distasteful aren't as phased by it.
In the 90s the great war between text interfaces and GUI interfaces was won decisively by GUI interfaces. This is unfortunate for me, because I heavily prefer text interfaces. I love bash, and I love the gnome-terminal wrapper around it that makes it pleasant to use that text interface within a GUI environment. I can barely stand to use Windows cmd.exe, which is unfortunate, because that's the GUI wrapper around cygwin's bash. It's awful. No tabs, no sensible copy/paste, no resizing to anything I want, a poor selection of fonts, and so on and so on.... Every time I use cygwin, then later go back to the warm comfort of gnome-terminal, I feel joy.
My first programming language was PHP. I sometimes wonder if this has damaged me permanently in the same way learning BASIC or COBOL first might damage another. See, I love not having to deal with modules at the language level. Everything the language provides is always available in the global scope. I love this. I'm saddened that the PHP project seems to be moving away from this, albeit slowly. I'm sad when frameworks require a huge stack of 'require_once' directives just to get anything done. It reminds me of the huge stack of corresponding directives that you have to have in Python, in Java, in Clojure, in C, to get anything done. And I realize that there are good reasons not to do what PHP does, but there are good reasons to do it. A bad reason not to do what PHP does is namespace collisions -- it just doesn't happen that often and when it does it's trivial to fix. In fact it's more likely you get namespace collisions with other code written by developers rather than what the language provides itself.
Why are Clojure's debug functions like 'pprint' not available by default except in a REPL? That modularization is annoying to me, and I'd rather see work in the form of code analysis to not bother with what isn't used in the source code. This would allow for some slim binary distributables that have only a subset of the language within them. This gets rid of nice features like hot patching but those should be optional and not included by default... Why aren't there more things like ProGuard, and how can ProGuard be made better?
Could languages support a "god mode" directive where any modularity on the language level is gone? That would make me happy. Or even something more fine-grained, i.e. "super-modules", like "from everything_you_could_ever_want_to_help_with_web_programming import *". Such a module would essentially be "PHP mode" for that language, giving you global access to functions like base64 encoding, cryptographic hashes, emailing, connecting to databases, encoding/decoding json, xml, or edn, access to curl, file I/O, image manipulation, output buffering, etc. But such a module might not include things that would help with game programming, like a physics engine or GUI framework -- such things would belong in their own super-module.
Why are IDEs so ugly, slow, and big? I can't stand Visual Studio and can only barely stand Eclipse. I enjoyed Flash Builder (a fork of Eclipse) because it let me do work in Flex, but that's mostly because it saved me from some of the pains inherent in MXML and ActionScript rather than because it was just a good IDE. I prefer to use vim whenever I can, but in Windows, without gnome-terminal, I'm reduced to using gvim, which isn't as flexible to me as vim in gnome-terminal.
Whatever. Back to work, because that's what it's become -- it's hard to have fun anymore. :(
Posted on 2013-07-13 by Jach