Ask HN: Forced to work with tech that you hate? How do you manage?

3 points by akudha ↗ HN
I'm beginning to hate the JS/Node/React etc ecosystem. But I am forced to work with it.

Anyone else using tools, tech that they really hate, but are stuck with it? How do you manage to be productive, not be in a constant state of annoyance?

6 comments

[ 3.7 ms ] story [ 28.4 ms ] thread
Focus your efforts on what you have control over. I am sure I am not the only one that despises have to use Windows and the spyware riddled mess that it has become, but I can't control it, so the only option (at least in the short term) is to focus your efforts on what you can control. Long term, maybe you will eventually be in a position to recommend/implement a switch, but don't let that take up all your time.
Write tools/libraries that remove the pain.

Or stop caring.

I once had a contract to work on a brutal legacy Microsoft C++ codebase, everything COM, ton of macros enforcing inane conventions. I worked at 20% productivity. Billed the hours all the same, not my problem. Whenever I felt over it for the day, I closed my laptop and walked away.

There's plenty of things to try:

  * Set up Javascript Standard
  * Add Stryker mutation testing
  * Refactor changes into a corporate
    template for new projects.
  * Experiment with minimal JS calling into
    C via FFI
  * Port older company libraries to WASM
    (Java -> JS callable WASM)
  * Take some Frontend Masters courses on
    Enterprise Design Patterns, WebRTC, and
    data structures.
  * Volunteer to wrap stuff in APIs, since
    Node.js lets you prototype quickly
  * Study the D3.js codebase. Highly
    recommended from "Reliable Javascript"
Any of the above gives you a chance to learn transferrable skills.

Even IIS/VB lets you write ES3, and you can pass in functions as arguments. That is really liberating.

And finally, what tech would you rather be working in instead?

> Even IIS/VB lets you write ES3, and you can pass in functions as arguments. That is really liberating.

Oh man is that still possible? I remember doing both server side and client side rendering with the same set of templates and JS with ASP classic (I think?). That was 2008 or something.. JSON handing was a pain though.

Yep, ES3. It was even possible to import Crockford's JSON library to call stringify() and other methods server-side. Add Ramda.js, tell Babel to transpile to ES3, and it's nearly modern ES6 fun.

I hit a wall getting fantasy-land set up with the same "customize the .js source files a bit" approach, but it was a nice PoC for server-side JS.

Where Google went forward and I stopped short was `eval` n' friends: exporting functions to run on the client. It felt pretty involved, and I was already juggling multiple "Is this even possible" doubts.

rpeterclark/aspunit is super nice for unit testing Classic ASP [1], by the way. That let me abstract IIS VB Let and Set for dictionaries. Combined with the ability to fling function "pointers" around, which opened the way to calling functions by string, lets you support data-driven, custom workflows:

  Set o = CreateObject("MyCustom")
          .And("CustomFunc1")
          .And("CustomFunc2")
Kind of a "solution looking for a problem" situation, though.

[1] https://github.com/rpeterclark/aspunit

> How do you manage to be productive, not be in a constant state of annoyance?

This is why programming is paid so well. You get paid to bang your head against the wall and live in Google and Stack Overflow. The trick is in the delayed gratification premise, in that you only see the fruits of your labor after a long period of headaches.