Hacker News new | past | comments | ask | show | jobs | submit login

Tim Sort, Hamming Codes, Huffman Coding, RSA keys, LZW encoding, Duff's Device, Bloom Filter, Carmack's Reverse, awk, linux, git. We have a lot of things named after those that discovered, invented or popularized a structure or technique. Certainly nowhere near as commonly as does mathematics, I will agree.

In CS, no doubt, we often end up on the other end, where a single term means different things in different contexts and beginners may get confused at our reuse of terminology. Often the reuse gives some metaphorical understanding to the newcomer, even if it largely leads them astray in the details.




Bloom filters prove OP’s point though. The first few times I heard the term, I wondered how a Photoshop filter to blur things could possibly apply to the problem. Maybe if it was called an exclusion filter it would be less jargony, I don’t know; naming things is hard.


At least having a word like "filter" in it narrows down the choices even if it doesn't make it unique. If instead it was "Bloom's construction" or "Bloom's algorithm", or "Tim's procedure", we'll be at a total loss to even guess what it was about, which is what happens with a lot of math starting from "Pythagorus theorem", anyone instantly recall "Apollonius' theorem", "Ackerman function", "Euler's function"?. If "Fermat's last theorem" or "Goldbach conjectures" weren't crazy famous I wouldn't have a clue.. The request to at least give us a "Fourier transform", if not "frequency spectrum" is not unreasonable.

I've lamented this for a long time, but on the other side, I doubt if mathematicians would ever get sufficient recognition if their names weren't immortalized thus, since they can't get patents on their works. They totally deserve recognition. Would you even remember Leonard Euler if his work was named factually? Most of us I guess have no idea who came up with sin/cos/exp/log etc. I'm glad for the names of these functions, but lament the loss of knowledge about the one (or many) who discovered them.

Longer names are a candidate .. along the lines of "Einstein's theory of general relativity". "Euler's relative prime counting function" .. but they too will likely, depending on familiarity, collapse over time.


Do they get recognition? I’m an atmospheric scientist, and though I’ve used the equations many, many times, I have no idea who Navier-Stokes was. Or maybe they were two people? Whatever. Presumably they invented the equations and were scientists or mathematicians or something. If real recognition only comes from inside the field, everyone else has pedagogically unuseful name to deal with.


But could you propose a better name for the math terms you mentioned? Fermat last theorem for example is famous because of its history and not significance and I don't think any other name would be better. Pythagorus theorem - how to call it with a short and significant name? The only option I can think of is "a squared plus b squared equals c squared" which is hardly a good name :)


The alternative "Euclidean distance" is already half way there and is better since we at least know it's about "distance". At this point, offering any alternative will feel alien and unfamiliar, but "Linear distance" works for me if I feel the need to push Euclid out as well.

edit: If I want to talk about distance in a curved space, we already have a well named "Geodesic distance".


That sounds like a different theorem. While it conincides with sums of squares of distances for the Euclidean setting, for the case of a sphere or other manifold it is decidedly about triangles, not so much distances.


I was telling a friend about Bloom filters and he'd never looked into them, because he'd assumed from the name that they were some kind of screen space shader.


For a long time I thought the algorithm or data structure used by it had some sort of metaphorical relationship to a flower blooming.


He wasn't assuming - there are Bloom shaders[1] are an item in Computer Graphics, but at least the name has intrinsic logic ("light bloom")

1. https://en.wikipedia.org/wiki/Bloom_(shader_effect)


>Bloom filters prove OP’s point though.

That depends on your native language, though. For Non-English speakers sounds no different than 'Shell sort'.


I'm a non-native English speaker, and I struggle to remember that Bloom filters are named after a person. I have at times, when coming across the term, ended up wondering how they're supposed to relate to whatever "bloom" the name refers to.

I don't think it really "proves the point", though, except for the point that sometimes names are confusing. So maybe it would be nicer if someone had happened to consider whether a specific naming might be confusing, but that's not the same as "names that aren't directly descriptive are automatically bad".


And conversely why are photoshop filters even called filters!



