>>27* slow
* not statically typed but not flexible either
* fragmented
* continuations a shit
* no threads in spec
* continuations create control flow that don't mix well with C apis for resources that are created and freed. You can't have an unwind protect like in lisp, or a finally clause.
* no support for object oriented programming.
* no method overloading. no clos
* let and let* a shit. let in general is verbose.
* libraries a shit
* allowed mutation of the global environment incurs overhead.
(+ 2 3)
can't just add 2 and 3. It needs to check if the value associated with
'+
has been modified or not.
* lists a shit
* You are encouraged to use lists and vectors for everything. Just the basic built in datastructures. Without clos it isn't easy to build a hierarchy of datatypes. define-structure a shit.
* reverse a shit
* encourages immutable code, but allows mutations. The programmer is inconvenienced but the compiler doesn't get to take advantage of pure immutability.
* masturbating to sexp and purity
* no package system until r6rs and no one uses r6rs. Barely anyone uses scheme anyway.
* syntax-rules a shit. variable capture a shit. babby's first macro system.
* delay and force will be slow and shitty if you try to actually use them
* arithmetic uses big nums and is slow and shitty compared to fixnums if fixnums could have worked.
* optimizing compilers need to do whole program analysis to get any useful information about the program and slow as fuck, taking minutes to compile normal sized programs.
* (cons 2 3) not caught at compile time.