The Worst Programming Language Ever - Mark Rendle - NDC Oslo 2021

NDC Conferences2 minutes read

A .net developer plans to create the worst programming language by combining the worst features of existing languages, introducing elements like Euro symbol variable prefixes, unique comment rules, and a strict equality check. The speaker also discusses the complexities and unique aspects of various programming languages, highlighting the importance of loops, memory management, and date formatting conventions.

Insights

  • Mark Rendall is working on creating a new programming language called "BS" that will have inconsistent naming conventions, challenging coding practices, significant whitespace like Python, and unique features like Euro symbol variable prefixes and a Greek question mark for "unless" statements, inspired by JavaScript's comparison rules.
  • The speaker highlights various programming languages' worst features, including COBOL's excessive boilerplate, APL's complexity, INTERCAL's intentional slowness, and Visual Basic's evolution from a joke language to a widely used application-building tool, emphasizing the diversity of languages and the potential for innovation in the programming language landscape.

Get key ideas from YouTube videos. It’s free

Recent questions

  • What are some examples of the worst programming languages?

    COBOL, APL, INTERCAL, Visual Basic, Gupta SQL Windows.

  • What are some unique features of the proposed language "BS"?

    Inconsistent naming, Euro symbol prefixes, arrow dereferencing, comma string concatenation, unique comment rules.

  • How does the proposed language "BS" handle exception handling?

    No "if" statements, only "unless" with a single exception named "halt and catch fire."

  • What are some of the string formats offered in the proposed language "BS"?

    ASCII, ANSI, DBCS, EBCDIC, UTF-256 with unique encoding and interpolation rules.

  • How does the proposed language "BS" handle memory management?

    Automates memory management to simplify the coding process.

Related videos

Summary

00:00

"Creating the Worst Programming Language: BS"

  • Mark Rendall, a .net developer with 30 years of experience, discusses the worst features of various programming languages.
  • He aims to combine these worst features to create the worst programming language in history.
  • Rendall highlights COBOL as the first committee-designed language with excessive boilerplate, intended for business people to write applications.
  • IBM's version of COBOL had even more boilerplate, with a complex "Hello World" program.
  • APL, created by Kenneth Iverson, was a teaching language with a simple "Hello World" program and a complex Game of Life code.
  • INTERCAL, a joke language, required polite language in coding and had a unique "come from" statement instead of "go to."
  • INTERCAL was intentionally slow, with a benchmark showing it was 17 hours slower than a FORTRAN prime number finder.
  • Visual Basic, initially a joke language, was acquired by Microsoft and used for building applications in the 90s.
  • Gupta SQL Windows, a challenging language with a unique code editor and binary file saving, was abandoned for .NET.
  • Rendall plans to create a new language, "BS," with inconsistent naming conventions, challenging coding practices, and significant whitespace like Python.
  • BS will feature Euro symbol variable prefixes, arrow dereferencing, comma string concatenation, and unique comment rules based on spacing.

17:05

"BS Code: Null, Unless, and Unique Comparisons"

  • To comment in BS code, use the slash star and star slash symbols at the beginning and end of the comment respectively.
  • Tab space and space tab on a blank line will comment out everything in between in BS code.
  • Null is a common element in all programming languages, often referred to as a billion-dollar mistake by Alan Kay.
  • Ruby introduces the "unless" keyword as an alternative to "if" for exception handling, aiming for readable code.
  • BS will not have "if" statements, only "unless" for exception handling, with a single exception named "halt and catch fire."
  • BS will use a Greek question mark instead of a semicolon for "unless" statements, inspired by JavaScript's unique comparison rules.
  • JavaScript's type coercion complexities will be adopted in BS, with additional unique comparisons like zero equals the empty string.
  • BS will introduce a strict equality check using "bang equals bang" for precise comparisons without type coercion.
  • BS will offer various string formats, including ASCII, ANSI, DBCS, EBCDIC, and UTF-256, with unique encoding and interpolation rules.
  • Macros in BS will be based on regular expressions, allowing complex string substitutions using vi or vim syntax for search and replace.

33:36

"Programming essentials: loops, memory, and languages"

  • English grammar involves using "a" or "an" based on the following word's initial letter, with "an" used before vowels or "h."
  • Mistakes in identifying data types like strings or integers can lead to compiler errors.
  • Scripted languages allow easy code inspection, while compiled languages can hide performance issues.
  • Semi-compiled languages like C# and Java compile to intermediate byte code before Just-In-Time compilation.
  • Memory management in languages like C can be complex due to manual memory allocation and deallocation.
  • Garbage-collected languages automate memory management, simplifying the coding process.
  • Rust's strict rules prevent risky programming practices, ensuring program stability.
  • In programming, loops are essential, with various loop types available in different languages.
  • The use of "goto" statements in code can be controversial but can aid in avoiding repetitive code.
  • Introducing threading in programming languages like BASIC can simplify parallel task execution.

49:32

"Date Formatting Codes in Programming Languages"

  • Date formatting in programming languages involves specific codes like lowercase yyyy for year, uppercase M for month, dd for day, hh for 12-hour clock, and lowercase mm for minutes.
  • Go programming language uses a unique date format of January 22, 2006, at 3:04:05 Mountain Time, which is considered a standard.
  • Go programming language requires a special layout parameter for date formatting, like "Monday January the 2nd 150405 MST 2006."
  • The speaker criticizes the American date format of month first, suggesting a personal date of the 21st of November 2014 at 5:10 PM Eastern European Time.
  • Audience members suggest unique features for programming languages, such as MATLAB echoing lines without semicolons and prefixing functions with "bs" in build functions.
Channel avatarChannel avatarChannel avatarChannel avatarChannel avatar

Try it yourself — It’s free.