Writing

Feed Software, technology, sysadmin war stories, and more.

Friday, August 31, 2012

Line lengths, or the Pro Puppy Punting League is now open

Yesterday's post about excessively long lines of code has generated some reader feedback. To be honest, it's rather depressing. One comment is from someone who used to be in the video game industry who says that places where full-screen IDEs are the norm (and the expectation) will "... almost entirely ignore line length restrictions". I take that to mean they are completely disconnected from however the actual file looks and are effectively bound to their IDEs forever. Trying to go from that to a traditional environment would be impossible.

Another comment informs me that some people do this even with ordinary editors. In particular, this reader sets vim to wraparound and just lets it do whatever it wants. This leads to lines which push past 200 (!) characters, and even more when tabs are expanded.

To me, this sort of thing is just way out there. It's like finding out that people have organized a professional league of puppy kickers and there are teams in every major city. They just go out and do awful things and have a whole structure built up around it. There are fans, television coverage, and even a fantasy league during the off season.

I guess I just don't understand the whole IDE thing. It's not like I don't have any experience with them, either. Both QuickBASIC and Turbo Pascal in my DOS days essentially required you to run in their respective IDEs to be effective. Sure, with TP you could write it in qedit (or whatever editor you used at the time) and then call the standalone compiler, but that was slow and annoying. In a world without multitasking, being able to hit a button and have it start and run without having to flip back and forth was worth it. No, DESQview didn't count.

However, when I moved on to using Linux systems for development, I switched to just using a plain text editor in one terminal with a compiler in a second. Sometimes I'd also run the program in that second terminal, and sometimes I'd have a third just for that. It depends on how messy the compiles were.

Back before X was plausible on my day to day machine, this meant virtual consoles. ALT-F3, clickity click in my editor, save. ALT-F4, uparrow, enter, watch it compile and run. ALT-F3, back to the editor, do more stuff.

Now, with X, it's the same basic idea, but all of those things are visible at the same time in various xterms. I just ALT-TAB between them and just do whatever. When I'm working on this kind of stuff, I keep my hands on the keyboard and far away from the mouse. The mouse only gets involved when I need to position a new window or grow an existing window in an unusual way.

Typical development workspace

One of the most common things I do with a window is to maximize one or both of its dimensions. For this reason, I have a couple of keys set up in my window manager which will do exactly that. One combination will open it to max height. I used that a few minutes ago to start writing this post. I try not to write programs in such a window because it tends to lead to functions which are too big (tall).

Then there's the ability to push a window out to full width while retaining its height. This is good for when I'm dealing with those "wonderful" C++ error messages which love to spew all over my screen. Yes, there's clang, but until that happens everywhere, being able to create a hugely wide window will still be useful.

Next, I can just make it take up the entire screen. There are different times when this can be useful. Sometimes it's good just to effectively get everything else out of sight just by covering it up. It can be very useful with log files, since those tend to be both very long and very wide.

Finally, I can revert from any of these three expansions. I'll be back to 80x25 and able to continue with whatever it was I was doing, and I never had to reach over to a mouse and try to drag a dumb little window handle down to right the right spot.

None F9 :MaximizeWindow
Mod1 F9 :MaximizeVertical
Shift F9 :MaximizeHorizontal

Why F9? Well, it's easy to get to, and it's hard to mess up since there's a giant blank space between it and F8. You never have to look down since there's no way to mistake it for any other key.

I just don't understand the attachment to IDEs. I had to use NetBeans between 2009 and 2011 when I took a couple of Java classes online, and it was excruciating. I also managed to crash it immediately after it first started just by clicking around in some of the "open project" dialogs/menus.

I submit this as continuing proof that I can break anything.

Crashing NetBeans

Don't say "but you should have used (other IDE named X)". This school was all about the cargo-cult stuff, and if you didn't submit NetBeans projects, they would have had no idea what to do with the resulting code. I would have had to do it in "X" and then move it over before submitting, and then I would have had two problems.

Maybe I'm just weird.