Hacker News new | past | comments | ask | show | jobs | submit login
Hey programmers, we need to talk (2013) (sealedabstract.com)
115 points by wittedhaddock on June 17, 2017 | hide | past | favorite | 49 comments



It's amusing that they talk about Boyer-Moore. They mean, I think, the string search algorithm, not the theorem prover. Their string search algorithm was just intended as something Boyer and Moore could use as a hard case for code proofs. Their real work was the original Boyer-Moore theorem prover, their constructive theory of mathematics, their book "A Computational Logic", and their later ACL prover.

(I used to know Boyer and Moore, and used their theorem prover. Recently I took the original sources from the final 1992 version, put them on Github, and got it working with the current GNU Common LISP.[1] So you can now run their prover from the 1980s several thousand times faster than in the VAX days. It's neat to see it prove the basic theorems of number theory in about a second.)

[1] https://github.com/John-Nagle/nqthm


For some reason, basic things like the Boyer-Moore string search algorithm seem to be viewed as "advanced" or something by most programmers. In reality, it's basic (that's why it's taught in undergrad).

Fewer and fewer computer science students seem to graduate with an understanding of or appreciation for actual computer science.


If it usually comes from a library and is not implemented by yourself, then to almost all programmers it's an advanced algorithm. Yes, that includes sorting. Most code is incredibly trivial, midsize state-machines at best. The problem is that we still expect the run-of-the-mill CRUD programmer to have a degree.


Well, Computer Science and Software Development are different disciplines, and quite a few universities have a differentiation between them.


Fewer and fewer computer science students seem to graduate with an understanding of or appreciation for actual computer science.

All the big tech companies ask pop-quiz questions and the same handful of "regurgitate this algorithm on a whiteboard" problems in interviews, and then say they've checked for "fundamentals".

Are you really surprised that people adjust to and optimize for doing well at that?


what is "real computer science" in this case? automated theorem proving? that is decidedly a graduate topic so I'm not surprised undergrads don't know anything about it.


I think the problem is that, while the undergrad doesn't necessarily need to understand graduate-level topics, they should be aware of their existence (and their own current inability to appreciate it)


Yes, in a talk by Moore I attended last year he said it was really disappointing that he gets so many questions about the string search algorithm, and not about his real life's work.


Making it another case that proves the point of this article.


Nope, not really. Moore got plenty of recognition for his work, for example https://awards.acm.org/award_winners/moore_4797627

It just shows that you shouldn't care about what MOST people care about :-)


Being an open source developer these days is horrible. It used to be a strategy whereby you would forego profits in exchange for social recognition.

These days there is no meat left in it. You give up all your time and you get neither profits nor recognition. Writing blog posts is much more effective.

My tech blog gets a steady 200 visitors per day (assuming that I don't post anything new for 1 month) and often reaches 10K to 20K visitors on the day when I post something new.

200 visitors a day is the about the same number of visitors that my open source project website gets each day (traffic spikes are very rare)... The time and effort it took me to write the blog is less than 1% of what I put in for my open source project.


I really think open source has lost the fight, generosity doesn't seem to be rewarded at all these days, and it enabled all kinds of freaks never able to do anything worthy on their own to profit from it and poison the well for everyone. For me moving forward it means my open source code will be always dual licensed - Affero GPL3 + expensive commercial license, no BSD/MIT etc. I don't see any other way forward.


Mostly whatever you do these days gets you neither profit or recognition. If your blog gets 10k visits you're in the select few from the thousands of bloggers who don't get that many visitors combined. Nothing is worth doing anymore cause nobody will care and being seen or heard even if you do bring something to the table is for all practical matters impossible.


10k people is a lot of people. An good sized football stadium. If they walked by you one by one on the way out, each spending 1 second, it would take nearly 3 hours.

To provide a small service and affect so many people per year is great. Not everything needs to change the entire world.


Maybe it's really because there are so many different people doing open source, people cannot keep track of those contributions?


That's partially true, Open Source can be very competitive. Especially now with big corporations getting involved.

I think it's actually a bit of a problem. Open Source used to be a refuge for indie developers. Now it's mostly dominated by big corporations. Now it feels like you can't really make a difference in open source (or anywhere else) unless you join Facebook, Google, Microsoft or some other mega-corp.


At the risk of meta recursion - I write comments because they help me clarify my own thinking. This is the same reason I suppose people keep journals or write blogs or whatever. The points just provide a rough heuristic about how useful that particular thought was to other people. I don't always agree but generally the feedback is nice to keep me in check as I've discovered I'm not great at evaluating this myself. I read them because I like to hear other people's opinions.

Aside from this, I've used things I've learned reading HN articles and comments many times in my day to day work so I can't agree it provides no value. (I just learned about Boyer-Moore, for example)


I have to admit that sometimes HN comments feel like writing practice to me. I'm not aiming for internet points directly, rather the immediate feedback gives me a sense of how much my views resonate (or more importantly when they dont)


It's not clear to me, but people think I'm a very good writer. It could be it's because I write a lot to clients. But I think getting your opinion out without getting downvoted on HN has helped me dealing with clients and prospects to let them understand my opinion, in a non intrusive way.

In short, I agree with you in full


Same here. When I'm writing something, I pay more attention to related threads here. And my comments sometimes get incorporated into the piece.


The reason is in essence that more trivial things are easy to consume and therefore easier to give Internet Points to. Who can read and upvote a HN comment? Anyone! Who can find, read and approve of a GitHub patch? Not too many people. Maybe 2-3, if you're lucky!

It's basically the problem of specialization. Anyone can perform a task that requires no specialization, and anyone can comment on it.

This is a really great article. It's very rare I read something that is both subtle and nonapparent, yet obviously true upon inspection. That's what this article is.


One issue with systems like Stack Overflow is the points systems rewards people joined the service early.

For example, somebody asking how does binary search work in 2009 has thousands of points from the post. While somebody asking the same question in 2017 gets flagged for asking a duplicate.


But isn't that the same with everything? Someone independently inventing Quantum Mechanics right now is too late to get any recognition from it. There's a good reason by Newton and Leibnitz argued who invented calculus, or why Darwin hastened the publication of his book when he found out that Wallace was on the same track. Being the first to do something gets rewarded.

Of course people had wondered about binary search before 2009. So in this case the reward is for being the first to do X, but on Stackoverflow.


See stack overflow documentation, it's a chance to do everything from day 1 again.


Yes, they could purge the public QA and sell the history as a service to companies.


This​ article is flawed in it's assumption that the reward is the same across every network. The pride felt in a contribution on GitHub that benefits one user who appreciates your code is 1000x more gratifying than a point from a comment on HN. The pride felt in an answer upvoted a handful of times on StackOverflow is similar.


I don't know if that sense of satisfaction you get from helping someone in trouble can be called pride, but I know that that one joke answer that got me a gold badge gave me a mixed feeling of irony, and a bit of guilt.


There are several types of things like patch karma, but they are known under different names. I have heard words like "literal dollars" or "actual power within large, wealthy organizations" used to describe these concepts. As far as I know you can't exchange internet points for these things, and that is why not too many people spend eight hours a day writing internet comments.


To me it's pretty clear that the 'Internet points' we collect on HN or elsewhere are fluf. You are probably not going to get a job for having karma.

On the other hand tricky patches generally go into a git or some VCS, that you can point to and impress prospective employers with.

If there's any confusion regarding this it's the user's error.


When applying for consulting gigs people have looked (sometimes closely) at my Open Source patches/commits.

Recruiters never ever look at patches/commits. They might read the bottom of a resume's first page.


> If there's any confusion regarding this it's the user's error.

And the article's point is that we should be designing systems that make it even harder for the users to make that error. It's the difference between

- a poorly-designed service that rewards people for contributing little real value to the world, and

- a well-designed service that rewards people proportional to the value they create

While it's true that the error is the user's, we stand to benefit from ensuring that other users don't make those errors in the first place.


Go ahead, design your service that dictates how a user should structure their life. I hope you won't be surprised when you don't have any users.


Who cares about Internet points (feel free to downvote this comment a billion times)? If you want recognition, you either have to do something really great (like winning the French Open when you just turned 20), or you know what people want and give it to them. Submitting a Boyer Moore algorithm patch fits neither of these categories.


Speaking only for myself - I try and limit my comments to one of three categories:

- Asking questions

- Answering questions

- Education (I put debates in this category, since frequently I'm the one learning)

The nice things about these is that votes form a good indicator as to how well I wrote my point of view. It's not a perfect metric since downvotes punish divergence from the community consensus as much as they do poor content, but it's generally good enough.

And by attempting to limit myself to those categories, my time is not wasted. I do accept that I'm going to fail from time to time by posting pure fluff, and that's OK too: at a bare minimum I've put some practice into my writing and social skills.


It's a worry when people boil down human communication to pure information theory. This interwebs commenting platform is a human experience, and you're sharing and creating an experience for many others with your words; this does not appear to be covered as a consideration in your 3 categories.


I mostly disagree. HN is one of the few places you can find quality discussion on a myriad of technical topics. The comments keep me informed of the existence of nascent and potentially important technologies through painless osmosis. We could be posting pictures of pets on social media, but instead we're here considering the potential gamification of OSS.


I'd actually be likely to contribute a bit more in Github if it were a bit more gamified. I understand that understanding it's a Skinner's box trap, and then falling for it willingly anyway is not necessarily great. But that kind of visualized fictional progress actually does wonders for my motivation, now I sort of want something of the sort to exist.

The counter side might be that the game aspects may become controversial (similar to the defunct streak) and stress some people out to no end.


>Anyway, these are different, right? I mean anybody can write an HN comment and it takes thirty seconds.

My comments on HN usually take many minutes to formulate, thread reading not included. I am slow thinker actually, but quick chatting in general is possible only in teacher-scholar conversations, not in deep discussions, which are my favorite part of HN. In fact, this is the only group I visit actively.


It's hard to look for insight, or code. It's easier to search for blog posts because they are natural language. I am a coder and I very much appreciate all the great code that has been written, but it's often the blog articles, news and how-to instructional posts that point you to that code.

There's just so much code that the best way to find it is to follow pointers to new libraries or paradigms or even concepts. So yes, the blogs and posts might get more attention, but often because they explain or link to something more substantial. They aid in discoverability (if that's a word these days).

Sure, some people might be able to build karma based on nothing but one-liners – a skill by itself I guess – but in the end, most things would have to provide some value in the form of knowledge or a link thereto. I don't think you can sustain interest if you don't provide something of insight – assuming an audience of some intelligence.

I think there's real value in being able to write about the code and ideas behind your software because nobody's going to wade through millions of random lines to get the big picture or to find out if it's good or even relevant. And this probably goes for science in general, too. Good writing can raise interest and pull in some more people.


Haha, people are leaving comments. Oh wait... damn it!


I am pretty conflicted with someone asking other people to work for free. It dilutes the value of the craft.

Having said that, there is a lot of really great free software out there. I suspect the majority of the people who wrote the stuff that is really used got paid for their work through corporate sponsorships and whatnot.


Basically, author would like the people to work 100% of the time (and for free). Or alternatively, author is surprised that programmers who enjoys statistics and pursue a BS in Biochemistry can be also interested in politics, world and like to share thoughts about those.

The puzzle would be sold if he stopped to think about comments as "contribution" and treated them as what they are - something to do during 10 minutes break, change of pace, communication for those who are lonely.


Do people have to be doing something productive all the time, though? I mean, that is the other side of the coin. Time spent reading, commenting, engaging in discussion is not necessarily time that I want to be doing more work.


You can claim your kudos (patch karma / programming internet points) on openhub (formerly ohloh): https://www.openhub.net/committers/351081


I'm disappointed by the idea that all of my waking minutes should be devoted to producing value for someone else. Sometimes, I need some minutes to produce entertainment value for myself. Thus, internet comments.


So what projects need a Boyer Moore implementation?


Doesn't GitHub have a rating system of some kind?


Well, how many "stars" a repo gets, but that says nothing really about the technical accomplishment, more about the culture associated with a language. I mean there was nothing technically impressed about "left pad" but 100,000 Javascript programmers use it and were caught flat footed when it disappeared (not Github I know but the principle is the same).


Indeed. Fart scroll had like 20k stars the last time I looked. What a load of garbage!




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

Search: