Douglas Crockford

Last updated

Douglas Crockford
Douglas Crockford, February 2013.jpg
Crockford in 2013
Alma mater San Francisco State University
OccupationSenior JavaScript Architect
EmployerVirgule-Solidus
Known for JavaScript Object Notation
Website crockford.com

Douglas Crockford is an American computer programmer who is involved in the development of the JavaScript language. He specified the data format JSON (JavaScript Object Notation), and has developed various JavaScript related tools such as the static code analyzer JSLint and minifier JSMin. [1] He wrote the book JavaScript: The Good Parts, published in 2008, followed by How JavaScript Works in 2018. He was a senior JavaScript architect at PayPal until 2019, and is also a writer and speaker on JavaScript, JSON, and related web technologies.

Contents

Education

Crockford earned a degree in Radio and Television from San Francisco State University [2] in 1975. He took classes in FORTRAN and worked with a university lab's computer. [3]

Career

Crockford purchased an Atari 8-bit computer in 1980 and wrote the game Galahad and the Holy Grail for the Atari Program Exchange (APX), which resulted in Chris Crawford hiring him at Atari, Inc. While at Atari, Crockford wrote another game, Burgers!, for APX [4] and a number of experimental audio/visual demos that were freely distributed. [5] [6]

After Warner Communications sold the company, he joined National Semiconductor. In 1984 Crockford joined Lucasfilm, [3] and later Paramount Pictures. He became known on video game oriented listservs in the early 1990s after he posted his memoir "The Expurgation of Maniac Mansion" to a video gaming bulletin board. The memoir documented his efforts to censor the computer game Maniac Mansion to Nintendo's satisfaction so that they could release it as a cartridge, and Crockford's mounting frustrations as Nintendo's demands became more obscure and confusing. [7]

Together with Randy Farmer and Chip Morningstar, Crockford founded Electric Communities and was its CEO from 1994 to 1995. He was involved[ clarification needed ] in the development of the programming language E. [8]

Crockford was the founder of State Software (also known as Veil Networks) and its CTO from 2001 to 2002. [9]

During his time at State Software, Crockford popularized the JSON data format, based upon existing JavaScript language constructs, as a lightweight alternative to XML. He obtained the domain name json.org in 2002, and put up his description of the format there. [10] In July 2006, he specified the format officially, as RFC 4627. [11]

He worked at Yahoo for many years.[ citation needed ]

Opinions on JavaScript

In 2008 Crockford published a book announcing his discovery that JavaScript, contrary to prevailing opinion, has good parts. He describes this as "heresy", and as "maybe the first important discovery of the 21st century", noting that it came as a "big surprise to the JavaScript community, and the world at large." [12] He attributes the discovery to his having read the ECMAScript Standard, which he says "literally changed my life." [13] He also notes that the specification document is of "extremely poor quality", "hard to read", "hard to understand", and says that the ECMA and the TC39 committee "should be deeply embarrassed". [14]

Software license for "Good, not Evil"

In 2002, in reference to President George Bush's war on "evildoers", Crockford started releasing his JSMin software under a customized open source MIT License, with the added requirement that "The Software shall be used for Good, not Evil". This clause was carried over to JSMin-PHP, a variation of JSMin by Ryan Grove. This software was hosted on Google Code until December 2009 when, due to the additional clause, Google determined that the license was not compliant with the definition of free and open source software, which does not permit any restriction on how software may be used. [15] [16] JSMin-PHP was forced to migrate to a new hosting provider. [17] [18] According to the GNU project, the licence conflicts with Freedom 0 of the Free Software definition, and although "it may be unenforceable, we cannot presume that", therefore non-free. [19]

Crockford's license has caused problems for some open source projects who mistook the license for an open source variant of the MIT license. Affected open source developers have asked Crockford to change the license, but he has continued to use it. [20] [21] [22] In 2022, Crockford changed the license in the JSON Java implementation to Public Domain. [23]

In media

Crockford is listed in the acknowledgements of the 1995 hardcover edition of The Diamond Age , by Neal Stephenson as Douglas (Carl Hollywood) Crockford.

Bibliography

Related Research Articles

<span class="mw-page-title-main">Configuration file</span> Software file used to configure the initial settings for a computer program

In computing, configuration files are files used to configure the parameters and initial settings for some computer programs or applications, server processes and operating system settings.

