Monthly Archives: February 2015

In What Way Directors Create A Significant KLOC Consumer Experience

Download (PPT, 276KB)


store.theartofservice.com/itil-2011-foundation-complete-certification-kit-fourth-edition-study-guide-ebook-and-online-course.html

KLOC

Abdominal stretch – Figure-four necklock

In an illegal version of the hold, best described as a hanging figure four necklock, the wrestler stands on top of the turnbuckle, wraps his/her legs around the head of the opponent, who has their back turned against the turnbuckle, in the figure 4 and falls backwards, choking the opponent

List of unusual units of measurement – KLOC: computer program length

A computer programming expression, the Source lines of code|K-LOC or KLOC, pronounced kay-lok, standing for kilo-Source lines of code|Lines of Code, i.e., thousand lines of code

Klinga mina klockor

‘Klinga mina klockor’ (Ring my Bell)Oldham, A, Calder, T Irvin, C: ABBA: The Name of the Game, page 220. Sidgwick Jackson, 1995 is an album by Benny Andersson released in 1987. This album of Swedish folk music was a hit in Scandinavia.Oldham, A, Calder, T Irvin, C: ABBA: The Name of the Game, page 220. Sidgwick Jackson, 1995

Klinga mina klockor – Track listing

#Klinga mina klockor (song)|Klinga mina klockor (Ring my Bell) (Benny Andersson, Text: Björn Ulvaeus) – 11.30

Kit-Cat Klock

The ‘Kit-Cat Klock’ is an Art Deco|art deco Novelties|novelty style wall clock. It is in the shape of a grinning black cat with cartoon eyes that swivel in time with a pendulum tail that wags beneath. The clock is traditionally colored black, but models in other colors and styles are available. It first appeared during the 1930s. The clock is an iconic symbol of kitchens in Popular culture|pop culture.

For More Information, Visit:

store.theartofservice.com/itil-2011-foundation-complete-certification-kit-fourth-edition-study-guide-ebook-and-online-course.html

store.theartofservice.com/itil-2011-foundation-complete-certification-kit-fourth-edition-study-guide-ebook-and-online-course.html

35 Hacks That Lead To Java Triumph

Download (PPT, 1.49MB)


store.theartofservice.com/itil-2011-foundation-complete-certification-kit-fourth-edition-study-guide-ebook-and-online-course.html

Java

Java (programming language)

Java (programming language)

Java (programming language)

Paradigm(s) multi-paradigm: object-oriented, structured, imperative, generic, reflective

Java (programming language)

Stable release Java Standard Edition 7 Update 40 (1.7.40) (September 10, 2013; 32 days ago)

Java (programming language)

Influenced by Ada 83, C++, C#, Eiffel, Generic Java, Mesa, Modula-3, Oberon, Objective-C, UCSD Pascal, Smalltalk

Java (programming language)

Influenced Ada 2005, BeanShell, C#, Clojure, D, ECMAScript, Groovy, J#, JavaScript, PHP, Python, Scala, Seed7, Vala

Java (programming language)

Implementation language C and C++

Java (programming language)

License GNU General Public License, Java Community Process

Java (programming language)

Usual filename extensions .java, .class, .jar

Java (programming language)

Java was originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems’ Java platform

Java (programming language)

Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java (bytecode compiler), GNU Classpath (standard libraries), and IcedTea-Web (browser plugin for applets).

Java (programming language) History

The language was initially called Oak after an oak tree that stood outside Gosling’s office; it went by the name Green later, and was later renamed Java, from Java coffee, said to be consumed in large quantities by the language’s creators

Java (programming language) History

In 2006, for marketing purposes, Sun renamed new J2 versions as Java EE, Java ME, and Java SE, respectively.

Java (programming language) History

Sun generated revenue from Java through the selling of licenses for specialized products such as the Java Enterprise System

Java (programming language) History

On November 13, 2006, Sun released much of Java as free and open source software, (FOSS), under the terms of the GNU General Public License (GPL). On May 8, 2007, Sun finished the process, making all of Java’s core code available under free software/open-source distribution terms, aside from a small portion of code to which Sun did not hold the copyright.

Java (programming language) History

There are 930 million Java Runtime Environment downloads each year and 3 billion mobile phones run Java

Java (programming language) Principles

