163 comments

[ 0.21 ms ] story [ 220 ms ] thread
metametaprogramming (verb.) The act of talking about people talking about programming, rather than doing any actual talking about programming.
So is your comment metametametaprogramming?
Every comment talking about ('meta' times n)-programming is ('meta' times (n+1))-programming :) So your comment is meta(metametametaprogramming).

But this comment isn't meta(meta(metametametaprogramming)), because of this sentence :D

When did the term lose its original meaning? [1] Or am I missing some kind of joke?

[1] https://en.wikipedia.org/wiki/Metaprogramming

It hasn't. The blog post is making a joke:

"You might have thought that metaprogramming meant macros, type introspection, that kind of thing. Nope, I'm hijacking the word for today:"

(comment deleted)
Can't believe he didn't mention text editors or indentation!
Why would he? I think the general consensus nowadays is that Sublime and tabs is the best option.
I beg to differ ;-) See my own $0.02 sibling comment.
Right. The spaces-versus-tabs debate is fully capable of inciting religious wars. And don't even mention vim-versus-emacs!
Tabs vs Spaces: I hit the tab key and let the IDE manage whether that translates into X spaces or a tab. I set the IDE up to use the language convention. :) Text Editor/IDEs.... I'll leave this holy war for the truly devout to fight :D
There's a balance here. I don't like the idea of talking without producing either, but using this as an argument to shut down all discussion about working environment isn't going to help matters.

Headphones are a big topic of discussion because default working environments are so far from what many of us find optimal (and, indeed, what seems to be empirically optimal if you look at the studies in Peopleware).

Ah the never ending lament about programmers asking for nice things. Sorry, $4k in capital costs for someone you're paying well into 6 figures for to make your business exist isn't that bad. A fast pc is necessary depending on what you're doing - making knowledge workers more comfortable effects their output.
In addition to that, I fail to see the relation between people who like to talk about programming through whatever medium ('metaprogrammers') and people who like to have decent tools to work with. Literally every developer I have ever met wants to have a decent computer, multiple screens, fast internet, and access to the proper software tools required to work efficiently.

It strikes me as an incredibly stupid argument to make if anyone thinks you someone is spoiled for preferring good tools to do the job. Imagine a mechanic who can only use even-sized spanners, or a drywaller who can only use 5-liter buckets at a time.

Maybe I'm not a decent programmer but I definitely don't want multiple screens. I would perceive such a set-up as unergonomic and creating too many distractions. Nothing against the rest, though.
That's your workflow. Some prefer two monitors. I prefer to have two computers and two screens instead of two monitors and one computer.

(double the keyboards)

Why would you do that? Two keyboards sound a waste of time
I'm just used to it, there's no good reason. First, I had a desktop, then bought a laptop, kept the desktop in front of me, the laptop on the left. At some point the desktop left my desk and I only had a laptop, then after many minor changes over time [skipping a lot] I found myself in front of two desktops.

But it doubles the power! Isn't it how this work?

It depends. How do you coordinate the work between the two computers?
Currently, one of them mostly acts as a server, and I work with network shares and symlinks.

But that's how I work, I won't force it on anyone else.

Have you tried synergy yet? Im using it, and apart from some keyboard mapping issues its working quite well.
Probably has more to do with preference and what you're working with. In Web programming having a debugger, the rendered page and your code all up is really nice. I actually have 3 monitors for this.

Doing other stuff you can have stackoverflow, your code, and a gui for version control.

Doesn't hurt to have the extra real estate for command lines, file explorers, email, a crm, remote support sessions, etc.

I think I need more monitors...

1 -> 2 made a huge difference for me.

2 -> 3 much less (so much so I went from 3 to 2 at home because I wanted the desk space back).

Working on one screen for webdev though is frustrating I agree, I hate working from my laptop now.

For me, the main use of multiple screens is to separate the "place" where I'm writing from the "place" that I'm looking at - there are many cases where I need to look at something else while editing code or docs, and I'd want to do that without task switching.

So my code would be on monitor 1 and stay there forever, but the various things that I'm reading, e.g. input (documentation, specification, sample data) or output (debug output, logs, testing app) would be on the other screen. The alternative is a large monitor and keeping things side-by-side.

