Why would I use, for example, Ruby on Linux instead of on Windows?
举例而言，我为何要在 Linux（而不是 Windows）上使用 Ruby？
Some cross-platform tools were built assuming that the environment in which they run behaves like Linux. For example, some tools assume that they are able to access very long file paths or that specific files/folders exist. This often causes problems on Windows which often behaves differently from Linux.
Many languages like Ruby and Node.js are often ported to, and run great, on Windows. However, not all of the Ruby Gem or node/NPM library owners port their libraries to support Windows, and many have Linux-specific dependencies. This can often result in systems built using such tools and libraries suffering from build and sometimes runtime errors or unwanted behaviors on Windows.
These are just some of issues that caused many people to ask Microsoft to improve Windows’ command-line tools and what drove us to partner with Canonical to enable native Bash and Linux command-line tools to run on Windows.
生成某些跨平台工具时，已假设其运行环境的行为类似于 Linux。 例如，某些工具假设它们能够访问很长的文件路径，或者特定的文件/文件夹存在。 这通常会在 Windows 上导致出现问题，因为 Windows 的行为通常与 Linux 不同。
许多语言（例如 Ruby 和 Node.js）通常已移植到 Windows，并且可以在 Windows 上非常顺利地运行。 但是，并非所有 Ruby Gem 或 Node/NPM 库所有者都会移植其库来支持 Windows，而许多库都与 Linux 之间存在特定的依赖关系。 这经常导致使用此类工具和库生成的系统在 Windows 上遭遇到生成错误（有时是运行时错误），或者出现不需要的行为。
这只是导致许多人要求 Microsoft 改进 Windows 命令行工具的一部分问题，也正是这些问题促使我们与 Canonical 展开合作，使得本机 Bash 和 Linux 命令行工具能够在 Windows 上运行。