Choosing the "right" programming language for the job.

Confettimaker

Keyboard Wizard
Developer
#1
Long story short:
You can use pretty much any language for any project.

Long story, well, long:
Some programming languages are just inherently easier to use, some are made for a specific function, some are pretty good at just about everything, and some are just plain weird. For example:

- Python is easy to use and good at a lot of things like back-end web development, machine learning, and data science.

- Java is good at most things and is easily made cross-platform. Popular in the Minecraft and Android communities.

- C++ is good for things that need to be fast, and is more difficult than a lot of other languages. C++ makes it easy for you to cause serious issues like memory leaks. Popular in the game development community because of it's speed and extensive documentation.

- PHP is a popular server-side language that is pretty tied down to web servers, although it can perform other tasks.

- Shakespeare Programming Language (SPL) is an esoteric programming language made for fun. Although it technically could be used to do almost anything, the work required would be unbearable. All programs written in SPL end up looking like a Shakespearean play.

The point is, you are pretty free to choose any language for any task, it's just that some languages are way better for certain tasks. I personally prefer Python as my server-side (back-end) scripting language as well as for making prototypes, HTML/JavaScript/CSS for front-end work, C++ as my game programming language, and C for Linux related stuff.

Thanks for reading and happy programming!
 

angrylawnnGnome

:)
Staff member
Top Cat
Developer
#2
Well written and informative. I like analogies and SPL sounds interesting that is something that I will take a look at. I did notice that about different languages having specific functions which is why I purchased the Raspberry Pi 3 which is best for Python as opposed to "beagle-bone" computer which is best for C++. One growing industry for programmers is created medical devices which are "big business" and the beagle-bone computer which is basically in the same price range as the raspberry pi 3 is used to create health-monitoring and exercise-tracking devices, robotics, multimedia players, and video imaging systems. If I was fluent in several different languages other than English and I wanted to write a love poem it would be better for me to express myself in Latin the language of romance which just sounds better as opposed to English. The only problem with that would be most people would not understand what I wrote even though it would be good xD. That brings up the idea that sometimes we need to simplify our writing and vocabulary so that others can understand it. That brings about the philosophical question should we do the same with programming? i.e dumb it down so that people can understand it.
 

Confettimaker

Keyboard Wizard
Developer
#3
We could dumb it down more, but the more something is abstracted, the harder it becomes to express ones self. Kind of like Python and C. Python is very abstracted compared to C and thus easier to understand. This large-scale abstraction greatly limits Python in terms of speed and portability, and also throws out important C constructs. What it does well is make it easier for someone to understand the basic constructs of programming, and eventually move on to a lower-level language if they so choose. So, it's certainly not a bad idea, it just adds more steps to the learning process.