It depends on what you are working on as well. When Im doing UI stuff, I love having at least dual monitors. That way I can have the result GUI /web page open on one screen, code and console on the second. This lets me reload without switching windows or workspaces continually. When im doing backend stuff, I can have several consoles doing testing and also for example the design document open while working so i can glance quickly at it. In the end it comes down to what you do, and what you like. I now use a ultra wide 29" screen instead and it works equally or better sometimes. My second monitor only keeps playlists, IM and email open now.
I only use multiple monitors because 4k/5k screens have not been affordable in the past 10 years. Are you saying that you don't need additional workspace on your screen or that you don't want a workspace divided down the middle?
> for someone you're paying well into 6 figures for

My first programming job was $32k/year out of college(this was in 2011).

even then, as you are probably not employed for only 1 year (in which case the perks could be transferred to someone else) the costs for a good setup are negligible compared to the total mount spent on a developer.
(comment deleted)
Exactly, all these things are tools of the trade - tradesmen spend money on the right tools for the job because that (and experience) is what separates them from the DIY-ers
on the other hand only a poor craftsman blames their tools.
A good craftsman never has to, because he has the right tools ;)
yes, that is the implicit meaning. But then are programmers, whose tools are generally provided by their employers, actually craftsmen (craftspeople)? That question being part of the general discussion around this post.

On edit: I should clarify there is another meaning, which is that a good craftsperson can do whatever they need to in their chosen craft with substandard tools - this is also the viewpoint the original post seems to ascribe to.

I personally like to use the simplest tools possible to achieve a task, even if that means I have to do more work to achieve the task, because then I don't spend time learning my tools. This means I use a crappy laptop with no external monitor, a simple text editor, the command line for just about everything. When I do end up on someones machine where they have the good tools I find that I am but a simple caveman, confused and enraged by the complexity of other people's worlds. All this does not mean I am a good programmer or craftsman, it just means I find doing without the better tools and hardware suite me better.

And have you noticed that you only hear these laments when it's programmers? Nobody laments when somebody in the sales, finance, or marketing departments wants nice things. Hell, in the business side of many companies, getting a nicer chair and/or a bigger office is just as much a part of your promotion as the title, raise, and direct reports are.

But it seems that there are people intent on cutting programmers off from the same perks that MBA types consider essential. It would be one thing if this backlash came from management; at least that would make sense as a cost-saving measure, but in the case of this article, it's coming from other programmers. It seems that not only are programmers undercompensated, but other programmers are actively seeking to keep us undercompensated.

Is this crab mentality [0] at work or just ignorance of how non-technical people get compensated?

Either way, it makes me wonder if I went into the right profession. I went into software engineering because I love computers, and coding is fun, but I have to wonder if I'd be better off if I got my MBA instead of a CS degree and went into finance or marketing or something (I know I don't have what it takes to do sales).

[0] https://en.wikipedia.org/wiki/Crab_mentality

Come on now, we real metaprogramming wimps carry our own keyboards with us and don't even bother to complain about the one provided. :-)

Otoh, as an Emacs user my mouse costs about as much as one of the black espressos I exclusively drink for coffee. :-)

Edit: This made me feel like the wimp I am. Time to stop the singer songwriters on my headphones and play some black metal. (And go to the gym for deadlifts or squats this evening.)

> Otoh, as an Emacs user my mouse costs about as much [...]

I didn't know a mouse can be an Emacs user. Where did you get one?

With a real, live, META key?
I don't think I've even seen that key since I was a student... "Das Keyboard" have that? Should order.

(Just got the best feel I could find in the stores. I paid 70 Euros, maybe not cheap but fram from extreme. I only play a snob on internet. :-) )

Moar stickers!
> "You post an article about a new programming language, you'll get 10 replies."

A quick search pulls up results that would contradict that statement.

https://news.ycombinator.com/item?id=7436401

https://news.ycombinator.com/item?id=10901054

https://news.ycombinator.com/item?id=8735892

https://news.ycombinator.com/item?id=10177716

