Programming Club
- Christian Clubs
- 75 Replies
Best programming language to develop an application for Windows?
Best programming language to develop an application for Linux?
Without wanting to seem coy, the answer depends on what you’re trying to program, because some programming languages let you write a simple program very fast, and some applications require performance or specialized libraries. For example on Linux a lot of applications can be quickly programmed by using simple shell scripts and pipelines to connect the output of existing text processing tools. For example, you can take the output of one program, pipe it through grep to match a pattern, pipe it through sed to change that pattern, and then use the > character to output this to a new file (the only place where pipelines don’t work as well is editing files in place, although with some difficulty you can use ed to edit a file in place and control it with a pipeline, but it wasn’t meant for this; another problem is without a special program to sit in the middle, pipelines won’t wait for an EOF before processing the input, but will start processing it immediately; usually this is OK, but there are some cases where you might want the full file before you start working on it. There is also the awk programming language, which is a mini programming language that runs in the shell, although by the time you are using awk, you should probably be using python (historically Perl was written to replace awk for advanced text processing in the command line, but Perl is easy to write but hard to read; Python and Ruby were both written as Perl replacements with a focus on being more user friendly, and most importantly, producing easier to read code). While I was rooting for Ruby, Python won, but then Javascript became a viable language, and Ruby remains an option.
For general purpose programming on both Windows and Linux, the broadest support right now both in terms of learning resources and library support is for Python, and you can also now write applications in Javascript, thanks to Node.JS
GUI development is possible with Python, Perl, Ruby, .NET, Java, as well as the old standard of C++. Microsoft .NET languages such as C# run on Linux; .NET first being ported by Novell as Mono, but then, Microsoft acquired it and now publishes .NET for Linux themselves. The open source .NET Microsoft publishes also runs on other major open source operating systems like FreeBSD*.
I would advise against using PHP for any further web development, since both node.js and Python are superior platforms for backend programming (and with node.js, you’re using Javascript for both your backend and front end, and the idea is you’re less likely to make a mistake programming in one language rather than two), and PHP is a brutal language, in my opinion, not one I’ve ever beeen impressed with.
If you know Java, it is still widely used and supported (the main version of Minecraft is still being developed in Java and serious players prefer it to the other versions), and Java is particularly loved for enterprise applications of various sorts, including a lot of bloated systems running on application servers that give sysadmins who have to deal with them migraines.
Also other languages like Python, Ruby, Lisp (Clojure), and Scala, the latter two being particularly nice, run on the Java Virtual Machine.
*Most of what works on Linux works on FreeBSD, and most of what works on FreeBSD works on OpenBSD, NetBSD and Illumos (Solaris); also there are a few other workable open source operating systems; GNU finally got their Hurd kernel to a usable level, and there is DragonFlyBSD which has an interesting and elegant cluster filesystem. I myself prefer FreeBSD and OpenBSD to most Linux distributions, because OpenBSD has networking software I want and the most secure web server built in; the security on OpenBSD is superb, FreeBSD on the other hand is often faster than Linux and was the second OS after Illumos/Solaris to have ZFS, and FreeBSD’s jails are better in my opinion than most Linux containers, and certainly simpler. FreeBSD’s ports system of automatic compilation of a huge library of software with dependency resolution was the inspiration for the portage system that makes Gentoo famous, except with FreeBSD you don’t have to use it as it also provides binary packages.
But the main reason I prefer the BSDs is they don’t have systemd or a few other features most of the major distros on Linux now have, with some prominent exceptions.
Upvote
0
