Bạn có thể dễ dàng thực hiện phát triển đa nền tảng cho dù bạn là lập trình viên hệ thống, nhà phát triển web hay nhà phát triển ứng dụng máy tính để bàn. Nếu bạn vào hệ thống, thì mọi tiện ích và / hoặc trình điều khiển bạn viết cho linux có khả năng hoạt động tốt cho các * nix khác với các sửa đổi rất tối thiểu. Với điều kiện bạn viết mã C tiêu chuẩn và không sử dụng quá nhiều cuộc gọi cụ thể của hệ thống, chúng có thể dễ dàng chuyển đến các cửa sổ.
Nếu bạn là nhà phát triển ứng dụng máy tính để bàn, bạn có thể nhắm mục tiêu GTK, QT hoặc wxWidgets và ứng dụng của bạn có thể sẽ hoạt động tốt trên 3 nền tảng chính hiện nay (* nix, Windows, Mac). Một lần nữa, giữ các cuộc gọi cụ thể của hệ thống đến mức tối thiểu hoặc cách ly chúng vào thư viện trình bao bọc sẽ là hệ thống cụ thể. Bạn cũng gọi một máy ảo như JVM và / hoặc CLR, cho phép ứng dụng hoạt động trên bảng.
Nếu bạn là một nhà phát triển web, thì có khả năng bạn sẽ gặp quá nhiều lựa chọn thay thế khác nhau để lựa chọn. Tôi thích một máy chủ web nhỏ tên là Cherokee và tôi phát triển và chạy các ứng dụng ASP.NET (mono) và Django chạy trên nó và sử dụng một phụ trợ PGS.
Vì vậy, kết luận là việc phát triển đa nền tảng trong Linux có thể được thực hiện, miễn là bạn có thể biên dịch mã trên nền tảng đích và bạn ghi nhớ điều đó trong khi viết mã hoặc nếu bạn nhắm mục tiêu VM. Điểm khác là bạn có thể gặp phải Nghịch lý của sự lựa chọn và không biết nên sử dụng cái gì. Cho rằng đọc bên dưới câu trả lời của tôi cho câu hỏi thứ hai.
Đối với câu hỏi thứ hai, tài nguyên tốt nhất mà tôi đã tìm thấy được gọi là Giải pháp thay thế nguồn mở . Trang web này liệt kê ra phần mềm thương mại và các lựa chọn thay thế nguồn mở của họ. Hầu như tất cả các lựa chọn thay thế chạy trên Linux và FreeBSD.