There were five primary goals in the creation of the Java language:

Java (programming language) Principles

It should be “simple, object-oriented and familiar”

Java (programming language) Principles

It should be “robust and secure”

Java (programming language) Principles

It should be “architecture-neutral and portable”

Java (programming language) Principles

It should execute with “high performance”

Java (programming language) Principles

It should be “interpreted, threaded, and dynamic”

Java (programming language) Java platform

End-users commonly use a Java Runtime Environment (JRE) installed on their own machine for standalone Java applications, or in a Web browser for Java applets.

Java (programming language) Java platform

Standardized libraries provide a generic way to access host-specific features such as graphics, threading, and networking.

Java (programming language) Java platform

A major benefit of using bytecode is porting. However, the overhead of interpretation means that interpreted programs almost always run more slowly than programs compiled to native executables would. Just-in-Time (JIT) compilers were introduced from an early stage that compile bytecodes to machine code during runtime.

Java (programming language) Implementations

Because Java lacks any formal standardization recognized by Ecma International, ISO/IEC, ANSI, or other third-party standards organization, the Oracle implementation is the de facto standard.

Java (programming language) Implementations

The Oracle implementation is packaged into two different distributions: The Java Runtime Environment (JRE) which contains the parts of the Java SE platform required to run Java programs and is intended for end-users, and the Java Development Kit (JDK), which is intended for software developers and includes development tools such as the Java compiler, Javadoc, Jar, and a debugger.

Java (programming language) Implementations

OpenJDK is another notable Java SE implementation that is licensed under the GPL. The implementation started when Sun began releasing the Java source code under the GPL. As of Java SE 7, OpenJDK is the official Java reference implementation.

Java (programming language) Implementations

As a result, Microsoft no longer ships Windows with Java.

Java (programming language) Implementations

Platform-independent Java is essential to Java EE, and an even more rigorous validation is required to certify an implementation. This environment enables portable server-side applications.

Java (programming language) Performance

However, Java programs’ execution speed improved significantly with the introduction of Just-in-time compilation in 1997/1998 for Java 1.1, the addition of language features supporting better code analysis (such as inner classes, the StringBuilder class, optional assertions, etc.), and optimizations in the Java virtual machine itself, such as HotSpot becoming the default for Sun’s JVM in 2000.

Java (programming language) Performance

Some platforms offer direct hardware support for Java; there are microcontrollers that can run Java in hardware instead of a software Java virtual machine, and ARM based processors can have hardware support for executing Java bytecode through their Jazelle option.

Java (programming language) Automatic memory management

The programmer determines when objects are created, and the Java runtime is responsible for recovering the memory once objects are no longer in use

Java (programming language) Automatic memory management

One of the ideas behind Java’s automatic memory management model is that programmers can be spared the burden of having to perform manual memory management

Java (programming language) Automatic memory management

Garbage collection may happen at any time. Ideally, it will occur when a program is idle. It is guaranteed to be triggered if there is insufficient free memory on the heap to allocate a new object; this can cause a program to stall momentarily. Explicit memory management is not possible in Java.

Java (programming language) Automatic memory management

Java does not support C/C++ style pointer arithmetic, where object addresses and unsigned integers (usually long integers) can be used interchangeably. This allows the garbage collector to relocate referenced objects and ensures type safety and security.

Java (programming language) Automatic memory management

However, as of Java 5.0, autoboxing enables programmers to proceed as if primitive types were instances of their wrapper class.

Java (programming language) Automatic memory management

Java contains multiple types of garbage collectors. By default, HotSpot uses the concurrent mark sweep collector, also known as the CMS garbage collector or CMS. However, there are also several other garbage collectors that can be used to manage the heap. For 90% of applications in Java, the CMS garbage collector is sufficient. Oracle aims to replace CMS with the Garbage-first collector (G1).

Java (programming language) Syntax

The syntax of Java is largely derived from C++. Unlike C++, which combines the syntax for structured, generic, and object-oriented programming, Java was built almost exclusively as an object-oriented language. All code is written inside a class, and everything is an object, with the exception of the primitive data types (e.g. integers, floating-point numbers, boolean values, and characters), which are not classes for performance reasons.

Java (programming language) Syntax

Unlike C++, Java does not support operator overloading or multiple inheritance for classes. This simplifies the language and aids in preventing potential errors and anti-pattern design.

