Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As the developer of Myrddin (http://eigenstate.org/myrddin.html), I felt the need to fill it in for my pet language:

    You appear to be advocating a new:
    [ ] functional  [ ] imperative  [ ] object-oriented  [x] procedural
    [ ] stack-based [x] "multi-paradigm"  [ ] lazy  [x] eager  
    [x] statically-typed  [ ] dynamically-typed [ ] pure  [x] impure
    [ ] non-hygienic  [ ] visual  [ ] beginner-friendly
    [ ] non-programmer-friendly  [ ] completely incomprehensible

    programming language.  Your language will not work.  Here is why it
    will not work.

    You appear to believe that:
    [ ] Syntax is what makes programming difficult
    [ ] Garbage collection is free
    [ ] Computers have infinite memory
    [x] Nobody really needs:
        [x] concurrency  [x] a REPL  [x] debugger support  [x] IDE support  [ ] I/O
        [x] to interact with code not written in your language
    [ ] The entire world speaks 7-bit ASCII
    [x] Scaling up to large software projects will be easy
    [x] Convincing programmers to adopt a new language will be easy
    [ ] Convincing programmers to adopt a language-specific IDE
        will be easy
    [ ] Programmers love writing lots of boilerplate
    [ ] Specifying behaviors as "undefined" means that programmers 
        won't rely on them
    [ ] "Spooky action at a distance" makes programming more fun

    Unfortunately, your language (has/lacks): [Lacks => L, Has => H]
    [L] comprehensible syntax  [L] semicolons  
    [L] significant whitespace  [L] macros
    [L] implicit type conversion  [H] explicit casting 
    [H] type inference [H] goto  [ ] exceptions  [x] closures
    [L] tail recursion  [L] coroutines [L(planned)] reflection 
    [L] subtyping  [L] multiple inheritance
    [L(planned)] operator overloading [H] algebraic datatypes  
    [H] recursive types  [L] polymorphic types [L] covariant array typing 
    [L] monads  [L] dependent types [H] infix operators 
    [H] nested comments [L] multi-line strings  [library] regexes 
    [H] call-by-value  [L] call-by-name [L] call-by-reference 
    [L] call-cc

    The following philosophical objections apply:
    [ ] Programmers should not need to understand category theory 
        to write "Hello, World!"
    [ ] Programmers should not develop RSI from writing "Hello, World!"
    [ ] The most significant program written in your language is 
        its own compiler
    [X] The most significant program written in your language isn't
        even its own compiler
    [ ] No language spec
    [X] Incomplete language spec
    [ ] "The implementation is the spec"
    [ ] The implementation is closed-source
            [ ] covered by patents
            [ ] not owned by you
    [X] Your type system is unsound 
    [ ] Your language cannot be unambiguously parsed
    [ ] a proof of same is attached
    [ ] invoking this proof crashes the compiler
    [ ] The name of your language makes it impossible to find on Google
    [ ] Interpreted languages will never be as fast as C
    [X] Compiled languages will never be "extensible"
    [ ] Writing a compiler that understands English is AI-complete
    [ ] Your language relies on an optimization which has 
        never been shown possible
    [ ] There are less than 100 programmers on Earth smart 
        enough to use your language
    [ ] ____________________________ takes exponential time
    [ ] ____________________________ is known to be undecidable

    Your implementation has the following flaws:
    [ ] CPUs do not work that way
    [ ] RAM does not work that way
    [ ] VMs do not work that way
    [ ] Compilers do not work that way
    [ ] Compilers cannot work that way
    [ ] Shift-reduce conflicts in parsing seem to be resolved using rand()
    [ ] You require the compiler to be present at runtime
    [ ] You require the language runtime to be present at compile-time
    [X] Your compiler errors are completely inscrutable
    [ ] Dangerous behavior is only a warning
    [X] The compiler crashes if you look at it funny
    [ ] The VM crashes if you look at it funny
    [X] You don't seem to understand basic optimization techniques
    [ ] You don't seem to understand basic systems programming
    [ ] You don't seem to understand pointers
    [ ] You don't seem to understand functions

    Additionally, your marketing has the following problems:
    [X] Unsupported claims of increased productivity
    [X] Unsupported claims of greater "ease of use"
    [ ] Obviously rigged benchmarks (Benchmarks? What are those)
    [ ] Graphics, simulation, or crypto benchmarks where your code just calls
        handwritten assembly through your FFI
    [ ] String-processing benchmarks where you just call PCRE
    [ ] Matrix-math benchmarks where you just call BLAS
    [X] Noone really believes that your language is faster than:
        [x] assembly  [x] C  [x] FORTRAN  [x] Java  [ ] Ruby  [ ] Prolog
    [x] Rejection of orthodox programming-language theory without 
        justification
    [x] Rejection of orthodox systems programming without
        justification
    [ ] Rejection of orthodox algorithmic theory without
        justification
    [ ] Rejection of basic computer science without
        justification

    Taking the wider ecosystem into account, I would like to note that:
    [x] Your complex sample code would be one line in: _______________________
    [x] We already have an unsafe imperative language
    [ ] We already have a safe imperative OO language
    [ ] We already have a safe statically-typed eager functional language
    [ ] You have reinvented Lisp but worse
    [ ] You have reinvented Javascript but worse
    [ ] You have reinvented Java but worse
    [x] You have reinvented C++ but worse
    [ ] You have reinvented PHP but worse
    [ ] You have reinvented PHP better, but that's still no justification
    [ ] You have reinvented Brainfuck but non-ironically

    In conclusion, this is what I think of you:
    [x] You have some interesting ideas, but this won't fly.
    [x] This is a bad language, and you should feel bad for inventing it.
    [x] Programming in this language is an adequate punishment for inventing it.
Side note, this isn't something serious. It's a tongue in cheek parody of this old usenet spam-fighting idea checklist meme: http://craphound.com/spamsolutions.txt


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: