Hacker News new | past | comments | ask | show | jobs | submit login
You can't impress developers (baus.net)
265 points by cmbaus on June 2, 2013 | hide | past | favorite | 163 comments



Developers, in general, on average, chronically underestimate the time it takes to properly execute an idea and how many iterations and discovery of the exact needs of customers that requires.

I work at a company that sells a tool for model based testing and invariably, at every customer company, there are developers that think our tool isn't worth the money, because when we explain to them how it works and they think 'I could build that'. Yes, of course they could, just like they could also build a Reddit clone in a weekend. They just don't realize (and is hard to convince otherwise), just how much work it is and how much real world experience is necessary to make it actually useful. As the article says: developers are very hard customers and fortunately (for us, but not for the industry in general) the decision makers often distrust/discount the technical opinion developers have of tools they intend to purchase.

Tl;dr: developers too often say 'I can build that', when really, for practical purposes, they can't.


Humans are notoriously optimistic, and in particular, we forget about all the things we have to do in order to achieve the things we want to do. (I have been reading some research on this lately).

I used to harbour the "build it in a weekend" suspicion about everything, and then I started building things. The world is a damn mess, is what it is.


Indeed, I don't think it's just a developer problem. Making stuff is haard, and the more you do it, the more you understand that.

Maybe it's related to that thing that has mentioned on HN quite often lately, where the incompetent people are unaware of their own incompetence?


https://en.wikipedia.org/wiki/Dunning-kruger_effect

I'm not sure that it's Dunning Kruger so much as it is just not knowing at the outset of the project all the pitfalls you'll get into making it.


Could you please point to the research? It sounds interesting.


I've been working on a tool for making PERT estimates easier and, consequently, done a bunch of reading about PERT, wherein lots of the work is of a statistical or mathematical nature. But I also ducked across to the psychological research to get a feel for the human factors. Psychologists consider estimation problems under the heading of "the planning fallacy". I intended to write a series of articles for SEO purposes but so far I only have two fairly light-weight ones done[0].

Most PERT method research is out of the Operations Research community. There's some interesting stuff there about how estimates can be wrong. For example, if you accept that there's a range of probabilities on every node in a PERT graph, then managing the "critical path" by itself is very risky. There's a whole bunch of what you might call subcritical paths lurking, and one step in risk management is to find the parts of your project where they might be lurking[1].

Another thing that pops up. In the classic PERT formula, the divisor is 6. Why 6? It turns out that nobody is quite sure, but it roughly assumes that events follow a double-triangular distribution[2]. This is a heroic assumption, to say the least, but how do you best account for it? In my prototype code I've made the distribution configurable with the idea that advanced customers could change it; or perhaps some regression across all customer data could provide a better fit.

But then comes a bit of a bombshell from the psychologists, who operate in a carefree world, innocent of project management problems. They've found that decomposing a task improves estimation performance. It's called the "unpacking effect".

In a series of experiments Kruger & Evans established that you can improve estimation performance on a main task simply by asking people to list the subtasks required to achieve it. How long will it take to get ready for a date? If you ask this question by itself, the answer will be wrong. If you first ask "What do you need to do to prepare for a date?" and then ask how long, the answer is still wrong, but it is less wrong. Read their paper, it's absolutely fascinating [3].

To me this raises the fascinating possibility that the improved performance of PERT estimates over expert judgement derives mostly or wholly from the enumeration of subtasks rather than the statistical stuff that comes along for the ride.

[0] http://confidest.com/ (I know it looks very ordinary, my CSS chops are very ordinary).

[1] Richard J. Schonberger, "Why Projects Are 'Always' Late: A Rationale Based on Manual Simulation of a PERT/CPM Network", Journal of the Operational Research Society

[2] T. M. Williams, "What Are PERT Estimates?", Journal of the Operational Research Society

[3] Justing Kruger and Matt Evens, "If you don't want to be late, enumerate: Unpacking reduces the planning fallacy", Journal of Experimental Social Psychology.


That's for post like this that I read HN. Thanks :)


Well put Jacques, I couldn't help but reblog this! :)

http://johnmardlin.tumblr.com/post/51994252739/humans-are-no...


Ta. Feel free to link to my website (chester.id.au).


I think this also extends into developers that want to be founders. I think they have a hard time selling things because they always built instead of bought and feel lots of things should be free. They also think particular details matter when they really don't, and these things hold them back from selling.

As a developer founder, getting over this has been one of the most challenging but important steps in making my business grow and thrive. I'm still not 100% there yet.


This is so true. I am 3 months in to a 2 week project.


All that's left when you're done with the first 90% of development is the other 90%[1].

[1]: http://en.wikipedia.org/wiki/Ninety-ninety_rule


Downcoted you by accident, sorry.


The Planning Fallacy. It is really hard to convince yourself to be pessimistic. Most people who think they are planning pessimistically are not and are underestimating the amount of time it takes for them to do something.


>I work at a company that sells a tool for model based testing and invariably, at every customer company, there are developers that think our tool isn't worth the money, because when we explain to them how it works and they think 'I could build that'.

Neat, what is the company? I was glancing at some papers on model based testing recently and had no idea there were commercial tools for it.


In defense of that mindset creating something for personal use often involves 5% or less of the effort it takes to bring something to market. Or as an EE friend once said about his home built hot-tub if X went wrong then scolding hot water would shoot out of the pipes but it's not something I am worried about because I would freak out and pull the plug if Y or Z started to happen. Which transforms a huge fundamental flaw in the design to something that's not that important.


I've been active here for about 2 years now. I don't think there's been the dreadful decline people are talking about; I think it's mostly nostalgia talking. I know intellectually that I basically hated highschool and spent most of it alternatively depressed or bored out of my skull, yet somehow that period of my life has taken on a rosy tint.

Sometimes OPs are wrong or misguided and somebody with more experience or expertise is there to point out why.

That's valuable.

Often you hear from the creators of things. Folk who are at the coalface of some system, company or problem.

That's valuable.

So sometimes it comes with a bit of grunge and grump. I don't really care. The rest is worth it.