Java (programming language) Syntax

Java uses similar commenting methods to C++. There are three different styles of comments: a single line style marked with two slashes (//), a multiple line style opened with /* and closed with */, and the Javadoc commenting style opened with /** and closed with */. The Javadoc style of commenting allows the user to run the Javadoc executable to compile documentation for the program.

Java (programming language) Syntax

// This is an example of a single line comment using two slashes

Java (programming language) Syntax

/* This is an example of a multiple line comment using the slash and asterisk.

Java (programming language) Syntax

This type of comment can be used to hold a lot of information or deactivate

Java (programming language) Syntax

code, but it is very important to remember to close the comment. */

Java (programming language) Syntax

* This is an example of a Javadoc comment; Javadoc can compile documentation

Java (programming language) Syntax

public class FibCalculator extends Fibonacci implements Calculator {

Java (programming language) Syntax

/** Given a non-negative number FIBINDEX, returns

Java (programming language) Syntax

* the Nth Fibonacci number, where N equals FIBINDEX.

Java (programming language) Syntax

* @param fibIndex The index of the Fibonacci number

Java (programming language) Syntax

* @return The Fibonacci number itself

Java (programming language) Syntax

public static int fibonacci(int fibIndex) {

Java (programming language) Syntax

memoized.put(fibIndex, answer);

Java (programming language) Applet

public class Hello extends JApplet {

Java (programming language) Applet

public void paintComponent(final Graphics g) {

Java (programming language) Applet

The import statements direct the Java compiler to include the javax.swing.JApplet and java.awt.Graphics classes in the compilation. The import statement allows these classes to be referenced in the source code using the simple class name (i.e. JApplet) instead of the fully qualified class name (i.e. javax.swing.JApplet).

Java (programming language) Applet

The Hello class extends (subclasses) the JApplet (Java Applet) class; the JApplet class provides the framework for the host application to display and control the lifecycle of the applet. The JApplet class is a JComponent (Java Graphical Component) which provides the applet with the capability to display a graphical user interface (GUI) and respond to user events.

Java (programming language) Applet

The Hello class overrides the paintComponent(Graphics) method (additionally indicated with the annotation, supported as of JDK 1.5, Override) inherited from the Container superclass to provide the code to display the applet

Java (programming language) Applet

An applet is placed in an HTML document using the HTML element. The applet tag has three attributes set: code=”Hello” specifies the name of the JApplet class and width=”200″ height=”200″ sets the pixel width and height of the applet. Applets may also be embedded in HTML using either the object or embed element, although support for these elements by Web browsers is inconsistent. However, the applet tag is deprecated, so the object tag is preferred where supported.

Java (programming language) Servlet

Java Servlet technology provides Web developers with a simple, consistent mechanism for extending the functionality of a Web server and for accessing existing business systems. Servlets are server-side Java EE components that generate responses (typically HTML pages) to requests (typically HTTP requests) from clients. A servlet can almost be thought of as an applet that runs on the server side—without a face.

Java (programming language) Servlet

public void service(final ServletRequest request, final ServletResponse response)

Java (programming language) Servlet

The import statements direct the Java compiler to include all of the public classes and interfaces from the java.io and javax.servlet packages in the compilation.

Java (programming language) Servlet

The Hello class extends the GenericServlet class; the GenericServlet class provides the interface for the server to forward requests to the servlet and control the servlet’s lifecycle.

Java (programming language) Servlet

The Hello class overrides the service(ServletRequest, ServletResponse) method defined by the Servlet interface to provide the code for the service request handler. The service() method is passed: a ServletRequest object that contains the request from the client and a ServletResponse object used to create the response returned to the client. The service() method declares that it throws the exceptions ServletException and IOException if a problem prevents it from responding to the request.

Java (programming language) Servlet

The setContentType(String) method in the response object is called to set the MIME content type of the returned data to “text/html”

Java (programming language) JavaServer Pages

JavaServer Pages (JSP) are server-side Java EE components that generate responses, typically HTML pages, to HTTP requests from clients. JSPs embed Java code in an HTML page by using the special delimiters . A JSP is compiled to a Java servlet, a Java application in its own right, the first time it is accessed. After that, the generated servlet creates the response.

Java (programming language) Swing application

Swing is a graphical user interface library for the Java SE platform. It is possible to specify a different look and feel through the pluggable look and feel system of Swing. Clones of Windows, GTK+ and Motif are supplied by Sun. Apple also provides an Aqua look and feel for Mac OS X. Where prior implementations of these looks and feels may have been considered lacking, Swing in Java SE 6 addresses this problem by using more native GUI widget drawing routines of the underlying platforms.

Java (programming language) Swing application

super.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

Java (programming language) Swing application

The first import includes all of the public classes and interfaces from the javax.swing package.

Java (programming language) Swing application

It then calls the setDefaultCloseOperation(int) method inherited from JFrame to set the default operation when the close control on the title bar is selected to WindowConstants.EXIT_ON_CLOSE — this causes the JFrame to be disposed of when the frame is closed (as opposed to merely hidden), which allows the Java virtual machine to exit and the program to terminate

Java (programming language) Swing application

The main() method is called by the Java virtual machine when the program starts. It instantiates a new Hello frame and causes it to be displayed by calling the setVisible(boolean) method inherited from the Component superclass with the boolean parameter true. Once the frame is displayed, exiting the main method does not cause the program to terminate because the AWT event dispatching thread remains active until all of the Swing top-level windows have been disposed.

Java (programming language) Generics

In 2004, generics were added to the Java language, as part of J2SE 5.0

Java (programming language) Criticism

Criticisms directed at Java include the implementation of generics, speed, the handling of unsigned numbers, the implementation of floating-point arithmetic, and a history of security vulnerabilities in the primary Java VM implementation HotSpot.

Java (programming language) Google

Some of the classes in the Dalvik class library resembled their Java counterparts, which became a major point of contention between Sun/Oracle and Google/Android.

Java (programming language) Google

On May 7, 2012, a San Francisco jury found that if APIs could be copyrighted, then Google had infringed Oracle’s copyrights by the use of Java in Android devices. Oracle’s stance in this case had raised questions about the legal status of the use of Java on Android. However, U.S. District Judge William Haskell Alsup ruled on May 31, 2012, that APIs cannot be copyrighted.

Java (programming language) Class libraries

The Java Class Library are the compiled bytecodes of source code developed by the JRE implementor to support application development in Java. Examples of these libraries are:

Java (programming language) Class libraries

The core libraries, which include:

Java (programming language) Class libraries

Collection libraries that implement data structures such as lists, dictionaries, trees, sets, queues and double-ended queue, or stacks

Java (programming language) Class libraries

The integration libraries, which allow the application writer to communicate with external systems. These libraries include:

Java (programming language) Class libraries

Java Naming and Directory Interface (JNDI) for lookup and discovery

Java (programming language) Class libraries

RMI and CORBA for distributed application development

Java (programming language) Class libraries

The (heavyweight, or native) Abstract Window Toolkit (AWT), which provides GUI components, the means for laying out those components and the means for handling events from those components

Java (programming language) Class libraries

The (lightweight) Swing libraries, which are built on AWT but provide (non-native) implementations of the AWT widgetry

Java (programming language) Class libraries

APIs for audio capture, processing, and playback

Java (programming language) Class libraries

A platform dependent implementation of the Java virtual machine that is the means by which the bytecodes of the Java libraries and third party applications are executed

Java (programming language) Class libraries

Plugins, which enable applets to be run in Web browsers

Java (programming language) Class libraries

Java Web Start, which allows Java applications to be efficiently distributed to end-users across the Internet

Java (programming language) Documentation

Javadoc is a comprehensive documentation system, created by Sun Microsystems, used by many Java developers. It provides developers with an organized system for documenting their code. Javadoc comments have an extra asterisk at the beginning, i.e. the tags are /** and */, whereas the normal multi-line comments in Java are set off with the tags /* and */.

Java (programming language) Editions

Sun has defined and supports four editions of Java targeting different application environments and segmented many of its APIs so that they belong to one of the platforms. The platforms are:

Java (programming language) Editions

Java Platform, Micro Edition (Java ME) — targeting environments with limited resources.

Java (programming language) Editions

Java Platform, Enterprise Edition (Java EE) — targeting large distributed enterprise or Internet environments.

Java (programming language) Editions

The classes in the Java APIs are organized into separate groups called packages. Each package contains a set of related interfaces, classes and exceptions. Refer to the separate platforms for a description of the packages available.

Java (programming language) Editions

The set of APIs is controlled by Sun Microsystems in cooperation with others through the Java Community Process program. Companies or individuals participating in this process can influence the design and development of the APIs. This process has been a subject of controversy.

Java (programming language) Editions

Sun also provided an edition called PersonalJava that has been superseded by later, standards-based Java ME configuration-profile pairings.

Java (programming language) Comparison of Java with other languages

Comparison of programming languages

BlackBerry Ltd BlackBerry OS (Java)

The existing Java-based BlackBerry OS was intended to operate under much different, simpler conditions such as low powered devices, narrow network bandwidth and high security enterprises. However, as the needs of the mobile user evolved, the aging platform struggled with emerging trends like mobile web browsing, consumer applications, multimedia and touch screen interfaces. Users could experience performance issues, usability problems and instability.

BlackBerry Ltd BlackBerry OS (Java)

The company tried to enhance the aging platform with a better web browser, faster performance, a bundled application store and various touch screen enhancements, but ultimately decided to build a new platform with QNX at its core

Application server Java application servers

Java Platform, Enterprise Edition or Java EE (was J2EE) defines the core set of API and features of Java Application Servers.

Application server Java application servers

The Web modules include servlets, and JavaServer Pages. Enterprise JavaBeans are used to manage transactions. According to the J2EE blueprints the business logic of an application resides in Enterprise JavaBeans – a modular server component providing many features, including declarative transaction management, and improving application scalability.

Application server Java application servers

Some Java Application Servers leave off many Java EE features like EJB and JMS including Tomcat from Apache, and Jetty from Eclipse Foundation. Their focus is more on Java Servlets and JavaServer Pages.

Application server Java application servers

There are many open source Java application servers that support Java EE including JOnAS from Object Web, JBoss AS from JBoss (division of Red Hat), Geronimo from Apache, TomEE from Apache, Resin Java Application Server from Caucho Technology, Blazix from Desiderata Software, Enhydra Server from Enhydra.org, and GlassFish from Oracle.

Application server Java application servers

Commercial, non open-source, Java application servers have been dominated by WebLogic Application Server by Oracle and WebSphere Application Server from IBM.

Application server Java application servers

A Java Server Page (JSP) executes in a Web container. JSPs provide a way to create HTML pages by embedding references to the server logic within the page. HTML coders and Java programmers can work side by side by referencing each other’s code from within their own.

JavaScript

Paradigm(s) Multi-paradigm: scripting, object-oriented (prototype-based), imperative, functional

JavaScript

Developer Netscape Communications Corporation, Mozilla Foundation

JavaScript

Influenced ActionScript, CoffeeScript, Dart, JScript .NET, Objective-J, QML, TIScript, TypeScript, Node.js

JavaScript

JavaScript (JS) is an interpreted computer programming language. As part of web browsers, implementations allow client-side scripts to interact with the user, control the browser, communicate asynchronously, and alter the document content that is displayed. It has also become common in server-side programming, game development and the creation of desktop applications.

JavaScript

JavaScript is a prototype-based scripting language with dynamic typing and has first-class functions. Its syntax was influenced by C. JavaScript copies many names and naming conventions from Java, but the two languages are otherwise unrelated and have very different semantics. The key design principles within JavaScript are taken from the Self and Scheme programming languages. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.

JavaScript

The application of JavaScript to uses outside of web pages—for example, in PDF documents, site-specific browsers, and desktop widgets—is also significant. Newer and faster JavaScript VMs and frameworks built upon them (notably Node.js) have also increased the popularity of JavaScript for server-side web applications.

JavaScript

JavaScript was formalized in the ECMAScript language standard and is primarily used as part of a web browser (client-side JavaScript). This enables programmatic access to computational objects within a host environment.

JavaScript Birth at Netscape

JavaScript was originally developed by Brendan Eich. While battling with Microsoft over the Internet, Netscape considered their client-server offering a distributed OS, running a portable version of Sun Microsystems’ Java. Because Java was a competitor of C++ and aimed at professional programmers, Netscape also wanted a lightweight interpreted language that would complement Java by appealing to nonprofessional programmers, like Microsoft’s Visual Basic (see JavaScript and Java).

JavaScript Birth at Netscape

Although it was developed under the name Mocha, the language was officially called LiveScript when it first shipped in beta releases of Netscape Navigator 2.0 in September 1995, but it was renamed JavaScript when it was deployed in the Netscape browser version 2.0B3.

JavaScript Birth at Netscape

The change of name from LiveScript to JavaScript roughly coincided with Netscape adding support for Java technology in its Netscape Navigator web browser. The final choice of name caused confusion, giving the impression that the language was a spin-off of the Java programming language, and the choice has been characterized by many as a marketing ploy by Netscape to give JavaScript the cachet of what was then the hot new web programming language.

JavaScript Server-side JavaScript

Netscape introduced an implementation of the language for server-side scripting (SSJS) with Netscape Enterprise Server, first released in December, 1994 (soon after releasing JavaScript for browsers). Since the mid-2000s, there has been a proliferation of server-side JavaScript implementations. Node.js is one recent notable example of server-side JavaScript being used in real-world applications.

JavaScript Adoption by Microsoft

JavaScript very quickly gained widespread success as a client-side scripting language for web pages. Microsoft introduced JavaScript support in its own web browser, Internet Explorer, in version 3.0, released in August 1996.[not in citation given] Microsoft’s webserver, Internet Information Server, introduced support for server-side scripting in JavaScript with release 3.0 (1996). Microsoft started to promote webpage scripting using the umbrella term Dynamic HTML.

JavaScript Adoption by Microsoft

Microsoft’s JavaScript implementation was later renamed JScript to avoid trademark issues. JScript added new date methods to fix the Y2K-problematic methods in JavaScript, which were based on Java’s java.util.Date class.

JavaScript Standardization

In November 1996, Netscape announced that it had submitted JavaScript to Ecma International for consideration as an industry standard, and subsequent work resulted in the standardized version named ECMAScript

JavaScript Standardization

A fourth edition of the ECMAScript standard was not released and does not exist. Fifth edition of the Ecmascript standard was released in December 2009. The current edition of the ECMAScript standard is 5.1, released in June 2011.

JavaScript Later developments

The result was a proliferation of comprehensive frameworks and libraries, improved JavaScript programming practices, and increased usage of JavaScript outside of web browsers, as seen by the proliferation of server-side JavaScript platforms.

JavaScript Later developments

In January 2009, the CommonJS project was founded with the goal of specifying a common standard library mainly for JavaScript development outside the browser.

JavaScript Trademark

Today, “JavaScript” is a trademark of Oracle Corporation. It is used under license for technology invented and implemented by Netscape Communications and current entities such as the Mozilla Foundation.

JavaScript Features

The following features are common to all conforming ECMAScript implementations, unless explicitly specified otherwise.

JavaScript Imperative and structured

Like C, JavaScript makes a distinction between expressions and statements

JavaScript Dynamic

As in most scripting languages, types are associated with values, not with variables. For example, a variable x could be bound to a number, then later rebound to a string. JavaScript supports various ways to test the type of an object, including duck typing.

JavaScript Dynamic

JavaScript has a small number of built-in objects such as Function and Date.

JavaScript Dynamic

Run-time evaluation

JavaScript Dynamic

JavaScript includes an eval function that can execute statements provided as strings at run-time.

JavaScript Functional

Functions are first-class; they are objects themselves

JavaScript Prototype-based

JavaScript uses prototypes where many other object oriented languages use classes for inheritance. It is possible to simulate many class-based features with prototypes in JavaScript.

JavaScript Prototype-based

Functions as object constructors

JavaScript Prototype-based

While it is possible to modify the Object prototype, it is generally considered bad practice because most objects in Javascript will inherit methods and properties from the Object prototype and they may not expect the prototype to be modified.

JavaScript Prototype-based

Unlike many object-oriented languages, there is no distinction between a function definition and a method definition. Rather, the distinction occurs during function calling; when a function is called as a method of an object, the function’s local this keyword is bound to that object for that invocation.

JavaScript Miscellaneous

JavaScript typically relies on a run-time environment (e.g. a web browser) to provide objects and methods by which scripts can interact with the environment (e.g. a webpage DOM). It also relies on the run-time environment to provide the ability to include/import scripts (e.g. HTML