After a short introduction on the history of programming languages, this book provides step-by-step examples that are mirrored in seven programming languages, including C#, C++, Java, jаvascript, PERL, PHP, Python, Ruby, VB, and VBA. This mirrored approach for each of the examples represents the main feature of the book with the goal of gaining a better understanding of the advantages and disadvantages of programming and scripting languages. This approach also allows readers to learn the mechanics of short implementations and the algorithms involved, no matter what technology and programs are used in the future. Based on the growing need for programmers to be proficient across languages, the book is designed in such a way that no prior training or exposure to the programming languages is needed by readers. Graphical illustrations are used for technical details about the computation examples to aid in an in-depth understanding of their inner workings. Moreover, the book contains original material that has been class-tested by the author and numerous cases are examined. Readers will also benefit from the inclusion of: (1) Historical and philosophical perspectives on the past, present and future of computer languages. (2) A total of 448 additional files are freely available online, from which a total of 44 files are poster presentations (i.e. PowerPoint and PDF files). (3) A total of 404 code examples reflected in nine computer languages, namely: C#, C++, Java, jаvascript, PERL, PHP, Python, Ruby and VB. Preface Acknowledgements Personal Words Contents List of Figures List of Tables List of Additional Algorithm 1 Historical Notes 1.1 Introduction 1.2 The Ultimate Foundation 1.2.1 Closer to Our Times 1.2.2 Universality at the Crossroads 1.3 On the Recent Origin of Computers 1.3.1 Automatons and the Memory of the Soul 1.3.2 Mechanical Computers 1.3.3 Electronic Computers 1.3.4 American Standard Code for Information Interchange 1.3.5 A Conspiracy for Convergence 1.4 History of Programming Languages 1.4.1 The Making of an Advanced Civilization 1.4.2 The Dark Age of Computer Languages 1.4.3 The Extraordinary Story of ActiveX 1.4.4 Killed on Duty by Friendly Fire 1.4.5 The Browser: Resistance is Futile, You Will be Assimilated 1.5 Conclusions 2 Philosophy and Discussions 2.1 Introduction 2.2 The Entropy of Software 2.2.1 Entropy of Codes and Human Nature 2.2.2 Raw Versus Fine-Grained Entropy 2.2.3 How Does Software Entropy Increase? 2.3 The Operating Systems and Entropy 2.3.1 The Twins 2.3.2 Rejection of Equilibrium 2.3.3 The Third Party Software 2.3.4 Examples of Universality 2.4 Software Updates and Aging 2.5 Universality Supports Self-reflection 2.5.1 The Evolution of Large Brains Versus Entropy 2.6 From Computer Languages to Art and Sports 2.6.1 The Art 2.6.2 The Sport 2.7 Compiled Versus Interpreted 2.7.1 Programming Languages 2.7.2 Scripting Languages 2.7.3 Source Code Encryption 2.7.4 The Executable File 2.7.5 Executable Files and Scripting Languages 2.8 The Unseen and Unspoken 2.8.1 Witch Hunting Shows Weakness 2.8.2 No Secrets for the Emeritus 2.8.3 The War Against the Executable File 2.8.4 We Decide What Product Comes About 2.9 Psychological Warfare 2.9.1 Removal by Threat 2.9.2 Removal by Advertising 2.9.3 Handling of Terms 2.9.4 Battle of Computer Languages 2.9.5 Uniformity Means Death 2.9.6 Modern Does Not Mean Better 2.9.7 Market Share Demands Responsibility 2.10 Human Roles and Dilemmas 2.10.1 The Identity Crisis 2.10.2 Work Environments 2.10.3 Genus: Homo 2.11 Worst Professors Are Those Who Assume 2.12 Conclusions 3 Paradigms and Concepts 3.1 Introduction 3.2 The Story of Programming Paradigms 3.2.1 Imperative Programming 3.2.2 Declarative Programming 3.2.3 The in Between 3.2.4 The Foundation 3.3 Computer Languages Used Here 3.3.1 C# 3.3.2 C++ 3.3.3 Java 3.3.4 JavaScript 3.3.5 Perl 3.3.6 PHP 3.3.7 Python 3.3.8 Ruby 3.3.9 Visual Basic 3.4 Classification Can be Misleading 3.4.1 A Critique 3.4.2 Which Computer Language is Better? 3.4.3 The Operating System Versus the Application Makeup 3.4.4 The Virtual Machine: A CPU for Bytecode 3.4.5 Compiled Languages 3.4.6 Interpreted Languages 3.4.7 Just in Time Compilation 3.4.8 Another Critique 3.4.9 A Security Thought Experiment 3.4.10 About Security Privileges 3.5 The Quick Fix 3.6 Conclusions 4 Operators and Expressions 4.1 Introduction 4.2 Operators 4.2.1 Arithmetic Operators 4.2.2 Assignment Operators 4.2.3 Relational Operators 4.2.4 Concatenation Operators 4.2.5 Logical Operators 4.3 Operator Symbols 4.3.1 Power Operator: The Curious Case of Exponentiation 4.3.2 The Modulo Operator 4.3.3 Unitary Operators 4.3.4 The String Operator 4.3.5 The Repetition Operator 4.3.6 The Concatenation Operator 4.3.7 Relational and Logical Operators 4.4 Assignments 4.4.1 Simple Assignments 4.4.2 Aggregate Assignments 4.4.3 Multiple Assignments 4.5 Operator Precedence and Associativity 4.6 Conclusions 5 Data Types and Statements 5.1 Introduction 5.2 Data 5.2.1 Bits and Bytes 5.2.2 Symbol Frequency Matters 5.2.3 The Encoding 5.2.4 A Hypothetical System of Reference 5.2.5 The Bytes of an Alien World 5.3 Data Type 5.3.1 The Curious Case of the String Data Type 5.3.2 Experimental Constructs 5.4 Statements 5.4.1 ASCII Symbols 5.4.2 Unicode Transformation Format 5.4.3 Sentences are Made of Constructs 5.4.4 The Root of Behavior 5.4.5 The End of the Line 5.4.6 Statements and Lines 5.4.7 Multiple Statements and Line Continuation 5.4.8 Recommended Versus Acceptable Statements 5.5 The Source Code 5.5.1 Indentations 5.5.2 Comments 5.6 Conclusions 6 Classic and Modern Variables 6.1 Introduction 6.2 Variables 6.2.1 Literals 6.2.2 Naming Variables 6.2.3 Variables: Explicit and Implicit 6.2.4 Statically Versus Dynamically Typed Languages 6.3 Evaluations of Expressions 6.3.1 Details by Language 6.4 Constants 6.5 Classes and Objects 6.5.1 About Design Patterns 6.6 Arrays 6.6.1 Creating an Empty Array 6.6.2 Creating an Array with Values 6.6.3 Adding Elements 6.6.4 Accessing Array Elements 6.6.5 Changing Values in Array Elements 6.6.6 Array Length 6.6.7 Nested Arrays 6.6.8 Multidimensional Arrays 6.7 Conclusions 7 Control Structures 7.1 Introduction 7.2 Conditional Statements 7.3 Repeat Loops 7.3.1 The While Loop 7.3.2 The For Loop 7.3.3 Nested Loops 7.3.4 Multidimensional Traversal by One For-Loop 7.4 Conclusions 8 Functions 8.1 Introduction 8.2 Defining Functions 8.2.1 Simple Arguments 8.2.2 Complex Arguments 8.2.3 Nested Function Calls 8.2.4 Chained Function Calls 8.2.5 Relative Positioning of Functions 8.2.6 Recursive Calls 8.2.7 Global Versus Local Variables 8.2.8 Functions: Pure and Impure 8.2.9 Function Versus Procedure 8.2.10 Built-In Functions 8.3 Conclusions 9 Implementations and Experiments 9.1 Introduction 9.2 Recursion Experiments 9.2.1 Repeat String n Times 9.2.2 Sum from 0 to n 9.2.3 Factorial from 0 to n 9.2.4 Simple Sequence Generator 9.2.5 Fibonacci Sequence 9.2.6 Sum All Integers from Array 9.3 Interval Scanning 9.4 Spectral Forecast 9.5 Conclusions References After a short introduction on the history of programming languages, this book provides step-by-step examples that are mirrored in seven programming languages, including C#, C++, Java, JavaScript, PERL, PHP, Python, Ruby, VB, and VBA. This mirrored approach for each of the examples represents the main feature of the book with the goal of gaining a better understanding of the advantages and disadvantages of programming and scripting languages. This approach also allows readers to learn the mechanics of short implementations and the algorithms involved, no matter what technology and programs are used in the future. Based on the growing need for programmers to be proficient across languages, the book is designed in such a way that no prior training or exposure to the programming languages is needed by readers. In addition, this book: Provides step-by-step examples in programming languages, including Javascript, C++, Python, etc. Presents concepts that are accessible to an introductory audience Includes numerous examples throughout to facilitate learning and has been class tested for over 6 years