📜 ⬆️ ⬇️

Programming language developer checklist

So, you are going to create a new [] functional, [] imperative, [] object-oriented, [] procedural, [] stack, [] multi-paradigm, [] fast, [] statically-typed, [] dynamically-typed, [] clean, [] rich, [] non-artificial, [] visual, [] simple for beginners, [] simple even for non-programmers, [] absolutely incomprehensible programming language.

Will not work. And that's why.


You most likely believe that:

[] Syntax is what makes a language difficult.
[] Garbage collection is free
[] Computers have infinite memory
[] No one really needs:

[] The whole world communicates in 7-bit ASCII
[] Scaling for large projects will be easy
[] It will be easy to convince programmers to use the new language
[] It will be easy to convince programmers to use the new IDE
[] All programmers love templates
[] You will not be confounded by the designation of some behavior as "indefinite"
')
Unfortunately, in your language there is (no):

[] normal syntax, [] dot_capture_ at end of line, [] problem of tabs \ spaces, [] macros, [] implicit type conversion, [] explicit type conversion, [] inheritance, [] goto, [] exceptions, [] closures, [] tail recursion, [] subroutines, [] reflection, [] subtypes, [] multiple inheritance, [] operator overload, [] algebraic data types, [] recursive data types, [] polymorphic data types, [] monads, [] dependent data types, [] prefix \ postfix operators, [] nested comments, [] line breaks, [] regular expressions, [] calls by name, [] calls by address.

And there are such philosophical obstacles:

[] Programmers are not required to fully understand the theory of relativity and quantum mechanics to write in your language "Hello, World!"
[] Programmers should not develop tunnel syndrome while writing “Hello, World!” In your language
[] So far, the most outstanding program in your language is the compiler of your language.
[] So far in your language you can't even write a compiler for your language.
[] And you have no specifications
[] Implementation - here is the specification

[] Your type system is defective.
[] Some constructions of your language may not be interpreted unambiguously

[] The name of your language makes it impossible to search it in Google
[] Your language is interpretable, which means it will never be as fast as C
[] Your language is compiled, which means it will never be flexible
[] Compiling your language requires artificial intelligence.
[] You are counting on optimizations that, frankly, are not able to implement
[] There are less than 100 programmers in the world who are smart enough to use your language.
[] The task ________________, which is solved for everyone in polynomial time, is realized in your language only for exponential
[] And the task __________________ cannot be realized at all

In addition, your implementation has the following disadvantages:

[] CPU does not work the way you think
[] RAM does not work the way you think
[] VM does not work the way you think
[] And compilers do not work as you think.
[] Moreover, they could never even work like that.
[] Shift-convolution conflicts in the course of parsing are solved by the rand () method
[] For some reason you need the presence of a compiler in runtime.
[] For some reason, you need runtime in the compiler
[] Errors generated by your compiler are mysterious and incomprehensible
[] The compiler falls even from the slanting glance
[] You do not understand the basic principles of optimization
[] You do not understand the basic principles of system programming
[] You don't understand pointers
[] You do not understand the function

And there are some marketing problems:

[] You have nothing to answer the request to increase the speed of work
[] You have nothing to answer the request to simplify the language
[] You fake benchmarks insolently

[] Although this did not help and no one seriously believed that your language was faster than

[] You have rejected the classical theory of programming language development without any proof.
[] You have dropped the basics of system programming without proof.
[] You have dropped the theory of algorithms without any proof
[] Yes, you generally rejected all computer science

Looking at all this in general, it should be noted that:

[] Your “short” example for 2 dozen lines can be implemented in one line in the __________ language
[] Unsafe imperative language already exists
[] Safe imperative language already exists
[] There is already a safe, statically-typed functional language.
[] You re-invented Lisp, only worse
[] You re-invented javascript, only worse
[] You re-invented Java, only worse
[] You re-invented C ++, only worse
[] You re-invented PHP, only worse
[] You have re-invented PHP better, but you cannot prove anything to anyone
[] You re-invented Brainfuck, only unlike its authors - quite seriously

Well, that's what I think about you:

[] You are well done, you have some interesting ideas. But it does not take off.
[] It turned out bad language and you should be ashamed of him.
[] Programming in this language is the most appropriate punishment for your invention.

Source: https://habr.com/ru/post/130362/


All Articles