# [Mono-list] just installed mono, most basic test failed.

Edward Ned Harvey (mono) edward.harvey.mono at clevertrove.com
Wed May 13 13:49:14 UTC 2015

> From: mono-list-bounces at lists.ximian.com [mailto:mono-list-
> bounces at lists.ximian.com] On Behalf Of David Curylo
>
> It's not like Java where you can blindly expect your code to run across
> platforms.  More like Python or Erlang or numerous other languages and
> runtimes where most of the code will work across platforms, but some
> libraries are platform-specific.

Even in java, python, or any other language, you can't just build and test on one platform and blindly expect (without testing) that it will work on another platform - because there exist platform specific variations.

For example: If you wrote an https server application, and it ran on windows as a service, it *won't* simply run on linux. Because binding low numbered ports requires root escalation. So you need to be careful to launch your application as root and then make a POSIX call to drop privilege after the port is bound.

And if you use a path like "C:\foo\bar" your app will break on a non-windows platform. And even if you do the smart thing using special folder enumeration... "Personal" evaluates to "My Documents" on windows, but evaluates to your home directory on linux/unix. So you have to use *different* special folder enumerations on different platforms, in order to have the same effect.

Not to mention differences of supported filesystem characters... Path separator char '/' vs '\' ...

Case sensitive filesystems, vs case insensitive... Unicode vs Ascii ...  Disallowed characters in windows...  Maximum path length in windows that doesn't exist in linux/unix...

What else? There are simply TONS of differences that are different on different platforms, regardless of the language you use. It is not realistic, in *any* language, to write and test on one platform and expect it to be functional on another platform without testing. Unless your app is a trivial calculator or similar.