Skip to content
This repository has been archived by the owner on Nov 13, 2021. It is now read-only.

Latest commit

 

History

History
109 lines (82 loc) · 3.34 KB

new.md

File metadata and controls

109 lines (82 loc) · 3.34 KB
layout title
page
Add new language that

{% include beta.html %}

{{ site.title }} → read what good page must contain and then add new page or update existing page

What does good page must contain

Here is list of basic "chapters" of good article with title "Why <language> sucks". They are not mandatory - you may add your own or replace existing items, but we encourage you to cover all aspects of language at least with following parts:

  1. Syntax - if language's syntax is fucked.
  2. Types - if language's type system is fucked.
  3. Missing features - if language miss any mandatory features.
  4. Perfomance - especially for scripting languages is the most problematic part.
  5. Toolchain - if tooling around language is fucked.
  6. Community - if language's maintainers/contributors are ignore community, rejects proposals or community do something weird.

But strict "1. Reason, 2. Reason, 3. Reason" without any explanation, code examples, links to benchmarks or other related resources is not very usable, especially for newcomers. So, try to add som good references (for you website/blog/git too, if it's good for topic).

How to add new language page

  • Open [new file page on github]({{ site.repo}}new/master/why)
  • Set filename in format <language>.md, eg: javascript.md
  • In file content set metadata (on top of the file) structure:
---
layout: language
title: <Language Name>
author: <your name>
---

Example:

---
title: PHP
layout: language
date: 2017
author: theory.org
---
  • Fill reasons with descriptions and examples "why <language> sucks" in list format:
# Syntax

* Reason 1 - description `some code example`
* Reason 2 - yet again, description and `some code example`
* ...

echo("code listings with examples are good idea!\n");

# Types

* Reason 1 - description `some code example`
* Reason 2 - yet again, description and `some code example`
* ...

# Missing features

* Feature 1 - description
* Feature 2 - description
* ...

# Toolchain

* Reason 1 - description `some code example`
* Reason 2 - yet again, description and `some code example`
* ...

# Community

* Reason 1 - description
* Reason 2 - yet again, description
* ...

Example (result on website):

* `'0'`, `0`, and `0.0` are false, but `'0.0'` is true
* Because it's [a fractal of a bad design](https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/) and it [makes me sad](http://phpsadness.com/).
* The documentation is not versioned. There is a single version of the docs that you are supposed to use for php4.x, php5, php5.1...
* There is no general concept of an identifier. Some identifiers (like variable names) are case sensitive, others case insensitive (like function calls):

 $x = Array();
 $y = array();
 $x == $y; # is true
 $x = 1;
 $X = 1;
 $x == $X; # is true

aaaand create a Pull Request. Your submission will be reviewed and merged to website ASAP.

How to update existing page

  • Open page that you want to update (add new "fucks", remove outdated "fucks" or rearrange them), example: JavaScript
  • Click on Edit on GitHub link on top right or bottom right corners
  • Make changes...
  • aaaand create a Pull Request. Your submission will be reviewed and merged to website ASAP.