I have similar thoughts. I've been here for a few years and I haven't observed any specific decline.

I'm a little confused by the perceived offense as well: it's not good to tell someone something sucks? I would much rather hear honest thoughts about my projects ("seems like a waste of time, poor implementation anyway, maybe try $x instead?") than be given a false sense of security through unwarranted praise. Of course what is not cool is downright snippy dismissals without any substantiation, but I think those are still relatively rare.

Really the most tragic thing about it all is that pointing out the "middlebrow dismissal" in a verbose comment/blogpost has become a meme unto itself. We spend so much time on meta-discussions now. So here's my idea of how to approach comments you guys feel are putting people down unfairly: neutralize the meanness by following up that very mean comment by saying something like "I don't think you're being fair, I think author of the post has made something really cool because $y". And, the $y part better be something technical, or else we're going further down into more non-substantive meta-discussion discussion.


Having been in the industry for some time now, I've observed significant generational differences between how criticism is given and accepted.

When I worked with developers raised in the 1920s, 1930s, and 1940s, they generally wouldn't hold back when it came to criticism. If something was done wrong, or if something was a stupid idea, they'd say so very bluntly and to-the-point. They'd also be more open to receiving such criticism, and would re-evaluate their own work or ideas without a second thought. They surely wouldn't let it hurt their feelings, or anything of that sort.

Developers raised in the 1950s, 1960s and the first part of the 1970s tend to be willing to give out some harsh criticism, but I've found they're often less willing to accept it from others. They won't necessarily re-consider their ideas or work when questioned.

The trend is more pronounced with developers raised in the late 1970s and 1980s. I've generally observed them to be far less critical of the work of others, but also even less willing to accept criticism directed at their work or ideas. Some even consider criticism to be unacceptable.

Now I've started working with some developers raised during the 1990s, and their attitude is generally one of criticism being completely unacceptable. They don't necessarily think that praise is necessary all of the time, but they can often take any sort of criticism very personally.

While it may just be tied to age, experience and maturity, I'm thinking it goes beyond such things. For example, I've seen several different professional developers raised in the 1990s actually cry in the workplace when faced with valid, and actually quite muted, criticism of their work. These people were adults, over 20 years old. I'd never seen anything like it with the thousands of other developers I've worked with over the years, even ones who were of a similar age at the time, but born earlier.

I wouldn't be at all surprised if that's what we're seeing here, too. Old developers, who have a more accepting attitude toward criticism, are more than willing to dish it out and receive it back. But the youngest generation has a very different attitude toward it, seeing criticism as extremely offensive, and even pseudo-criminal in nature. While many of them do just try to avoid giving and receiving criticism altogether, I do find it kind of funny and hypocritical when the more outspoken ones openly criticize those who are critical of others.


I have worked with a variety of developers over my career. The best were the ones that accepted and even sought out criticism, and knew how to apply it. Developers that can't handle criticism should be let go.

I would hesitate to generalize across generations. I have worked with some excellent younger developers who can take direct criticism and some terrible older developers whose ego couldn't fit through a door.

I tend to be more direct with my criticism when someone "should know better" and gentler when it's a more advanced concept for them. I've found that works well for most people.


I would argue criticism is communicated differently across generations, not being less accepted.

There is a difference between a) "I don't like $x about your idea." b) "I like $y about your idea. I think you could make it even better if you do $x differently. For example like this: ..."

In my experience, older generations tend to do a) more, while younger ones do (and expect) b) more. Not a bad development IMO.


Except that there's not always anything to like about an idea, and sometimes things are just plain wrong. More often it's less clear cut than that, but even then, points need to be made and people need to understand when they are creating problems.

Don't get me wrong, I'm all for tact! I'm also all for explicitly stating your opinion as an opinion, which often has the effect of softening things in the way you suggest, but even that should not get in the way of actual, valid, useful criticism that isn't excessively hostile.

We baby kids (and ourselves) far too much. Everyone gets an award, everyone is a winner, no one is necessarily wrong. It's crap, absolute crap, and this kind of universal communicative pacifism is a symptom. It harms our expression by limiting it.


I would also add that it mirrors the situation of when you try to speak to someone who is new to your language. The normal/bad strategy is to talk slower and louder, which can elevate the communication, from normal, to a personal attack, when they just responded in a way that you, the speaker, did not expect.


You'll probably enjoy the PLEASE statement in INTERCAL: https://en.wikipedia.org/wiki/INTERCAL


Some of it is environment. I know a fair amount of developers that were raised in the 70's and 80's in rural areas and they tend to take criticism fairly well. A lot of criticism when they were growing up was dished out in harsh terms mainly because somethings they did were dangerous and parents / authority figures needed to get the point across now and be heard[1].

It also depends who is giving the criticism. Someone who has no place to be harsh shouldn't be harsh. There are plenty of ways of saying "this is beyond wrong" in a calm, fact-driven manner[2].

1) my Dad was fond of the phrase "amazed and appalled". He was amazed we thought of doing it, and appalled we actually did

2) mentors: ignorance is your problem, stupid is something else


How many of today's 90 year old developers have you worked with?

Sounds weird to be assessing developers raised in the 1920s.


"When I worked with developers raised in the 1920s, 1930s"

Does that give enough context?


It was actually quite common to work with programmers and managers in their 50s and 60s, back in the 1970s...


I've been here for 3 years. I don't think there's been a decline, but I think the usual value of discussion has been strongly overshadowed by the hate and vitriol that winds up in just about every discussion now. Worse, those are usually the top-rated comments. These days, I mostly avoid the comments entirely for that reason.


As someone who's been here for >6 years, I can say it has definitely experienced a drastic decline.


This impending-collapse of Hacker News thing has been a recurring theme for most of the existence of the site (while this account is only half-a-year old, I've had various accounts on here since the very early days).

The only recent trend that has diminished this site is actually this very submission, and the related self-righteous comments that appear in virtually every story now (one single fresh account drops a negative comment and the whole discussion gets sidetracked into how disappointed someone is in the community, so now everyone has to stay inside for recess. It is incredible how many "why all the negativity" comments appear in discussions with little to no actual negativity).

Meta is the curse of all communities, and HN is currently mired in a lot of meta.

The longer form version of this - http://dennisforbes.ca/index.php/2013/06/02/hacker-news-isnt...


Took a break from HN (and others) for about 8 months at the end of 2012 and start of 2013. The HN I came back to feels very different. Everyone knows better and is eager to prove it by putting others down. Comments are no longer about the OP, but about how the OP is laughable, let me tell you how to do it. So sad.


I've noticed this as well and I've always felt it had to do with the fact that you cannot downvote comments. Comments systems that allow for only upvoting seem to skew towards surfacing loud comments versus reasonable comments.

The silent reasonable majority (that is less inclined to comment or even vote) needs a way to help curate when things get unbalanced. Think about how you might not end up actually clicking upvote on a comment that is reasonable and that you agree with but how you most definitely would downvote the snide negative comments that top HN comments sections all too frequently.


But you can downvote comments, if you have sufficient karma.

So is the problem that the people with the power don't exercise it, or that people don't upvote the reasonable comments in a sufficient ratio to push the bad comments down?

Meta-HN is not my favourite topic but perhaps it's time we had a review to account for how the community has changed since the last one.


The problem is that if someone forcefully demeans another while sounding or being authoritative, it's intimidating for others to speak up. Maybe he really does know best, they think.

And, to be honest, sometimes they really do know best. When it comes down to it, it isn't about being right or wrong. If someone makes an OSS project, or a post, or anything, and you don't agree with it (or they are flat out wrong), just don't be a dick about it. No one knows everything and we're all just trying to do our best and get better.


I agree with you, especially on civility.

But I have often felt that there is confusion in some circles between being a dick and providing accurate feedback without "sugar coating" (something which a lot of people claim to provide/enjoy receiving). So I am not sure what can be done here.


> So is the problem that the people with the power don't exercise it, or that people don't upvote the reasonable comments in a sufficient ratio to push the bad comments down?

So, I can't speak for everyone but it's fairly rare that I down-vote a post that appears to have been written in good faith (even so-called "middlebrow dismissals").

I would imagine (or, indeed hope) that most users with the ability to down-vote are fairly conservative with it. It's important to keep flame bait and trolling comments off of HN, but I'm less sure where to draw the line WRT comments whose content I find uninteresting.


No it's who ever has the majority wins. Not even the top 1% can make a difference when 99% of the users are upvoting something.


I think the karma threshold for down-votes makes it a very different dynamic than up-votes in two ways. First, it means more people get to up-vote than down-vote. More significantly, it makes it look very different to those who can down vote. While I view the up vote as saying 'this comment is good and deserves recognition', I see the down-vote as saying 'this comment is so unacceptable that it does not belong on this site'.


I actually think Reddit's /r/programming shows that a potential downvote for everyone doesn't do anything to bring about reason. It used to be a vibrant, smart, collaborative community. Now you need the skin of a Rhino to post there.


I agree. Reddit has changed for the worse. It seems like HN is changing as well. If only there was a way of keeping out those types of people.


I think it is the quantity of the people, not the quality.


There's always charging for membership.


You can downvote comments once you reach a certain karma. 500, I think.


And so has changed the story titles!

Now I see: "you can't... " , "you don't..", "don't try...".

Mostly titles that sound like coming out of mouth of some extortionist.


Dear person, please lead the following statement as if it were written the most possible respect, humility and grace: Your post is laughable, because we cannot take you seriously, since you ate about 8 months behind the rest of us on terms of evolution. The way you should have done it is by slaughtering a unicorn and drinking its blood out of a hollowed rhino horn, which is also illegal to obtain, so essentially my post is completely stupid, irrelevant and misses the point by such a magnitude that the statement is in a completely different planetary system. However, I will remain ignorant of this. Oh, not to mention, I believe everyone loves reading my long, obnoxious walls of text.

^ Posts like those? :D


If all the obnoxious posts were like that we wouldn't have a problem. The problem is with bad comments that are not sufficiently incendiary for people who agree with their thesis to want to downvote them.


You can't impress developers on HN. There's something about the social dynamics of large groups of developers online that causes relatively-uninteresting criticisms to dominate. But when somebody's actually trying something out, rather than just kibitzing? They're a lot friendlier.

If you couldn't impress developers we'd never switch to new technologies. And yet here we are, with rack and sinatra and cucumber and node and clojure.


I'm not sure that the "new technologies" you listed are very good examples.

Rack, for instance, isn't really that much different from CGI, FastCGI, SCGI, NSAPI, ISAPI, Apache modules, and so forth. It's just one more way of invoking custom code to handle an HTTP request. This is something we've been doing for many years now, and it really isn't "new".

The same goes for Sinatra. I remember seeing Perl and Tcl code in the 1990s that essentially did the same thing. It's pretty much the most basic and obvious way of handling such a situation.

Cucumber reminds me of some internal software I dealt with at one firm back in the 1980s. Business analysts would write English-like acceptance tests, then feed them to a program that would generate PL/I code that'd automatically test different aspects of an accounting system.

Clojure is perhaps the worst of the examples. It's merely a dialect of a programming language that's over 50 years old. Many of us first worked with Lisp decades ago. Even targeting the JVM doesn't make it special, given that the Java platform has been publicly available for almost 20 years, and was targeted by non-Java languages well before Clojure attempted it.

While the implementations may be new, the ideas surely aren't. Having worked with equivalent technologies in the past, sometimes decades ago, many of us here just don't find them interesting or special in any way.


Congratulations to PommeDeTerre for providing the perfect example of the sort of comments that are so condescending. I hope that he/she meant it in jest.


No, I'm completely serious.

Can you explain how my last comment was "condescending"?

It's not "condescending" to express an idea that differs from that of somebody else.

It's not "condescending" to disagree with a claim made by somebody else.

It's not "condescending" to give examples why a claim somebody else made may not be true.

The commenter I replied to suggested that certain technologies were "new". I disagreed, and provided reasons why I don't consider them new, based on other technologies that I, and very likely others here, have used in the past.

If you wish to discuss those technologies and their novelty, I'd welcome such discussion. If you disagree with my claims, that's fine.

I'm just not certain how you accusing me of being "condescending", without even giving any evidence to back up this claim, is productive.


To clarify, to me, each particular statement was condescending to the developers of those products.

The comments are condescending because you imply that there is no difference between them and the technologies you listed. In reality, most advances are made incrementally, and if one wants to make such an advance then one often needs to reimplement some, or all, aspects of what has been done before.

"What" a tool does is often irrelevant. Often advances occur in "How". And "How" is often either hard to communicate, not desirable to communicate (I.e. for competitive advantage), or not particularly interesting, but vitally important.

Indeed, often existing technologies need to be trimmed back to provide a more useful subset - asm.js comes to mind.

However, obviously the person you replied to was using those as _examples_. Your reply completely missed the point he was trying to make that new things, I.e. things that are not the same as other things, are used by people regardless of how similar they may be to other things.


I agree with you PommeDeTerre. It's hard for me to take this meme of "HN is full of negativity" seriously when I constantly see people (like thedanfilter above) complain about comments whose only faults are that they aren't full of glowing praise.


This is a quintessential "middlebrow dismissal", taking an uninteresting point, dismissing it with trivial technicalities, and pretending it added anything to the conversation. The conversation then gets sidetracked to debate semantics or pedantic details.

I've started down-voting these types of posts.


Presumably you are referring to PommeDeTerre's comment as "middlebrow dismissal" and I don't believe his intent was to sidetrack the debate with semantic and pedantic details.

His comment is a new branch in the comment tree. If you find this branch uninteresting you're free to not follow it. Sometimes some really interesting conversations appear a few branches deep in the comment trees that are completely off-topic.

I know where you're coming from and I've seen people use that "middlebrow dismissal" tactic you've described when passionately debating. I totally don't think that was PommeDeTerre's intent. It looked to me that he just believed that the examples akkartik were bad enough to warrant pointing out. He didn't attempt to tie that into completely dismissing akkartik whole comment.

And for the record, I don't agree with PommeDeTerre's comment at all because I think he missed the point akkatrik was making when he listed his examples.


> And for the record, I don't agree with PommeDeTerre's comment at all because I think he missed the point akkatrik was making when he listed his examples.

But that's my point. It's happening right now in this thread. :-)


You are being COMPLETELY condescending.

All the technologies you cited are AWESOME. And I would be screwed if they weren't.

Everyday I have to thank all the wonderful minds that bothered to come up with easier and more elegant solutions to problems that made me pull my hair out on the past.

To say they are more of the same is untrue and very mean.


What would you consider a 'real' technology? (Does my node example qualify?)

---

What's the difference between 'programming language' and 'dialect'? 'Supports macros' or 'uses parens in surface syntax' doesn't feel like enough reason to label Clojure a dialect. Supersets of specs are closer to 'dialects', like ISO C and gcc C, or Kawa scheme and guile. Racket seems to add enough extra feature that programmers are quite likely to leave base scheme in any program, so it doesn't feel like a dialect either.

---

(Parenthetically, since I'd rather discuss the original argument: I mildly agree with my sibling comment by thedanfilter: arguing about definitions doesn't feel like the most interesting conversation to have here. It feels nitpicky; you didn't actually ever comment on my original argument itself: that large-scale habits reveal developers aren't hard to impress. Do you disagree with it, or just with the examples I chose?

However, gravitating toward words like 'condescending' just adds more heat than light. Avoiding introducing incendiary distractions is hard; I'm not sure I'm succeeding in this comment. But comments here would be improved if we all tried harder not to take the bait. Maybe we should all try to skip past the first three comments we feel the urge to respond to every morning, or something.)


That's my main problem with the tone that's coming to be more and more apparent-

The criticisms just aren't interesting.

It's disappointing to open a discussion thread and have the top couple of comments be some negative nitpick of something that's shallow or irrelevant.

Next time you're about to post, ask yourself if it's the most interesting thing you could say about the topic. If it's not, why not think for a moment and then post what is most interesting?


Appreciation and valuable feedback are two different things. What value does "this is great; let me buy you a pretty unicorn!" add to the discussion? Criticism and disagreement are central to growth. We are not here satisfy each others' egos or make each other feel loved; we're here to criticize software and make it better. Constructive criticism is our way of saying: "I have spent time reading your code, and here is how you can make it better" -- I don't have the time to read everything, so the very fact that I took the time to read your code and write about it should make you feel appreciated.

That said, it is possible to go overboard and criticize something based on irrational hatred. At that point, you're just talking about trolls: it has nothing to do with developers not appreciating each others' work. Internet trolls have existed since the dawn of the internet, and there are plenty of resources on how to deal with them.

How you communicate your criticism is also important: there is no need to be overtly negative. Just point out what's wrong, and how to correct it; your job is done. Here's a recent instance where I've been overtly negative: the correct response is criticism of my style, as Junio has done [1].

[1]: http://thread.gmane.org/gmane.comp.version-control.git/22535...


I think it come down to the tone of any criticism. I don't mind honest criticism, or even opinion. One thing that always seems to bug me is a sense of arrogance around some people.


It seems a lot of people in the comments here are complaining about a decline in the value of discussions on HN. Although I've noticed this I don't think it's the fault of the people commenting. The quality of links posted to HN has declined.

Rather than fact-based technical articles, useful new tools, and cool side projects there are a lot of crappy articles repeating the same things we've heard thousands of times about productivity, standing desks, work/life balance, meditation. The articles rarely present anything new, they are mostly anecdotes presented as fact.

I still find great things on HN and participate in interesting discussions but sometimes when I look at the front page it seems more like a site for people interested in self-help guides.


This conversation reminds of the old programmer joke:

How many programmers does it take to screw in a light bulb?

Five. One to screw in the light bulb and four to say, "I could have done that."


Surely at least one or two of them would say "Instead of wasting time with light bulbs I would have been building something people want."


And the other two built a social network for the lightbulbs?


I believe there's either products or perhaps a kickstarter for lamps where the light will change depending on whether your friends lamps are on or off.


> How many programmers does it take to screw in a light bulb?