I realize four search results isn't enough to completely debunk the author's statement, but in my experience programmers love to talk about programming languages. If you start a conversation about an interesting new language, more often than not people will want to give their input.

Programmers also love to talk about their ideal working environment. Things like office chairs, keyboards, monitors and office perks are important to them because the majority of their time is spent at work.

Languages are part of the ergonomics of code writing.
Having decent chairs, keyboards and monitors is also important for health. Yes, I could work on a kitchen chair hunched over a crappy keyboard and illegible monitor for 10 hours a day, but after not very long I'd have headaches, RSI and back pain so bad I wouldn't be able to work at all.
I do not see anything strange in it. Author seems to be forgetting that while there is a myriad of frameworks and programming languages, we all share similar work setups and needs. Also, while a newbie might be afraid to talk with 'pros' about advantages of hygienic macros, he knows what headphones make him comfortable at work. I would redefine 'metaprogramming' as 'stuff that most of the programmers have in common'. That's why they talk so vividly about it.
I hoped this was about high level future programming stuff :/

Like arguing with AI on the requirements of a new project it will implement.

For me a chair is important. I don't really care about perks and other stuff but knowing that I sit around 8 hours every day for a couple years in a good chair is as important for me as the work station.

And in most of the startups I worked so far there were only cheap chairs not so good for my back. In a way I understand the owners: they have startup they should buy the cheapest things possible because they don't know how long their startup will survive, but I like when someone makes an effort to provide good working conditions for the programmers.

I also used to care about the noise level, but again working in startups I had to get used to noisy open spaces.

Silly people who don't understand that furniture can be loaned or leased.

Maybe you won't get something cutting edge in economics, but definitely very good still.

Okay. So this is a meta-metaprogramming blog post.
That's a meta-meta-metaprogramming comment.
throw new StackOverflowException("This ends here!");
I think that there's two distinct ideas here, and they're fused together. One of them (IMO) is valid, the other is not.

"Programmers spend too much time attention-seeking, or debating online, instead of actually writing code" is a valid topic to debate over; I can see arguments on both sides, but it's certainly a thing that could be argued. The work we do is more important than all the meta-stuff surrounding that work.

"Programmers are too pampered and we should just give them all shitty old computers in shitty offices without perks", though... workspaces are important, as are the tools. A large monitor means I can have more stuff open at once, and I know that I'm more productive when I have an external monitor than when I don't, and I need to cmd-tab a bunch between editor, terminal, and browser.

Companies don't offer good equipment and perks because they're charitable, they do it because it produces results (more often than not).

> produces results

Conversely, companies that don't offer good equipment are making a terrible decision. I once worked at a company with a single 14-inch monitor on every desk. In 2010. I was astonished.

Personally I don't mind working on an average machine. I don't do anything with huge computing needs, and it shows where the bottlenecks are before they get into production. (Then the disk starts paging and I change my mind about having a better machine).
Compute, I don't care about. Screen space is precious. Every extra window I can have open simultaneously increases my productivity.
True, though for me its the keyboard. I can't seem to get into the flow on a laptop, despite the fact the resolution is better than my larger monitor.
"When art critics get together they talk about Form and Structure and Meaning. When artists get together they talk about where you can buy cheap turpentine." - Picasso, supposedly

Talking about this stuff is only natural.

As for the rest of the OP, not knocking it (or the book), but it sounds like he just read Catcher in the Rye or something. Employees have been jockeying for status inside firms and across firms as long as there have been employees and firms.

(comment deleted)
TL; DR: buying a Macbook tricked me into going through a "dark" phase. It was worth all the money.

This isn't necessarily true all the time, although it is in many contexts. For example millions of people are eagerly awaiting the new, shiny, same-as-before-but-slightly-more-expensive-and-with-a-couple-new-features, iPhone 7 but the number of people who get excited when there's a breakthrough in a particular scientific or technological field can be counted on one hand (and multiplied by 10^[2-4]). The explanation is pretty simple: I can get the iPhone 7 when it comes out but it's hard to get excited knowing I might go to Mars in 2060.

I had a similar experience myself. As a human being I'm naturally inclined to, sometimes, consider short-term rewards more valuable than long-term rewards. They say the quickest way to change your lifestyle is to change the environment around you. In the case of software developers that environment is often their gear/tools. In my case it was my laptop. When I was still a student I was using the not-so-crappy-but-still-kind-of-crappy laptop provided by my university. The problem was not the laptop, of course, but the fact that I was doing something I didn't enjoy.

One day, frustrated by the fact that a few Chrome tabs and PyCharm would literally devour RAM and swap alike, I started considering buying a laptop of my own. Fast forward to a couple of months later, and on the edge of a serious depression, I bought a shiny Macbook Pro with 16 GB of RAM. I started getting more into web development (I was doing research in a very specific field of cybersecurity), studied machine learning (and used it for my thesis project), found a very good job (where EVERYBODY was using Apple hardware) and slowly transitioned to doing web development full time.

The Macbook acted as a trigger. I might have gotten the same results by moving to another country, changing house, changing friends, maybe by dropping college altogether, but that shallow, nonetheless very useful, purchase (I'd go as far as to call it an "investment") did the trick. I got my degree, I'm still working, and enjoying what I do, I even moved to another country eventually. Could I have experienced the same thing doing something else? Probably. But it's easy to say so afterwards. :)

> Gotta have that 40" monitor, it's essential, can't work without it

And I was thinking I ought to be content with my 27"

Eh, you just need four of them, so you have (effectively) a 54" monitor...
I used to be that guy that proclaimed I could not work if I did not have 2 monitors of at least 21 inches in size...

But, 2 * 21" (FHD LCD) became 2 * 24" (FHD IPS), which I upgraded to 2 * 27 (Apple 2560 * 1440), which I now consider to replace by 2 * 42" (4K). Have I became 10x more productive by it? No. Can I work without them? Sure. Do I enjoy working on those huge screens? Hell yes! And since screens are not that expensive anymore, why not? I spend 10+ hours a day in my office, so why not try to make that time the most enjoyable I can?

"...I spend 10+ hours a day in my office..." - I agree that there should be an upside to a statistically shorter lifespan.
I don't agree. Of course a car mechanic can do his work with just the most basic set of tools, but will he be as productive as someone using the newest stuff that enables him to work faster ? Probably not. There is actually value in having a faster computer, bigger screens and even better chair as a programmer.
This effect is observable not only in the programming community, but in many others. Best example would be photography, where people spend much more time discussing their equipment and the newest lenses instead of going out and actually take pictures.

I had to experience this for myself when searching for new hobbies. With most of them, I spent most time with the meta, e.g., which fountain pen to use for my writing or what the best ball bearings for my skateboard are.

I think in comes down to "I want to be a writer, but I don't want to write. I want to be a photographer, but I don't want to take pictures. I want to be a skateboarder, but I don't actually want to skate." Why I want to be something but not actually practice the trade is another question (prestige, self-identification?). I wonder if others have experienced the same.

Audiophiles - probably the most prominent example of them all.
The opposite is real musicians.
You would be surprised then by how snooty some musicians are about gear.

You don't have a vetted guitar, amplifier, mixer or a microphone? Yep.

That said, they sometimes have a point.

I have a friend like this. I've been in bands in the past and worked in (even built my own) studios. I seen and partaken the 24/96 vs. 16/48 debate (spoiler: that only matters in the studio). I've worked with high end mics, pres, dacs, boards, tape, etc.

The big thing we tangle on is always digital vs. analog. Oh boy.... Zzzzz... I've cut tape and editing on analog sucks. Noise on analog is not ideal. Compression and 'natural' bottom end warmth are nice. But that's where it stops. Most of (all of?) these things can now be simulated by plugins. We don't even have to say digital has won because it's so obvious. Analog is there for the minority purists.

This debate has between us has taken many hours over many years. Oh yah, let's not forget vinyl too!..

I've had to recently redirect the argument to musicianmanship, which I feel is really where the rubber meets the road. It all starts at the source. If your source sucks, then you'll have some work to do to fix it. Stuff like autotune, sample triggers, etc. In this way, analog is better as it will demand more of the musician's performance. Hard to swap out the kick drum on analog.

All in all, I personally don't think any non-studio experienced audiophiles would know if something was recorded digitally vs. analog. There are so many things you can do now and unless you know those studio 'tricks', you can't even tell. This has already been the case since the 90's I think. Everything can pretty much be simulated, processed, filtered, chopped, moved, etc.

One great resource for all this is Ken Andrews. Look him up. He's got a lot of great stories and insight on recording.

My advice to my friend: learn the tools and use what make sense artistically. But debate for theory's sake is pointless in my mind.

My theory about audiophiles is that a lot of them grew up in the 1970s-1990s where there really was a huge difference between "high end" and consumer grade audio. That gap has narrowed considerably. I think there's also a lot more people these days out there actually explaining the engineering and science in good audio (in the old days technical details were considerably harder to look up), this makes it hard to push "marketing oriented" product (eg those infamous audiophile cables). My impression currently is that the audiophile hobby kind of was dying off.

I do think there's a few areas where analog still is a bit better technically (mostly from the musician perspective, things such as distortion and resonant filters), but digital is both often better and just so much more convenient for 90% of things. Those that embrace analog as a religion are rather annoying.

Now, I do remember in the 1980s there was a huge push of digital everything -- digital playback, "digitally remastered", etc. A fair bit of that at the time had major issues -- eg not very nice sounding DA stages, aliasing problems, etc. Perhaps this is where some of this attitude comes from.

Modern "audiophile" gear is much better today than in the 90s, especially for the same price points, but my observation is that there's a divergence between hipsters that prefer gear older than themselves looking for something unique and those that seek technical specs religiously and know where to optimize for best technical sound. I just want the best sound I can get within a reasonable budget even if I could tell the difference if I spent $1000+ more on a better amp.

Most of the anti-digital people I know fall into two overlapping camps - technophobes that don't know how basic DACs work (believing that digital audio means output of literal square and stepper waves into the air) or those that simply prefer older recordings from a point of nostalgia or artistic taste. Showing conclusively that some of their favorite records were mastered digitally before being compressed and filtered for LP is similar to watching climate change deniers try to reason via strawman and red herring arguments.

Photogrophy is more about thinking in light and shadow than lenses and metapixels. Programming is more about thinking in states and interfaces than keyboards and displays.

You can only master abstract ideas through concrete practice and active thinking about the problems.

I've often said it like this: "There are those who want to be something (a writer) and those who want to have been something." They want to be able to look back and say they were something but sure didn't want to put in the time to actually do it.
Classic wet shaving is a bit like that.

I'm not sure if it's exactly the same as your examples though, as a lot of people into this particular hobby definitely do use and enjoy the different products. "Shave of the day" posts on forums typically show posters different set ups, with the same users having a vast rotation of gear. I guess it'd be like having lots of different pens or skateboards.

But I've also seen many different people say that they started using a DE safety razor to save money, but have ended up spending a small fortune on new gear.

Some video-games also have this in spades. I know I've pored over weapon stats to see which gadget is preferable, when just getting good at the game would have had a bigger impact than 10 more raw power points or the slight speed bonus that a particular hat gave me.

The problem with "just getting good at the game" is that it may take even more time than theorycrafting that has some objectively better result (the usual term that WoW players used when I played at least). With action games there's a certain point when you can play more but you're at a plateau because you're limited by skill and have few means to even know what to improve. Focused practice matters for any activity involving skill, but I dunno what black abyss of learning exists between me flailing my mouse like an idiot and the dudes that no scope headshots on 20 pixels reliably. Industry marketing likes to tell me I need a new mouse (some 4000+ dpi thing), new monitor (144 Hz+), but I think I'm missing something more basic like basic hand-eye coordination that gear will not solve.
I think any hobby that attracts interest in the first place also attracts "purists". Coffee. Computers. Photography. Shaving (and the eight different major sub variants of shaving methods). Smoking meat. Smoking tobacco. Vaping. Audio equipment.

Pick a wikipedia page and chances are that scattered across the world, you'll find a handful or more of purists dedicating themselves to that subject. The internet has made it much simpler for these purists to indulge in their obsession with the meta.

Meanwhile most of the people into a hobby keep on just doing it with the equipment and materials they have. The purists do the hobbyist [1] a service in that they discuss every myriad detail at great length, frequently. The hobbyist gets free research this way, and the purist can continue to feel satisfied in their knowledge of the subject.

1. It's not that purists aren't also hobbyists - but their hobby as often the meta of the subject as much as the doing of the subject.

(comment deleted)
Add Chess to that list, people argue constantly about which is the best set and which style of pieces are the right ones.

I just bought a 20 dollar vinyl board and some plastic touranment staunton pieces from ebay - the exact same ones the local chess club uses.

I'm also into Cycling and it's much the same there as well, My carbon bike was £800 and I ride it 2-3 times a week, I have friends who spent £4000 and ride it once a month (and have to have full carbon everything) always struck me as crazy but it's their money.

I've noticed in myself the opposite trend: an almost perverse desire to use the worst possible physical tools, so to better distance myself from the "posers". I've happily programmed for hours a day for years on a $300 Acer Aspire One. I still use the same kneadable eraser bought 15 years ago in a cheap tienda. I'll use the cheapest brushes and crappiest car. I've got a cheap guitar, and a cheaper banjo, despite playing in shows regularly. It's like I want to prove to myself that I'm "doing it" enough that I don't need the fancy equipment. But I think it's still just vanity - just in the other direction.
Falling down hurts but it's how you get better go out n skate!
"...he would only ever consider someone to be a good programmer if they had a twitch livestream about programming..."

I don't do twitch. Come back to me in ten years if it's still around, maybe I'll have time for it.

But I make videos of my programming and add commentary as I go. I doubt anybody watches it, but I found it most enjoyable -- makes me think and vocalize each thing that I'm doing. Plus it gives me a good excuse to talk to myself.

plus it keeps you from getting distracted. I did have a twitchstream of me coding once. It was awesome. Not once I got distracted, even though noone watched.
"If they don't have the shiniest Apple MacBook then they can't work. Never mind that their job involves typing letters into a text file, something you could have done on CP/M back in '78"

I don't want an Apple at all, but I do want a beefy machine because my job doesn't only involve typing text you see - for instance I also need to build the result of all that typing, and if it takes ages, guess what, the time I waste waiting for it to complete is not worth whatever money they cleverly save by supplying me a "CP/M from '78"

"To insult a new hire by providing only a single 4:3 monitor? I can't work like this."

I can work like this, but I prefer two monitors. How much does a monitor cost anyway? Having two displays is much more convenient.

I can program sitting on a kitchen chair, but I prefer an ergonomic office chair, because I spend a large part of my life at work and I see no reason why it should feel uncomfortable.

Oh, how pampered I am!

"- You were lucky to have a LAKE! There were a hundred and sixty of us living in a small shoebox in the middle of the road.

- Cardboard box?

- Aye.

- You were lucky. We lived for three months in a brown paper bag in a septic tank."

etc.

Building on your own desktop? That seems rather archaic. Well-connected and integrated access to a massive multicore build machine seems a little more modern.

As time goes on (16 years as a dev now) I find myself a lot less concerned about this stuff.

Sometimes once in a rare while you want to be able to work totally offline, or in a low-connectivity environment. For example I'm currently on a commuter train on an hour+ ride into the city, and if I want to do everything locally, I can. Options are good. (PS: ask me about working remotely!)
I guess using some of my 8 logical cores for background static analysis is archaic now?
I should be able to run unit tests locally, and have it happen quickly. Added to that, I'm often travelling on the job and sometimes code on the go, massive multicore build machine may be out of my reach

> As time goes on (16 years as a dev now) I find myself a lot less concerned about this stuff.

That's the point, we shouldn't be concerned, and it's best achieved by giving us equipment that lets us take this stuff off our minds

I think the point is that as you gain experience you realise how unimportant your local terminal is.

Engineers tend to grow out of it.

Not that many coders 'often' travel on the job, as a proportion. Most are office-bound.

> as you gain experience you realise how unimportant your local terminal is.

If I may be blunt, bullshit. Working on a remote server, especially one not on your local lan, is a lag filled pain in the ass.

Even if you decide to work on a local editor and upload to the cloud, your write-test cycle will be slower, and the best editors will require quite a few CPU cycles themselves to provide (their version of) intellisense, syntax highlighting, and documentation.

And this doesn't even cover ensuring that the computer is capable of handling remote conferencing - a resource drain to end all resource drains on laptops.

I'd go one step further and say that as I gained experience, I realized the value of the productivity gains from low latency and the freedom offered by working locally (I even keep local copies of documentation websites, so I never have to worry about them being down).

> Not that many coders 'often' travel on the job, as a proportion. Most are office-bound.

Internet can still go out in an office. So can power. People travel, work from home, and sometimes work from a conference. Why limit your employees for the sake of saving 1% of a software developer's salary (less, actually, when you consider amortization)?

Well, my experience on the matter aligns with what falcolas says
One more data-point: I've purposefully worked on a thin client. I had an employer that gave us access to powerful machines but not laptop, so I bought a cheap, under-powered laptop and did almost everything on the servers. My experience was that at first it was great and I appreciated the habits the constraints encouraged. Then I took a job where I was given a beefy laptop and immediately noticed a whole bunch of pain points that I had just been living with that disappeared entirely. The good habits from having a low-powered machine can transfer onto a high-powered machine, but there is are a whole lot of little irritations that completely go away when you have more computing power locally available.
Building, editing, testing, all of that is better done remotely with ssh and gnu screen or similar.
Why?

Not all software is designed to run on servers.

In some cases, building locally will give a quicker response cycle.

Editing locally is almost always a better user experience. Especially if your servers aren't in the same building.

And plenty of other reasons (travel, flexibility, ...)

I personally disagree. That requires that you use vim or emacs, which is not feasable (or even desirable) for many programmers. It also requires a stable and low latency network connection; something which is not always available.

Anecdotally, I had to work this way once for an employer. It worked rather well, but our "development" machines were on-premises, and when they went down, everybody was down. I was also extremely limited in what I could download and run, since the machine was shared with other developers. Not very productive.

Though, I did get really good with Vim, so I am thankful for that.

Use vim or emacs not feasible? not desirable? If most of the greatest programmers use them, if you're a wannabe programmer how would you not use these tools? It's like willing to be a cowboy but for thanks to the horse and the gun...
If you're writing C# you'll be much faster with intellisense and autocomplete. It's quite amazing how much help it is, especially before you reach expert level.

Occasionally you encounter weird toolchains where some stuff is much more convenient to do from the IDE, so you end up editing files in emacs then having Quartus or Vivado open to look at their reports.

(People should be a bit more specific about their working environment before confidently declaring the best way to do things!)

Cowboys have evolved. Many use ATVs and only infrequently have to use a gun. The hat has stuck around, though - great protection against the sun.

I've attempted to write Java using VIM. I've even been moderately successful. But it's still easier to do with Eclipse or Intellij.

> Building, editing, testing, all of that is better done remotely with ssh and gnu screen or similar.

Why? I have a full command line suite running on my laptop, because I'm running Linux. Why would I log in elsewhere, when I can run stuff locally?

For many reasons. The remote server is in a data center, supposedly better maintained than your PC, it has backups, RAIDx all the stuff. If you automate some tasks, or run long-lasting scripts, it is much more reliable. Also, keeping it in the terminal forces you to use the right tools, e.g. vim/emacs instead of the good old Dreamweaver...
Just because I'm working on my PC doesn't mean my changes aren't pushed elsewhere frequently (admittedly the "trunk based development" crowd seem determined to make this less flexible than it ought to be...)

I'm personally an emacs user for most purposes, but I'm not going to claim it's the right tool for everyone, all the time.

> Also, keeping it in the terminal forces you to use the right tools, e.g. vim/emacs instead of the good old Dreamweaver...

I run emacs locally. In X. That way I can browse the web, view PDFs & images, play Tetris in colour &c. I wonder how advanced the nethack mode is these days …

Depends what you're building. Most of my previous embedded work was done on my desk due to needing the proprietary tools to link to the device.
>> "To insult a new hire by providing only a single 4:3 monitor? I can't work like this."

> I can work like this, but I prefer two monitors. How much does a monitor cost anyway? Having two displays is much more convenient.

I now prefer a LG 21:9 34". They are fairly cheap, have a good quality screen for long viewing, and the extra width is a real help. I wouldn't buy the thunderbolt version as it really doesn't do the thunderbolt properly.

I think any programmer or manager bitching about developers chairs or screens is a sadist and doesn't really get we have to live with this stuff and it affects our health.

I have an Asus 21:9 29", 2560x1080, not 3440x1440 like the LG you mention (which I've considered). The extra width is nice, and the aspect ratio is perfect when watching movies, but I find I need more vertical pixels.

Instead of the 34", wouldn't make sense to just go 4K (3824x2160) and get it over with? You're getting more vertical AND horizontal pixels. Personally, I'm salivating at the Seiki SM40UNP (40"). Anything smaller at 4K resolution and you'll need display scaling, negating the size gain. I don't think my 2013 ultrabook can drive it at 60Hz, but there are apocryphal reports that I may be able to eke out 50Hz.

