Elliotte Rusty Harold

Last updated

Elliotte Rusty Harold (born ca. 1960) is an American computer scientist, lecturer and author of several books on Java and XML and the creator of XOM, an open source Java class library for processing XML data. [1]

Java (programming language) Object-oriented programming language

Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to "bytecode" that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The language derives much of its original features from SmallTalk, with a syntax similar to C and C++, but it has fewer low-level facilities than either of them. As of 2016, Java was one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers.

An open-source license is a type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions. This allows end users and commercial companies to review and modify the source code, blueprint or design for their own customization, curiosity or troubleshooting needs. Open-source licensed software is mostly available free of charge, though this does not necessarily have to be the case. Licenses which only permit non-commercial redistribution or modification of the source code for personal use only are generally not considered as open-source licenses. However, open-source licenses may have some restrictions, particularly regarding the expression of respect to the origin of software, such as a requirement to preserve the name of the authors and a copyright statement within the code, or a requirement to redistribute the licensed software only under the same license. One popular set of open-source software licenses are those approved by the Open Source Initiative (OSI) based on their Open Source Definition (OSD).

XML Markup language developed by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The W3C's XML 1.0 Specification and several other related specifications—all of them free open standards—define XML.

Contents

Life and work

Harold was born and raised in New Orleans, where his father Elliotte Harold Jr. was working as lawyer.

In a bio for an IBM DeveloperWorks article written by Harold, he claimed to have learned 14 computer programming languages, beginning with Fortran and AppleSoft BASIC and extending most recently to Haskell. "Java was probably his eighth language, and the one he's taken farther than any other," the bio states. [2]

IBM Developer is a free web-based professional network and technical resource center from IBM for software developers, IT professionals, and students worldwide. The site attracts over 5 million unique visitors per month in 195 countries, and is designed to help users develop and master skills, solve problems, collaborate with peers, and stay ahead of the latest trends in open standards and IBM technologies.

Fortran General-purpose programming language

Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.

Haskell (programming language) Functional programming language

Haskell is a statically typed, purely functional programming language with type inference and lazy evaluation. Type classes, which enable type-safe operator overloading, originated in Haskell. Its main implementation is the Glasgow Haskell Compiler. It is named after logician Haskell Curry.

Harold was an adjunct professor in the Computer Science Department of Polytechnic University of New York. He is the longtime publisher of the Cafe au Lait and Cafe con Leche websites devoted to Java and XML, respectively. [1] He was a contributor to JDOM, a popular open source XML library for Java. At the New York XML SIG in 2002, he unveiled XOM and offered this explanation for its creation: "XOM is based on more than two years' experience with JDOM development, as well as the last year's effort writing Processing XML with Java. While documenting the various APIs I found lots of things to like and not like about all the APIs, and XOM is my effort to synthesize the best features of the existing APIs while eliminating the worst." [3]

Selected publications

International Standard Book Number Unique numeric book identifier

The International Standard Book Number (ISBN) is a numeric commercial book identifier which is intended to be unique. Publishers purchase ISBNs from an affiliate of the International ISBN Agency.

Related Research Articles

Document Object Model convention for representing and interacting with objects in HTML, XHTML and XML documents

The Document Object Model (DOM) is a cross-platform and language-independent application programming interface that treats an HTML, XHTML, or XML document as a tree structure wherein each node is an object representing a part of the document. The DOM represents a document with a logical tree. Each branch of the tree ends in a node, and each node contains objects. DOM methods allow programmatic access to the tree; with them one can change the structure, style or content of a document. Nodes can have event handlers attached to them. Once an event is triggered, the event handlers get executed.

Martin Fowler (software engineer) British programmer

Martin Fowler is a British software developer, author and international public speaker on software development, specialising in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.

XSLT is a language for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subsequently be converted to other formats, such as PDF, PostScript and PNG. XSLT 1.0 is widely supported in modern web browsers.

Cocoa is Apple's native object-oriented application programming interface (API) for its desktop operating system macOS.

In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. It is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

AspectJ is an aspect-oriented programming (AOP) extension created at PARC for the Java programming language. It is available in Eclipse Foundation open-source projects, both stand-alone and integrated into Eclipse. AspectJ has become a widely used de facto standard for AOP by emphasizing simplicity and usability for end users. It uses Java-like syntax, and included IDE integrations for displaying crosscutting structure since its initial public release in 2001.

Apache Struts 1 open-source web application framework

Apache Struts 1 is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. It was originally created by Craig McClanahan and donated to the Apache Foundation in May 2000. Formerly located under the Apache Jakarta Project and known as Jakarta Struts, it became a top-level Apache project in 2005.

XInclude is a generic mechanism for merging XML documents, by writing inclusion tags in the "main" document to automatically include other documents or parts thereof. The resulting document becomes a single composite XML Information Set. The XInclude mechanism can be used to incorporate content from either XML files or non-XML text files.

Robert M. Love is an American author, speaker, Google engineer, and open source software developer.

David Megginson is a Canadian computer software consultant and developer, specializing in open-source software development and application. He was the lead developer and original maintainer of the Simple API for XML, or SAX, a leading streaming API for XML.

Hibernate ORM is an object-relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object-relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

Apache Geronimo open source application server developed by the Apache Software Foundation

Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license.

Streaming API for XML (StAX) is an application programming interface (API) to read and write XML documents, originating from the Java programming language community.

Shelley Powers is an American author, web developer and technology architect. She works with and writes about open source, LAMP technologies and web service development, CSS/XHTML design, web graphics and the use of these technologies in the semantic web.

Michael J. Fitzgerald (writer) American writer

Michael James Fitzgerald is an American writer. He is the author of more than 20 books, and is best known for his technical books.

Xerlin is an open source XML editor for the Java 2 platform released under an Apache style license. The project is a Java based XML modeling application written to make creating and editing XML files easier. The latest version of Xerlin is 1.3, which was released in May 2005.

XQuery is a query and functional programming language that queries and transforms collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats. The language is developed by the XML Query working group of the W3C. The work is closely coordinated with the development of XSLT by the XSL Working Group; the two groups share responsibility for XPath, which is a subset of XQuery.

XOM is a XML document object model for processing XML with Java that strives for correctness and simplicity.

A Processing Instruction (PI) is an SGML and XML node type, which may occur anywhere in the document, intended to carry instructions to the application.

References

  1. 1 2 Bill Venners (Sep 8, 2003). "The Human Side of XML: A Conversation with Elliotte Rusty Harold, Part I". Artima. Retrieved May 15, 2014.
  2. Elliotte Rusty Harold (January 12, 2010). "Speaking the Java language without an accent". IBM DeveloperWorks. Retrieved October 29, 2014.
  3. Elliotte Rusty Harold (Sep 18, 2002). "September 2002 Java News". Cafe au Lait. Retrieved May 15, 2014.