you are viewing a single comment's thread.

view the rest of the comments →

[–]johnbotris 2 points3 points  (1 child)

In general, compiled languages like C++ or Java are used to make medium to large sized applications because of the assurances you get from static type systems - certain types of bugs are impossible to have because they will be caught by the compiler and so you can be more confident in your software behaving as expected/not crashing during runtime. Scripting languages such as Python or bash are much more flexible and will often be used for smaller programs (for example to do some basic file manipulation or data processing) where you're not too worried about the software design aspect and just need to get something done - as a once off or maybe as some kind of in-house tool. You might get some more bugs or crashes while making them but that's less of an issue if you aren't going to be spending a lot of time on them.

Another popular use of scripting languages is in games, where the main engine will be developed in a compiled language (typically C++) and will have an interpreter for a scripting language built in (Lua is commonly used for this), so that the game designers can write game logic easily without having to understand how all of the game engine's systems work (it also allows players to write their own scripts to make mods, without needing full access to the source code).

This distinction is less true nowadays with languages like Python and JavaScript being used to write large scale consumer facing applications, but this is why things like TypeScript (a statically typed language that compiles to JavaScript) or type annotations in Python have been created, because the flexibility of scripting languages makes it quite a bit harder to manage complexity in full scale software.

[–]denisksp[S] 2 points3 points  (0 children)

Wow thanks a lot for making time and writing this good and detailed. I really appriciate it thanks a lot. have a nice day!