DEV Community

Cover image for I enjoy life-long learning, but...
Ingo Steinke
Ingo Steinke

Posted on • Updated on

I enjoy life-long learning, but...

... there are some aspects of working as a web developer that do not spark joy in my heart. After collecting some notes over time, I have pasted them into this dev rant and added some links, screenshots, and clarification.

I enjoy life-long learning, but ...

I enjoy life long learning, especially of front end technology like HTML, CSS, UX, UI, also back-end stuff like SQL, Doctrine, and Symfony. So many things have improved (even JavaScript and PHP), but then there is stuff that I could do without, like spending days configuring Webpack and its plugins only because somebody else decided that every project needs to use Webpack (replace Webpack with any other tool or task you could have done without or delegate it to somebody else).

Delete Bookmark!

Things that I could do without

This rant is basically a collection of some stuff that I had written down to get it out of my mind. Finally decided to publish and share, so maybe it's fun to read, and maybe it is good for you to know that you are not the only one getting annoyed and confused by misleading error messages and the like. So here we go:

Breaking Changes

Adapting boilerplate configuration code for Webpack, React, or any other tool, to reflect the latest breaking changes.
Tasks like this may mean front-end web development to some people. But to me, it means nothing but wasting my time with menial tasks that could have been avoided if developers would actually care not to break things.

npm audit screenshot stating no fix available, followed by details and suggestions described in the following paragraph.

If it aint't broke, don't fix it

Apart from regular upgrades to node packages, which break other packages' peer dependencies so that those other packages need another upgrade, which breaks another package ... apart from that, we can check for security vulnerabilities automatically using npm audit, which is, in theory, a good idea, despite occasional irrelevant alerts and false positives. But either there is "no fix available" or if there is, chances are, that npm audit fix will upgrade (or even downgrade) a dependency that breaks something else.

Stylelint: typeError: configExtends.flat is not a function

Broken Dependencies

Don't even bother checking the error logs and vulnerability details to try and fix the problems yourself. You will find out that half of your software has already been deprecated in favour of another totally different technology, which is either unavailable due to a peer dependency of an indispensable module, or else it will be completely incompatible, poorly documented and still in beta.

Screenshot of a dependabot pull request on GitHub: Bump actions/cache from 2.1.5 to 2.1.7

Hidden Assumptions

Beta or not, even common tools that are supposed to be stable, maintained, and popular, sometimes lack the ability and documentation to make them "just work" on my own machine.

Every tutorial seems to make at least one assumption that does not match my current situation when trying to use any popular tool exactly like advised in their official documentation.

"I tell you, it's easy!"

Annoyed also by tutorials trying to tell me that something is easy, all I need to know, or supposed to make me have fun.

I am just trying to do my work, okay?

Okay, we'll send you a GIF.

Animated gif showing nothing but shaking text that reads this gif is only here to annoy you!

Silly!

Annoyed to see animated meme images of some seemingly popular Hollywood actor, when all I wanted was a solution to a technical problem. Having to read npm idiosyncrasies like "sill" or silly slack phrases like "Sweet potato! Here's a tractor" or "more holy moly!"

Slack screenshot with text "More holy moly! Your friends at slack"

Useless Knowledge

Yagni is a statement that some capability we presume our software needs in the future should not be built now because "you aren't gonna need it". The same could be said for many facts that I learned the hard way, without any relevance for future use.

Researching and learning anything could always be considered a waste of time in the perspective of being outdated and irrelevant in the future, but then at least the learning process has an intrinsic benefit.

Or at least it should have, while in practice, we often spend hours, days, even months and years, to research specialized knowledge that does not provide any benefit outside its limited use case.

I am not talking about jQuery, Flash, or BASIC. All of them gave me insights and experience that I don't want to miss, seriously! But looking back at my StackOverflow bookmarks set in the past years, I deleted numerous links to discussions about Highcharts options, Internet Explorer idiosyncrasies, Docker glitches on MacOS, Network Manager malfunctions on Ubuntu, line-endings issues in git bash on Windows, ReactDOM peculiarities, and third-party services' API problems.

Screenshot of a StackOverflow bookmark: How can I render HTML from another file in a React component?

When I think of all the good time that's been wasted!

Overly verbose error messages are another potential time sink.
We could also call them...

Stack Trace Novels

Error messages containing several pages of verbose stack trace details that still omit the actual file name or line number that would help you to trace the error back to your source code.

If line numbers are included, they are either lines in the source code of a third party framework component, or line 1 of your compiled application bundle. I even got errors in line 19 of a component that only had 11 lines in my source code.

Example of a stack trace like the one described, in a screenshot from an outdated GitHub issue: I'm seeing this issue as well. Here's the stack trace. I think it might concern react-router because it starts off from app.jsx

Search Overflow

Googling the error message, finding either unrelated or unanswered questions on StackOverflow, and if someone did have the exact same error message, surely their question had been erroneously marked as a duplicate or "downvoted" and closed for any other obscure reason.

Searching Without Matches 🔥

Google screenshot: it seem that there are not many great matches for your search.

In other cases: not a single matching entry, and Google stating the obvious: that there are not many great search results. You don't say! 😲

Missing, must Include

Alternatively getting a lot of search results, but mostly unrelated, annotated by small blue links with a strike through one of my search terms, stating "missing / must include". These links never provided any single more relevant result when clicked.

Screenshot showing a failed google search like described in the text above.

Linting the Wrong Code

All of this only to find out later, after hours of frustrating research, that the actual error was a typo in a completely unrelated file never mentioned by any error message or linter warning.

Not Allowed to Fix StackOverflow

Try to fix the same typo in the StackOverflow example where it came from, but on submitting an edit, getting the error message from StackOverflow:

screenshot of the message below on StackOverflow.com

"Edits must be at least 6 characters; is there something else to improve in this post?"

Change this behavior to allow for spelling corrections and the like has been requested on StackExchange Meta for at least 10 years. Not the only reason to rant about StackOverflow, but this one seems really silly.

AirBnB's Coding Style

Meanwhile, linters keep nagging about missing or superfluous braces, spaces or indentation, again instead of providing any insight about the actual problems in my code. Even more so, if a senior team member or a company coding style guide insisted on using AirBnB's style guide. Their website looks neat, and so did most of the places I ever booked over their platform, but their JavaScript style guide still sucks. Apart from my personal taste, I tried to provide some reasonable arguments for my dislike.

Screenshot of a warning popup: ESLint: Missing trailing comma. (comma-dangle)

Dangling Characters

Adding dangling commas at the end of any line where you do not need to. Okay, this is even valid ECMAScript, at least, so no need to transpile for the linter's sake. But I did not find it helpful to achieve the intended benefit of getting less verbose git diff to review, because adherence to indentation rules makes everyone reformat twenty lines of code around even a single character fix on one line anyway.

Having to add trailing commas mostly everywhere just moves inconsistency to package.json and any other json file where there are still some parts of the code that will make your code invalid. Now why won't the ubiquitous Babel handle that as well?

Popular Double Quotes

Most code examples found in official documentation seem to use double quotes for strings. AirBnB doesn't. So after pasting documentation examples into your own code, you have to "fix" the "errors", sorry: 'fix' the 'errors' until you see no more Strings must use single-quote.

But even the best code style rules, .editorconfig and trunk-based development will not save you from the ubiquitous

Merge "Conflicts"

Screenshot of a conflicting diff in the editor

Not really an issue in most cases, but still another waste of time and concentration, when every now and then, using more than one branch, small edits, merge, and rebase, git diff complains about "conflicts" that are obvious to solve for a human but still not for a machine, despite the hype about the age of AI, coding co-pilots and the like.

Expected Mess

It still happens, that you copy a well-formatted code snippet and paste it into your editor / IDE where the original format gets messed up to unreadability, does not get fixed, but instead linted and underlined with helpful annotations like "Expected indentation of 8 spaces but found 4".

Recommended Mess

All of this mess gets more likely, the more recommended tools you try to stick together, especially if any part of the setup or boilerplate code has not been updated during the past eleven months.

Case Closed

Seen the same pattern in GitHub issue, but also in Google's Help Center: there is one single, unhelpful, answer for a problem that keeps occurring and which is hard to google, and the thread is already closed? "This question is locked and replying has been disabled." Also known as "Can't Reproduce, case closed."

Selling Stolen Information

Last, but not least: I am really upset about companies trying to make me pay for information that is, or should be, freely available. Don't get me wrong: I am happy to pay for expertise and good education. Paid courses on Udemy and, even more so, FrontendMasters have provided a source of valuable knowledge, and I will surely take more courses when I find time to do so.

On the other hand, there used to be Experts Exchange (always remember EE when you're feeling bad about StackOverflow) and now there is medium.com and various code grepper pages, full of articles and code snippets, many of them dubious, mediocre, and badly written, trying to recycle open-source knowledge to sell subscriptions or making money by displaying annoying ads all over their page.

Screenshot of medium.com paywall popups: "Ingo, curious about programming?"

Discussion (1)

Collapse
ingosteinke profile image
Ingo Steinke Author

After all the wasted time fighting against and together with ESLint, Google, and StackOverflow, I have wasted even more time by updating this article! Added several screenshots and collages, fixed spelling errors, and added some more details and issues. Have fun! Also, I am curious about programming^H^H^H^H --- no, I mean, I am curious about your stories, rants, and funny failures in the comments.