An open letter to Google with respect to their new privacy policy and SPYW

Dear Google:

Please don’t buy any more interesting Internet startups. Instead, create your own and let the market decide if they want to do business with you. I don’t, and I don’t want to do business with someone else and wake up one morning to discover that thanks to a huge war-chest of buyout money, your tanks and jackboots have marched into their offices.

No-sale

Do not buy Dropbox. Don’t even think about buying Github. Don’t buy anything I use. Please. I beg of you. Why?

Well, you have two models for acquisitions. First, you do a “talent acquisition” and shutter the service. I lose. Second, you “integrate” the service into your offerings. I lose even more. Let me explain. Imagine you buy Github. Your busy beavers migrate its infrastructure into your infrastructure, and now I can sign into Github with my Google profile. What does this mean to me?

Well, it means that the profile you are accumulating for me contains all of my public repositories, and so when I am reading email, you can decide to show me advertisements for JavaScript books or some such. I can live with that. What I can’t live with is this: When I’m reading email, you show me advertisements for things that are relevant to my private repositories. So for example, if I am working on a client project, now you get to scrape that information, all of the documents and use cases, and forever associate them with me. You get to use that to make my ads more “relevant.” And my search. And you tell me that I “win.”

I don’t see this as winning. Those repositories are private. I pay Github to have private repositories, I don’t trade privacy for a “free” service. You buying Github would mean my moving everything private away to another service of some kind. Mere rumours of you buying Github would mean me moving private repositories away from Github. Same thing for Dropbox: I have a lot of private documents in there. The thought of you scraping those documents so you can sell my “eyeballs” to the highest bidder gives me the willies.

It’s not just client work, of course, it’s private projects, unstarted startups, everything I want kept close to my chest. I happily pay for Dropbox and Github, in part because I don’t want them falling into your clutches.

So. Please, keep off. Stay the hell away from the services I trust.

Thanks in advance for your attention to my request.

Signed,

Reginald Scott Braithwaite
a/k/a “raganwald"

p.s. I apologise for the open letter. You know, and I know, and everybody else knows, that “open” letters are actually written to the crowd, not to the nominal recipient. Mea Culpa!

p.p.s. Click here to discuss on Hacker News, or click here to disagree.

Form letter template for open source abandonware

Dear soon-to-be-former user,

As you know, I’ve poured my hear and soul into this:

[ ] Free-as-in-speech
[ ] Free-as-in-beer

[ ] Tool
[ ] Library 
[ ] Repository
[ ] Other: _________________

While you and many like you:

[ ] Leeched without lifting a finger to help
[ ] Whined about how your pet issue wasn’t addressed 
[ ] Indulged your need for drama
[ ] Treated me like a combination serf and village idiot
[ ] Other: _________________

Well, I’ve got some fantastic news!  Well, it's great news for me anyway.  You, on 
the other hand, are fucked.

I've just:

[ ] Founded a startup
[ ] Found a paying job 
[ ] Realized life is too short for handling your entitlement issues
[ ] Other: _________________

And I no longer have the time or inclination to maintain this fine work.

I tried transitioning this to other maintainers, however:

[ ] None of the leeches could be bothered to respond
[ ] None of the people bitching about their pet issues responded
[ ] None of the drama queens could agree on who was worthy to respond
[ ] Other: _________________

Therefore, effective:

[ ] A week ago, didn’t you notice?
[ ] Immediately
[ ] When I get around to it

I will be closing everything down and wiping it from the Internet forever.

Your personal contributions, if any, will be gone with it. I am not
worried that I am destroying something critical to your future. After all,
if it was that important to you, you would have helped out more while it
was around.

Sincerely yours, 


_________________
Unappreciated 

Weak Players

Steve Yegge once wrote:

You should take anything a "Java programmer" tells you with a hefty grain of salt, because an "X programmer", for any value of X, is a weak player. You have to cross-train to be a decent athlete these days. Programmers need to be fluent in multiple languages with fundamentally different "character" before they can make truly informed design decisions.—Code’s Worst Enemy

One thing I’m coming to suspect is that while he’s right, there’s a little more going on than a lack of fluency in multiple paradigms. I suspect there’s a deeper, more general schism between programmers who believe in the concept of an “X Programmer” and programmers who don’t. I’d say Steve doesn’t believe in X Programmers, he believes it’s important to transcend whatever language you happen to be using at the moment.

Url

What I find interesting about this isn’t the idea that someone may describe himself as a JavaScript programmer, a Lisp programmer, or a Haskell programmer. What I find interesting about this is the way some people label each other by the programming languages they use, and nearly always in opprobrious terms. I read things like “I’d expect as much from a Ruby programmer” or “Another mouth-breathing .NET programmer” or even “When did they let the CoffeeScript kiddies in here?”

I almost never read such terms mixed in with otherwise deeply insightful discussion and criticism. It seems like it’s always just another Ad Hominem personal flame that adds noise but no signal to a discussion. Now, I have little to go on except for what I read when I click through people’s comment history to get a feel for what kind of value they bring to the table, but here is my conjecture:

The kind of person who hangs a label on another programmer based on the programming language they use is a weak player, regardless of the language they hold in poor regard.

I suspect that the problem is that deep down, the source of the insult is the world view is that all programmers are X programmers, and what separates the wheat from the chaff is the value of X. Whereas I (and I think Yegge) hold the view that the current value of X is not as important as the breadth and depth of experience a programmer brings to bear when using X.

Of course, there may be a simpler explanation. Perhaps the kind of quarrelsome, cynical person who is always trying to “score points” on the Internet by making fun of other people is a weak contributor, and it has nothing to do with the particular way in which they go about trying to put other people down. Who knows?

p.s. This is, of course, almost entirely an Internet discussion group phenomenon. Colleagues never need to use phrases like "That fsking Ruby programmer," they can speak directly to the havoc created with the tools: "That idiot who used operational transforms where a simple REST-ful object store would have sufficed."

Ideas are forever

From time to time, people decide to commit “Internet Suicide,” deleting their blog posts, essays, public libraries, photos, everything.

Many people feel this is deplorable, especially if their writing and open source is useful. Value has been removed from the Universe.

There’s plenty of spirited back-and-forth on the subject, as you might expect when one man does something of his own free will without making a commitment or agreement of any kind, and another man would rather he do something else.

The word “selfish” enters into such conversations, and truly it cuts both ways. Aren’t I selfish when I remove my code fromt he world? Aren’t you selfish for wanting me to leave it there?

Anyhow, I have nothing much to say about removing words and code from the Internet. Think of it this way: What would happen if every single one of Alan Turing’s writings were to vanish suddenly?

Well, we would have a historical disaster. Those writings are milestones in mathematics and computer science. We would lose forever the ability to readthe great man’s thoughts in his own words. Why, we’d have to rename the Turing Bird!

Let’s go further. Let’s erase ever time he was quoted or his name was mentioned. Everything, gone! As if some great superpower decided that eveolution was just a theory and homosexuals should not be part of any teaching curriculum.

One day, a century from now, we might even forget who he was. But would computers stop working? No, they would still work. The Allies may have forgotten who helped them win the great war, but they still would have won it.

The thing is, we didn’t just read Turing, we built on his ideas. We can erase every single bit he emitted in his lifetime, but the ripple effect of those bits on other minds, other ideas, will still be here.

Today, there is a lot of writing on the Internet. There are a lot of free libraries. And it is inconvenient if someone yanks some of them away, erasing their bits.

But the effect of those bits is still with us! Everyone who reads a blog post or essay, who thinks long and hard about it, has been changed. The bits representing their brain have been affected whether they agree or disagree with its proposition.

Everyone who uses a library has been changed by more than just saving themselves the effort of writing it themselves, they have been affected by the library’s design. If we yanked JQuery off the Internet, we’d still have Katy happily making CoffeeScript and JavaScript programs more “fluent,” because I liked JQuery and Combinatory Logic enough to make JQuery Combinators and I liked that enough to make Katy.

There are thousands, perhaps hundreds of thousands of people doing exactly the same thing every day. They aren’t historians or librarians. They don’t make a note of an article or a library and “remember where it is in case they want to read it later,” they read it now. They build upon it, they extend it, they push back against it by building something in opposition to it, they are changed by what they encounter.

Such people are “active consumers,” they don’t just consume, they act. And those actions mean that every bit of information they encounter ripples forward, living on. You can remove the original essay, you can take down the original blog, you can pull the library they used, but their fork still exists, their derivative ideas still exist, their newly discovered opinions and taste for ideas carries on without the original bits.

How actively do you consume ideas? I know there’s plenty of room for me to be more active. I need to do more than skim articles, I need to throw myself into them. I can’t settle for “Get the gist of it and come back later if I need it.” I need to open myself up to change more than I do.

I have a certain optimism that I could take everything I write down tomorrow and the world would still be wonderful place, thanks to the active consumers out there reading and writing my words, reading my code and writing their own, building, growing, extending, and even discarding my ideas. This is a very good thing.

So, yes, it’s sad when someone pulls their work. But never fear, their ideas have evolved and are still with us, and always will be, as long as there are active consumers to read, think, and then write.

This title is link bait

Dear Blogger:

I noticed that you write super-catchy titles for your blog posts. Many
of them end up on the front page of sites like Hacker News or Reddit,
so you keep on doing it. I also notice that every time you do it,
there are the inevitable complaints about your "link bait" titles.

"Just describe the article," people say. Some are vindictive "Good
post, but downvoted for the title." Circle jerks ensue "Agreed.
Flagged for misleading title."

I'm here to tell you: Keep doing that thing you do when you do what
you do so well. Give your posts any title you want. Let those
sanctimonious, preachy commenters gather at prayer circle and complain
about the lack of sombre decorum on the Internet.

My bottom line is that sites like Hacker News give people all the
tools they need to deal with spam and malicious posts. There's a
flagging option to catch posts that claim to be about optimizing
JavaScript but are really about selling fake rolex watches. You flag
the article, and a moderator has a look.

The problem, of course, is that some readers don't like posts with
titles like "CoffeeScript is not a language worth learning"
(https://github.com/raganwald/homoiconic/blob/master/2011/12/jargon.md).
Of course, some do like the title, and many shrug. The issue is, if
you flag a post that most people like, eventually you lose your
flagging privileges. These preachy holier-than-thous know this, so
instead of going along with the community, they climb on a soapbox and
warn everyone about the decaying morality and Eternal September.
Forgive me, but when someone complains about how link bait titles are
turning Hacker News into Reddit, I hear "Dancing is Evil!"

Sites like Hacker News also give you a little vote thingy, and
everyone can decide for themselves if the article is worth reading. I
personally ether complain about something or downvote it, but never
both. Same with posts, either I post a critique or I vote against it,
but never both. But hey, if they want to vote against a post (or fail
to vote for it) AND complain, fine with me.

But I'm writing to you the blogger. Choose your own title, it's your
blog. Fine, there will be some communities that try for a
faux-academic atmosphere where titles are little more than the
proposition being debated. It's your blog, if you don't care about
making #1 on those sites, that's your choice to make.

And hey, most sites let the person submitting the post pick the title!
So if someone else submits your post, let the preachy conservatives
argue with him, it's not your fight. Your responsibility is to write
your article with your voice.

If you like catchy titles, or titles that seem funny to you (even if
everyone else thinks the joke is lame), or titles that set up a
strawman you demolish (Never write Ruby strings longer than
twenty-three characters! Rails is a Ghetto! Why you should never,
ever, ever rewrite code!), write your title with my blessing.

p.s. Sorry about the title, but it seemed less link bait-y than
"Opinions about blog titles are like _____."

UPDATE:: Ironically, someone posted this to Hacker News where it scored some quick upvotes and shortly thereafter it was buried by moderation. I'm glad it was buried: Not everything of interest to a plurality of self-identifed hackers is Hacker News, and not evrything about Hacker News is Hacker News. Comments complaining about a post add noise with little value for those who wish to discuss a post. Likewise, posts discussing a site add noise with little value for those who wish to use the site. This doesn't mean I don't want to write such posts, just that I don't think such posts belong on the sitesthey mention.

Dear internet: You've been trolled

Today I see that The Magna Carta Essay is number one on Hacker News and spreading like wildfire on Twitter and other social media sites. And why not? It’s one of those “how clever” stories that makes every reader feel smarter for having read it, and it also whips up an entirely understandable enthusiasm for punishing “plagiarists,” those odious people who seem to view credentialism as a game and whose play is not quite cricket.

The story is simple. A fellow puts together a fake essay and posts it in various places where people seem to go to download essays that they then submit as their own original work. His fake essay is entirely ridiculous, which shows that to submit it, you have to download it, massage it a bit to beat the similarity filters, and then submit it without stopping to ask whether King John's titles really did include being a "Duke of Hazzard."

Likewise, to accept and grade this essay, a professor must at most skim it, without pausing to ask whether "Discipulus tuus hunc tractatum non scripsit” means “No taxation without representation,” or whether it actually means “Your student did not write this essay.”

Malfeasance and negligence must align like the planets to get this through, and it seems that this eventually came to pass.

I am shocked, shocked to find cheating going on in here, this job market where people requrie degrees that have no measurable correlation to fitness for employment and where companies openly brag about finding ways to either circumvent or flout laws in order to "maximize shareholder value."

But let us pretend for a moment that passing some essay downloaded from the Internet off as your own composition is an opprobrious crime rooted in deep dishonesty, entirely different from, say, professors appropriating the work of their graduate students. Let’s say it’s nasty.

What am I to make of this blog post naming someone who is alleged to have done this with a “honeypot” essay deliberately seeded to catch such vile criminals? I make of it the same thing that I make of lynch mobs, of accusations of witchcraft, or of communism. An accusation is not the same thing as bringing someone before a court (whether criminal or scholastic) to face their accusers and to have the evidence tried by due process.

The title of this fake essay, containing such amusing tidbits as an account of the Battle of Runnymede near the Village of Bloor West, is “The Magna Carta Essay.” What is the “Magna Carta?” Let’s do as the plagiarists do and look it up on line:

Magna Carta is an English charter, originally issued in the year 1215 and reissued later in the 13th century in modified versions, which included the most direct challenges to the monarch's authority to date. The charter first passed into law in 1225. The 1297 version, with the long title (originally in Latin) The Great Charter of the Liberties of England, and of the Liberties of the Forest, still remains on the statute books of England and Wales.
The 1215 Charter required King John of England to proclaim certain liberties, and accept that his will was not arbitrary, for example by explicitly accepting that no "freeman" (in the sense of non-serf) could be punished except through the law of the land, a right which is still in existence today.

That last line is particularly interesting: No freeman could be punished except through the law of the land, a right which is still in existence today.

I’m all for using an issue like this to discuss problems with credentials, and essays, and marking, and professors. I’m all for using this as an anecdote to illustrate an argument. But when we talk about shaming or punishing the person accused, we ignore the very charter for which the honeypot essay was named.

Lately we have much lamented how our rights and freedoms are being taken away from us by the overclass. Let’s not abandon them ourselves by joining in mob rule and mob justice. All free persons deserve due process and a fair trial. Not just those we think may be innocent, but especially those we think are guilty.

If we punish this person for plagiarizing a work named after magna carta, we just trolled ourselves. Hard. If we are to blame someone for not reading an essay, we ought, ourselves, to go to the trouble of reading up on a little history first.

Sidebar: I think most people’s contempt for plagiarists and other school cheaters is deeply rooted in a fear that these cheaters will prosper. Let me ask you this: If a cheater gets a job based on their fraudulent credentials and keeps that job, if they make as much or more money than the people who obtained their marks and degrees from honest toil and the sweat of their brows, what does that say about the value of a degree? I say it discredits either the credentials or the employer that relies on them more than the cheater. If these degrees meant anything, cheaters would get no further than a few months into their jobs before being bounced for poor performance.

Update: I didn't imagine this needed saying, but my imaginationis limited and the Universe is limitless. This rant does not speak to whether somebody should express an opinion about someone else on the Internet. This essay concerns what we do with that information. If someone cries "Jim Henson murdered Frank Oz," I am not saying we punish them for accusing Jim. I am saying that we must not rush to hang Jim without process. I am saying we msut not repeat the accusation such that it becomes folklore ("Everybody knows that Jim murdered Frank.") I am saying we must not create the equivalent to punishment by shunning this person ("Hire Jim? Well... There's talk that he did something bad.")

Five things Roger Ebert taught me about criticizing programming languages

Roger Ebert is a film critic (as if you didn’t know). He wrote a book called, “Your Movie Sucks,” and I learned a little about criticism from reading that book. And naturally, I’m going to share it with you. I’m a lot more interested in programming languages than I am in movies, so here’s what I know about criticizing programming languages that I learned from Roger Ebert. (All quotes are by Roger Ebert unless otherwise attributed.)

five characteristics of good movie criticism

First off, “Your Movie Sucks” is a compendium of zero, half, and one-star reviews. And they are hilarious. I imagine that giving a movie a terrible review is an awful job. It’s necessary, but how dry and boring to rattle off the reasons why a movie sucks. Newspaper criticism is not just providing data, it’s entertainment. It’s also much more memorable if it’s entertaining to read. That matters, and this leads into the second thing:

Second, “Your Movie Sucks” taught me a lot about movies. Many of the bad reviews are educational. Ebert explains why these movies are so bad, and in doing so, he helped me learn a little more about movies in a way that lets me enjoy the good ones more. Bad reviews can to do more than steer readers away from clunkers, they can help them get more out of the movies worth seeing. These two things, entertainment and education, both work together. Entertaining reviews are memorable, which helps them be more effective as education.

But on to the third point: Without exception that I can recall, Ebert’s reviews were impersonal. Ebert savaged these movies. He questioned why time and money were wasted on them. The titular review is a direct message to Rob Schneider that his movie sucked. But he never told Mr. Schneider that he, personally sucked. As evidence on the impersonal nature of Ebert’s approach in the book, he gives as an example a terrible review of “The Brown Bunny.” Ebert reviewed a rough cut and gave it zero stars. But when the director recut  the movie, Ebert gave it a positive review. Ebert doesn’t carry a grudge or “flip the bozo bit” on filmmakers, he reviews each film on its merits.

This movie doesn't scrape the bottom of the barrel. This movie isn't the bottom of the barrel. This movie isn't below the bottom of the barrel. This movie doesn't deserve to be mentioned in the same sentence with barrels.

My fourth point is that Ebert’s reviews are appropriate for genre. He has said many times that he personally dislikes slasher films. But he does give some positive reviews when they are interesting and good relative to the genre. He gave a positive review to “Breaking 2: Electric Boogaloo.” Why? Because it’s a dance movie about a bunch of kids that stage a musical thingie to save an institution. Sure, it’s a hackneyed concept, but if you like “The kids’ll put on a show” movies, you deserve to know that this one will not disappoint.

Lastly, Ebert’s reviews are appropriate for his audience. He is more than capable of discussing movies in dry, intellectual terms. He has the background to teach film. But his newspaper and blog and television audiences are of a different character, so he speaks to his audience. He also helps audiences determine whether they will enjoy the movie given their experience and background. Another critic might write for a more learned audience, and that critic will be correct to use more technical terms and to steer that audience to a different set of movies. The only mistake is to talk down to the less experienced audience. It’s fine to educate, but you have to do so one approachable step at a time.

entertainment and education in programming language criticism

These five characteristics of good criticism—that it be entertaining, educational, impersonal, appropriate for genre, and appropriate for audience—apply to criticizing programming languages. And when I think of “criticism,” I am thinking of blog posts, I am thinking of comments on sites like Hacker News or Reddit, I am thinking of tweets, and I am thinking of the design of new languages. Let’s look at each one:

Good criticism is entertaining. While sites like Hacker News discourage the “witty reply,” I think it’s good to be witty if your criticism hits the other four points. It’s only bad when the wit is the only content. Alan Perlis is a master of entertaining critiques. My favourite witty critique of his goes: “The debate rages on: Is PL/1 Bactrian or Dromedary?” If the wit gets people thinking about something educational as opposed to just insulting, it’s a win.

(I am violating “appropriate for audience,” I guess. For those who don’t know, PL/1 was a language designed by committee, and a popular joke is that “A camel is a horse designed by committee.” Of course, camels are a miracle of optimizing design for living in a hostile ecosystem, so now the Joke-Explainer has ruined everything. Oh well!)

Did you know that if a certain kind of worm learns how to solve a maze, and then you grind it up and feed it to other worms, the other worms will then be able to negotiate the maze on their first try? That's one of the scientific nuggets supplied in "Phantoms," a movie, based on the popular Dean Koontz novel, that seems to have been made by grinding up other films and feeding them to this one.

More importantly, good criticism is educational. Any fool can tick off the bad points of a programming language. But every language has flaws. How does pointing them out educate the reader? Educating people is tougher than it looks. Simply assuming that you’re the smartest person in the room and then demonstrating that to yourself is not education. Helping people see something in a new way is education.

Remember the adage, "If you give a man a fish, you feed him for a day. If you teach a man to fish, you feed him for life?" It's the same with criticism. If you point out a language's flaws, you entertain me for a few minutes. If you give me an insight into how programming languages work, you educate me for life.

One way to educate is to give people some new ways of evaluating a language. For example, CoffeeScript's scoping rules differ from JavaScript, and that can bite you under certain circumstances. Some of the most interesting comments I’ve seen on the subject compare CoffeeScript to other languages such as Python or Scheme, and discuss the trade-offs in each language’s choices. This educates readers about other languages and helps them internalize a model of variable scoping behaviour, leading them to become better programmers whether they change tools or not.

be specific in tone and genre

I won’t spend much time on the subject of not attacking people in general based on one specific thing they say or do such as disagreeing with what you believe about a programming language. But I will point out that good criticism is specific about what it criticizes. For example, I think it’s good to point out flaws in a programming language, but I scratch my head at general statements such as “…and that’s why Fizbar Language is brain-damaged.” Get specific, stay specific.

"Mad Dog Time' is the first movie I've seen that doesn't improve on the sight of a blank screen viewed for the same length of time. It is like waiting for the bus in a city where you're not sure they have a bus line.

Being appropriate for genre is an important part of programming language criticism. It’s true that most popular programming languages tend to get less and less specific over time. For a demonstration of this, you notice that JavaScript has escaped the browser. Nevertheless, programming languages do have specific applications and niches. It’s important to criticize them within that context. Furthermore, that context includes a target programmer. There is very little point in criticizing CoffeeScript because it lacks referential transparency or typesafe monads. Those are good features, but languages with these features (such as Haskell) are from different genres, appealing to different programmers for different applications.

I went to LL2, a conference for “lightweight languages” hosted by Paul Graham. During the Q&A following every talk, there was always at least one person complaining that the presented language didn’t have macros. I think it’s possible to build a lightweight language around syntactic meta-programming, but at the same time, I think that when presented with a language, you have to look at what it’s trying to accomplish within it’s own style or genre and ask whether it is doing a good job in that self-consistent world. The two keynote speeches were by Joe Armstrong (erlang) and Yukihere Matsumoto (ruby). Neither language has macros, and there is plenty of solid criticism to be made about how they do within their genre without complaining that they fail to be good examples of the Lisp genre.

(Complaining that a language isn’t Lisp and/or Haskell is futile. If there’s some cross-genre feature you want in a language, be patient. Just as some people think that Casablanca can be “improved” by colorizing it, somebody will come along sooner or later and try to bolt macros onto Ruby or implement lazy evaluation. Badly.)

speak to your audience, not yourself

Part of the genre of a programming language is its target audience. Even though you may appreciate that a monad is just a monoid in the category of endofunctors, a language’s users may prefer andand?., or ergo. That being said, the audience for a language may not be the same as the audience for your criticism. Furthermore, you may have many different audiences for your criticism. What flies on Hacker News may crash and burn on Reddit. That is not wrong. There is not some universal truth, and if only those morons on ______ would get it, the world would be a better place.

If you choose to write something to an audience, write it to them, taking into account their interests, their prejudices, and their fears. Respect their social dynamic. I am not saying you should tolerate bullying, trolling or rudeness even if that is the norm in some places. But when you choose to make a reasoned argument, frame it for your audience. If your comments on Hacker News are consistently downvoted, something is wrong. Either you are saying the right thing in the wrong way, or you’re saying it in the wrong place. You might need to find a new way  to talk to the folks at HN, or you need to find the folks who like the way you express your thoughts.

(I’ve learned the hard way that Reddit has had its Eternal September. It’s a different place now than in its early days. That is not a bad thing, it is only bad when I go there and don’t respect the new culture in place.)

The movie delights me with its cocky confidence that the audience can keep up. 'Primer' is a film for nerds, geeks, brainiacs, Academic Decathlon winners, programmers, philosophers and the kinds of people who have made it this far into the review. It will surely be hated by those who 'go to the movies to be entertained', and embraced and debated by others, who will find it entertains the parts the others do not reach.

Now given an audience, how do you know how to speak to them? There are a few hints you can pick up. First, try to figure out how close they sail to the edge of the world. Do they constantly discuss new things? Or do they just want to “get stuff done.” Do they seem to enjoy discussing the implications of esoteric languages and weird libraries? Or do they prefer to split finer and finer hairs over how to maximize the use of existing, proven tools? I’ve personally found this to be the most important characteristic of an audience when writing programming language criticism. Some audiences are more willing than others to bandy new ideas around. It’s that simple.

That being said, there is one other thing I try to figure out, an audience's academic bias. Do they like or disdain academic jargon? Do they tend to cite research or do they prefer industry experience? Do they practice credentialism or anti-credentialism? You comments should match their style if you want your criticisms to be appreciated. Some folks really want to place a programming language or feature into the context of computer science's “body of knowledge.” Others just want  to talk about what it is and how it works (or doesn’t work). 

summary

I’ll close by repeating what I noted above:

These five characteristics of good criticism—that it be entertaining, educational, impersonal, appropriate for genre, and appropriate for audience—apply to criticizing programming languages. And when I think of “criticism,” I am thinking of blog posts, I am thinking of comments on sites like Hacker News or Reddit, I am thinking of tweets, and I am thinking of the design of new languages.

Merry Christmas and Happy Chanukah, everyone!

(Discuss on Hacker News or Reddit)

One day later

One day after posting Suicide? here on my non-code blog, it has nearly 100 tweets, has spent nearly twenty-four straight hours on the front page of Hacker News, and has generated more than 200 comments there. (I was surprised to see it posted there and even more suprised at the interest.) I’ve also received some private emails, all of which have touched me. 

Some of the feedback has been negative. This is understandable. I would like to respond by stating something that will be obvious to you: People are unique. No two depressed people are in the same stage of depression. No two depressed people are depressed in exactly the same way. Some have said that this advice struck a chord with them. Some felt the opposite, expressing frustration or even anger. Some felt I have been there and understand them. Some felt I was throwing inauthentic pseudo-feelings on a web page.

> People are unique. No two depressed people are in the same stage of depression. No two depressed people are depressed in exactly the same way.

This.  So much it hurts.

I never sought help because I didn't know what I was feeling could "count as" depression. Everyone describes it as darkness and sadness etc., none of which applied to my suicidal thoughts, so it just felt even more like nobody could ever understand.  I wrote more about this at http://da-softglow.blogspot.com/2011/09/national-suicide-prevention-week-story.html

—softglow

Some feel this advice wouldn’t get people to seek help. Some felt that it would. Some—including someone close to me—have sought that type of help in the past and it didn’t help them. Others told me that such help had saved them. Some cautioned that such talk could even trigger deeper depression and/or provoke someone to take their own life. Some felt that raising the subject was a benefit. Some felt I was misguided but accidentally doing good by acting as a catalyst for sharing views. Others felt that the subject shouldn’t be raised at all, raising the subject of journalistic “standards” about reporting suicides.

My own feelings are extremely complex. I do not wish to write a long post spouting theories based on my own experience, anecdotes, and whatever books that I have read during periods where my mind was receptive to new ideas. I will simply say that there are very many different people with different experiences, and that any static post or approach is going to appeal to some, fall on deaf ears with others, and repel others.

If you felt that the post was wonderful, that it spoke to you and resonated with your experience, please try to understand that someone else may have had a different reaction, and that their feelings and perspectives are as valid as your own.

For my part, I have been touching on the subject of happiness from time to time since I started blogging in 2004. I try to approach it in many different ways, in part because my own feelings are far too complex to sum up in an essay, and in part because there are so many readers with so many perspectives, and no one essay or post is going to resonate with everyone who is open to ideas that could help them change themselves. If you feel I missed the mark, it could be that this time I was aiming elsewhere, but digging through my other writings you’ll discover that I have shared part of your journey as well.

I write different things, and hope that this one will reach these people over here, and that one will help those people over there, and I hope that all of them will help me too. Writing is therapy for me.

I’ll close by saying that I hope those of you who didn’t like it or felt it was harmful or felt I was tossing out a sanitized and safe appeal will forgive me for not speaking to your personal experience. I never intended to suggest that there was a one-size-fits-all set of feelings, a one-size-all set of needs, or a one-size-fits-all road out of the darkness.

You matter to me, and by  that I mean you personally with your unique experience. I wish you well.


p.s. I will never forget you, Sam.

Glenboulderx

Suicide?

Horrible topic, but people often feel depressed over the holidays and wonder whether to end it all. Many do. If you are feeling depressed, there is help available. You may feel like you are alone and nobody is as bad a person as you are, or is as hard done by as you are, and you are right that you are unique and special and feel bad in unique and special ways. But you are not unique in feeling alone and hurting and feeling that life is not worth it.

If you are feeling disconnected from others, if you feel isolated even when people are around you trying to help, you are not alone, others have felt alone and apart just like you. There is a way back, there is a way to connect with people again.

Others have felt what you are feeling and have gotten through it with help. You can get help too. You can get through it, you can be happy again.

If you are contemplating suicide, do not feel embarassed. Do not feel you will be branded for the rest of your life. Do not fear being shamed. Simply call 1-800-273-TALK (8255). In Canada 1-800-448-1833. In the UK dial 08457 90 90 90. In the Republic of Ireland dial 1850 60 90 90. In Australia, call 13 11 14. You will talk to someone.

They will listen. I know you want to be heard. Let them hear you. Let them listen. Call them now.