none. it's a hardware problem.


And the converse,

How many electrical engineers does it take to screw in a lightbulb? None. It'll be fixed in a driver patch.


I could have made this joke much more succinctly in another language.


What's so impressive about screwing in a lightbulb. I don't get it.


That's a bit too subtle for this place these days, colleague


At least you got it! ;-)


Offtopic, but a quick googling led me to this: http://www.cs.bgu.ac.il/~omri/Humor/lightbulb.html

Fun read!


Off-Offtopic! But I loved this one:

How many Prolog programmers does it take to change a light bulb?

False.


How many ed users does it take to change a light bulb?

    ?


How many Javascripers does it take to change a lightbulb?

NaN.


Nice, but where's the Java Enterprise (tm) solution?


Funny! But why just five? It would work just the same with "hundreds"...


Being specific is funnier than being general: http://2012.scriptfrenzy.org/node/413100


I become impressed when I see utility. Anyone can mock up a poorly featured demo. Programmers tend to be a lot more receptive when someone says:

We created X, and here's the successful, maintainable, real world product we used to implement it called Y

than:

We created X, here's a 10 line incomplete demo that isn't really useful for anything and that we didn't explain well


Of course, expecting HNers to be intelligent enough so that the obvious utilities don't need to be spelled out will be wrong. If you don't spoon feed us, we will talk trash.


So basically everyone that doesn't see the "obvious" utility of every pet project is an idiot?

And you are saying HNers are the ones with negative attitudes?


Developers are critical thinkers. If the person hasn't evolved enough to account for the notion of being human; or if the context is such that critical thinking implies critiquing without appreciation, you get what the OP is complaining about. HN is definitely the latter since comments in this community are largely reserved for criticism while the appreciation is (usually) limited to upvotes.

I want to say it's the nature of the game but that's simply not true, we take pride in being assholes. For Brython, while I was appreciated the amount of work and the complexity that went into it, I was unimpressed by the methodology.


> HN is definitely the latter since comments in this community are largely reserved for criticism while the appreciation is (usually) limited to upvotes.

I think this reasoning is fairly sound and possibly hints that HN may be less unfriendly than the comments alone make out.

Anonymity tends to make criticism easier to lob around. I'm in academia and even super-critical reviews tend to be prefaced by apologetic "good points" before the submission gets eviscerated; even then a good reviewer will give constructive feedback. I wonder if we could borrow this approach to commenting to improve the atmosphere?


I think this underlines what Hacker News has become. At first, Hacker News was about people discussing technology, but also about building things and sharing them, and it was a very supportive community that would actually give useful feedback. Now we're more interested in being hypercritical dicks and gossiping about the tech industry.


Brython has bubbled up on HackerNews several times. It might not be "not impressed", just "not impressed anymore."

Edit: Added quotation marks.


This. I didn't say anything on the Brython post from yesterday, but I certainly wasn't very impressed having seen it at least twice before on HN and what with the dozens of foo-to-JS transcompilers that have been cropping up lately.

I didn't upvote, I didn't downvote, and I didn't comment though.

Maybe the lesson is "if you don't have something nice[1] to say, don't say it at all".

[1] or meaningfully constructive, at least


HN Search shows separate Brython posts from 3, 4, and 5 months ago.


I'm easily impressed by:

- Huge projects which are still understandable within minutes,

- Products which handle special cases, which in turn amaze its users (when the dev has managed to get beyond her own use cases),

- and devs who write more elegant code than me (clever use of patterns, readability, yadayada).

It's easy to sniff at another dev's code, since nobody's perfect, and code is often a compromise of a conflict of various factors (and each conflict can be solved in various ways). But, this loop which has a workaround for a off-by-one error which is caused elsewhere - has likely been written under time pressure, and I might someday make the same mistake. I think it all boils down to dev compassion.


I think the OP misses the fact that of a few hundreds people who may view and read an article, only a few will put forth effort to comment on it. So, there's definitely some sampling bias. And, typically people put forth effort only if they have motivating opinions, one way or the other. Adding the fact that comments like 'awesome post!' tend to create a lot of noise and get down-voted quickly, it's not surprising that many comments may seem negative. It's the unfortunate nature of online forums. Oftentimes a few negative pieces of feedback will hide substantial amounts of muted support.


Well since you can have hardware emulator in javascript, we surely became less impressed in what you can run in the browser. example that come in mind http://bellard.org/jslinux/index.html


This is why the internet is bad for your self-image. In the whole world there are only a handful of people who could write something like jslinux. But, because of the internet, we have all seen it and consider this the reference to live up to. Well, most people cannot ever live up to fabrice bellard. I'm sure my work will never live up to his work. Does that mean all my work is automatically rubbish?

In my opinion, we should compare other people's work to our own work. If we compare against the work of the very best then 99.9% of things will fall short of what they should have been.


This is absolutely right. "Oh you create search algorithms at Bing? Mleh. I find that Google's search algorithms are so much better." And you hear this from people who can barely use grep.

I think someone's work needs to evaluated on their own merit, or with one's own work, vs. some other genius's work.


This is why I didn't work in computer graphics and choose to be a lowly web developer instead :p


I agree with this OP to a level, that it isn't limited to developers. I had a couple contractors in our house, and I swear they went at each others throats nitpicking different ways each other could do a job better.

In regards to devs, I am a hacker (my criminal record proves it), but you'll always come across people who are ignorant in what they know and unwilling to be open to change or something they didn't have a hand in.

ALL OF US as coders need to be open to new libraries, code bases, languages, and always willing to learn, but I think it's inherited with our skills that we look for holes, errors, and other ways to optimize...to the point that it comes off as an attack instead of criticism.

If you link on HN, EXPECT criticism (constructive hopefully), and just ignore the ignorant trolls. A real coder knows how to give supportive criticism, and credit where credit is due....Not sure if this validates my opinion, but I'm easily impressed though :)


HN comments are heavy on critique. Maybe that's a side effect of an aggregator and a culture that discourages trivial chatter.

A year of keeping up with HN has been a crash course on how to build things for the internet. I don't know what my stack would look like without all the unimpressed developers picking apart the industry news. Keep it up.


> So don't try.

Stop! Don't tell people not to try. There's always going to be the vocal peanut gallery at HN (and anywhere online) that will do whatever they can to disparage projects.

But, this doesn't make up the majority of people reading. There are millions of developers, hackers, designers, builders reading and benefiting from the projects, code, and products that people post. These are the people who get inspired or utilize the projects and blog posts about that cool new thing you made in node.js, or the neat hack you did with Ruby and realtime sockets, or that awesome new CSS technique.

The minute we stop showing the things we make, the trolls win.

So I say: TRY! Keep trying! Keep pushing out things that you made. Ignore the trolls and focus on the constructive feedback.

HN is a beautiful thing, and it had a huge hand in pushing me to start a startup. And, yes, it was a developer product. If I didn't try, it wouldn't have existed.


Yes you can, if you are good.

I went to a mountain Bike trail competition, and watched the biggest masters in the world in this. Everybody there knew how to balance over the rear wheel(manuals), over the front(endos) and jump over a meter hight any obstacle, more than 3 meters with a ramp.

There it was a kid, 16 years old or so. He was not as good as the much older guys, but all of them were impressed about the guy. They knew that guy was good just looking at him.

If you want to impress devs you have to be better than them, and this is very hard on technical matters.

But you don't need to, because what makes a good product is not tech alone, but how this tech applies to human beings. Things like design or human interface, or understanding the market or people are also essential.

Quite often the tech experts are totally ignorant in those areas(no wireless, less space than a nomad.lame)


I'm getting a "Not Found" on the link. Looks like the url changed slightly to:

http://baus.net/posts/you-cant-impress-developers/

(its not a cache, but i'll say cached here for those searching the comments for a link to the google cache)


> Brython is designed to replace Javascript as the scripting language for the Web.

Starting like this, what did you expect? Boring mannered small talk?


Isn't that @holman's theme on your website? I don't recall him open sourcing it. (Unless it's the other way round, which I doubt.)


I pinged him. He stole it.


hey holman, you might want to look at the way your fonts are being rendered on linux http://i.imgur.com/wT1ue16.png


On my Linux system the rendering is just fine[1] using the infinality patches for freetype[2] and subpixel rendering.

[1]: http://i.imgur.com/22emWiZ.png

[2]: http://od-eon.com/blogs/stefan/improving-the-font-rendering-...


The same holds true in virtually every content-oriented field: try making a room full of comedians laugh.


I am a developer and I was impressed.


I find it way harder to impress users. They expect things just to magically work and don't realize how much work is required even for the most mundane feature.


Actually I'm impressed that all these 'look what I implemented in a Turing complete language' posts got so much attention for so long.


What's such a novelty about sequences of ones and zeros? And even that is really just the separation of darkness from light. We've had that since Creation.


I can quickly enumerate a list of things that impressed me from other developers. If others in the HN can do the same would be a better answer to this article.

- http://bellard.org/jslinux/ - Google: impressed from the engineering and scale side. - Demo scene - Exploiting difficult security vulnerabilities


Hacker News is going through a predictable evolution.

In the early days it's a wonderful community of supportive collaborators. These are the people who start unmoderated mail lists and discussion groups, at least the ones that grow to the next stage.

It attracts people who want to be part of an unmoderated mail list or discussion group. It doesn't matter what the topic is, they always show up. They feel a sense of empowerment. They have arrived at the place where decisions are made, and they have an equal voice! They will express themselves.

Then it becomes about governance. How will we make decisions (even though the decisions are about nothing).

Then even those people leave, because the atmosphere is so poisoned by the negative people who say they hate everything and anything.

The good folk who started the community are long-gone, probably dreaming about new communities where everyone gets along and is supportive and has good ideas and doesn't get in anyone's way! Only to do it again, and again...


Yet when there was a thread on here about your product, Fargo, last week you seemed to be quite fond of Hacker News, asking people on your blog to vote it up so you could get more publicity.

If you don't like Hacker News why don't you stop reading it, posting to it and pointing to it in your blog multiple times a week, glowingly when its in your favor and harshly when its not.

You seem to being continuing your long running tendency to eviscerate anyone or anything which criticizes you and make out like its "their" fault and not yours.

You are also reinforcing the perception among many that you want attention, even when it entails hacking people off to get it, like you are doing here.


There are a lot of lurkers here, that's what I learned from that link to Fargo. It was good for business. The commenters are mostly bizarre aliases for people who are too cowardly to put their names on their rants. There are a few real people and many of them manage to say what they have to say without getting personal. Hope that helps. :-)


Dude… you get "personal" all the time. It takes a pretty serious double standard to be so sensitive about it when its aimed at you, versus when you are dishing it out being fine with it.

Not sure I've actually seen much aimed at you on here that is "personal". Its mostly a lot of people frustrated with you for being the actual troll while accusing everyone else of being trolls.

As for people using aliases, I think you should have actually learned the value of them considering how much time you spend on the internet trolling. Its a really, really bad idea to troll under your real identity. Its why so many people are permanently irritated with you.

At this point I think I will stop trying to offer constructive criticism. Its becoming really obvious you are a pretty classic troll, and quite good at it too. You are mostly wasting everyone's time as only a good troll can.


Funny how when you get trapped in your hypocrisy you get "tired" of offering what you call constructive criticism.


Not sure I'm seeing the hypocrisy there, please expand.

I am mostly just getting tired of YOU trolling Hacker News, That is one hypocrisy I'm seeing, you complaining about trolls when you are the one doing it.

This thread just isn't productive or interesting any more. It seems to be mostly designed to get attention. Based on the posts of others you seem to have been trolling here for a while.

The other hypocrisy I'm seeing is you exploit Hacker News when it benefits you (i.e. to plug your product) and trash it when it doesn't gush praise of you, but that is normal for you.

Telling you my real identity would be silly since you are, most of the time, not a nice person to anyone who criticizes you.


The hypocrisy is this.

How could anyone give you constructive criticism...

If we don't know who you are! :-)


Come on say who you are! I bet it you'll feel better after.