The point being made is that photoshop manipulates matrices and filters are circles made of translucent material you put on your camera; and in fact many of those photographic filters don't primarily filter light but rather distorts it in some desired fashion. "Transformations" would be much more accurate.


In signal processing, those transformations have always been named filters. It goes way back to the early 1900s


I always presumed it came from signal processing[1].

[1]: https://en.wikipedia.org/wiki/Filter_(signal_processing)


Exclusion Set


Page rank. I thought git was named by Linus, and to the extent that it is named after him, it was self awareness of his reputation?

I remember when Duff's Device was a neat trick; does anyone still use it these days?

Edit: a neat trick, not a bear trick.


Page rank is a funny one, it's named after one of its creators, but also describes what the algorithm does. Kinda like Baker's chocolate (named after Walter Baker, but is popular for baking). I wonder if there are other examples.



Page rank is probably one of the more clever names out there. I didn't realize at first it was named after the founder, as it's a good description to how it works.


I can't believe I just realized it's named after Larry Page.


    rank (adj):
      1. (of vegetation) growing too thickly and coarsely.
      2. having a foul or offensive smell. very unpleasant.
      3. (especially of something bad or deficient) complete 
         and utter (used for emphasis).


I was today years old when I found out. I assumed it just did what it said on the tin: rank (web) pages.


I always saw it as nominative determinism.


>I thought git was named by Linus

Yes, I included that one as a joke. "git" is a British slang term. Linus once quipped that he names all his projects after himself.



Speaking of Linus, did you know the embarrassingly invalid "Linus's Law" was actually made up by Eric S Raymond, and he just blamed it on Linus?

https://en.wikipedia.org/wiki/Linus%27s_law

>In software development, Linus's law is the assertion that "given enough eyeballs, all bugs are shallow".

>The law was formulated by Eric S. Raymond in his essay and book The Cathedral and the Bazaar (1999), and was named in honor of Linus Torvalds. [...]

>Validity

>In Facts and Fallacies about Software Engineering, Robert Glass refers to the law as a "mantra" of the open source movement, but calls it a fallacy due to the lack of supporting evidence and because research has indicated that the rate at which additional bugs are uncovered does not scale linearly with the number of reviewers; rather, there is a small maximum number of useful reviewers, between two and four, and additional reviewers above this number uncover bugs at a much lower rate.[4] While closed-source practitioners also promote stringent, independent code analysis during a software project's development, they focus on in-depth review by a few and not primarily the number of "eyeballs".[5]

>The persistence of the Heartbleed security bug in a critical piece of code for two years has been considered as a refutation of Raymond's dictum.[6][7][8][9] Larry Seltzer suspects that the availability of source code may cause some developers and researchers to perform less extensive tests than they would with closed source software, making it easier for bugs to remain.[9] In 2015, the Linux Foundation's executive director Jim Zemlin argued that the complexity of modern software has increased to such levels that specific resource allocation is desirable to improve its security. Regarding some of 2014's largest global open source software vulnerabilities, he says, "In these cases, the eyeballs weren't really looking".[8] Large scale experiments or peer-reviewed surveys to test how well the mantra holds in practice have not been performed.

>Empirical support to the validity of Linus’s law [10] was obtained by comparing popular and unpopular projects of the same organisation. Organizations like Google and Facebook are known for their quality standards. Popular projects are projects with in the top 5% number of stars (7,481 stars or more). The bug identification was measured using the corrective commit probability, ratio of commits detected to fixing bug. The analysis showed that the popular projects had more bug fixing ratio (e.g., Google’s popular projects had 27% higher bug fix rate than Google’s less popular projects). Since it is unlikely that Google lowered its quality standard in it most popular projects, this is an indication of increased bug detection efficiency in popular projects.


> Organizations like Google and Facebook are known for their quality standards.

Citation needed, especially for Facebook. The parts I saw are full of vile hacks, committed by an endless stream of new clueless devs --- young developers are of course better by the dictum of Mark Zuckerberg. I'm curious how his code looks or if he ever wrote anything substantial.


A few other favorites: Knuth shuffle, Levinshtein distance, Dijkstra's algorithm, Kruskal's algorithm, Kosajaru-Sharir algorithm, Bellman-Ford algorithm, Knuth-Morris-Pratt algorithm, Boyer-Moore algorithm, Rabin-Karp algorithm, Turing machines...


> Levinshtein distance

Common enough (though there's a diversity of pronunciation and spelling of the name), though for any practical purpose probably "edit distance" works better. (And Hamming distance would probably be better called XOR distance or something.)

Funny coincidence, there was a comment on HN the other day when someone called Euclidean distance "bird distance", and everyone agreed it was a great coinage. I think "Manhattan distance" is similarly evocative, and no less precise than any alternative.


Very notably things like the Shannon-Hartley Theorem.

Gaussian noise.

The list in physics could go on for quite a long time. Terms like "gaussian noise" are used as short versions to describe something that would need an entire paragraph if described in a verbose way, as if the reader did not understand the fundamentals of the concept.


Calling “gaussian noise” “normal noise”, like the associated distribution, would not lose any precision


It would be harder to search for, and to a lay person it still doesn’t explain what it is. Even worse, given the ambiguity of the word ‘normal’ it could easily cause misapprehensions. Ask the person on the street what normal noise is and they’re probably going to answer in decibels.

At least Gaussian noise is easily googled.


I'd consider 'normal noise' to be 'white noise'


The value in the understanding of the term is not in how searchable it is.


What does gaussian noise have to do with a vector that points orthogonal to a surface? (Not entirely rhetorical; it'd be interesting if there was a relation there.)


I thought orthogonal surface vectors were named after Abby Normal.

https://www.youtube.com/watch?v=C9Pw0xX4DXI


To some extent that reflects that in programming we encounter a mixture of naming origins between computer science (where naming follows an academic tradition that shares its heritage with Mathematics) and software engineering (where naming follows a tradition closer to that of other engineering tooling, where naming is more like branding - think 'Duck tape' or 'Allen wrench').

Often the closest thing we do to the whole 'Thurston maps are Thurston-equivalent to polynomials, unless they have Thurston obstructions' thing is that we qualify our statements about programming entities by the programming language or platform to which the statement applies. So you might reasonably have a statement like 'A JSON value consists of an array of JSON values, a map of string keys to JSON values, or a primitive value', which sounds just as self-referential as the Thurston example, but because it's called a JSON value, not a Crockford value, it sounds less conceited.


Isn't Allen the inventor's name?


It is a brand name.


Sure. So is Ford.

But back in 1909, it was also the name of the guy who signed the patent. Whose company name was his surname.


>"where naming is more like branding"

I meant it followed the branding pattern, so it happened the brand was derived from the name.


I guess there's no commerce in mathematical theorems. But the use of his name as a generic (not just for products sold by the company which bought the trademark) seems similar in that it's a community decision -- we could have all decided to say "hex wrench" instead.


I like the idea that git is named after the guy who discovered it.


Git wasn’t invented, it was discovered.


The absolute worst is some thing I can't remember the real name of right now - I thought it was generic programming but it doesn't seem to be it. It doesn't connotate the meaning in the slightest, and even connotated something other than what it was. It was just storing a matrix or array of past return values of a function to reuse. It feels like I'm having a Mandella moment.


Are you thinking of dynamic programming? It's the most poorly named thing in CS, in my opinion. The name tells you absolutely nothing about what it is, and IIRC the name "dynamic" was chosen because it's difficult to use as a pejorative.


Memoization? Or dynamic programming? The latter is a funny story:

> ... Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object to. So I used it as an umbrella for my activities.

http://www.eng.tau.ac.il/~ami/cd/or50/1526-5463-2002-50-01-0...


Dynamic programming is it. Thought I'd gone crazy for a minute.


You probably mean dynamic programming. I agree the name is awful.


These are good examples but would all be better and more accessible with descriptive names. I doubt anyone would allow a pull request in which a developer named the variables after team-members, so why do we condone it when it comes to R&D?

Just because it's a common practice does not mean it's good.


or acronyms.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: