all technical problems are people problems that manifest technically
July 15, 2015 6:24 PM   Subscribe

The Life Cycle of Programming Languages, by Betsy Haibel [previously] for Model View Culture.

From the article:
"Serial 'early adopters' mythologize the early days of languages. New programming language communities are 'graded' in the public eye based on how cutting-edge they are: our pattern-matching capabilities associate white men with the cutting edge, especially if they’re talking about monads. In 'Country Clubs on the Web,' nina de jesus points out the tech press’s willful refusal to recognize the size of Pinterest’s and Tumblr’s userbase and mindshare, asking whether the cachet of platforms like Medium and Svtble is truly due to superior content and curation, or whether it’s instead due to the whiff of exclusivity that comes from erasing women, PoC, and queers. 'Early adopters' seem to count more if they fit our stereotypes of 'early adopters' — in other words, if they’re white men."
posted by joseph conrad is fully awesome (113 comments total) 40 users marked this as a favorite
 
Re "monads", one of the pioneers of recursive function theory was the Hungarian Jewish woman Rózsa Péter (1905-1977). She was also a pioneer of functional programming in computers.

I hope that the kind of criticism in this article does not carelessly tar functional programming as somehow a "white man" thing, or the kind of thing that only white men care about. Péter shows that it is not. And recursion theory generally is a beautiful subject that knows no country.
posted by grobstein at 6:39 PM on July 15, 2015 [31 favorites]


Not sure what Rails meetups this person went to, but she seems to be reading waaaaaaaay to much into things.

Of course there are diversity problems. But to assume that there is some sort of group effort by white dudes to move to a new thing because "eew, the PoC, queers, and chicks now use it" is straight up pants-on-head bonkers.

You know who jumps in and bases their business on the latest new hotness in technology? Morons. Yeah, maybe early 20's white bros have the "moron" market cornered, I don't know. Probably.

Also, as someone who's done a lot of Rails, and is now currently doing a lot of Java based stuff: Anyone who says Ruby and Java are "two languages [that] are simply not that different" is not about to make a good argument about anything.
posted by sideshow at 6:53 PM on July 15, 2015 [25 favorites]


grobstein: "I hope that the kind of criticism in this article does not carelessly tar functional programming as somehow a "white man" thing"

My interpretation of that sentence isn't that the author is claiming that monads and such were a "white man thing". Rather, I think she was claiming that things like that gain cachet only once they become associated with "white men". I would say that the following sentence which points out how Tumblr and Pinterest are often dismissed as being merely niche platforms despite posting up bigger numbers than other, objectively smaller sites like Medium due to the demographics of their respective audiences reinforces that point.
posted by mhum at 6:54 PM on July 15, 2015 [8 favorites]


The rockstars move on. Once you’ve made your name on one project, you’re trusted on others; the same names and faces begin to reappear on the team pages of new, nascent languages, and the life cycle begins again.

Are there any examples of this? It's not like PG went from Lisp to some other language trumpeted by Y Combinator, or Larry Wall works on anything that's not called, "Perl". The only thing I can think of is entire projects, like the Twitter dude used to be the dude that made the blog platform I can scarcely remember. And now he does that other thing, but who cares he has a ton of money.
posted by alex_skazat at 6:55 PM on July 15, 2015 [4 favorites]


It's an interesting article, but it's very, very Ruby/Rails focused - not that there's anything wrong with that as the foundation of an article, since that's what the author knows, but generalizing that to all programming languages and frameworks is a bit shaky. Rails's culture is historically extremely bro-heavy for reasons that Haibel touches on (namely that DHH is kind of a douche, and that it became the language of choice for a certain kind of very bro-ey startup mentality), but that's pretty specific to Rails (and Javascript, I guess). My experience with, say, Python and iOS - two communities I know well - is that while they're still pretty white and dudely (just like the rest of tech) they're way less aggressively so.

Every year, Philly's Ruby and Python user groups come together for a big joint conference (Redsnake Philly), and while pretty much everyone has a good time (or at least good enough that they keep doing it), you can really notice the cultural differences between the two groups.
posted by Itaxpica at 6:56 PM on July 15, 2015 [16 favorites]


Are there any examples of this?

The people behind Go are some pretty heavy hitters, but in the "been around for decades and helped invent Unix" kind of way, not in the "make a flashy JS framework once" kind of way.
posted by Itaxpica at 6:59 PM on July 15, 2015 [2 favorites]


Please tell me this essay is satire.
posted by aspo at 7:01 PM on July 15, 2015 [8 favorites]


Yeah, and I was under the impression that a lot of bits of go were just the next version of whatever grand vision these people have had for those decades, rather than taking on completely different paradigms.

Which, you know: also makes a whole lot of sense.
posted by alex_skazat at 7:02 PM on July 15, 2015 [2 favorites]


When Rails programmers fled enterprise Java, they weren’t only fleeing AbstractBeanFactoryCommandGenerators, the Kingdom of Nouns. They were also fleeing HR departments, “political correctness,” structure, process, heterogeneity.
I am not a fan of Rails, but the Rails adopters about eight years ago seemed to really be into structure and homogeneity, to the extent that they were afraid of showing their code to each other, lest it be judged not DRY enough.

I can't really say that much more about the Rails community as a whole, though.

There is no doubt that silent technical privilege is very real and must be leveled. I've been a little encouraged by some recent developments. I used to be an Objective-C developer, and I went to a Mac conference a few years that was completely bro-ed out and alienating. Just recently, I saw messages on my local CocoaHeads (the Apple developer group) mailing list discussing (positively and thoughtfully) a code of conduct. After that conference, I could not have imagined this.

They don't have the kind of results we want yet, but the
members of Node community actively work on the issues of diversity and privilege, including some very senior members. (Full disclosure: Yeah, I am a Node developer.)
posted by ignignokt at 7:03 PM on July 15, 2015 [6 favorites]


Are there any examples of this?

TJ Holowaychuk, who did the heavy lifting on a lot of NodeJS packages, decided one day to move to Go. But that doesn't really fit since he didn't start Node nor Go.
posted by sideshow at 7:05 PM on July 15, 2015


They don't have the kind of results we want yet, but the
members of Node community actively work on the issues of diversity and privilege, including some very senior members. (Full disclosure: Yeah, I am a Node developer.)


I'm 34 and poor, is there a future for me in Node? I am white and male, but I'm an orphan, with little family really left, help me out, someone,please
posted by alex_skazat at 7:08 PM on July 15, 2015 [1 favorite]


But to assume that there is some sort of group effort by white dudes to move to a new thing because "eew, the PoC, queers, and chicks now use it" is straight up pants-on-head bonkers.

Uh, that's definitely not at all the point she was making, which I would roughly paraphrase as "people in positions of privilege in tech tend to regard as anathema the kinds of community standards that enable marginalized people to participate actively and comfortably." I'm with Itaxpica in thinking that this is maybe best asserted in the narrower case of the Ruby community, but your reading is pretty indefensible.

Also, as someone who's done a lot of Rails, and is now currently doing a lot of Java based stuff: Anyone who says Ruby and Java are "two languages [that] are simply not that different" is not about to make a good argument about anything.

Eh, they're both largely imperative languages with basically the same control structures and units of code organization, that sit on different points in the dynamic-static typing continuum. It's only the narcissism of small differences that would cast them as wildly different languages.
posted by invitapriore at 7:08 PM on July 15, 2015 [26 favorites]


We cannot break the endless cycle of broken frameworks and buggy software by pretending that broken, homogenous communities can produce frameworks that meet the varied needs of a broad developer base.
A minor point compared to the social issues discussed here, but I did notice that this article seemed to talk about frameworks as if nothing could happen without them. There is life outside of frameworks. Frameworks are not the only form of code sharing, and if we compose regularly composed our stuff with smaller libraries instead of huge frameworks, we could have more homogeneity and fewer gatekeepers.
posted by ignignokt at 7:10 PM on July 15, 2015 [6 favorites]


I'm 34 and poor, is there a future for me in Node? I am white and male, but I'm an orphan, with little family really left, help me out, someone,please

No assholes. Everyone else, come on down!
posted by ignignokt at 7:15 PM on July 15, 2015 [2 favorites]


Is any of this really about technology? The predominance of the legendary white dude in this field is not a technical problem. It is a people problem pure and simple. People prefer the company of those similar to themselves. Similarity can be broad or quite narrow. It terms of predicates - white - dude - straight - pick a programming language programmer - we are just dealing with attributes that people use to both identify themselves and to label others. It's all about people and their prejudices.
posted by njohnson23 at 7:19 PM on July 15, 2015


I would say that the following sentence which points out how Tumblr and Pinterest are often dismissed as being merely niche platforms despite posting up bigger numbers than other, objectively smaller sites like Medium due to the demographics of their respective audiences reinforces that point.

Sure, but it's a shit point. The reason people are ignoring/dismissing Tumblr specifically is because the dream of being the one to pet the unicorn has been tanked forever. Maybe Yahoo will make gazillions of dollars on Tumblr and maybe they won't (spoiler: they won't), but in as much as this whole great con of "the tech industry" involves a fantasy of ludicrous profitability utterly distinct from actual value, of course everyone was going to move on. And if there's a degree to which misogyny made all the unicorn-chasers more likely to see the reality that actually unicorns do not poop market share, well obviously misogyny is terrible but I don't think the solution is "we demand equal-opportunity unicorn delusions!!!", but then I am specifically a Marxist-feminist and not whatever kind of feminist the people at Model View Culture are.

A minor point compared to the social issues discussed here, but I did notice that this article seemed to talk about frameworks as if nothing could happen without them. There is life outside of frameworks. Frameworks are not the only form of code sharing, and if we compose regularly composed our stuff with smaller libraries instead of huge frameworks, we could have more homogeneity and fewer gatekeepers.

I mean, look, I'm all for "laziness is a virtue" and not reinventing the wheel and generally against unnecessarily redundant fiefdoms, but technical diversity isn't necessarily a sin, either. And in as much as being a stupid, wheel-reinventing twerp is fun and motivating and people have been doing it in the "open computing" movement essentially since the beginning, it's worth considering it as valuable for that alone. Is this is perhaps down to some flaws in human nature, namely ego (DHH etc)? Probably, and yet, human nature is what it is and it's not like reconciliation is impossible, nor swiping the good parts from MoveaSphere (formerly WheelX) 3.82.
posted by The Master and Margarita Mix at 7:24 PM on July 15, 2015 [3 favorites]


And in as much as being a stupid, wheel-reinventing twerp is fun and motivating and people have been doing it in the "open computing" movement essentially since the beginning, it's worth considering it as valuable for that alone.

I think there is nothing wrong with reinventing any wheels. After all, some wheels are better than others. That said, why not spend time reinventing wheels, instead of say, huge take-all-it-or-leave-it-all cars? And it is also fine that they make huge cars, or - back to the realm of non-analogy - huge frameworks. I just recommend that the would-be adopters of such frameworks consider what they actually need and try not actually going for the framework each time. You very well might better meet your software's needs that way.
posted by ignignokt at 7:30 PM on July 15, 2015 [1 favorite]


Is any of this really about technology? The predominance of the legendary white dude in this field is not a technical problem.

I think tech looks at itself as some kind of pure meritocracy, where the best ideas are rewarded regardless of origin. It's completely bogus of course, since white dudes are only going to judge things by white dude standards, and white dudes are really good at raising money from other white dudes.
posted by meowzilla at 7:45 PM on July 15, 2015 [11 favorites]


Wow. I'm surprised by the reactions I'm seeing. I read this and was inspired.

She makes the important point that a diverse creative/production team demands attention be paid to what would otherwise be dismissed as "edge cases". This will make your code better and more useful.

But a lot of coders always have a little secret hate for QA, and user testing, and other things that make code better and more useful.

So...yeah. Do the right thing and build diverse teams. Reach out with integrity and intention to diverse user groups. Do it the hard way, because it's the right way, and because you will make better and more useful things.
posted by sixswitch at 7:58 PM on July 15, 2015 [17 favorites]


Yeah, no.
> while Java is more verbose, the two languages are simply not that different

The 2 languages are _completely_ different. Java is a typed language and Ruby is dynamic. Ruby is interpreted and Java is compiled. To say they are similar belies a fundamental misunderstanding of programming and programming languages. The author's thesis is bunk, their whole case rests on a flawed argument, namely they are similar but one was deemed cool, the other not.
posted by askmehow at 7:58 PM on July 15, 2015 [5 favorites]


I'm not arguing against inclusiveness in any way shape, shape or form. The industry only gets better as a wider swath of the population are represented in it. That said, there are real technical differences between languages and the author made an argument based on a demonstrably incorrect assumption.
posted by askmehow at 8:06 PM on July 15, 2015 [2 favorites]


> Eh, they're both largely imperative languages with basically the same control structures and units of code organization, that sit on different points in the dynamic-static typing continuum. It's only the narcissism of small differences that would cast them as wildly different languages.

Ok, so, people say this kind of thing a lot, and it seems to me maybe halfway true. On the one hand, yeah, if you squint hard enough, they aren't all that far apart. And this awareness is a useful corrective to lots of parochial silliness, especially the kind generated by people who have only worked with a couple of languages and have accidentally gotten their egos enmeshed as a consequence. (This was me for a long time, I still don't know what the hell I am doing, and I make no claims to especially great personal perspective.)

But then again it seems to me that a programming language paradigm is more than a little bit like a literary genre, and to say that Dune is just like The Dispossessed because they participate in the same genre conversations would be eliding some pretty important distinctions, wouldn't it? It always feels like this glosses over a fair amount of the experiential content of writing code. A language after all is not just a syntax and a semantics narrowly construed. It's a community, a body of work, a toolset, a pile of context. And on those criteria Java and Ruby are different in ways it's reasonable to talk about. Even languages with much more in common, paradigm-wise, say a set like [Ruby, Perl, PHP, Python, JavaScript], are meaningfully different animals in all sorts of ways.

And then again again...

> To say they are similar belies a fundamental misunderstanding of programming and programming languages.

To the contrary, it often comes out of a familiarity with a broader spectrum of programming languages, or at least an aspiration to that kind of perspective. Ruby and Java are probably more like each other than they are like, I dunno, Lisp, Haskell, Erlang, Forth, or assembly.
posted by brennen at 8:29 PM on July 15, 2015 [12 favorites]


But what is code?
posted by bicyclefish at 8:38 PM on July 15, 2015 [2 favorites]


>what is code?

baby, don't hurt me!
posted by snuffleupagus at 8:42 PM on July 15, 2015 [17 favorites]


@Brennan - I hear what you are saying, bu the the differences between the languages are big. It's possible the author sees things as you describe, but she didn't provide any context for a pretty controversial statement. She then went on to make pretty bold claims from an _ambiguous_ starting point at best -anyway, she lost me. The industry is full of pedants and those that live for the minutae, and it seems a pretty glaring oversight to equate the two languages, without acknowledging their differences.
posted by askmehow at 8:53 PM on July 15, 2015 [1 favorite]


It seems unfair to blame a project like Elm's "failure to ally" on it's creators' "contempt" for certain users. Any language, any tool, cannot be all things to all people for all ends. Most languages end up being good for certain things and not others. That's not a people problem, but just a consequence of necessary trade-offs.
posted by spudsilo at 8:54 PM on July 15, 2015


ignignokt: "A minor point compared to the social issues discussed here, but I did notice that this article seemed to talk about frameworks as if nothing could happen without them. There is life outside of frameworks. "

Oh god yes. Please. The more I look at trying to do things, the more I look at JS (in particular), but really anything (PySide/PyQT/TKinter/PyGTK/Kivy; hell even MS has WPF and WinForms) The more tired I get just thinking about trying to learn a damn thing.
"The problem is that now you have two systems to learn, HTML+CSS+JS, and the framework."
XKCD: Standards.
posted by symbioid at 8:57 PM on July 15, 2015 [4 favorites]


This is article is a poorly thought out rant. For the non-programmers here I'll break down some of the issues here.

* A key part of her argument is the idea that Ruby and Java are both OO, and hence extremely similar. This is a bit like saying Shakespeare and Pablo Neruda were similar authors because they both wrote poems. While both languages are OO, java is statically typed, Ruby is not, Ruby implements a lot of functional lisp-ish features, Java definitely does not. The institutions that govern the future directions of each language could not be more different, with java being heavily guided by Oracle with very formal processes, and Ruby's community being much more informal. If you trace the lineage of each language you see hugely different influences. I could go on, but I'll leave it here.

* The idea that Rails' attitude of rejecting the attitudes of big java shops as being merely superficial is lacking understanding. I agree that the cavalier attitude the Rails team brought had an impact in terms of community development. HOWEVER, this overlooks the truly massive productivity gains Rails brought that other frameworks didn't have. These gains were not just technical, they were cultural. It was a new tool that supported new, lean, processes. It flat out costs more time/money to build your simple app in Java than it does in Ruby. Part of that is the culture many Java shops have. That gap has closed a little bit in recent years, but it is still significant. I say this as someone who loves both languages. Ruby/Rails helps support a lean startup, fast iterating methodology. The author is out of touch with how much this matters when you're trying to build a business. I've worked at a number of early-stage startups and co-founded one myself. I use and love both Java and Ruby, so I have no horse in this race.

* I like programming languages because I like programming. I like Rails because I like being an effective developer. If there was more gender diversity in programming language design that'd be great. Until more non-cis guys start writing programming languages I don't have a huge choice in reading about new PLs.

* Lastly, there are people who pursue technical mastery to be dicks to other people. There are also people who pursue technical mastery because they like to learn. I heard one dude at a meetup the other day tear down another guy during a talk simply to puff himself up. That problem won't be fixed unless you find a way to give those people a more positive source of self-esteem. Writing pandering and poorly informed rants online does not help anyone.
posted by sp160n at 9:00 PM on July 15, 2015 [15 favorites]


The only thing worse than a new framework is trying to build a reasonably complex user facing application without one.

Also on preview - sp160n is right on
posted by askmehow at 9:04 PM on July 15, 2015


The industry is full of pedants and those that live for the minutae, and it seems a pretty glaring oversight to equate the two languages, without acknowledging their differences.

I just went and actually read the essay, which, mea culpa, I should have done before commenting in here.

It may not be a great essay, but it says some things worth considering. None of them hinge, particularly, on this bit of pedantry, or more generally are likely to be in any way addressed by the tone of hectoring pedantry that so reliably emerges in Pretty Much Any Goddamned Thread About Programming, Just Pick One, which in fact is directly related to what the essay is actually about.

I guess I am saying that what you are doing here (and lemme cop to this, what I was doing by responding) is a tired exercise and we could stand, as a culture, to do way, way, way less of it.
posted by brennen at 9:07 PM on July 15, 2015 [13 favorites]


Having this kind of fucking nonsense as the increasingly loudest, increasingly primary public face of "women in tech" is incredibly damaging. I am so goddamn sick of this shit, in some ways I am sicker than I ever was of all the direct chauvinism and misogyny. That stuff exists, it's real, there's no need to make up nonsense like this. It's just extra headaches to deal with.

It's also completely ridiculous to say that Rust and Ruby aren't that much alike but Ruby and Java are. That's straight up picking facts based on the argument they support.

That said, why not spend time reinventing wheels, instead of say, huge take-all-it-or-leave-it-all cars? And it is also fine that they make huge cars, or - back to the realm of non-analogy - huge frameworks. I just recommend that the would-be adopters of such frameworks consider what they actually need and try not actually going for the framework each time. You very well might better meet your software's needs that way.

I totally see your point and more or less agree with you on a technical level, but it's not like the interoperability issues, and I guess I'd call it "a desire for a deep but not wide knowledge domain that was in some sense cognitively manageable", that drove framework adoption in the first place are just going to go away. It all happened for a bunch of reasons that are still basically valid, were technical and not anti-feminist, and not that you personally are making this argument but I certainly think it's ridiculous to think people would ever roll back on that just for the sake of politics they don't and probably never will agree with. I think it would be an absolute non-starter even if the political dimension wasn't at issue, even; not because Frameworks Are The Way, but because the specific people issues that drove framework adoption haven't been solved.

None of this happened in a technical vacuum, no matter how pleasing that would be to the kind of identity-first feminists who are incapable of looking at anything outside of that particular lens. Everyone who isn't utterly clueless understands that the reasons behind it it were not patriarchy, and certainly whatever solutions form the core of the next iteration we're all going to be complaining about in ten years while simultaneously looking at frameworks through rose-colored glasses aren't going to be developed and motivated desire to smash the patriarchy, either, and once again if you're not completely clueless you understand that reality on a bone-deep level. So in as much as I read the article as essentially advancing both of those arguments, I think it's ridiculously wrong-headed, and it's counterfactual a way that offends me more as a feminist because of the bad analysis than as, at least theoretically, one of the Early Adopters she's complaining about, or maybe just someone who is influenced by and in sympathy with them, or collaborating with them, or fuck knows what, because her critique is utterly and completely incoherent from a feminist perspective just as much as it is total nonsense on a technical level. No one moved to Rails because of its association with penises, even if DHH is a dick.

I think tech looks at itself as some kind of pure meritocracy, where the best ideas are rewarded regardless of origin. It's completely bogus of course, since white dudes are only going to judge things by white dude standards, and white dudes are really good at raising money from other white dudes.

Barf. You're conflating two vastly different things in a way that shows you have no goddamn idea what you are talking about and does a massive disservice to the actual point you're trying to make, not that your implicit solution to that problem is neither viable nor really all that much of a solution. There are a lot of reasons for adoption (early and otherwise) of different technologies, and diverse technical merits aren't the only ones, but none of them are "judging things by white dude standards", unless you're bringing in some deeply evil, gender essentialist crap about technical merit being gendered and non-representational ladybrains and The Alphabet and The Goddess, and I'm going to assume you are not if only because I feel like attributing that argument to anyone is the height of rudeness akin to assume they are flat-Earthers. Tech decisions get compromised all the time by things that aren't strictly merit, but I've never seen or even heard of a single case where it could be reliably credited to patriarchy or white supremacy and not "cost projections" or "the comfort level of the existing tech staff", and there's nothing illegitimate about either of those. On top of that, this shitty argument is incredibly minimizing of all the women and POC in tech, for one thing. We exist, for starters, and some of us are responsible for adoption decisions that affect dozens or hundreds or even thousands of developers. What's the argument here, that any woman or any man of color who has ever adopted Rails is guilty of false consciousness?
posted by The Master and Margarita Mix at 9:12 PM on July 15, 2015 [29 favorites]


Sometimes I wonder if these culture issues in tech would be any different and if so how, if US English wasn't the default programming language language.
posted by oceanjesse at 9:30 PM on July 15, 2015 [1 favorite]


More and more I look at Frameworks as a way to make my life as a JavaScript developer harder.
posted by Artw at 9:30 PM on July 15, 2015 [6 favorites]


The rust team is almost entirely academics and systems hackers. Far more of the CMU ML and MIT scheme squads, plus long suffering C++ devs. The few Ruby folks got interested by chance, quite late in the game, and as much out of interest in something dissimilar to Ruby as anything else.
posted by ead at 9:33 PM on July 15, 2015 [2 favorites]


So maybe this isn't a very good example for an outrage mob about "unbearable whiteness" to use, but I don't have much experience of those things, thank God.
I'm one of the people on that page, and I'm not white, though a few Twitter commenters actually tried to tell me I was wrong when I pointed this out. That said, the page was 100% men (and all or almost all white and Asian) when it was first posted, and we know that's a problem, and I'm glad that it's changing as the community grows and more people become active and visible.

Still, it's become a pet peeve of mine when white feminists point any group and say "Look, they're all white cis-het men!" when one or more of those qualifiers is false. "Lily-whte Asians" are a special case of this, discussed here previously.
posted by mbrubeck at 9:43 PM on July 15, 2015 [13 favorites]


Man, people are such assholes about languages. I almost become instinctively defensive when people ask me what languages I use now. I took my job off my online dating profile because of it.

I want to just put a disclaimer that says: "Oh wow, you're a developer too? Oh yeah, I use PHP, yep, right, lol. Hahaha. So funny. HILARIOUS. Would you guess, I got tricked into it because someone gave me money to do it? It's called a job. It doesn't define me as a human being, surprisingly. I also sometimes use an IDE instead of just VIM. I know, I'm such a n00b. Isn't it great that I got this all out of the way before you messaged me?"
posted by melissam at 9:53 PM on July 15, 2015 [18 favorites]


Programming as a discipline spent the first many decades of its life evolving pretty slowly. It really was a club, due to the fact that if you wanted to get good, you had to have connections that would grant you access to machines/manuals/etc. It was still like this to some extent 12ish years ago when I started studying it at university.

Now with the internet, and google, and open source repositories, and web 2.0 communities, and online academies, and accessibility of tech thanks to smartphones... the industry (formal and informal) is growing exponentially. New languages and frameworks are cropping up daily. Lots of people are taking interest. It finally seems like the kind of thing that anyone could do if they put in some elbow grease.

I think we're still right in the thick of that explosion, and it's still too early to take a reflective look at the "lifecycle of new programming language communities." Failure is just part of that growth. Some awesome things will never catch on. Some terrible things will outstay their welcome for "people" reasons (or political reasons).

Someone upthread made the point that a Framework is not necessary for programming. I'd argue that a Community is not necessary either. Pick a language you don't hate working with, find a problem you want to solve, and get going. If you get bored, find some people or code snippets to inspire you, or have a look around for other languages that might better suit your current needs. Rinse, repeat.

But please, to avoid becoming catty or navelgazy, try to spend more of your time programming than programming-language-socializing! Let's get back to caring about the power and elegance of programming languages in their own right. Communicate with others to share that love and awe, not to look cool or to win some imaginary language war. That is the true meaning of geekdom (not white dudes with pocket protectors or wads of cash), and if we try to live within it I think diversity will naturally follow.
posted by mantecol at 10:08 PM on July 15, 2015 [6 favorites]


Ruby and Java are similar, compared to Haskell or J or C or APL or Lisp or Forth or Factor or Io or ML or Prolog or Erlang or Bloom &c &c &c. Which is her point.

Y'all seem super hung up on the author's lack of nerd credentials despite the fact that she's a professional programmer whose resume and GitHub account are two clicks away from her article.
posted by Coda at 10:33 PM on July 15, 2015 [11 favorites]


What's the argument here, that any woman or any man of color who has ever adopted Rails is guilty of false consciousness?

I'm not saying that at all, or that merit or frameworks are languages are gendered or race related.

I'm saying there tends to be a closed loop of thinking and buzz around the newest and greatest technologies, which often are simply reactions based on the last generation of technologies. As the author says, Rails can be considered a response to PHP. Now it seems we have a new class of languages and frameworks based around the failings of Rails. These are often touted as the newest bestest thing, even though we all know the last generation is has been working reasonably well for the last n years and will continue to do so well into the future; but they take up a disproportionate amount of attention and news, and are perceived to be 'better' without a huge amount of evidence.
posted by meowzilla at 10:33 PM on July 15, 2015


re: Tech's pure meritocracy, another indicator that it is not so is that C won against Ada, in spite of its huge problems (weak type system, undefined behaviour galore, total lack of safety). Context matters, as do fashion and money (Multics vs Unix).

Java and PHP would not have been what they were in 2005 were it not for PHP's ease of deployment and Java's clout in Academia (as a teaching language) and the huge push it had thanks to Sun and Netscape. Although some aspects of it are/were terrible, Rails was a revelation back in the day, and it really pushed others to get their act together (remember the billions of Python frameworks and deployment methods?)
posted by Monday, stony Monday at 10:45 PM on July 15, 2015 [1 favorite]


"White Dude Standards" is not a great way to put it, and was not the way the author put it - I think her (strongest) point was that to be deciding on a language based on novelty and technical coolness rather than factors like accessibility support and community inclusiveness is to be in a privileged position.
posted by atoxyl at 10:57 PM on July 15, 2015 [4 favorites]


We cannot break the endless cycle of broken frameworks and buggy software by pretending that broken, homogenous communities can produce frameworks that meet the varied needs of a broad developer base.

i think there's something to this. something that might be revealed better after a few days distance from this draft, and a very good editor.

and the sparring in the thread around frameworks and languages completely omits the concept that you could use computer languages for...uh, well, a fucking lot of shit that isn't a quick-turnaround, web 2.0, 'user facing' app...and we still have some problems with community/diversity/relationships/etc.
posted by j_curiouser at 11:00 PM on July 15, 2015 [1 favorite]


So maybe this isn't a very good example for an outrage mob about "unbearable whiteness" to use, but I don't have much experience of those things, thank God.

Well, the lack of diversity on the Rust subteams really was an issue. It was brought to the core team's attention, discussed, and apparently taken seriously. From what I could see (and I might be wrong about this), the Rust community was this sort of loose Venn diagram of Mozilla, internals.rust-lang.org, /r/rust, users.rust-lang.org, and local user groups. The local user groups do have good diversity, but the subteams seemed to be initially drawn from people the core team was familiar with online.
posted by a snickering nuthatch at 11:18 PM on July 15, 2015 [1 favorite]


Shorter this thread: I know programming, i must be hella qualified to post as an expert about an article about the social and cultural effects around programming.

The blog posts and initial buzz around Rails was absolutely a transmission of an aspirational culture around the public faces of 37Signals and the idea that any "real programmer" should kick over his desk at his job writing Java code for Sears and go conquer the world with Ruby and Rails. Those posts were written by the white dudes we all know, and by some weird unknowable coincidence, they resonated with dudes who were a lot like them. The initial crowd pushing Rails and lean web dev companies were also likely to be people who could give up a full time job with health insurance to pursue a risky business venture because they were younger and probably didn't have kids or other relatives that they were the primary caregivers for.

These biases sneak up on us, and we aren't bad people for unknowingly assuming that the guy we're interviewing who looks like Mark Zuckerberg probably knows what he's doing. But we can pay attention when someone points out that the communities we create have comically little diversity, and, whether we meant to or not, we have been creating expectations and culture that has created this. Now we know we've gotten a messed up outcome, we are obliged to backtrack, and start to identify the mistakes we've made that led to this exclusive culture, and fix it.

Now here's the good news, there's already a community of people writing essays like this to show us exactly what direction to go in and we just need to start listening to women and people of colour and other minorities when they speak and treat what they have to say with the importance it deserves. Which means not nitpicking whether Java and Ruby are super different because the byte code one compiles into is done as an explicit step or not.
posted by Space Coyote at 11:40 PM on July 15, 2015 [27 favorites]


The funny thing for me is that, when I first read this article some time last week, I found a lot to disagree with in it. grobstein gets at one of the aspects I found objectionable, which is that things like the sort of sneeringly off-handed association between white men and monads in the pull quote is its own form of erasure. It feels too like a weird, decades-late salvo in the science wars, as though monads and the like are just contingent ways of knowing and maybe they depend for their meaning on the ideological foundation of white patriarchy, which I think comes with a whole host of gross and condescending implications.
posted by invitapriore at 11:53 PM on July 15, 2015 [5 favorites]


invitapriore, it seems like your saying that the article was an intentional false flag attack. Other than trolling, what would be the point of... oh, wait, that's nuts. Someone upthread validated her credentials, at least to some degree.

Let me get this straight: are you trying to assert that someone is in the process of the intentional act of etymologically distorting the term "monads"? And, if so, for what reason?
posted by coolxcool=rad at 12:11 AM on July 16, 2015


The funny thing for me is that, when I first read this article some time last week, I found a lot to disagree with in it. grobstein gets at one of the aspects I found objectionable, which is that things like the sort of sneeringly off-handed association between white men and monads in the pull quote is its own form of erasure. It feels too like a weird, decades-late salvo in the science wars, as though monads and the like are just contingent ways of knowing and maybe they depend for their meaning on the ideological foundation of white patriarchy, which I think comes with a whole host of gross and condescending implications.

She mentions playing with a Haskell-derived language so I'm not sure she has anything against FP - it's just an example of something that impresses programmers with its reputed technicality. For those too lazy to actually look her up she mostly seems to do Ruby, including Rails, so I think the use of that community as an example also comes from familiarity and not (at least not exclusively) contempt.
posted by atoxyl at 12:41 AM on July 16, 2015


By the way, I recently worked for a small tech startup in Canada, and I was the only white Canadian on the engineering floor. And I'm a woman! We had tons of diversity amongst the engineers, even if males outnumbered females by a large margin.

The executive team on the other hand, with the blessing and confidence of the board of directors, was almost entirely white cis male. And remained installed despite pretty lackluster performance over a number of years (I might call it complete squandering of money and opportunity). But that's another story.
posted by mantecol at 12:44 AM on July 16, 2015 [1 favorite]


Honestly the part I don't buy is the apparent suggestion that increasing the diversity of software developers would help much with addressing things like "buggy, broken frameworks." Now if the implication was that I am using narrow, conventional standards of software project quality - or that the same processes that contribute to these people problems also contribute to technical problems - that's another thing, and that people problems are more important than technical problems I can certainly be convinced.
posted by atoxyl at 12:49 AM on July 16, 2015 [1 favorite]


As another white dude who abandoned Java for Rails, I'm a little unclear why how language A is implememented tots differently than language B has anything (or at least much) to do with how similar they are conceptually from the point of view of a coder.

What's more similar:
Ruby & C; or Ruby & Java?
Ruby & Lisp; or Ruby & Java?
Ruby & Haskel; or Ruby & Java?
Ruby & PHP; or Ruby & Java?

It seems a little like saying 6502 assembly on a Western Design Center chip is TOTALLY DIFFERENT than 6502 assembly on a MOS Technology 6502 because CMOS. Should take that off my lawn.
posted by lastobelus at 12:54 AM on July 16, 2015 [1 favorite]


Honestly the part I don't buy is the apparent suggestion that increasing the diversity of software developers would help much with addressing things like "buggy, broken frameworks."

Well, one data point is this story of a team that writes software for NASA, who write code that can't have bugs, and have pretty good gender diversity. Maybe the culture that attracted these developers is one to examine and emulate and the culture that attracts brogrammers is one to avoid.
posted by Space Coyote at 12:55 AM on July 16, 2015 [3 favorites]


Probably the idea is that if we tap into ALL of our minds, rather than just a preselected fraction of them, we'll get better results.
posted by mantecol at 12:59 AM on July 16, 2015 [1 favorite]


Maybe the culture that attracted these developers is one to examine and emulate and the culture that attracts brogrammers is one to avoid.

Well that's why I said this:

or that the same processes that contribute to these people problems also contribute to technical problems

I can go a few different ways on what software "needs," what I believe in and what arguments I'm skeptical of but the way I'm going with this right now is kind of picky and doesn't matter that much really. Bringing more different people into the industry is obviously good for the people being hired, many of the people who already work in the industry, and the democratization of decision-making about which problems software tries to solve - that's more than enough reasons.
posted by atoxyl at 1:19 AM on July 16, 2015


These biases sneak up on us, and we aren't bad people for unknowingly assuming that the guy we're interviewing who looks like Mark Zuckerberg probably knows what he's doing.

And please don't stop doing that, because this is basically my career, looking like Bearded Grizzled IT Guy Who Looks Like He Knows What He Does.
posted by MartinWisse at 1:59 AM on July 16, 2015 [5 favorites]


Space Coyote: Shorter this thread: I know programming, i must be hella qualified to post as an expert about an article about the social and cultural effects around programming.

Shorter this comment: I know how to read and I am a white dude, I must be hella qualified to post as an expert about how other people should react to this article and will proceed to assume that everyone objecting to it is doing so from the POV of a butthurt white guy, ignoring the men of color and women who've posted, and assuming all people who don't have any identifiers either way in their profile are all white men motivated by denialism and butthurt.

Who is this "us" of whom you speak, bruh? If you're going to opine about how "our" biases don't make "us" bad people, please show some evidence that anyone in the thread holds them, even the folks who like yourself are self-evidently white dudes in an unambiguous way because they've associated their real world identity with their online identity, Which As You Know Bob is actually a form of privilege that tends to be afforded mostly to educated, upper-middle-class men in certain professions.

(Even shorter this comment: u mansplainin': terrible)

atoxyl: Honestly the part I don't buy is the apparent suggestion that increasing the diversity of software developers would help much with addressing things like "buggy, broken frameworks."

The argument that like, women totally have different styles than men and we're more collaborative and this makes diverse groups better because blah blah the power of ladystyle is ridiculous. It's certainly debatable whether Betsy Haibel is making that argument, and thankfully no one on either side seems to be dumb enough to make biologically essentialist arguments about race and diversity.

Still, if your culture is so shitty that you're driving away over half the population right from the start, no shit if you stop doing that the quality of the people who rise to the top and make the cut will go up. That is, unless you're arguing that women and/or people of color are inherently worse at programming then white men, or have a different distribution of talent for it, which I think we can probably go ahead and assume no one on MeFi believes.

The Rails community is indeed particularly and notoriously awful. I don't agree that it's precisely at the pornstar slideshow where all the weeding out of so many people who aren't white or men from tech is occuring anymore than I agree that widespread adoption of Rails was driven by the pornstar slideshow, but the weeding does happen. Basically: what mantecol said.
posted by The Master and Margarita Mix at 2:14 AM on July 16, 2015 [4 favorites]


Good article: her observation about accessibility being a second-order concern was telling. We see that all the time (I'm a computer programmer in accessibility).
posted by alasdair at 2:23 AM on July 16, 2015 [2 favorites]


Honestly the part I don't buy is the apparent suggestion that increasing the diversity of software developers would help much with addressing things like "buggy, broken frameworks."

Well...

She mentions accessibility, which is exactly the sort of subject which is deeply unsexy, doesn't really need flashy coding tricks but hard slog and is therefore from a programmers p.o.v. boring and unpleasant. Worse, it's something that goes unnoticed by the majority of your user base and peers.

Which means that unless you do have people in your team that are directly impacted by it, or sufficient outside pressure, it gets neglected or only paid lip service to. Even though investing in it might have benefits for the rest of your user base too.
posted by MartinWisse at 2:47 AM on July 16, 2015 [4 favorites]


and will proceed to assume that everyone objecting to it is doing so from the POV of a butthurt white guy, ignoring the men of color and women who've posted

Space coyote didn't say anything about the race, gender or ethnicity of the people in this thread.
posted by MartinWisse at 2:50 AM on July 16, 2015 [2 favorites]


The strongest point of the article - that seemed to be diluted by the fixation on the Rails community, was about the sociological interpretation of what it means to be always jumping from the "broken" bloated frameworks to a new beginning point.

I.e. the author is suggesting that the "broken" framework is analogically the disabled / queer / "broken" humans. That the desire to "start again" stems from the same desire as that in fascist politics manifests as the desire to disregard and discard the "remnants" of society - the weak, and non-functioning.

But is this just evolutionary process? Can you have an evolution that is always backward compatible?
posted by mary8nne at 3:57 AM on July 16, 2015 [5 favorites]


This is an incoherent rant mostly about how much the Ruby on Rails community sucks (and it does), as far as I can tell. The reasons I find it frustrating are largely consistent with what The Master and Margarita Mix said--the piece is intellectually lazy and the analysis is incredibly poor. In its incoherence it does more harm than good.

For example:

In its purest form, Elm reimagines web programming as something graphical, and abandons the underlying textual structure of the web. In doing so it forgets one of the most important things the web’s textual semantics give us: easy screenreader accessibility.

...

In this context, it’s obvious that Elm’s apparent failure to a11y stems from its creators’ lack of exposure to people who need assistive technology.

...

Each new project that thinks of diversity and inclusion and anti-harassment policies as questions for later — you know, after the ladies and the queers show up and start demanding them — dooms itself to making similarly fundamental, direction-setting mistakes in both the shape of its community and in the shape of the code itself.


Woah there. Elm is a very specific approach to web development and not necessarily appropriate for all web applications. The bigger problem that this disingenuous criticism misses is that what used to be a medium for linking text documents to each other is now used to build sophisticated applications with insanely complex interfaces. Elm is but one of many approaches to solving this problem, and criticizing it in the way the author does is absolutely bone-headed. If you want to place the blame on anyone place it on whoever first thought "hmm, I bet we could make money somehow off of this new world wide web thing..."

Which is not to say that accessibility is not a problem, or that building communities which incorporate the viewpoints of a diverse group of constituents is not a problem, but...there are compelling ways to make that argument. Throwing shade on a Haskell-flavored transpiled language for building graphically intensive UI-focused web apps based on FRP which is pretty damn niche and has very specific goals is not it.

This is just one reason that this is a disappointing piece and this kind of lazy thinking is why I'm skeptical when I see a Model View Culture piece pop up--they really need better filtering and editing. I think you could throw a dart at http://geekfeminism.org/ and get a better thought out, more compelling piece than this.

There is a lot of toxicity to counter in Silicon Valley and in the tech industry as a whole, but this kind of sophistry does no one any good.
posted by dubitable at 5:39 AM on July 16, 2015 [1 favorite]


Geeze, it's one of the oldest jokes in academic computing:

First computer scientist: "I just came up with a great idea!"

Second computer scientist:"Cool! Invent a language so we can talk about it!"
posted by Chitownfats at 6:32 AM on July 16, 2015


The field seems so addicted to silver bullet thinking. Structured programming, no, CASE, no, OOP, no, test-driven development, no, pair programming, no, Agile, no, Functional Programming: they will solve all our problems. If only we had the right toolset then everything else will fall into place! But so often all that happens is that software is written to please the egos of engineers or management in a different way, and the real needs of users remain unfulfilled.
posted by thelonius at 6:53 AM on July 16, 2015 [1 favorite]


Now that I've had some time away from the article, I think the main thing that bothers me is that she casts things like Java and PHP and Rails as being good because currently there are more diverse communities involved, and I get the impression that she thinks people should stick with it. But the fact is, while throwing away code shouldn't be taken lightly, sometimes people start fresh for good reasons.
Iwata: I continued and told him “I can help you if you would like but there are two ways to proceed.” That is when I said what Itoi-san just credited to me. I then went on to say “If we used what you have now and fix it, it will take 2 years. If we can start fresh, it’ll take half a year.”
Why should we suggest that the non-privileged stick it out with things that we've proven don't as work well for certain tasks and have the while males jump ship to things that are better? Why punish them further? Instead, why not work on creating work cultures that encourage everyone to try different ways of doing things, and yes, gasp, even learn about them on the job, the way we do in other trades? Actually ask people, what do you think iare the best tools to to get the software we need instead of "WE ARE A J2EE AND SPRING SHOP AND YOU WILL USE IT TO MAKE THIS WEB PAGE THAT CONSOLIDATES TRACK EXPENSE APPROVAL STATES FROM SEVERAL DIFFERENT SERVERS AND REPORTS THEM"

The answer to this is in the core core point of the article, which is that bosses, given the same title, are more likely to trust a white guy with a beard and a Docker shirt who uses a lot of terms the manager has heard of but doesn't understand to do what they think is best. For someone that seems quieter and less confident and doesn't fit the profile, they expect a "no one gets fired for buying IBM" kind of approach. I've seen this in a few different workplaces. Creativity is expected from some, worker bee-ism is expected from others. There's factors other than gender and race at play, but oddly enough, I've noticed that the person that is allowed to play a little looser with the manager is always a man.

And sadly, I've seen a lot of people, including men, start to automatically jump into the role they're implicitly assigned without prompting after a while.
posted by ignignokt at 7:03 AM on July 16, 2015 [7 favorites]


Turing gave us a perfectly effective way to compute everything back in 1936. If everyone had really been serious, sat down, made sure they had non smudging erasers, sharp pencils, and practiced memorizing tables of symbolic correspondences, we wouldn't have even had to build electronic computers that only the privileged would have access to. It would have been slower, maybe, but it would be the honest work of our hands and minds.
posted by ethansr at 7:12 AM on July 16, 2015 [2 favorites]


Accessibility is not a niche concern.
posted by animalrainbow at 7:15 AM on July 16, 2015 [6 favorites]


The argument that like, women totally have different styles than men and we're more collaborative and this makes diverse groups better because blah blah the power of ladystyle is ridiculous. It's certainly debatable whether Betsy Haibel is making that argument, and thankfully no one on either side seems to be dumb enough to make biologically essentialist arguments about race and diversity.

Oh come on. Gender socialization is a thing. (Yes, obviously not every member of every gender will be socialized the same way, to the same extent. Doesn't mean it's not a thing.)
posted by asterix at 7:42 AM on July 16, 2015


I think that mary8nne has pithily expressed the point of the article better than all you people arguing about programming languages.

Being paid to scratch your own personal itch is a privilege. Taking care of the weak and the confused is a chore. Once a language gets mature, developing it becomes more and more about taking care of the weak and confused. So the privileged - those who enjoy their privilege, anyway - will jump to scratching their own personal itch again, and leave the weak and confused behind.

It happens to be the case that it's mostly white men who get paid to scratch their own personal itches.
posted by clawsoon at 8:08 AM on July 16, 2015 [7 favorites]


If that was meant to be the point of the original article then the author did a great job of obscuring it under mountains of verbiage about how shitty the Rails community is, oh and lets quickly dump on Elm in passing, because hey? Why not?

Sadly this is not the first MVC article that appears to have been published solely because it hit all the right privilege buzzwords. Which is a huge shame, because I really, really want something like MVC to succeed and shake up the programming world a bit.
posted by pharm at 8:30 AM on July 16, 2015 [2 favorites]


Are there any examples of this? It's not like PG went from Lisp to some other language trumpeted by Y Combinator, or Larry Wall works on anything that's not called, "Perl".
Larry Wall got his start with some amazing classic Unix utilities. Did you know that the diff utility used to only be intended for human consumption? That was, until Larry Wall sat down and wrote patch to apply the changes they described. When he did that, people thought it was dark magic for a while. Without that, there would be no git today!

If anything, his generation was even more insular and reputation-cyclical than some of what we see today.
posted by rum-soaked space hobo at 8:40 AM on July 16, 2015 [2 favorites]


My experience as someone who primarily writes documentation, tests and other accessibility is that people will love you if you come into your community and want to do that stuff. Unfortunately the learning curve often deters people – it's tough to the be the pioneer in this for a new language. I mean I've never done it, but it's tough enough to be the documentation/testing pioneer for a new project. But I think there are now a ton of great tools out there that are helping making this more fun and accessible. I'm particularly a fan of Codewars. I frankly dabbled in Ruby a few years ago and there are a lot of initiatives like RailsGirls (which I did), but I found the tools for learning lacking and didn't stick with it the way I've stuck with Javascript, which I started learning at the same time.

But most people who do this kind of thing are embedded within organizations already where they are paid to do things like PHP, Perl, etc. If you want them working on your new/newish language, you are going to have to get some money to pay them.
posted by melissam at 9:29 AM on July 16, 2015


If that was meant to be the point of the original article then the author did a great job of obscuring it under mountains of verbiage about how shitty the Rails community is

Well? Is the Rails community shitty to some people more than others? Is it more shitty to people who aren't white male itch-scratchers? If it is, does that have anything to do with its privileged-bro birth?

The author claims that, yes it is, yes it is, and yes it does, which makes complaining about the Rails community a pretty good fit for the article's thesis.

You could argue that the author is wrong about the Rails community, or has an incorrect thesis, but it's a stretch to argue that the thesis and the complaint aren't connected.
posted by clawsoon at 9:30 AM on July 16, 2015


So I too thought this was a jumbled piece. The author's experience of the Rails community are fine, I think she loses a bit in trying to totally generalize things from there.

Is always hopping to the next big thing a sign of privilege? Sure I guess. I'm not sure if I understood what the point was beyond that.

On criticizing Elm, there are lots and lots of tools, especially in CS that are experimental and half-built. You could criticize Soyuz capsules for being inaccessible to people with physical disabilities. But that's because we haven't figured out how to do any better yet. Elm isn't done. Sure, the lack of accessibility represents a decision on the part of the designers, but not every tools has to solve every problem. It seems like an attempt to make a specific point without any consideration of any other issues.

This wasn't one of MVC's better essays IMO.

fuck, I sound like some hacker news douche, but whatever
posted by GuyZero at 9:59 AM on July 16, 2015 [2 favorites]


My big takeaway from reading all the links in this thread is Rob Ashton's "you have ruined javascript". I wish I'd written that.
posted by sidereal at 11:13 AM on July 16, 2015 [9 favorites]


Factories and ServiceProviders are inevitable outcomes for any large software systems. People want to swap components out dynamically without having to go in and perform open-heart surgery on the code and to do that you need... Factories and ServiceProviders.

Yes, they're fucking terrible. But it's a question of scale.

In large scale systems from a distance they seem pretty sensible.

Up close and for small systems, they're insane.
posted by GuyZero at 11:41 AM on July 16, 2015 [1 favorite]


Factories and ServiceProviders are inevitable outcomes for any large software systems. People want to swap components out dynamically without having to go in and perform open-heart surgery on the code and to do that you need... Factories and ServiceProviders.

I don't really have anything against design pattern OO stuff but that article definitely captured how I felt when I was all "let's do a little project to learn some new JS stuff I think I'm gonna try Angular."
posted by atoxyl at 12:09 PM on July 16, 2015 [4 favorites]


I know a lot of people who volunteer at animal shelter type things and only a handful who volunteer at homeless shelters. And both those groups are dwarfed by people who don't volunteer at either, which is why the conservative ideal of replacing actual funded social services with charity is nonsense. Likewise, if we're serious about the importance of accessibility, we shouldn't expect it to happen by appealing to the charity of programmers, but instead should fund it like other public goods.
posted by Pyry at 12:29 PM on July 16, 2015 [3 favorites]


From the JS article:

What the actual fuck is this? I read this as "in order to do a hello world, you must first create a hello world service to create the hello world factory to create the hello world sercice so you can print hello world on the screen."

Yeah, if I wanted to put up with shit like that I'd become a Java dev.
posted by Artw at 12:38 PM on July 16, 2015 [2 favorites]


Interesting article about the life cycle of Rails, not sure this all applies elsewhere though.

I believe most serious languages tend to be rather all consuming projects that eat rockstars, alex_skazat. I think she's talking about the wider language community though, like developers of libraries that gain popularity but remain outside the language core.

Go is not good, Itaxpica. Go is useful because extremely experienced old programmers built sound best practices into the language from the ground up. Yet, that wise curmudgeon attitude avoided doing anything really nice and makes it hard to interact with anything that's not Go.

Ya know, Brandon Eich himself said of Javascript that "the part that is good is not original, and the part that is original is not good," sidereal.

posted by jeffburdges at 12:43 PM on July 16, 2015


Factories and ServiceProviders are inevitable outcomes for any large software systems. People want to swap components out dynamically without having to go in and perform open-heart surgery on the code and to do that you need... Factories and ServiceProviders.

Yes, they're fucking terrible. But it's a question of scale.


1) The guy is talking about AngularJS, which is used for making front-end web apps. They can get big, but every time I've seen it used, the app just does not warrant something that busy.

2) I think that's what everyone tries to scare you into believing. Good unit tests will definite interfaces in a realistic, non-head-in-the-clouds kind of way. That, along with consistent, test-enforced, ways of providing context to functions (which is a large part of what object instantiation does – it says what a function can get at outside of its explicitly passed params) will allow you to quickly swap out modules in times of crisis safely.

What you really want is consistency and organization, and that is what Factories and ServiceProviders and huge hierarchies, et al, can get you. That's not the only way to get it. And yes, I have worked on products that didn't go through all that – In the Enterprise, even – and were just fine at massive scale, with only the normal amount of software product problems.

AngularJS does have try to bring worthwhile principles to the people, like loose coupling (via dependency injection) and separation of concerns. It just happens to make people do too much work to do it, especially when they want to go off the beaten path. And if you are writing non-trivial software, you will probably have to go off the beaten path. I am most certainly not the only one, especially in this time of microservices and anti-monolithism.

All that said, some people don't mind all that. They tend to be former Java developers that feel more comfortable with a lot of constraining structure. I'm not against them using that; but the idea that they need it because of scale or something like that is just not right.
posted by ignignokt at 1:04 PM on July 16, 2015 [3 favorites]


Likewise, if we're serious about the importance of accessibility, we shouldn't expect it to happen by appealing to the charity of programmers, but instead should fund it like other public goods.

The equivalent, in this context, is making it a basic requirement for GUI frameworks/languages like Elm, so the responsibility doesn't fall to individual programmers to reproduce the work.
posted by animalrainbow at 1:21 PM on July 16, 2015 [1 favorite]


I suspect most of the stuff make overcomplicated in the name of reuse is destined to be shitcanned when the next shiny thing comes along anyway, TBH.
posted by Artw at 1:22 PM on July 16, 2015 [3 favorites]


I keep hearing that DHH is douche / bro / dick in this thread, and it's something I've heard repeated before, but I've googled for examples and I'm coming up short. Does anyone have any pointers to specific instances of him behaving badly?
posted by theorique at 1:24 PM on July 16, 2015 [1 favorite]


Go is not good, Itaxpica.

This essay is not good.

This is like writing "A truck is not good" and then explaining how it's not a passenger car. Or like how saying that a half-built house is a bad house.

Go is also very clearly Not Done. It's like a couple years old. C++ didn't have fucking generics for ages. Java didn't have them for a very long time. Guess what - the designers aren't sure what the best way to do generics in go is yet, so they haven't built them yet.

And "A Good Solution: Operators are Functions"? I'm pretty sure that that's what's called "a deliberate design decision" based on the authors' experiences with C++ operator overloading. I mean it's right in the Go FAQ:
Why does Go not support overloading of methods and operators?

Method dispatch is simplified if it doesn't need to do type matching as well. Experience with other languages told us that having a variety of methods with the same name but different signatures was occasionally useful but that it could also be confusing and fragile in practice. Matching only by name and requiring consistency in the types was a major simplifying decision in Go's type system.

Regarding operator overloading, it seems more a convenience than an absolute requirement. Again, things are simpler without it.
Maybe a better analogy is an essay called "Mexican Food Is Not Good" that states that no one likes cilantro and wow, it sure is spicy.

There is more than one right way to structure a programming language.
posted by GuyZero at 1:37 PM on July 16, 2015 [1 favorite]


theorique: googling arrogant will probably get you more stories. There's not a strong case to be made for douche/bro in a pejorative way, though; mostly it's people adding "has strong opinions" to "rich blonde male" in their head and coming up with a stereotype based on people they knew in high school.
posted by michaelh at 1:47 PM on July 16, 2015


I keep hearing that DHH is douche / bro / dick in this thread, and it's something I've heard repeated before, but I've googled for examples and I'm coming up short. Does anyone have any pointers to specific instances of him behaving badly?

Here is the big one. A lengthy explanation of DHH being an arrogant tool in a context that is less politically loaded; another. DHH being culturally appropriative weeaboo, which is both douchey and somewhat ironic given that Matz is an actual Japanese dude (by all accounts a very nice, non-douchey one!) who in part created Ruby for reasons you could argue are anti-colonial. Peak DHH meta-douchery.

theorique: googling arrogant will probably get you more stories. There's not a strong case to be made for douche/bro in a pejorative way, though; mostly it's people adding "has strong opinions" to "rich blonde male" in their head and coming up with a stereotype based on people they knew in high school.

Yeah man, it's you guys who're the real douchebags!
posted by The Master and Margarita Mix at 2:15 PM on July 16, 2015 [4 favorites]


Also if he's blond goddamn is that a frightening amount of hair gel. I will certainly cop to immediately and irrevocably consigning anyone with a fauxhawk to the douchebin of history.
posted by The Master and Margarita Mix at 2:25 PM on July 16, 2015


"DHH being culturally appropriative weeaboo, which is both douchey and somewhat ironic given that Matz is an actual Japanese dude (by all accounts a very nice, non-douchey one!) who in part created Ruby for reasons you could argue are anti-colonial."

Eh, I'm getting weird vibes from calling using Japanese terms "cultural appropriation" and saying that Ruby was created for "anti-colonial" reasons. Japan, as far as I'm aware, was never a colony and was itself a colonizer and Matz is a mormon so I'm not sure how that could be called "anti-colonial".
posted by I-baLL at 2:46 PM on July 16, 2015 [2 favorites]


English is the dominant technical language of computing in general and the internet specifically for reasons owing to British colonial history, so yeah, if you're coming from a place where you're actively trying not to take that as a given, that's anti-colonial.

I'll try and fish up the interviews where I read about it, but multiple language support was a priority for Matz when he designed Ruby in part because as a Japanese dude he'd experienced some frustrations around how English/ASCII-centric most programming languages are. This isn't the one I'm thinking of, but it's good and you can see that it's an issue he's spent quite a lot of time thinking about in a way that most Americans and even Europeans would probably never bothered with outside of an explicit scenario where they were confronted with a need to do so. If nothing else, his approach to language design is definitely humanist and populist in a way that's fairly seldom considered in the tech mainstream.

It's honestly a shame how much publicity the Rails jackasses get, because Matz is really smart and cool and thoughtful, and even though I've barely played around with Ruby and never would have at all outside of Rails becoming a thing, everything he's ever written that I've read has been really interesting and often illuminating, where I could probably write 99% of the edgy DHH slides with fuck in them myself and there's nothing novel about his schtick or the schtick of the other brogrammers or even the schtick of their stylistic predecessors ala jwz.
posted by The Master and Margarita Mix at 3:06 PM on July 16, 2015 [2 favorites]


"English is the dominant technical language of computing in general and the internet specifically for reasons owing to British colonial history, so yeah, if you're coming from a place where you're actively trying not to take that as a given, that's anti-colonial."

Uhm, isn't it because most of the internet was created in the US? Like the protocols, the network itself (as ARPANET), and the Web?
posted by I-baLL at 3:32 PM on July 16, 2015


Also if he's blond goddamn is that a frightening amount of hair gel. I will certainly cop to immediately and irrevocably consigning anyone with a fauxhawk to the douchebin of history.

Yeah, he does seem to use a lot. Here's a photo that shows a more natural color: http://whoandwhom.com/wp-content/uploads/2013/02/David-Heinemeier-Hansson-profile-2.jpg I think you are reading too much into his looks, though.

Agree Matz > DHH. In general, I think it's fair to say that language creators are more thoughtful than people who make things using those languages. Matz is certainly more my style, though I think 37signals did a great job publicizing the viability of having paying customers instead of trying to win the venture-capital lottery (this has been great for people who don't fit in with that scene.) I think most Rails developers who get beyond "Ruby isn't Rails" (50% of them?) admire both him and DHH and for different reasons.
posted by michaelh at 3:34 PM on July 16, 2015


Uhm, isn't it because most of the internet was created in the US? Like the protocols, the network itself (as ARPANET), and the Web?

Yes. But trying to make development environments work for non-English speaker is a worthwhile goal. I'm not sure where the "anti-colonial" language comes from, but built-in basic unicode support and actual technical documentation in a non-English language are both good things.
posted by GuyZero at 3:45 PM on July 16, 2015 [1 favorite]


Slightly related: This conversation made me wonder if there are any non-English programming languages. Found this Wikipedia list:

https://en.wikipedia.org/wiki/Non-English-based_programming_languages
posted by I-baLL at 4:04 PM on July 16, 2015 [1 favorite]


This is the most interesting and informative FPP/thread I've read in a while.

I'm SE/UE/UX on a project now that is using Angular/Bootstrap/Mongo and all kinds of configuration management things like...well I forget what it's called (Monkey or something, but it manages the config files for All The Things, which is a good idea on large projects) and the other day I said, "Hey, our web app we're building doesn't have a [title] or a favicon, can we stick those in there to help people bookmark it, I made an .ico file, here ya go just put it in the web root" and they were like "whoah, no", that would entail a reorganization of the Angular MVC structure and would take a while, maybe next sprint - I was like, just put this .ico in the root and put javascript:document.title="ossum app" in there somewhere it will literally take you five minutes and they were all totally like, appalled, like OMG you dinosaur and lectured me on Patterns and it wasn't a good meeting.

(Prebuttal: good projects define web app titles and favicons on Day One, I know - I inherited this one)

I'm really interested in Go, simply because people who are very good at what they do say it's the cat's pajamas. Maybe it's another flash in the pan; guess there's one way to find out. *cracks knuckles*
posted by sidereal at 5:33 PM on July 16, 2015 [5 favorites]


Not to pile on to Ruby devs but my god do they love piling that kind of crap onto projects. Whose the guy on the team that stuck you with stupid CoffeeScript? 9 times out of 10 it's a Ruby dev. Dumb and incomprehensible HTML preprocessor that doesn't look anything like HTML? Same. The task runner that does the build gets changed to some new and incomprehensible thing each week? Guess who!
posted by Artw at 5:44 PM on July 16, 2015 [5 favorites]


(I may be biased here by some projects that Did Not Go Well.)
posted by Artw at 5:45 PM on July 16, 2015


Whose the guy on the team that stuck you with stupid CoffeeScript?

No worries! Just use my new transpiler, Borneo, that converts vanilla Javascript into CoffeeScript.
posted by bitterpants at 5:54 PM on July 16, 2015 [5 favorites]


Ugh.
posted by Artw at 5:57 PM on July 16, 2015


"Hey, our web app we're building doesn't have a [title] or a favicon, can we stick those in there to help people bookmark it, I made an .ico file, here ya go just put it in the web root" and they were like "whoah, no", that would entail a reorganization of the Angular MVC structure and would take a while

And right there I just started sputtering out the laughs, OL!

Patterns can be handy, just like all of the things we've talked about here (except for racism and sexism and bandwagon jumping), but you know, they're just names for things. Some of those things are not always good or applicable.

Like Alan Kay said:
"Extracting patterns from today's programming practices ennobles them in a way they don't deserve," he maintains. "It actually gives them more cachet."
posted by ignignokt at 6:00 PM on July 16, 2015 [7 favorites]


Sure, you can say that, but then they'll use dark magic to declare you an anti-pattern and you'll be banished to the netherworld.
posted by Artw at 6:05 PM on July 16, 2015 [3 favorites]


I'm not sure where the "anti-colonial" language comes from, but built-in basic unicode support and actual technical documentation in a non-English language are both good things.

"Post-colonial theory" as applied to things that were/are not literally colonized territories uses colonialism as a metaphor for cultural hegemony as far as I understand. That there is in fact an Anglo cultural-linguistic hegemony in CS - which is not unrelated to the actual history of colonization besides - doesn't really need to be explained. Applying the concept of cultural appropriation to an analogy between Japanese food and a software package seems like more than a bit of a reach however.

Anyway to focus on the whether DHH and Rails are uniquely or remarkably bad seems beside the point, which as far as I can tell is that the endless chase of the perfect language and framework leaves people by the wayside and distracts from non-technical structural problems. One thing that does strike me about this thesis is that the intensity of this chase is fairly particular to web development, but hey I'm a web developer too and she's not wrong.

On criticizing Elm, there are lots and lots of tools, especially in CS that are experimental and half-built. You could criticize Soyuz capsules for being inaccessible to people with physical disabilities. But that's because we haven't figured out how to do any better yet. Elm isn't done. Sure, the lack of accessibility represents a decision on the part of the designers, but not every tools has to solve every problem. It seems like an attempt to make a specific point without any consideration of any other issues.

It seems unfair to blame a project like Elm's "failure to ally" on it's creators' "contempt" for certain users. Any language, any tool, cannot be all things to all people for all ends. Most languages end up being good for certain things and not others. That's not a people problem, but just a consequence of necessary trade-offs.

She said "accidental contempt" and that's the whole thing - of course a new language like Elm can't be expected to work for everything and everybody. But do you hear of a lot of new languages and frameworks coming out that are focused on accessibility?
posted by atoxyl at 6:19 PM on July 16, 2015 [1 favorite]


I don't mind CoffeeScript itself, but it introduces a pre-processing step into projects that annoys me. My struggles with build tools like grunt and related processes are unrewarding - unlike other areas of web development, it doesn't feel like I'm improving with practice here.

HTML preprocessors like Jade seem pointless; on the other hand, SASS looks way better than CSS to my eyes. It's kind of a shame like I can't proclaim undying hatred of all things preprocessed because of that one thing I do like.

Rails seemed so very cool and sensible when I first learned it. Working with it has been another story. All those folders introduced by gems turn even a medium-small project into a maze. While the principles behind DRY and small, reusable methods that Do One Thing make sense, Rails devs seem to take it further than most. I often find myself losing track as I follow from method to method, module to module... deep down the rabbit hole.

Angular had a steeper learning curve, but It Got Better for me after the initial pains. Two pluses:
1. Ionic is based on Angular - it tickles me that I can make a mobile app without doing the time to learn mobile development
2. A cursory look at React and its ways with HTML taught me that things could always be worse and being less minus than some truly minus thing should count as a plus

/noob confession
posted by fatehunter at 7:13 PM on July 16, 2015


These days, when I look at job openings, I read "need expert in {framework}", and I see "please dig us out of this {framework} nightmare we created"
posted by sidereal at 8:11 PM on July 16, 2015 [8 favorites]


But do you hear of a lot of new languages and frameworks coming out that are focused on accessibility?

IMO accessibility (I find that the acronym "a11y" looks like "ally" a bit ironic in the context of the OP) is more of a systems or product issue than a tool issue.

Issues like proper i18n/unicode support are definitely tool issues but things like screen readers are really systems issues that are above the level of a app framework.

In video things like captioning have to be embedded in a bunch of places along the whole chain from producer to consumer - captioning tools, caption formats, either embedded or sidecars, caption parsers, on-screen caption renderers that are synced with playback. There have to be a bunch of pieces in place. Overall I think accessibility is an issue for systems thinking which is beyond the scope of any one tool like Elm.
posted by GuyZero at 8:32 PM on July 16, 2015 [2 favorites]


Slightly related: This conversation made me wonder if there are any non-English programming languages.

My personal favorite, especially cause of the mosaic art angle, is Qalb

I'm really interested in Go, simply because people who are very good at what they do say it's the cat's pajamas.

I didn't really get Go until I had a chance to work on a project with someone who knew the language inside out and backwards reviewing my code, and once I started getting myself to think the way the language wanted me to it really clicked. Go kind of forces you to think and work a certain way to get the most out of it, but if you approach it the right way, hoo boy.
posted by Itaxpica at 9:54 PM on July 16, 2015 [1 favorite]


Re: dhh links -- thanks guys!
posted by theorique at 6:42 AM on July 17, 2015


I'm not sure I buy that the usage of an appropriate Japanese word like "omakase" is "culturally appropriative" - it just seems to be a nice foreign word for which there is no exact English alternative.

The other stuff seems to click though - he's got a bunch of opinions that rub people in the industry the wrong way, and his opinions are influential because he led a very popular and influential project.
posted by theorique at 6:55 AM on July 17, 2015 [1 favorite]


Japan, as far as I'm aware, was never a colony and was itself a colonizer and Matz is a mormon so I'm not sure how that could be called "anti-colonial".

Japan was ruled by an American military governor for seven years after WWII, continues to host American military bases, and operates under a constitution written by Americans. It may not be a colony the way that Australia was, but it's definitely part of an empire.
posted by clawsoon at 7:50 AM on July 17, 2015


Okay, I just read all the way through the comments here and I'm kind of surprised by the general reaction to this article (which I read before hitting this FPP).

I read a blog post maybe 10 years ago where a woman in charge of a development team wrote about a Tiresome Thing she kept running into: That Guy Who Proposes Writing A Project In LISP.

I wish I could find this, but my searching fails me. Her analysis was that LISP was fine except that no one else in the team knew it well enough to be effective. She saw it as a way for That Guy to say "Well, I don't know about you folks but I went to MIT!" She proposed some coping strategies for people like this (something something prototype now try to teach someone your code huh weird could never have predicted that lol), but mostly it was an analysis of a phenomenon.
posted by rum-soaked space hobo at 12:48 AM on July 20, 2015 [1 favorite]


Also, regarding "omakase": given the Japanese origin of Ruby itself, I'm willing to be convinced that that term was shared rather than appropriated.
posted by rum-soaked space hobo at 12:49 AM on July 20, 2015


Smug LISP weenie[s]
posted by snuffleupagus at 5:47 AM on July 20, 2015 [2 favorites]




Go rocks if you need to write up a little server, microservice, etc. that runs inside a big corporate infrastructure designed around Go, sidereal. There is considerable wisdom from old dudes who did that their whole lives baked into the language.

Go is a disaster if you need to : Write a user facing application. Interact with code not written in Go. Wish to interact with unusual versions of libraries. Need much abstraction. Need to run on platforms that dislike Go. etc. Again, there is this old guy telling you not to do X, as X is normally a mistake, but actually X does happen to be the right way to accomplish whatever you're trying to do.

It's not merely that Go is not a system programming language. Go is less of a general purpose language than Python or even Haskell. There are however many programmers who spend their days fighting with exactly the problems that Go makes easy, especially in the corporate world.

In particular, Go lacks much abstraction/polymorphism partially because many programmers suck at this. And get sucked into making stupid cathedrals of abstraction. As an example, I recently noticed a Rust library that created a trait for one struct. Why on earth would someone do that? It makes your code hard to read for no reason. I suppose this guy wanted his code to look object-oriented, but that's not what traits are for.
posted by jeffburdges at 6:00 AM on July 21, 2015 [3 favorites]


This thread has led me to a number of interesting places, including the MIT Lightweight Languages 2002 conference page (linked to in some of the back and forth found on the C2 wiki.) Unfortunately, the video links are broken. Does anyone know if these are available elsewhere? (Or know someone with a connection to the MIT AI Lab who might be able to have the links fixed? Messages to the email address shown on the page are undeliverable. )
posted by snuffleupagus at 5:57 PM on July 21, 2015


« Older Like Chicago in the 1930s   |   Yes, but are they artisanal dildos? Newer »


This thread has been archived and is closed to new comments