DEV Community

Discussion on: Apple wants to remove scripting languages from macOS

Collapse
 
pinotattari profile image
Riccardo Bernardini

About the definition of "scripting language" (that I do not consider a pejorative term). Missing a formal and precise definition, I personally would call a language "scripting" if

  • it is interpreted, so you do not have an explicit compilation phase (maybe an internal one)
  • it is not "native interactive," that is its main way of using does not involve an interactive shell.

With this definition Ruby and Python are scripting language, while matlab/octave is not (they are used via a shell), neither Ada nor C (they are compiled). Note that Ruby has its "shell" irb that allows you an interaction with the language, but irb is used (at least, I use it...) just for "fast and dirty" tests, while the main way of use it is to write programs with it.

The definition above seems at odd with "shell scripting" since a shell is interactive by its own nature. Indeed, I personally do not consider bash (or csh, zsh, ...) a language, but an interpreter. The main way of interacting is via command line, but you can put the commands in a file too.

As said above, "scripting" is not (in my feeling) a pejorative term. Every language is a tool, and different problems require different tools. I personally use Ruby for simple programs (I noticed that maintaining gets difficult when the program is too complex), especially if they involve parsing text files (very easy with Ruby). For something more complex or long-lived I go with Ada that IMHO is more suited for writing complex software.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Well, see, you're still only describing interpreted languages, really, with some additional arbitrary criteria. You're welcome to categorize how you like, but it still lacks a real definition, and the meaning varies from one person to the next. Therefore, in terms of policy setting, the term is altogether useless.

Also, I might be missing something you're saying, but Python is very much used via a shell, although you can also execute Python programs directly.

For something more complex or long-lived I go with Ada that IMHO is more suited for writing complex software.

There is a lot of large, complex software for which Python is well-suited. I, like thousands of developers, have created full-blown applications in the language, that are just as maintainable as, say, something written in C++.

Naturally, though, you can (and should) use what you work best in. Just remember that your experience is that: your experience. Plenty of developers are just as successful at making large, complex (and maintainable) software in so-called "scripting languages."

Every language is a tool, and different problems require different tools.

I agree with this much, at least.

I just see Apple's dismissing an entire set of languages, which have been used to deploy production software that people use today, as crummy garden-walling.