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 polemical 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 language 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 on 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">Regular expression</span> Sequence of characters that forms a search pattern

A regular 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 which supports multiple programming paradigms. 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. Encapsulation allows developers to present a consistent and usable interface which is independent of how a system is implemented internally. As one example, encapsulation can be used to hide the values or state of a structured data object inside a class, preventing direct access to them by clients in a way that could expose hidden implementation details or violate state invariance maintained by the methods.

<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.

Thoughtworks is a publicly owned, global technology company with 49 offices in 18 countries. It provides software design and delivery, and tools and consulting services. The company is closely associated with the movement for agile software development, and has contributed to open source products. Thoughtworks' business includes Digital Product Development Services, Digital Experience and Distributed Agile software development.

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

LAMP is an acronym denoting one of the most common software stacks for many of the web's most popular applications. However, LAMP now refers to a generic software stack model and its components are largely interchangeable.

<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 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.

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 a data model to produce result documents. 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">Merb</span>

Merb is a discontinued model–view–controller web framework in Ruby, notable as a precursor to Rails 3. It brought increased focus on speed and modularity to Rails 3. The name Merb is a contraction of "Mongrel" and "Erb".

Google App Engine is a cloud computing platform as a service for developing and hosting web applications in Google-managed data centers. Applications are sandboxed and run across multiple servers. App Engine offers automatic scaling for web applications—as the number of requests increases for an application, App Engine automatically allocates more resources for the web application to handle the additional demand.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

Heroku is a cloud platform as a service (PaaS) supporting several programming languages. One of the first cloud platforms, Heroku has been in development since June 2007, when it supported only the Ruby programming language, but now supports Java, Node.js, Scala, Clojure, Python, PHP, and Go. For this reason, Heroku is said to be a polyglot platform as it has features for a developer to build, run and scale applications in a similar manner across most languages. Heroku was acquired by Salesforce in 2010 for $212 million.

<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.

Object-Oriented Programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields, and the code is in the form of procedures.

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.

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.