Well, when I bought it before the 4K was available, but LG is supposed to have a 4K equivalent coming in 21:9 which would have the same vertical of 2,160 pixels (giving 5,040 x 2,160). I'll get that when it comes out because I like ultra-wide versus buying 2 monitors.
>> Anything smaller at 4K resolution

I have 32" 16:9 Benq at 4K and it's perfectly usable without scaling. You can think about it this way: 32" is double 16" monitors, and 15,6" monitors (rather popular in notebooks) with 1080p are quite usable. And it took me few days to adapt from previous 27" 1080 monitor.

The single 4:3 monitor is rather like the famous Van Halen rider about "no brown M&Ms": it's an opportunity to red-flag the employer.

Monitors are cheap, at most one or two developer-days of salary. If you can't get a monitor, what happens when you need to buy some more specific piece of equipment?

A previous employer had an extremely liberal policy on letting us just buy anything that cost <£100. Obviously we recognised this was a privilege that would be taken away if abused, so we didn't use it much, but it was tremendously liberating. Want an evaluation board? Need a cable? Or a book? Done!

Previously I've had to do a PO for a box of M5 bolts. That's the morale-draining opposite, especially if you have to sit around wasting several orders of magnitude more than the cost for the paperwork to be done.

(Aerospace people excepted where it's actually required)

Oh, and it is too noisy to concentrate in this open plan office without headphones.

It's also a signal as to who's in control of the development process. (Hint: Not the developers.)
I may be an old-timer and I typed my code into CP/M on a text-only display starting circa 1983 or so. I had to compile the code too and guess what ... it was fast!

But when you've only got 64K RAM there's a limit to how sophisticated a program can be. And when you're writing the type of tools we could write back then, your compilation cycles would be fast too.

Would I go back? Some of my CSS files are bigger than the hand-coded assembly language programs I wrote back then but I still love what computing has become. Many facets of today's systems seem almost unimaginable (except that I was an avid sci-fi reader). So I'll join you in demanding a fast machine so that I'm not waiting for code to compile. And who knows what we'll be building in another 30 years?

So I should be guilty for asking for a silent working atmosphere, a decent laptop and perhaps a second screen while the execs get the latest iteration of the iPhone every year. Right.
This is funny because no-one bats an eyelid at an "executive" demanding a corner office, an expense account, a company Mercedes, to fly first class... But God forbid a humble worker should beg for scraps.
An executive is different from a salaried employee, unless you're a githuber or whatever. Get over it.
In what ways specifically, from a bottom-line point of view at a software company, is an executive different from a programmer that justifies the executive asking for a more pleasant work environment, but not the developer?
To put it another way, I'm saying "The captain of the ship is as different from the guy swabbing the deck, as the executive is from the average employee". The captain's calling the shots on where the ship goes, the captain is aware of what the whole crew is doing, etc, etc.
If the author of that blog doesn't see the benefit of a larger workspace area (monitors, configuration, etc) then there is no point in reading anything else he writes.

Why are stuff like this on HN?

Well, if he'd written an article saying a larger workspace area is nice, would it have hit the front page of Hacker News?
I get your point, but I'm not here to be trolled.