Multi Emulator Super System (MESS) was an emulator for various consoles and computer systems, based on the MAME core. It used to be a standalone program, but is now integrated into MAME . MESS emulated portable and console gaming systems, computer platforms, and calculators. The project strived for accuracy and portability and therefore was not always the fastest emulator for any one particular system. Its accuracy made it also useful for homebrew game development.

<i>Uninvited</i> (video game) 1986 video game

Uninvited is a black-and-white horror-themed point-and-click adventure game. It was originally developed for the Macintosh by ICOM Simulations and released in 1986 by Mindscape as part of the MacVenture series.

JSON is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays. It is a commonly used data format with diverse uses in electronic data interchange, including that of web applications with servers.

<i>Labyrinth: The Computer Game</i> 1986 video game

Labyrinth: The Computer Game is a graphic adventure game developed by Lucasfilm Games and published in 1986 by Activision. Based on the fantasy film Labyrinth, it tasks the player with navigating a maze while solving puzzles and evading dangers. The player's goal is to find and defeat the main antagonist, Jareth, within 13 real-time hours. Unlike other adventure games of the period, Labyrinth does not feature a command-line interface. Instead, the player uses two scrolling "word wheel" menus on the screen to construct basic sentences.

<i>Caverns of Mars</i> 1981 video game

Caverns of Mars is a vertically scrolling shooter for Atari 8-bit computers. It was written by Greg Christensen, with some features later added by Richard Watts, and published by the Atari Program Exchange (APX) in 1981. Caverns of Mars became the best selling APX software of all-time and was moved into Atari, Inc.'s official product line, first on diskette, then on cartridge.

Minification is the process of removing all unnecessary characters from the source code of interpreted programming languages or markup languages without changing its functionality. These unnecessary characters usually include white space characters, new line characters, comments, and sometimes block delimiters, which are used to add readability to the code but are not required for it to execute. Minification reduces the size of the source code, making its transmission over a network more efficient. In programmer culture, aiming at extremely minified source code is the purpose of recreational code golf competitions.

<span class="mw-page-title-main">Eclipse Public License</span> Free software license similar to the Common Public License

The Eclipse Public License (EPL) is a free and open source software license most notably used for the Eclipse IDE and other projects by the Eclipse Foundation. It replaces the Common Public License (CPL) and removes certain terms relating to litigations related to patents.

Chip Morningstar is an American software architect, mainly for online entertainment and communication.

Comet is a web application model in which a long-held HTTPS request allows a web server to push data to a browser, without the browser explicitly requesting it. Comet is an umbrella term, encompassing multiple techniques for achieving this interaction. All these methods rely on features included by default in browsers, such as JavaScript, rather than on non-default plugins. The Comet approach differs from the original model of the web, in which a browser requests a complete web page at a time.

<span class="mw-page-title-main">YUI Library</span>

The Yahoo! User Interface Library (YUI) is a discontinued open-source JavaScript library for building richly interactive web applications using techniques such as Ajax, DHTML, and DOM scripting. YUI includes several cores CSS resources. It is available under a BSD License. Development on YUI began in 2005 and Yahoo! properties such as My Yahoo! and the Yahoo! front page began using YUI in the summer of that year. YUI was released for public use in February 2006. It was actively developed by a core team of Yahoo! engineers.

Atari Program Exchange (APX) was a division of Atari, Inc. that sold software via mail-order for Atari 8-bit computers from 1981 until 1984. Quarterly APX catalogs were sent to all registered Atari 8-bit owners. APX encouraged any programmer, not just professionals, to submit video games, educational software, applications, and utilities. A few internally developed Atari products were sold through APX, such as Atari Pascal, the developer handbook De Re Atari, and a port of the arcade video game Kangaroo.

<span class="mw-page-title-main">Etherpad</span> Open-source web-based collaborative real-time editor

Etherpad is an open-source, web-based collaborative real-time editor, allowing authors to simultaneously edit a text document, and see all of the participants' edits in real-time, with the ability to display each author's text in their own color. There is also a chat box in the sidebar to allow meta communication.

<span class="mw-page-title-main">Apache Pivot</span> Open-source platform for building applications in Java

Apache Pivot is an open-source platform for building rich web applications in Java or any JVM-compatible language. It is released under the Apache License version 2.0.

<span class="mw-page-title-main">JSLint</span> JavaScript static code analysis tool

JSLint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules. It is provided primarily as a browser-based web application accessible through the domain jslint.com, but there are also command-line adaptations. It was created in 2002 by Douglas Crockford.

npm JavaScript package manager

npm is a package manager for the JavaScript programming language maintained by npm, Inc., a subsidiary of GitHub. npm is the default package manager for the JavaScript runtime environment Node.js and is included as a recommended feature in the Node.js installer.

<span class="mw-page-title-main">Three.js</span> JavaScript library for 3D graphics

Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.

JSHint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules. JSHint was created in 2011 by Anton Kovalyov as a fork of the JSLint project. Anton and others felt JSLint was getting "too opinionated", and did not allow enough customization options. The JSHint maintainers publish both an online version, and a command-line version.

Metasfresh is an open-source, free ERP software designed and developed for SMEs. Metasfresh is an actively maintained fork of ADempiere and can be used and distributed freely. It does not require a contributor license agreement from partners or contributors. While numerous open-source ERP projects exist, Metasfresh was included in the Top 9 Open Source ERPs to Consider by opensource.com.

This is a list of articles related to the JavaScript programming language.

References

  1. "JSMIN, The JavaScript Minifier". Crockford.com. December 4, 2003. Retrieved January 31, 2013.
  2. Douglas Crockford speaker biography Archived February 6, 2007, at the Wayback Machine , New Paradigms for Using Computers conference, IBM Almaden Research Center, August 22, 1996
  3. 1 2 Boosman, Frank (March 1987). "Designer Profile: Doug Crockford". Computer Gaming World (interview). p. 40.
  4. "Atari Program Exchange: Burgers!". atariarchives.org.
  5. "Hollywood Medieval demo for Atari 8-bit". YouTube. November 26, 2012. Archived from the original on December 15, 2021.
  6. "Ballsong Nr 1 demo for Atari 8-bit". YouTube. February 21, 2012. Archived from the original on December 15, 2021.
  7. The Expurgation of Maniac Mansion: A Memoir by Douglas Crockford
  8. Seibel, Peter (December 21, 2009). Coders at Work: Reflections on the Craft of Programming. Apress. pp. 95–96. ISBN   9781430219491.
  9. "Douglas Crockford". GLOBAL PROGRAMMERS STORIES. February 15, 2015. Retrieved August 7, 2023.
  10. JSON: The Fat-Free Alternative to XML, Douglas Crockford, December 6, 2006
  11. RFC 4627: The application/json Media Type for JavaScript Object Notation (JSON)
  12. Crockford, Douglas (March 11, 2011). "Heresy & Heretical Open Source: A Heretic's Perspective". InfoQ. Retrieved September 19, 2022.
  13. "How JavaScript Works: Sample Chapter". www.howjavascriptworks.com. Retrieved September 19, 2022.
  14. "JavaScript: The World's Most Misunderstood Programming Language". www.crockford.com. Retrieved September 19, 2022.
  15. "The Open Source Definition | Open Source Initiative". Opensource.org. February 22, 1999. Retrieved January 31, 2013.
  16. "OSI FAQ entry on 'evil'". Opensource.org. October 21, 2007.
  17. Shankland, Stephen (December 28, 2009). "'Don't-be-evil' Google spurns no-evil software | Deep Tech - CNET News". News.cnet.com. Archived from the original on October 25, 2012. Retrieved January 31, 2013.
  18. wonko.com (December 8, 2009). "JSMin isn't welcome on Google Code". wonko.com. Retrieved January 31, 2013.
  19. Stallman, Richard. "Licence List". GNU.org.
  20. directhex (November 9, 2012). "Archive » Evil, or why Douglas Crockford is harmful to Free Software". Apebox.Org. Retrieved January 31, 2013.
  21. "JSON.org License Literally Says it "shall be used for Good, not Evil" | Hacker News". News.ycombinator.com. January 30, 2012. Retrieved January 31, 2013.
  22. "Bug #63520 JSON extension includes a problematic license statement". bugs.php.net. January 30, 2014. Retrieved January 30, 2014.
  23. "Public Domain". GitHub . August 23, 2022. Retrieved July 24, 2023.