The Early Days: JCL
At least as early as 1964, programmers completed that having to try to everything in code, together with repetition files, was too tedious. therefore IBM introduced a “job management language” (JCL) on the OS/360. during this language, you may copy a file from one location to a different victimization solely nine lines (punched on cards, of course), as compared to writing a FORTRAN programming that will be way more complicated. JCL was conjointly wont to run programs in batch mode, specify their parameters, and branch supported their result.
I bear in mind once I was a lowly operator on a knowledge General Eclipse system, and that I required to load the contents of a tape into a file on associate IBM 4331 in another department. I strolled over to their operations window with the tape in hand. once I finally got associate operator’s attention, I asked him to “please run this tape into a computer file on behalf of me.” He stared at Pine Tree State and aforementioned, “Where’s your JCL?” I replied, “JC who? On the metric weight unit, I will simply enter a command on the console to try to that.” He looked self-satisfied and aforementioned, “That’s not possible. You can’t scan a tape while not JCL.” So, I had to analysis the specified JCL and punch the cards. which matches to point out however instruction interpreters on minicomputers had already advanced on the far side mainframe batch jobs by the late seventies.
Scripting instruction Interpreters
Command line interpreters, like DG’s CLI, DEC’s MCR and DCL, and additional magnificently Unix’s Bourne Shell not solely accepted easy commands to perform (what at the time appeared like) complicated operations, they conjointly provided some way to execute a series of these commands keep during a file. metric weight unit is known as them “macros”, DEC was known as the “command files”, and UNIX was known as them “shell scripts”. These early scripting languages conjointly provided native variables and flow management mechanisms, therefore it wasn’t long before they began to be used for even additional complicated operations that wont to need compiled programs.
When I was initially introduced to UNIX systems back in 1984, I used to be excited with the C language, the Bourne shell, and powerful utilities like awk and sed. however, there was one issue that fazed me: their syntaxes were similar, however not identical — and also the overlap in drawback domain was vital. I thought, wouldn’t it’s cool if you may have one language that addressed the combined drawback domain during a consistent syntax? however, I used to be too busy to try to something concerning it.
A few years later, Larry Wall found the time to try to one thing concerning it: the Perl language. Perl combines the benefit of shell scripting with powerful options borrowed from C and numerous UNIX utilities. Immediate and simple access to regular expressions, lists, associative arrays, the power to treat any price as a string, no want for system (not even a “main()” declaration), automatic resource management, eval (the ability to execute a string as code at runtime), and also the ability mix|to mix} totally different programming paradigms freely square measure a number of the language’s strengths that combine to form “easy things simple and laborious things doable.” And you’ll choose between a variety of how to try to a similar issue, a principle called TIMTOWTDI (There Is quite a way to try to It).
Object-orientation will be a decent approach for managing complexness, however, languages that force the employment of object-oriented notation sometimes add excess complexness to nearly every project. once Perl else support for objects, it did therefore in an associate nonmandatory method that may be freely mixed with non-OO code in order that complicated modeling will be achieved once required, however otherwise not needed. The syntax for objects was at the start a trifle of an assemblage, however, that looks sufficiently remedied in Perl six.
About a similar time (late 1980’s), John Ousterhout created the TCL scripting language. It’s a stimulating useful language in its claim, however, its enduring contribution to scripting languages has been the Tk, a framework for sanctionative cross-platform graphical user interfaces that may be used from at intervals several in style scripting languages.
Guido van Rossum was conjointly at adding the late 1980’s on a replacement scripting language: Python. in contrast to Perl, Python’s philosophy is that there ought to be only 1 clear thanks to doing one thing. This philosophical rigidity is mirrored within the language’s syntax. instead of ringleted braces to cluster statements, indentation (significant white space) is employed. instead of a punctuation mark to terminate statements, the tip of the line is employed. These rules might stop clever programmers from writing code that’s simply misunderstood, however, they conjointly limit the flexibility of writing vogue.
On the opposite hand, Python doesn’t limit the selection of the programming paradigm. It without delay supports structured, functional, object-oriented, and aspect-oriented programming — and permits you to combine those designs.
Python gave the U.S.A. the term duck typewriting (although some earlier languages conjointly provided kinds of this). If a category provides the strategies expected for the associated interface, then it meets the necessities for that interface — whether or not or not it’s derived from any base category of that interface. The name comes from the duck test: “if it’s sort of a duck, swims sort of a duck, and quacks like a duck, then it most likely may be a duck”. In Python, if the associate object implements the strategies we would like to decision, then it qualifies as a receiver. This apparently simple type of typewriting simply permits polymorphism while not requiring inheritance — therefore eliminating the requirement for complicated inheritance hierarchies.
I may not be qualified to put in writing objectively concerning Ruby, as a result of it’s presently my most favorite artificial language. Yukihiro Matsumoto, dearly illustrious to the Ruby community as “Matz”, discharged Ruby to the general public in 1995. His style philosophy focuses on making a language for human programmers, instead of for the machine. The result’s based mostly on Perl and SmallTalk, with nods to alternative languages. It follows the POLS (“Principle of Least Surprise”) — therefore wherever it should be circumstantially inconsistent, it always will what the computer user expects. Ruby conjointly embraces Perl’s idea of TIMTOWTDI — you’ll most likely realize eight or additional ways in which to perform even the best operation.
Ruby is one among the additional completely object-oriented languages around. nearly something will be treated as an associated object, even literals — that provides superb quality. nonetheless, you aren’t needed to expressly use categories in any respect, unless you wish to. If you outline a operate that isn’t during a category, it truly extends the world Object category. You don’t have to be compelled to bear in mind of that, and nevertheless, you’ll conjointly use that reality to your advantage.
Ruby uses duck typewriting, like Python. Ruby conjointly permits any category to be reopened and extended. for example, you’ll add your own strategies to String and a whole number, or override those that square measure predefined. This makes most OO purists wet their pants. probably it’s a really dangerous capability, however within the right hands at the proper time it will be surprisingly powerful.
Because of its nice flexibility, Ruby is inherently multi-paradigmatic. It’s doable to put in writing Ruby code that reads like Lisp, Java, or perhaps Pascal. you’ll tune for readability, performance, minimum code, cleverness, or simply concerning the other stress you’d wish to accomplish.
Read additional at http://www.geeksaresexy.net/2008/07/25/the-ascent-of-scripting-languages/#fiC2E7EUVCRT7Fia.99