此主題已被鎖定
Roxor128 2013 年 6 月 2 日 上午 12:30
Dump the "ignore The" rule from the library list sorting.
Why the hell did you make the list sorting ignore the word "the"? It makes it really hard to find what you're looking for. "The Walking Dead" should be under T, not W. "The Stanley Parable" should be showing up under T, not S.

I hate this. It's so counterintuitve. I don't have this problem when browsing my hard drive in Windows Explorer, and I sure as hell shouldn't have it when browsing my Steam library.
< >
目前顯示第 1-15 則留言,共 39
aiusepsi 2013 年 6 月 2 日 上午 3:13 
Ignoring leading definite and indefinite articles in titles for the purposes of sorting is standard practice. Doing it any other way would be incorrect.
Roxor128 2013 年 6 月 2 日 上午 4:02 
The word "the" is an integral part of the title. If it wasn't, it wouldn't have been used in the first place. It's no different from dropping the first word from "Half Life 2" and filing it under L.

It makes no sense.
Dreakon13 2013 年 6 月 2 日 上午 6:32 
引用自 Roxor128
The word "the" is an integral part of the title. If it wasn't, it wouldn't have been used in the first place. It's no different from dropping the first word from "Half Life 2" and filing it under L.

It makes no sense.
I can't speak for how things should work in regard to any kind of standard sorting practice, but it's not quite the same. You still know what The Walking Dead is without "The". Removing the "Half" from Half Life 2 would leave you with "Life 2"... which is considerably more confusing.
aiusepsi 2013 年 6 月 2 日 上午 7:48 
See: http://en.wikipedia.org/wiki/English_articles#Effect_on_alphabetical_order or http://en.wikipedia.org/wiki/Alphabetical_order#The_and_other_common_words

Like I said, it's standard alphabetical ordering practice. If the Walking Dead and the Stanley Parable were indexed at your local library, they'd be indexed as "Walking Dead, The" and "Stanley Parable, The". If you went to your local record store, that's how artists would be organised, and so on.
Roxor128 2013 年 6 月 2 日 下午 6:46 
引用自 Dreakon
引用自 Roxor128
The word "the" is an integral part of the title. If it wasn't, it wouldn't have been used in the first place. It's no different from dropping the first word from "Half Life 2" and filing it under L.

It makes no sense.
I can't speak for how things should work in regard to any kind of standard sorting practice, but it's not quite the same. You still know what The Walking Dead is without "The". Removing the "Half" from Half Life 2 would leave you with "Life 2"... which is considerably more confusing.
It's exactly the same thing, and equally confusing.

When you're reading a list and looking for something you go through the string you're searching, compare character-by-character with the entries on the list you're reading and move onto the next entry as soon as one character fails to match, progressively narrowing it down at each step.

To find "Half Life 2", you start by looking for a string starting with "H", then "Ha", then "Hal", then "Half", then "Half ", then "Half L" and so on.

To find "The Stanley Parable" you start by looking for "T", then "Th", then "The", then "The ", then "The S", then "The St" and so on.

It's the same process, and ignoring the word "the" when sorting the list screws it up because you can't start your search in the strings that begin with T. You might as well not sort the list at all.

引用自 aiusepsi
See: http://en.wikipedia.org/wiki/English_articles#Effect_on_alphabetical_order or http://en.wikipedia.org/wiki/Alphabetical_order#The_and_other_common_words

Like I said, it's standard alphabetical ordering practice. If the Walking Dead and the Stanley Parable were indexed at your local library, they'd be indexed as "Walking Dead, The" and "Stanley Parable, The". If you went to your local record store, that's how artists would be organised, and so on.

Then why not name the games in the list like that?

The least Valve could do is give us a choice of sorting method. ASCII, directory names, "Ignored 'The'", or "Name Comma The".
aiusepsi 2013 年 6 月 3 日 上午 8:08 
I probably should have said that the article at the end is more typical of indexes made out of actual paper cards in boxes; like something you'd get at an actual library.

No matter the way it's displayed, it's still correct to sort it disregarding articles. Note that it's absolutely NOT the same thing as arbitrary truncation of words. It's specifically applied to just the definite and indefinite articles, and it's perfectly consistent. Also, used by everyone everywhere. Example time!

Books: http://www.cliffsnotes.com/literature?filter=A&sort=TITLE&sortDirection=ASC
Bands: http://simple.wikipedia.org/wiki/Category:English_rock_bands
Video games: http://en.wikipedia.org/wiki/Category:Atari_games

etc.

As a sidebar: note that a similar principle applies when capitalising titles. For instance, it's "The Taming of the Shrew" not "The Taming Of The Shrew".

It's also not uncommon for other lists to be sorted in an order which is different from strictly lexicographical. Lists of personal names, for instance, are usually sorted by family name then given name, even if they're displayed as given name family name.

The only reason not to sort in an order where the definite and indefinite articles are excluded is when the things being sorted are just arbitrary strings (like file names) or whoever programmed it was too careless to do it properly. Or both.
Roxor128 2013 年 6 月 3 日 下午 8:38 
引用自 aiusepsi
No matter the way it's displayed, it's still correct to sort it disregarding articles. Note that it's absolutely NOT the same thing as arbitrary truncation of words. It's specifically applied to just the definite and indefinite articles, and it's perfectly consistent.

Applying it to certain words and not others is not consistent, and making such exceptions needs thorny if() statements to do it. I'd write one, but I'm a bit rusty on my C string-handling functions.

It's also not uncommon for other lists to be sorted in an order which is different from strictly lexicographical. Lists of personal names, for instance, are usually sorted by family name then given name, even if they're displayed as given name family name.

Given name and family name are almost universally stored in different variables. A work's title is a single variable.

The only reason not to sort in an order where the definite and indefinite articles are excluded is when the things being sorted are just arbitrary strings (like file names) or whoever programmed it was too careless to do it properly. Or both.

A work's title and a file's name are the exact same thing! They're both stored in single variables. That's the point I've been making the whole time.

Programmers who leave out these kinds of arbitrary exceptions are not careless. They're doing it right.
Blapeuh 2013 年 6 月 3 日 下午 11:54 
引用自 Roxor128
The word "the" is an integral part of the title. If it wasn't, it wouldn't have been used in the first place. It's no different from dropping the first word from "Half Life 2" and filing it under L.

It makes no sense.

Well in fact, it does makes sense.
'The' is for instance in the same group like 'a' or 'an'. Which are known for to belong to the 'Article' group of words. It's a prefix (or suffix) used with a noun. It is used to indicate a type of reference made to or by the noun.

'The' isn't in fact "an integral" (SIC) part of the title. Otherwise a large portion of all the titles falls under the 'T' in the listing.
It's just a simple grammar rule. When getting used to you hardly notice it anymore.
Roxor128 2013 年 6 月 4 日 上午 1:33 
引用自 Blapeuh
引用自 Roxor128
The word "the" is an integral part of the title. If it wasn't, it wouldn't have been used in the first place. It's no different from dropping the first word from "Half Life 2" and filing it under L.

It makes no sense.

Well in fact, it does makes sense.
'The' is for instance in the same group like 'a' or 'an'. Which are known for to belong to the 'Article' group of words. It's a prefix (or suffix) used with a noun. It is used to indicate a type of reference made to or by the noun.

'The' isn't in fact "an integral" (SIC) part of the title. Otherwise a large portion of all the titles falls under the 'T' in the listing.
It's just a simple grammar rule. When getting used to you hardly notice it anymore.

Computers don't use that rule unless it has been explicitly added and running across a program which has had it added is very jarring. Everywhere else on my computer uses non-grammatical sorting, so why can't Steam?
Blapeuh 2013 年 6 月 4 日 上午 8:40 
That is simple. Because 50%, or more, of your games will end op in the section starting with a 'T'.
Τhe Rolling Cheese Wheel 2013 年 6 月 4 日 上午 9:58 
Use the in-client search box. Easy. Also it's very common protocol for a sorting software/system to ignore The, An, A etc
最後修改者:Τhe Rolling Cheese Wheel; 2013 年 6 月 4 日 上午 9:59
Roxor128 2013 年 6 月 4 日 下午 6:38 
引用自 Blapeuh
That is simple. Because 50%, or more, of your games will end op in the section starting with a 'T'.

That's exactly what I want!

引用自 The Rolling Cheese
Use the in-client search box.

There's a search box outside of the store? When was that added?

Also it's very common protocol for a sorting software/system to ignore The, An, A etc

So everyone keeps telling me. It's still not what file systems and straight-up sorting algorithms do.
Satoru 2013 年 6 月 4 日 下午 7:01 
引用自 Roxor128
There's a search box outside of the store? When was that added?
.

It's been there for awhile. Every library view has a "Search" function in the upper left hand corner even small mode has a search function.
aiusepsi 2013 年 6 月 4 日 下午 7:05 
引用自 Roxor128
Applying it to certain words and not others is not consistent, and making such exceptions needs thorny if() statements to do it. I'd write one, but I'm a bit rusty on my C string-handling functions.
It's really not that thorny. Here's some actual C# code I wrote for a thing that does it:

var sorted = var app in Apps.OrderBy(k => { if (k.Value.name.StartsWith("the ", StringComparison.CurrentCultureIgnoreCase)) return k.Value.name.Remove(0, 4); if (k.Value.name.StartsWith("a ", StringComparison.CurrentCultureIgnoreCase)) return k.Value.name.Remove(0, 2); return k.Value.name; });

Given name and family name are almost universally stored in different variables. A work's title is a single variable.

...

A work's title and a file's name are the exact same thing! They're both stored in single variables. That's the point I've been making the whole time.

Programmers who leave out these kinds of arbitrary exceptions are not careless. They're doing it right.
Variables are just an implementation detail. Nobody outside your program needs to know or care how the heck your program is implemented. What matters is the behaviour.

A work's title and a file's name ARE NOT the same thing, any more than e.g. a complex number and a 2D vector are the same. Sure, they can both be represented as a pair of floating-point numbers, but you'd be barmy to treat them in the same way.

The semantics are fundamentally different.

Also, I would like to point out there are plenty of other cases where a naive ordering can really screw things up. If you'll indulge me, consider this experiment:

Consider the strings:

1
ba
c
10
2
b

Have a guess what order those should be sorted in if they were filenames. We can compare with what Windows 7 actually does!
最後修改者:aiusepsi; 2013 年 6 月 4 日 下午 7:07
Satoru 2013 年 6 月 4 日 下午 7:08 
引用自 aiusepsi

Consider the strings:

1
ba
c
10
2
b

Have a guess what order those should be sorted in if they were filenames. We can compare with what Windows 7 actually does!

Hahah that's a mean trick question. Remind me to put that on my list of questions when I grill new hires. I love watching the college kids sweat.
最後修改者:Satoru; 2013 年 6 月 4 日 下午 7:09
< >
目前顯示第 1-15 則留言,共 39
每頁顯示: 1530 50

張貼日期: 2013 年 6 月 2 日 上午 12:30
回覆: 39