What Programming Language Should I Use for a Cross-Platform File Exchange Project?
Asked by
CuriousCoder123
I'm working on a learning project where clients will exchange files with a server. The server will run on a Linux NAS, and clients will be using Windows, macOS, and Linux computers, with potential support for iOS and Android in the future. I'm looking for guidance on choosing the right programming languages, frameworks, or stacks. Should I opt for a native approach for each platform, or is a multi-platform solution a better fit?
Answers
Going with Go works, but remember itโs not the only option. Just think about what structure you want for your clients.
Reply to this answer
I'd recommend using Go for your server-side programming. It's excellent for networking projects and offers good cross-platform support without the headache of managing dependencies that you might face with other languages.
Reply to this answer
If you're inclined towards performance, consider C++ with libraries like Boost.Beast and Asio for networking. Just be ready for more complexity!
Reply to this answer
You definitely donโt need separate native stacks for each OS. A solid approach would be to pick a single backend technology like Python with FastAPI, Node.js, or Go, and create a REST API. This way, you can build a web app as the client, which is the easiest and works across all platforms. If you want a desktop feel, options like Electron or Flutter would work too. This method simplifies maintenance and allows for scalability down the road when adding mobile clients.
FutureBuilder24: I'm with you on the single code base! Just wary about potential downsides later on.
Reply to this answer
For simplicity, Iโd suggest starting with a Python backend using FastAPI and a web client. This lets you cover Windows, macOS, and Linux easily. Then later you can branch out into mobile with frameworks like React Native or Flutter. Avoiding a fully native approach from the get-go will save you a lot of development time.
StarterDev: That's a solid strategy! I think Iโll kick things off with Linux for the initial client.
Reply to this answer
Add your answer
Answers are reviewed before publication.
TechGuru88: Absolutely, Go is a great choice for backend development, especially with NAS servers. Just keep in mind, if you're looking to create desktop GUIs or mobile apps later, you might want to consider native options or a JS wrapper like Tauri or Electron to make those parts smoother.