That's a little constructive criticism back atcha. ;-)


some people, when you disagree with them (or even if they _perceive_ you disagree), will incorrectly attribute your disagreement as showing "you hate everything and anything".

it doesn't matter how much evidence you submit in support of your arguments, the "fact" that "you hate everything and anything" is all-purpose.

is dave one of those people? decide for yourself.

but i can assure you that the dynamics of community are far more complicated than "wonderful supportive collaborators" who get sabotaged by "dark trolls"...

-bowerbird


Very poetic, but what does it mean????????


dave said:

> what does it mean????????

decide for yourself, dave.

(by the way, one question-mark is quite enough to mark something as a question, i have found.)

*

also, "bowerbird" is my performance poetry name -- which i now use for all creative purposes -- so it's not some name that i am "hiding behind". i've signed all my posts on the web since 1995. and i'm still using the @aol address i had then.

if george orwell was coming here, would you want him to use "george orwell", or his "real" name?

how about mark twain? or beyonce's husband?

indeed, you can call me any time at 310.980.9202, if you want to confirm that i am "a real person", or discuss the specifics of anything i've posted.

-bowerbird

p.s. i also appear regularly on poetry stages here in los angeles, if you happen to be in town.


You've been saying this for literally years now. Back in 2011 you were declaring that "idiots" dominated Hacker News.


How would you know you've only been here 165 days! ;-)


Some call it wisdom. Some call it broken record. You decide.


There is a huge amount of value in constructive criticism, and really very little value in praise. In order to reach your full potential you must be able to handle criticism of your work. If you simply praise a person you are really not doing them any favors, in fact you might be hurting their development by creating a false sense of superiority that causes them to stop pushing themselves as hard to succeed. However, you really are doing a person a favor when you take the time to read through their work and offer constructive criticism, because then you are helping them to achieve their full potential.

In fact, it's a sign of respect to give constructive criticism because the implied message is: I found your work interesting enough to spend time looking over it and thinking about; and I'm not going to treat you like a child who needs to be coddled, but rather like a peer who is capable of handling criticism.


> really very little value in praise

Value in the $-sense, or in the emotional sense?

Why can't you give constructive criticism AND praise at the same time.


I don't mean value in the financial sense, but rather in the sense of helping a person improve as a developer.

As for mixing praise and criticism, that is appropriate for certain situations; for example when dealing with a student with low self confidence. However there is a danger in praise which I outlined in my previous comment, it really doesn't accomplish much besides stroking a person's ego, and that can have unintended negative consequences for their long term development.


I had missed the first link about a Python interpreter in JS. I too find it incredible and very exciting.

I'm not sure I want to manipulate the DOM in Python instead of JS/jQuery, but it could prove super cool to write web workers in Python for instance.

The more you can compute in the browser the better. The client is where CPU cycles go to die, we need to change that.


I don't think it is unimpressive, but I do wonder why?

It's impressive from a technical standpoint, and that is in some ways enough.

But why the need to port everything to javascript? I don't use python for things I would write in javascript and unless you are prepared to port all the libraries (i.e. the thing that makes python so useful/fun/awesome) then why? I can just use JS. JS is a language with good enough features. I don't need a python that compiles/is intepreted in JS.

It's less that I am not impressed, and more that I think the effort is somewhat wasted. Of course I still respect the implementer.


Unless I am mistaken it would allow a person to create a web-based editor that can compile and run the python code on the same web page. This seems to be very much the direction that online programming tutorials are taking.

For schools, Universities, etc, it means not having to worry about platform or installed software.

As most open source projects stall due to "more important things to do", it would probably be wise to offer these people as much encouragement as we can to better the chances that someone will complete one (and want to support it in the future).


I'm impressed by the stuff I see here, all the time. I've only been using HN for a couple of months but I, too, have noticed a decline in the quality of comments. The comments used to be about how amazing the information in the link is, what's so amazing about it, how it can be used, how it can be improved concluded with brownie points for the OP. Now, all I read about is how dumb the post is. Author wrote too much/little and doesn't know what they're talking about. Just look at the comments for the 'Mistakes designers make over and over again' post that's currently on the front page.

Someone should research this. Every-single-time a nice little community starts expanding rapidly all the construction is gone and all we're left with is the destruction. Reddit and HN being the most recent examples I can think of. For a throw back: Anyone remember GameFAQs of 1998? Go check it now.


I think the quality of the comments reflects the average quality of the posts. We can't talk about how amazing the information is if the submitted link is a 3 paragraph blog post. So unfortunately the average commenter becomes the type of person who comments on 3 paragraph blog posts.

Now here's a cool startup idea. A ranking system that takes into account not only community upvotes, but an automated NLP assessment of the quality of writing. Useful for both the submitted posts/articles and for the comments.


> but an automated NLP assessment of the quality of writing.

What about non-native English speakers?


That is the biggest flaw in the idea.


While I can empathize with Olemis on the reception of Brython on Hacker News, I'm not sure one can infer from that exchange (or the admittedly high number of similar conversations) that developers are incapable of being impressed. This just doesn't jive with my experience at all.

