Hacker News new | past | comments | ask | show | jobs | submit login
You can't impress developers. So don't try (baus.net)
162 points by adgasf on Oct 31, 2018 | hide | past | favorite | 97 comments

There are countless comments on Hacker News by a developer impressed with something. So this headline is wrong. What you can't do is impress all developers. But neither can you please all people. So the article's advice to "focus on impressing your users" could also lead to a very special kind of hell, about which more ink hath been spilt.

What the writer was really writing about, though, was that there is little acknowledgment of the effort that went into something, even if in the end it's not for you. Someone wrote a Python interpreter in JavaScript, and in that there is skill, even if overall you reject the effect. What the writer may be asking for is the attitude of a coach: "That was a fast throw, kid, now next time just see if you can aim it more over the plate." That is a legitimate want, and I think the forum would be better if there were more of it. But again, this isn't a deficiency endemic to developers, it's endemic to People on the Internet.

Key takeaway: seeking encouragement from anonymous or semianonymous people on the internet could be harmful.

>There are countless comments on Hacker News by a developer impressed with something. So this headline is wrong.

So, is it fair to say that you're not impressed by TFA?

The interchange of

“Common statement which is generally true”

“A single out of context example where the above statement isn’t true, or a statement asserting it is not true no more than 5% of the time.”

is so common.

Once you start seeing this sort of thing, you see it everywhere on HN and it’s impossible to stop seeing.

It’s almost like a mind trap for developers, that once we see a general idea we immediately snap into disproof mode instead of thinking about ways to more charitably interpret the argument.

I hear you man. This is indeed a pet peeve of mine -- outlier counter-examples, as if any general statement is supposed to cover 100% of the population (and if it doesn't it's invalid), and not just "most" or "many".

Still, it is very hard to make developers pay for software.

So on a different level, perhaps it is hard to impress developers.

it is very hard to make developers pay for software.

Have you seen the Magit kickstarter[1]?

Magit is one of Emacs' killer apps and it's known and loved by virtually all of its users, who are almost all developers..

When its maintainer opened a kickstarter to work on it for a year, it was more than fully funded by nearly 2000 backers.

So, yes, developers are willing to pay for quality software.

But, yeah, overall this is a gift economy where people take what's freely given but also give back to the community in some way.

[1] - https://www.kickstarter.com/projects/1681258897/its-magit-th...

For every Magit, there are ten other projects that receive an unending shitstorm of criticism, and no support.

If you are one of the fortunate few who can thread that needle, congratulations, for you too can now revel in the financial security that only a moderately popular kickstarter can bring. Don’t spend it all in one place.

Yeah that's the biggest issue. Many developers (myself included) seem to refuse to pay for software. At least normal users are willing to accept ads and data collection in exchange for getting a free service, but we developers don't even accept that.

Assuming that a majority of developers refuse to pay for software is, in my opinion, an exageration.

I feel that we are in a position where we can estimate the amount of work and the dedication that a team has put into a great product. I have paid for many of the great softwares that run on my machine because of this knowledge.

I pay for all sorts of software: time tracking, malware removal, video games, adobe suite, windows 10, music production software, a handful of SaaS products.

I have a JetBrains all products subscription and a Matlab license. I'm happy to pay because it's fantastic software worth every dollar. If JetBrains doubled their prices I'd still pay.

I do think there is a significant segment of developers who are really gung-ho about free software politics and refuse on moral grounds to pay for software ever. So that might be what you're seeing.

> Still, it is very hard to make developers pay for software.

I don't think this is true. There are lots of things that developers throw money at, and each developer can easily think of multiple processes that would happily through hundreds or thousands of dollars at if those processes could be automated.

However, it is hard to build software that developers will pay for.

I.e., the demand is there and it is strong, but the products that meet that demand are generally Real Engineering Problems.

Or are developers more likely to pay for software, and pay more overall?

I personally have paid for software in the past, but I don't do it much anymore because:

A) Self-funding a startup has required me to become quite frugal

B) Giving money to competitors is almost always a mistake

Unfortunately that's the way things go. I would like to be able to afford more, but so would everyone else.

Great tools can save you an immense amount of time = money, so it should not be as black & white, even with startups in their early days.

I have also been at startups that wasted large amounts of time and capital trying to work with the wrong tools. The risk isn't worth it especially when a lot of other startups in the same ecosystem (competitors for the same VC dollars) will happily sell you an unfinished product and then shut down a year later and stop supporting it.

your comments is exactly what the article is about. Fault finding becomes a second nature for engineers/programmers.

Are you finding a fault in his comment? If so, are you doing it just because you are a programmer? /s

Maybe we should think of it as social debugging.

You mean like nit-picking?

> There are countless comments on Hacker News by a developer impressed with something. So this headline is wrong.

While I agree with you, I also think that technical fields promote negative assessments more than average.

An article a while back pointed out the difference with interviewing: a technical interviewer thinks about starting from some high total of points and subtracting--a management interviewer thinks about starting from some low number of points and adding.

It makes a very different experience.

And adding that people focus on negatives much more any few negative posts will be remembered later to be far more common than they actually were.

There is a pretty good subreddit for things that are done really well but, in the end, are really stupid. So there are places for this kinda stuff. A forum for just JS might actually get more out of the Python in JS project, but I come here for news on tech that I might actually use in my day to day job NOT for fun projects that have little use.

There also seems to be a lot of randomness as to what makes the front page. There are so many toy projects out there that are just as interesting and just as polished (or unpolished) as many of the toy projects that make the front page.

Personally I don't like those post, and thus I might seem overly critical. The more they show up here the less I actually spend on the site since it doesn't have the stuff I am looking for.

Yes, but the most upvoted comments are always the negative ones.

HN should start classifying comments with a negative/positive score. Then find out which users tend to upvote the negative scores or the positive scores. Start with just gathering this data. After that, it might be interesting to start changing the view order a bit.

Note I'm not saying to downplay ALL negative comments, I'm suggesting to downplay negative comments by the users that always write and upvote negative comments.

Part of it is that responses rarely seem to take into account the reason something was built. Someone building a Python interpreter in JS to learn about languages and interpreters often gets the same response that Facebook would get it they released the same code as an open source library, even though in the first case a Dev isn't saying it's perfect, just that they made something cool and want to show off work they're proud of.

Oftentimes effort alone is commendable, even if it misses the mark, as long as it's not hurting users. We so easily forget that though when judging others' work.

> effort alone is commendable

I think this is where things fall apart for me, and I suspect others. I don't see effort, by itself, as commendable.

Projects like these usually have the goal "can I do this too?"[1] The answer is always an obvious "yes", since it's been done before. The effort to learn something is commendable, but the act of learning is rarely "impressive".

> No matter how successful, reliable, or loved a piece of software is, inevitably other developers will not value the time, effort, and craftsmanship that went into building it.

Come on now. This can only be true if he himself has never been impressed with anyone else work.

HN is filled with professionals who will be quick to give, usually helpful, critical feedback. I would go as far as to claim "wow cool" feedback doesn't contribute to the discussion, especially if the only purpose of the project was to complete a learning exercise. If others are like me, I'll often read in amazement, maybe try out the code, rather than fill the comment section with congratulations, which would rightfully be down voted.

[1] ~20 projects for getting Python in the browser: http://stromberg.dnsalias.org/~strombrg/pybrowser/python-bro...

>Oftentimes effort alone is commendable, even if it misses the mark

Commendable, yes; Monetarily valuable, ehhh

I think the problem is that "Hey I built this thing isn't it cool" seems to lead to "I spent every waking hour on this for the last 3 years, so this is REALLY cool, see?" which leads to "I spent every waking hour on this for 3 years and now other people use it also!" which leads to "Hey, other people are profiting financially from my work, I should be compensated!"

I think this is why HN commenters tend to jump the gun a bit when they cut out the middle steps and go from "Hey, look at this cool thing" straight to "You could never sell that as a product because X, Y, Z."

I think you can impress them more when your feat of good programming is also useful to others. "Ive done this trick to make Rust compiler faster", "I've improved a frequently used function in the core libary of C#", "I've made a cross platform gui library that is easy to use and efficient", "I've found a faster way to hash in certain use cases"

Telling people about your feat of programming that was very difficult but was a (probably) non-useful learning exercise probably won't be interesting unless they are a friend or also happening to be wanting to learn about the same thing.

My gut feeling is that this is right. Some devs really do seem to have little respect for "code on the ground", and the problem is magnified in places without any DevOps culture / a sense of developer responsibility towards operations (ie, Devs who won't do oncall or refuse to write RCAs).

I think it stems from a culture where people want strive to adopt the most "elite" way of doing things (ie, running Kubernetes for everything, because Google) because it lets them show they're capable and knowledgeable, and nobody is going to say Google is doing it wrong. The downside to this is that cheaper, faster, and more practical solutions get thrown aside as "hacks" because they don't scale to google level. When really, a lot of places don't need that kind of scale, and having too much complexity can be a risk of it's own. I'm not saying scalability isn't important, it can be critical for some things, but I rarely see devs give the same attention to usability or monitoring in their designs (there are lots of misconceptions that using orchestration solves monitoring, when really it can make it harder if you don't plan for it up front).

So I say let google and co worry about impressing people, and just spend your time on making things that solve problems. And maybe, in OPs case, (this may be unpopular) you don't have to share everything you write, especially if it's not something that solves a problem for other people. Put it on your github and resume, but if it's not solving real problems, it's just for your learning.

I would interpret it as a push back to using Javascript for everything and anything, unless it's clearly marked as this is for fun and a learning experience. People will easily jump in and say but why Javascript? and the answer is almost always that's the only language I know how to use. Using one language for everything doens't impress good engineers (or developers). Not my opinion, but that's what I felt in the comments of the linked post.

It's not really developers who are hard to impress - it's just anonymous developers on internet forums

If you want to impress developers wouldn't you simply get an FTP account, mount it locally with curlftpfs, and then use SVN or CVS on the mounted filesystem?

As a developer it's very hard to see what kind of software normal people find useful. I happened to overhear a conversation about Dropbox, the idea that you could read-only share a document was simply amazing to them. I rolled my eyes then. But also knew at that moment that Dropbox would become very popular.

What even?

It is making fun of the one of the top comment that was on the Show HN Dropbox.

Here we go: https://news.ycombinator.com/item?id=8863

Ninja'd, should have refreshed.

Someone mentioned the existence of this FTP "solution" as a reason why Dropbox would not succeed, when it was first shown here.

I manage quite a lot of developers and I think the article has a point.

Out of all the different IT personal I manage, developers are the only ones who seem to think they have to be correct all the time. That doesn’t exactly brew the best atmosphere, because how can you be?

Where are developers like this? I've never encountered a person like that in my life ("have to be correct all the time"). Is this specific to FAANG? Which city? I'm familiar with startups in the Bay Area and Boston.

I agree with the sentiment though I'd reword it as "developers need to know that their understanding is correct at all times".

This is uncontroversial, we can't build things well if our understanding is wrong, whether of user requirements, budget/political process, technology, existing infrastructure/whatever.

Sure, "developers need to know that their understanding is correct at all times", this describes most if not all developers I know but this is hardly a bad thing and in the conversation above this was used in a bad connotation ("that doesn’t exactly brew the best atmosphere"). I'm even more confused now.

> Where are developers like this? I've never encountered a person like that in my life ("have to be correct all the time").

Seriously? Every nerdy subculture is full of these people.

I've worked with such developers. It's not that they can literally never accept to be wrong, but their first instinct is always to deny any failures in their work and always point out flaws in the work of others, even if they're obviously untrue.

I wrote a post on this over a decade ago: http://www.mooreds.com/wordpress/archives/134

It pointed out what I thought were special reasons why developers think they have the answers, even in disciplines wildly different than software development.


* need to ask questions

* detail orientation

* knowing (and being well compensated for) knowing about something difficult

I'm older and wiser now and hold my tongue when talking to experts in other fields, but I did my fair share of, say, reading contracts or patents in my day.

This is an excellent write up of exactly what I meant.

I should have said arrogance really, young developers often remind me of the conversation between yoda and kenobi on the arrogance of anakin in the clone wars.

I work with a guy like this. The rest of us laugh at him but he thinks we are intimidated by his technical genius and immense capability for Machiavellian political maneuvering. In reality he doesn’t take direction well but he’s around because if you let him call you stupid a few times he’ll do a bunch of your work to try and show off.

So would you say you are unimpressed by the author's thesis?

Haha yes, precisely.

Does any know of a community of practitioners in a field or discipline who are by and large usually impressed by output of the members of that field on a regular basis.

Not rhetorical, asking for myself. I guess, I want to know how much more toxic are we as a community (to the degree you can talk about all folks who read or might read HN as a single monolithic community).

I mean, I know a few artists, they are absolutely savage when it comes to the work of others. Is this a dev problem or human one?

Indie game art seems to be pretty good. There are some annoying comments, but overall I see lots and lots of positive comments and support.

Even on Twitter, see #screenshotsaturday responses.

from cursory experience in physics and biology is s pretty much the same: sometimes impressed, sometimes cynical, probably spending more time in the latter. IT's only normal and it's good: criticism pushes things forward

I believe the number of good software engineers numbers in the thousands. This is completely anecdotal, and I have no studies to back up this claim. The longer I've been in industry, the more I've come to believe that the number of good software engineers seems to remain fairly constant over time. I also contend that more than fifty percent of developers are bad, and shouldn't be programming.

Given those margins, finding someone who actually is impressive is difficult. Most projects are not that interesting, are rehashes of something that's already been done, or are just poorly designed and executed.

I'm not sure about that. Instances of code that I know impressed lot of developers: several sections of the original Doom code, at least one entry in Gamasutra's old article "Dirty Coding Tricks", their first time groking functional programming (a functional declaration of quicksort, for instance).

Then again, I'm not really impressed by "X in Javascript" anymore, so I'm definitely biased.

The functional declaration of quicksort one is ironic considering it isn't actually quicksort.

I'd postulate it is because we are intimately familiar with how the sausage is made, so we can identify the problems (perceived or otherwise) with ease. Since everyone thinks a little bit differently, even if we do make something impressive, everyone who sees it will think of how they would do it instead. Either that or we think "why the hell did you think this was a good idea?"

Yes, this is my theory as well. I wrote a little thing about how it applies to selling products to developers a few years back: https://jasonlefkowitz.net/2012/04/how-to-sell-products-to-n...

This seems to extend into any community where nobody has any skin in the game yet the topic has superficial qualities in which it can be knee-jerk judged (unlike, say, a book).

Some of the most unsettling behavior I've seen online is a thread on Reddit where an indie developer shared their game with /r/gaming. The reactions: "Looks like dogshit", "This really took you two years to build? lol", "Doesn't even work on Android? lol miss me with that garbage."

Like that /r/gaming thread, we on HN do the same thing with the superficial qualities of a project.

"Python in JS? Who the fuck would want this lol. It took you how long to build this dogshit? Yet another web developer who refuses to learn anything beyond JS." Our analysis goes no deeper than whatever was summed up in the Show HN title where the author is lucky if anybody even navigates to the Github repo and looks at the work involved.

I think it comes down to modern entitlement culture where we see the world as our personal buffet. Now combine that with the ease of sharing your opinion with the world.

Yeah, and in particular: anonymously. It seems to bring out the absolute worst in people when they can say anything without immediate or visible consequences of their words.

"Experienced developers make the difficult seem easy. New developers often make the routine look hard."

Well said.

You can impress your friends by learning to juggle 3 balls. You won't impress a circus performer who can juggle 5 is working on 7 and spends every workday with people they don't feel like they measure up to.

There are ways to impress developers, but you won't get then to see the magic regular users do. We all work behind the curtain, and nobody online knows you well enough to understand when your accomplishments are personal milestones.

Here's a decent example of the attitude described in the post (it was a conversation I was involved in recently):


Of course, a random person on the internet thinks s/he can architect systems of unprecedented global scale without knowing any of the context or goals of the systems involved.

That entire work of Shakespeare in a jpeg was kinda impressive.

I was expecting a rant about job ad filler. "Join a world-class team of architects, we are changing the world and ushering in the age of Aquarius with our revolutionary CAAS (CRUD-As-A-Service) model, endorsed by Mark Zuckerburg's freshman biology classmate!"

It's actually about people posting personal code projects on HN, and I disagree, personal code projects quite frequently get quite a lot of recognition here.

Crud as a service is actually pretty awesome. Been using Airtable and I think it could replace a lot of single purpose business applications

Extra context: this article, and the event it references, took place in 2013

Sorry, but yes you can. Watch:

"Hey guys, ES6 and Node have their problems, so we ratified a new standard that fixes all their shortcomings and bugs. Download it today and start your new project in a few mins".


"Hey guys, I know the whole point of keeping source code is for the next guy, but check out how I totally obfuscated, er wrote, this complicated algorithm I'm .5 lines of code"

I think maybe it's always hard to impress your peers, regardless of industry. Peers tend to be impressed by practical knowledge they can leverage to increase their own skills, tools that help them speed up work, or successes within their industry that have been achieved.

I generally agree that HN commenters tend not to get impressed by things.

That said, I don't agree with this:

>The Google search engine brings in $billions each year, and is one of the most important software projects in history, but I guarantee there are developers at Google right now complaining about how crappy the core code base is.

You can appreciate the performance of the Google search engine at scale, while still being annoyed by how crappy the core code base is. (I have zero knowledge of what the codebase is actually like, but I would guess that like most legacy code written in a legacy language without algebraic data types, it's probably a bit of a mess at this point).

As an aside it would be great if anyone who actually has seen google search source code can provide a general idea about the code quality. One imagines it should be of thr highest quality being the core google product.

I know someone who works at Google, and their initial impression of the code base was that it's the highest quality large codebase (or largest high quality codebase?) they'd ever seen. Apparently all the qualifications and reviews really do help.

I saw parts of the codebase while I was there. It definitely has dark corners. But given it's size and the complexity of the problems it's solving it's wasn't that bad.

Of course at any given time while I was there the team was running several different refactor/fix/delete/cleanup projects. It's a continuous and well funded effort.

> Instead focus on impressing your users (if your users are developers, I wish you luck).

Funnily enough I think everyone's impressed with Jetbrains. I rarely meet devs who don't like their tools. Or Kotlin.

The users of an open source project I started often give great feedback and appear to love it.

But a very small minority like it enough to donate to support the development efforts, even though it is saving them significant amounts of money and time.

It's mostly because HN is one of the most rigorous communities online. And it's worth it, it's the only website where you learn more from the comments than from the article itself.

Or maybe rephrase to "if you're looking for praise..." as i think it may be misplaced to expect it in mass unless you have had tons of user testing/feedback and iterations to move it that way. Opinion is just consensus anyway and sometimes having a niche of people that love what you do is all that matters. In this case in particular, python on the web isn't necessary well liked in mass from the beginning so you are starting an uphill climb.

I don't think this is necessarily a developer-specific issue. You show something off to the internet-at-large and they probably won't have nice things to say about it.

This isn't necessarily because they're unimpressed though. There's only so many different ways you can say "great job", compared to the potentially infinite ways in which you could find a flaw in someone's work and highlight it in a constructive or unconstructive manner.

> There is a time and place for review, but code on the ground deserves respect.

I think the post mixes the respect / approval / praise a bit. You can at the same time respect that someone produced something that solves what they needed and think that the project is a steaming pile of poop from the technical / design side. Maybe the comments should mention the first part more often. I'll definitely try when criticising some tech in the future.

After reading your article I'm reminded of an article I read sometime ago about Lennart Poettering, author of systemd for whom users actually were collecting money to hire a hitman to kill him [1]. I don't think anything can top this level of hate for free software.

[1] https://www.linuxinsider.com/story/81162.html

The mundane truth is that no-one collected any money, or even tried to. Despite the perpetuated claim that "this really happened" it actually didn't. Some fools said some stupid things on an IRC channel.

* https://news.ycombinator.com/item?id=8417369

> if your users are developers, I wish you luck.

Lol sounds like my experience working at a SaaS company. It can be hard to get them to pay for your services.

> There is a time and place for review, but code on the ground deserves respect.

This is one of the reasons for which I think that refactoring a code base, in the original sense by Martin Fowler, where a program is changed without modifying its functioning, but only extracting its structure, is a severely underused practice, and one for which there would be a lot of space in the industry.

You can't impress those that know more than you. I'm not impressed by half of the showHN that I see, but then I'm equally impressed by the other half. I sent an email a few hours ago to someone that had a showHN because I was impressed by the quality of work, not just in what was done, but code, documentation & organization.

I don't believe anything really impresses developers. Developers look at something and think, wow how did they do that followed by I can do that so this can be ignored.

People are more likely to speak up when they're unhappy than when they're happy.

If they agree with everything you said, they'll typically upvote in silence.

It has nothing to do with developers.

I don't think people expect to be impressed they just want their future pain when working with a given codebase to be minimized.

I was impressed by the audacity of the title even without reading the article. That can't be right

I hate when people speak on my behalf

dang: please add (2013) to the title.

This is just a gross generalization

Funny.Having been closely working with world class scientists as an engineer, I’m (and the whole team) being impressed every day, to the extent that I feel I’m such an underachiever

Their first mistake was posting about JavaScript on this site. This site has an unusually high volume of anti-JavaScript people.

But it should be different. One of the most beloved languages, Python 3, implemented in the fastest dynamic language backend. js has an awful design, but an extremely fast implementation. Biggest problem was the missing of any benchmark. it should be at least 2x faster than cpython3.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact