{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaData/CSV.jl/issues/340","repository_url":"https://api.github.com/repos/JuliaData/CSV.jl","labels_url":"https://api.github.com/repos/JuliaData/CSV.jl/issues/340/labels{/name}","comments_url":"https://api.github.com/repos/JuliaData/CSV.jl/issues/340/comments","events_url":"https://api.github.com/repos/JuliaData/CSV.jl/issues/340/events","html_url":"https://github.com/JuliaData/CSV.jl/issues/340","id":373324916,"node_id":"MDU6SXNzdWUzNzMzMjQ5MTY=","number":340,"title":"TSV over CSV","user":{"login":"mkborregaard","id":8429802,"node_id":"MDQ6VXNlcjg0Mjk4MDI=","avatar_url":"https://avatars2.githubusercontent.com/u/8429802?v=4","gravatar_id":"","url":"https://api.github.com/users/mkborregaard","html_url":"https://github.com/mkborregaard","followers_url":"https://api.github.com/users/mkborregaard/followers","following_url":"https://api.github.com/users/mkborregaard/following{/other_user}","gists_url":"https://api.github.com/users/mkborregaard/gists{/gist_id}","starred_url":"https://api.github.com/users/mkborregaard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkborregaard/subscriptions","organizations_url":"https://api.github.com/users/mkborregaard/orgs","repos_url":"https://api.github.com/users/mkborregaard/repos","events_url":"https://api.github.com/users/mkborregaard/events{/privacy}","received_events_url":"https://api.github.com/users/mkborregaard/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2018-10-24T06:30:38Z","updated_at":"2018-12-15T20:35:27Z","closed_at":null,"author_association":"NONE","body":"In Julia, and in particular this package, comma-separated values files are treated as the \"default\" file format. This reflects a culture where CSV is treated as default, but that is not international, but only restricted to some countries.\r\n\r\nAt the heart of it, the comma is the worst possible column separator in countries where the decimal separator is also a comma. Here's a world map of those countries (light green is comma, blue [former British colonies + China] is dot, red and dark green something else):\r\n\r\n![](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/DecimalSeparator.svg/940px-DecimalSeparator.svg.png)\r\n\r\nThis makes it either impossible to have data with floating point values (not really an option), or forces everyone to adopt the English dot decimal separator. While good things can be said on just converging on a standard (like we all speak English on Github), it's not as simple as that. For apps like Excel, the way to force English dot separator is to set your computers global locale settings to UK/US, which is first of all very inconvenient, second, most people aren't going to do it. Indeed in e.g. excel, if you open a csv file on a non-English locale and save it back to csv again, Excel will automatically save it using semicolons as column separators! - which is of course Excel's problem, but just illustrates that this is not easily resolved by just arguing that everyone must adopt the English standard.\r\n\r\nThere's another issue with comma separation, and that is that it makes it impossible to have any natural language (such as notes) in data sets, because natural language often have commas.\r\n\r\nFortunately there exists a standard, which is the standard format in countries with comma decimal separator, that has none of the above problems, is international, and actually makes for much more human-readable text files: the tab-separated value. I'd suggest adopting this standard whereever possible in Julia.\r\n\r\nI think many people don't realize just how nice it is for all of us in non-English countries that Julia has adapted UTF-8 as the standard over ASCII - in any other language I've used, strings of natural language (in my case mostly geographic place names) are a constant headache, but not so in Julia. It really underlines that Julia is a language of the present and future in a globalized world. No, seriously.\r\n\r\nMy most wide-reaching suggestion would be to rename this package TSV instead of CSV. A more basic suggestion is to use tabs instead of commas as the default separator, so that you have to specify the separator explicitly if you want commas. This makes even more sense, as in half the world, `csv` means \"semicolon-separated values\", so it is natural to expect the user to choose which one. The very minimal suggestion would be to have CSV automatically use tab-separation in `read` and `write` when the file extension is `.tsv` (and possibly `.txt`) (`CSVFiles` does that, and `DataFrames.readtable` used to do that too).\r\n\r\nR solves this issue by having `read.table`, `read.delim`, `read.delim2`, `read.csv`, `read.csv2` etc. But - I don't think that's an example to emulate.\r\n"},"comment":{"url":"https://api.github.com/repos/JuliaData/CSV.jl/issues/comments/447596129","html_url":"https://github.com/JuliaData/CSV.jl/issues/340#issuecomment-447596129","issue_url":"https://api.github.com/repos/JuliaData/CSV.jl/issues/340","id":447596129,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NzU5NjEyOQ==","user":{"login":"Nosferican","id":2529329,"node_id":"MDQ6VXNlcjI1MjkzMjk=","avatar_url":"https://avatars0.githubusercontent.com/u/2529329?v=4","gravatar_id":"","url":"https://api.github.com/users/Nosferican","html_url":"https://github.com/Nosferican","followers_url":"https://api.github.com/users/Nosferican/followers","following_url":"https://api.github.com/users/Nosferican/following{/other_user}","gists_url":"https://api.github.com/users/Nosferican/gists{/gist_id}","starred_url":"https://api.github.com/users/Nosferican/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nosferican/subscriptions","organizations_url":"https://api.github.com/users/Nosferican/orgs","repos_url":"https://api.github.com/users/Nosferican/repos","events_url":"https://api.github.com/users/Nosferican/events{/privacy}","received_events_url":"https://api.github.com/users/Nosferican/received_events","type":"User","site_admin":false},"created_at":"2018-12-15T20:35:27Z","updated_at":"2018-12-15T20:35:27Z","author_association":"NONE","body":"I think it might be best to have the 5-lines rules for `.txt` files. `.cvs` and `.tsv` should probably have the implied delimiters by file extension."}}
{"actor":{"display_login":"Nosferican"}}