From the dozen Hack and Tells (http://hackandtell.org/) held around the world to the hundreds of stories developers have of their first time looking at ffmpeg's source to the growing number of live Javascript console demos (great one here: http://www.youtube.com/watch?v=jArKzo-h3R0) to Dan Kaminsky's DNS bug discovery - I feel developers are very clearly capable of being impressed. It is a pretty regular thing.

It is, I will say, a very, very hard thing to do. I encounter it each day in my gig serving developer communities at Twilio. I have to bring my best work to them every time I ask for their attention - anything less ends in derision or, even worse, dismissal. Developers are natural skeptics whose daily work's default state is broken. This engenders a very high velocity needed to escape that skepticism.

Further, while HN certainly qualifies as a representative set, it is a specific demo of developer. There is a wide swath of developers who don't participate in this forum - poor reception here rarely means poor reception everywhere developers live.

Finally, I would submit that if impressing developers is one's goal in a project, one is probably set up for disappointment from the start. Amazement is an extrinsic factor that makes a poor primary goal as many factors governing success lie outsides the code one writes or the product one is building.

I always feel happiest when I fix the problems I want to solve elegantly and those solutions are widely adopted by the people primarily suffering from those problems. Whatever people think outside that scope doesn't really affect that satisfaction.


HN navel gazing aside -- I think this is really good advice. Rather than trying to impress your coworkers -- try to impress your users.

I think the challenge in many companies is getting enough access to your users that you can tell if they are impressed or not.

I'm going to try to think this way more.


No... Developers are really easy to impress. Show them something that will save them time and effort to make something and they will flock around it. You give them a tool that "automagically" does something tedious they used to do and makes it easy and they will be there in a heartbeat with their wallets open.

The python in javascript on the client side is a neat hack, but it's not solving any known problem for the mass of developers here. If this showed examples of performance and gained improvement over alternatives and it would sell better here. Right now though, it pushes the idea that javascript isn't good enough and we should be using something else in the browser (see DART, CoffeeScript, etc and related flame wars).


I always try to make a point of showing appreciation when someone programmed something cool.


Developers and engineers in general develop an ego with time. They take pride in their work and are very protective of it. They also relish the petty mistakes that others make and scoff at them - 'pfft I could have used X instead of Y to do Z. Who uses Y anymore !?'.

For example, you can find this behavior when someone posts something about problem X and there is a minor grammatical mistake or an opinion that is expressed in the post that is unconventional. The comments section will zero in on that and miss the big picture.


No, that's not a given; please don't generalize. Some developers have an ego early on and deemphasize it over time. Others have never had much of an ego. I have known several developers like this. There is no inevitable increase in ego.


I wonder if this applies to other professions?

E.g. what does a master chef think about the dish by another master cook?

Does an architect respect the buildings of another?

What about painters, musicians or writers?


Those are great questions, and I've wondered about it myself.

In movies for example, teams form for projects that last in total a couple of years, but for individuals, their work might just be a couple of months. I've often wished programming worked like that, at least commercial projects. I know a lot of programmers I'd like to try working with. But we don't do it that way.

Also, there is a sense of history in most of those activities that isn't present here. A young basketball player can tell you about all his role models, going back many generations. I've seen it (thinking of Iman Schumpert on the Knicks).

They listen to each others' music, eat each others' food, I'm sure there's a lot of pettiness to the discourse, but in software, it's not uncommon for people to compete with products they've never even tried. I can see that in competitive products!

I think it will eventually get better. It is getting better over time. When I was starting the idea of an individual creating software was VERY radical, and there wasn't much support for it. Until I came to Calif, and met other people who believed in the idea. Nowadays, they make movies about people doing that. I would have told you 30 years ago that day would come, and people really didn't believe it. Esp programmers. :-)

So it is getting better. I just wish it would get there faster.


Part of getting criticized is deciding whether you accept them or not. If you try to fight a criticizing troll, you probably won't win. It's easy to get drowned by criticism, so choose your battles wisely, just like Elon Musk, he quit a political action committee because he sees that the group was too cynical. And as experience teach us that too much cynicism tends to hoards negativity.


I also read that story yesterday, and I thought, "this is pretty cool, I wonder how it works. It probably compiles to JS" and clicked through and looked at the site for a bit.

At the end, I thought it was a really awesome idea, but didn't comment -- I guess I should have, and this blog post makes me feel kind of guilty.

I've learned my lesson -- If you like something here, or even think it's remotely interesting, say so.


I'm impressed by stuff all the time. I think there's just a fatigue about creating an emulator for or an implementation of X in javascript.


I would argue that developers can be impressed. However the ones that aren't are normally quite vocal. Commentary on the internet is normally toward the extreme end of opinion and should be regarded as such. It is difficult to adjust to this though as it is in direct contrast to real life where people make deliberate efforts to moderate what they say.


I am a developer and I have been impressed by other developers many times.

That being said, I don't care much for "show off" posts like "Look everyone, I made a functional web server in Brainfuck!". If you're trying to impress other developers, it is certain that you won't. It is not a worthy goal in itself.


My favorite quote from Steve Jobs:

"Do you create anything, or just criticize others work and belittle their motivations?"


Hemingway explains the phenomenon succinctly. http://www.youtube.com/watch?feature=player_detailpage&v...

And remember - don't be self-effacing.


I remember a comment from PG about this matter. He too was not impressed with all the negativity lurking HN.

It's not about admitting genius. It's about recognizing effort and proactivity.

It's about stimulating good behavior. It's not about who's more badass.


This post reminds me a bit of the momentum-sapping negativity Dave Winer describes in his old post on Stop Energy.

See: http://www.userland.com/whatIsStopEnergy


Just tried accessing this via the HN link but it was dead. It seems this is the new location of the post:

http://baus.net/posts/you-cant-impress-developers/


Developer != Developer.

Many Developer think that they are the best developer in the world and this kind of people dont honor others work.

Since i use github, i see that not everybody think like you do (in the past i agree with your statement).


I'm just wondering, if one day someone submit a post on HN "Bob Smith just have implemented AI-Hard in JavaScript as his weekend project, watch the demo", what would be the first comment :)


Why JS?


"page not found"

someone have a mirror please ?



Are the examples given by the author really that worthy of respect? If you write yet another unnecessary Foo to Javascript translator, or over-complicate your code to show off how well you know the dark corners of your chosen language (both examples given by Chris), should people really be impressed? And if people aren't, should they put on a fake smile and pretend to be?


If you are not impressed, ignore. If you smell something fishy about the developer, call it out (Giving benefit of doubt wherever possible. For eg, the developer could have started to code a week ago, or he wrote the translator in 1 hour flat. All admirable acievements). Just don't be evil.


> should people really be impressed? And if people aren't, should they put on a fake smile and pretend to be?

Offering a critique doesn't have to be fake smiles, nor does it have to be slagging off. People can ignore posts. Or people can offer calm advice about why something is suboptimal.


Which was exactly what happened in the comments. I haven't read one impolite response.


Hah, the satire (more likely irony) is so thick.


Yeah, I think the article was aimed at you and your kind.




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

Search: