Live data from Hacker News

The eigenvector of “Why we moved from language X to language Y”

erikbern.com

121–130 of 193 posts

Re: The eigenvector of “Why we moved from language X to language Y”

#121

The research methodology in this blog post is fundamentally flawed. The author only counts how many people move from X to Y, but he doesn't count how many of them do not move at all. The whole diagonal of his (sample) transition matrix are actually missing values, but he treats them as zeroes. This greatly distorts the equilibrium distribution. As a result, he misinterprets each equilibrium probability as the "future…

> but he doesn't count how many of them do not move at all. The whole diagonal of his (sample) transition matrix are actually missing values, but he treats them as zeroes

Great point. It's interesting to think about how exactly this could bias the results -- would it bias it in favor of languages that developers tend to initially not choose for their project?

I do see that as very consistent with C, C++, and Java being up there. For new projects, developers love to choose anything but those, but then they find themselves gravitating towards them when the project gets bigger and practical concerns intrude

Re: The eigenvector of “Why we moved from language X to language Y”

#123

Am I reading this incorrectly, or there is more movement from Swift to Objective-C than the other way around? Do I sense a methodological error?

Absolutely an error there. If you try to search the literal string "move from swift to Objective-c", Google rejects the precision given there are so few results, and searches only for the words independently. The bulk of results in that case are actually about moving from Objective-C to Swift.

If you search "move from Objective-c to Swift", there are actually enough results that it honors the literal string, yielding far fewer results.

Definitely a major methodology error for pairs with a large asymmetry.

Nonetheless I found the post humorous, and I don't think it was held with the conviction some of the top posts seem to think.

Re: The eigenvector of “Why we moved from language X to language Y”

#124
post #113
post #59

Earlier quoted context omitted.

Then why do we see a major internet security bug that would be simply impossible in any other language every couple of months?

Not saying that C is not to blame, but there seems to be relatively little code written in languages other than C that is as widely used. C++ comes to mind for writing browser engines, but those have their fair share (if not more) of security issues as well.

My sense is that most new line-of-business code these days is written in Java or C#. Which are still dated languages with serious flaws (e.g. goto fail would still be possible) but do at least address C's memory safety issues.

I don't know why so much Internet infrastructure managed to miss that shift. Possibly a case of "ain't broke, don't fix it" - Apache, OpenSSL and what have you haven't changed that much since the early '00s and few people are motivated to write a replacement. Databases mostly existed since then, and newer datastores do tend to use better languages.

Re: The eigenvector of “Why we moved from language X to language Y”

#125

The research methodology in this blog post is fundamentally flawed. The author only counts how many people move from X to Y, but he doesn't count how many of them do not move at all. The whole diagonal of his (sample) transition matrix are actually missing values, but he treats them as zeroes. This greatly distorts the equilibrium distribution. As a result, he misinterprets each equilibrium probability as the "future…

Author here. You are absolutely right. As I mentioned in the notes, I think this matters a bit less than it might seem like (the stationary distribution does not change if you add a diagonal matrix) but clearly some languages will have a higher propensity for people to stay.

I think this flaw is even smaller than the issue of using Google statistics to infer transition probabilities. It's just a shitty proxy, at best.

At the end of the day, there's a lot of assumptions going into this analysis. I hope I didn't make it seem more serious than I meant it to be – it's really just a fun project and kind of a joke not to meant taken seriously.

That being said, I think the conclusions are at least "directionally" correct. They might be off by a factor of 2x or 5x or even 10x, but the stationary distribution exhibits an even bigger spread (multiple orders of magnitude) so I suspect the final ranking is still "roughly" correct (with a very liberal definition of "rough")

Re: The eigenvector of “Why we moved from language X to language Y”

#126
post #75

I love golang, but I hate trying to search HN articles for the word go... I need a find go but not ago search button in FireFox ;) grep go | grep -v ago

Ctrl-F has a 'Whole Words' option that should do what you want.

Edit: Oops, missed the same reply from xudongz

Re: The eigenvector of “Why we moved from language X to language Y”

#127
I wish more people would read 'Hack and HHVM', written by Owen Yamauchi, formerly a member of Facebook’s core Hack and HHVM teams.

http://shop.oreilly.com/product/0636920037194.do

The hidden lesson for me was that rewriting the code in is not the only option. Another option is to slowly improve the language/runtime itself until you've essentially switched it out underneath the application, which is what happened at Facebook. Meanwhile keep refactoring the code to take advantage. (Granted, this is isn't an option for a small company.)

I work at Facebook and sometimes write www code. When I was interviewing and thought about writing PHP code, I didn't get a warm and cozy feeling, being reminded of terrible PHP code I've seen (and written myself) in the 2000s as a "webdev". Thanks in part to the advances described in the book, the codebase is definitely not like that; it's easily the best large scale codebase I've ever seen (I've seen 3-4).

My thoughts in blog form (written 3 months after I joined):

http://bytepawn.com/hack-hhvm-second-system-effect.html

Re: The eigenvector of “Why we moved from language X to language Y”

#128
post #117
post #93

Earlier quoted context omitted.

> when it at best only represents the future popularity of a language among those who constantly switch their languages. This is literally in the title >The eigenvector of "Why we moved from language X to language Y"

The parent's point is that it is a very poor proxy for future language popularity.

I took this whole post as very tongue-in-cheek. No one should really be using this to predict the future. Instead, it was a fun data-analysis exercise.

Re: The eigenvector of “Why we moved from language X to language Y”

#129

Am I reading this incorrectly, or there is more movement from Swift to Objective-C than the other way around? Do I sense a methodological error?

Author here. Yes you are reading this incorrectly. Look at the contingency table.

objective c to swift: 5216 swift to objective c: 1639

(sorry about the small font size though. had to squint really hard)

Re: The eigenvector of “Why we moved from language X to language Y”

#130
post #95

Earlier quoted context omitted.

Because the vast amount of C code running the internet. That's all. Rewrite everything in and you'd see just as many security vulnerabilities.

I very much doubt that. Buffer overflows simply wouldn't happen in most languages, and those are the majority of the vulnerabilities we see.

XSS (cross-site scripting) replaced buffer overflows as the most common vulnerability in 2005.

source: http://maxedv.com/wp-content/uploads/2011/12/Sourcefire-25-Y...

Post reply on HN