Zed Shaw

Last updated
Zed Shaw
Zed Shaw in Montreal cropped.jpg
Shaw in Montreal, 2008
OccupationSoftware developer

Zed A. Shaw is a software developer best known for creating the Learn Code the Hard Way series of programming tutorials, as well as for creating the Mongrel web server for Ruby web applications. [1] He is also well known for his controversial views on programming languages and communities.

Contents

Software

Shaw authored the Mongrel web server for Ruby web applications. [2] Mongrel was the first web server used by Twitter, and inspired Node.js, according to its creator Ryan Dahl. [3] Mongrel2 is the language-agnostic successor to Mongrel.

He has also written a Python mail server called Lamson, [4] on which the mailing list site LibreList is built.

Learn Code the Hard Way

Shaw is the author of learncodethehardway.org, which offers to teach users Python, Ruby, C, Regex, and SQL. [5]

Polemics and controversies

Shaw has been outspoken in his criticism of certain programming languages and technical communities.

Ruby on Rails

His most famous and well-covered piece was the article "Rails is a Ghetto" [6] [7] which has since been removed from his site. [8]

Opposition to Python 3

"There is a high probability that Python 3 is such a failure it will kill Python." - Zed Shaw

Shaw has a long-standing rant opposing Python 3, where he finds the new string type difficult to use, and as a result believes it should not be adopted. Nonetheless, in February 2017 he published a first draft of Learn Python 3 The Hard Way. [9] [ better source needed ]

He stated in November 2016 that "Python 3 is not Turing complete" due to claims from Python project developers that Python 2 code cannot be made to run in the Python 3 VM. [10] This statement has drawn a lot of criticism. [11]

Criticism of certain behaviors within startup culture

Shaw has spoken about the amounts of vague and misleading information that is pervasive in the startup and entrepreneur culture, particularly concerning self-proclaimed startup advisors or entrepreneurship "gurus", having demonstrated publicly how some notable figures in the industry appear to speak and provide advice from a background of success that they never actually attained. [12]

Shaw is also behind an initiative entitled "Programming, Motherfucker", whose manifesto claims that programmers are "tired of being told we're socially awkward idiots who need to be manipulated to work in a Forced Pair Programming chain gang." [13]

Books

Related Research Articles

<span class="mw-page-title-main">Kent Beck</span> American software engineer

Kent Beck is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 original signatories of the Agile Manifesto, the founding document for agile software development. Extreme and Agile methods are closely associated with Test-Driven Development (TDD), of which Beck is perhaps the leading proponent.

<span class="mw-page-title-main">Python (programming language)</span> General-purpose programming language

Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.

<span class="mw-page-title-main">Regular expression</span> Sequence of characters that forms a search pattern

A regular expression, sometimes referred to as rational expression, is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation. Regular expression techniques are developed in theoretical computer science and formal language theory.

<span class="mw-page-title-main">Ruby (programming language)</span> General-purpose programming language

Ruby is an interpreted, high-level, general-purpose programming language. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.

In software systems, encapsulation refers to the bundling of data with the mechanisms or methods that operate on the data. It may also refer to the limiting of direct access to some of that data, such as an object's components. Essentially, encapsulation prevents external code from being concerned with the internal workings of an object.

<span class="mw-page-title-main">Ruby on Rails</span> Server-side open source web application framework

Ruby on Rails is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer and HTML, CSS and JavaScript for user interfacing. In addition to MVC, Rails emphasizes the use of other well-known software engineering patterns and paradigms, including convention over configuration (CoC), don't repeat yourself (DRY), and the active record pattern.

JRuby is an implementation of the Ruby programming language atop the Java Virtual Machine, written largely in Java. It is free software released under a three-way EPL/GPL/LGPL license. JRuby is tightly integrated with Java to allow the embedding of the interpreter into any Java application with full two-way access between the Java and the Ruby code.

WEBrick is a Ruby library providing simple HTTP web servers. It uses basic access authentication and digest access authentication for different kinds of servers that it can create - HTTP based server, HTTPS server, proxy server and virtual-host server. Construction of several non-HTTP servers such as the Day Time Server which uses the Daytime Protocol rather than the HTTP is also facilitated by WEBrick. It is used by the Ruby on Rails and Padrino frameworks to test applications in a development environment as well as production mode for small loads. It is now a part of Ruby standard library.

<span class="mw-page-title-main">LAMP (software bundle)</span> Acronym for a common web hosting solution

A LAMP is one of the most common software stacks for the web's most popular applications. Its generic software stack model has largely interchangeable components.

<span class="mw-page-title-main">Dave Thomas (programmer)</span> British computer programmer

Dave Thomas is a computer programmer, author and editor. He has written about Ruby and together with Andy Hunt, he co-authored The Pragmatic Programmer and runs The Pragmatic Bookshelf publishing company. Thomas moved to the United States from England in 1994 and lives north of Dallas, Texas.

<span class="mw-page-title-main">Web template system</span> System in web publishing

A web template system in web publishing allows web designers and developers to work with web templates to automatically generate custom web pages, such as the results from a search. This reuses static web page elements while defining dynamic elements based on web request parameters. Web templates support static content, providing basic structure and appearance. Developers can implement templates from content management systems, web application frameworks, and HTML editors.

<span class="mw-page-title-main">Aptana</span> Text editor

Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.

Mongrel is an open-source software HTTP library and web server written in Ruby by Zed Shaw. It is used to run Ruby web applications and presents a standard HTTP interface. This makes layering other servers in front of it possible using a web proxy, a load balancer, or a combination of both, instead of having to use more conventional methods employed to run scripts such as FastCGI or SCGI to communicate. This is made possible by integrating a custom high-performance HTTP request parser implemented using Ragel.

<span class="mw-page-title-main">Template processor</span> Software designed to combine templates with a data model to produce result documents

A template processor is software designed to combine templates with data to produce resulting documents or programs. The language that the templates are written in is known as a template language or templating language. For purposes of this article, a result document is any kind of formatted output, including documents, web pages, or source code, either in whole or in fragments. A template engine is ordinarily included as a part of a web template system or application framework, and may be used also as a preprocessor or filter.

<span class="mw-page-title-main">Google App Engine</span> Cloud-based web application hosting service

Google App Engine is a cloud computing platform used as a service for developing and hosting web applications. Applications are sandboxed and run across multiple Google-managed servers. GAE supports automatic scaling for web applications, allocating more resources to the web application as the amount of requests increases. It was released as a preview in April 2008 and launched officially in September 2011.

Phusion Passenger is a free web server and application server with support for Ruby, Python and Node.js. It is designed to integrate into the Apache HTTP Server or the nginx web server, but also has a mode for running standalone without an external web server. Phusion Passenger supports Unix-like operating systems, and is available as a gem package, as a tarball, or as native Linux packages.

<span class="mw-page-title-main">Obie Fernandez</span>

Obie Fernandez is a Ruby and Ruby on Rails developer from Georgia He has authored The Rails Way and has become the editor of Addison-Wesley's Professional Ruby series. His vocal advocacy of Ruby over Java has garnered wide criticism. He was one of the cofounders of Hashrocket, a company offering Ruby development services.

CoffeeScript is a programming language that compiles to JavaScript. It adds syntactic sugar inspired by Ruby, Python, and Haskell in an effort to enhance JavaScript's brevity and readability. Specific additional features include list comprehension and destructuring assignment.

Unicorn is a Rack HTTP server to serve Ruby web applications on UNIX environment. It is optimised to be used with nginx. It is based on now deprecated Mongrel 1.1.5 from 2008.

<span class="mw-page-title-main">Michael Hartl</span> American physicist and entrepreneur

Michael Hartl is an American physicist, author, and entrepreneur. He is best known as the creator of the Ruby on Rails Tutorial, founder of Tau Day, and author of The Tau Manifesto, in which he proposes replacing pi with tau.

References

  1. Mallett, Steve (17 May 2006). "Zed on Ruby, Rails, Mongrel, and More". O'Reilly. Retrieved 2012-12-24.
  2. Eyler, Pat (24 Aug 2006). "Making waves in the Ruby world". Linux Journal. Retrieved 2012-12-24.
  3. Synodinos, Dio (13 Dec 2010). "Deep inside Node.js with Ryan Dahl". InfoQ. Retrieved 2012-12-24.
  4. Dziuba, Ted (3 July 2009). "Lamson - email app coding without the palm sweat". The Register. Retrieved 2012-12-24.
  5. Shaw, Zed. "About Learn Code The Hard Way" . Retrieved 2015-08-01.
  6. Arrington, Michael (1 Jan 2008). "Zed Shaw Puts The Smack Down On The Rails Community". TechCrunch. Retrieved 2012-12-24.
  7. Manchester, Phil (8 Jan 2008). "Uncertainty for Ruby and Rails despite changes: Zed rails, Bray dizzy". The Register. Retrieved 2012-12-24.
  8. "Rails is A Ghetto". Archived from the original on 2008-01-07.
  9. "Learn Python the Hard Way".
  10. "Learn Python the Hard Way". Archived from the original on 2016-11-23.
  11. "A Rebuttal for Python 3". 23 November 2016.
  12. "Peddling Luck - Zed Shaw [BubbleConf 2012]". 14 November 2012.
  13. "Programming, Motherfucker Do you speak it?" . Retrieved 2015-04-20.