Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

SICP Considered Harmful

Name: Anonymous 2009-09-15 19:55

Its not relevant to the industry, its badly written, and its considered harmful and detrimental to developing the skills of new programmers.  It should only be recommended for its historical value, so pretty much only if you plan to have career in academia.  Instead please recommend a book such as 'The C programming language' to newbies or ex web-designers looking to get a good foundation on the fundamentals.

I don't want to see SICP mentioned around here anymore or you will be reprimanded, please follow the lead of computer science institutions around the world and don't teach SICP anymore.  Thanks, and welcome to 2009.

Name: Anonymous 2009-09-16 0:41

>>19
I know you're trolling, but here it is:
Excessive recursion leads to stack overflows
Tail-call optimizations can be performed to turn tail-recursive calls into normal loops.
immutable state leads to SLOW AS FUCK
Ever heard of SSA form, and why C compilers perform it?
tl;dr: normal programs get transformed into more functional forms.
dynamic typing leads to SQL injection even in apps that don't use it (we've learned this from PHP).
PHP
PHP is a very poor example of dynamic typing. Coercing types implictly is stupid. For true dynamic typing: look at Common Lisp or Scheme. Variables can hold any type, but you still have to check and dispatch correctly depending on their type, this is safe, and if you do it wrong, you'll get a condition/error signaled, which is kind of the same as with more static languages, except it happens at runtime.

You're also making the false assumption that Lisp is purely functional, Scheme allows state, and Common Lisp encourages the use of which paradigm represents the problem better. If state is required, you can use it as much as you wish (and internally, it's what is normally used after optimizations are performed).

Name: Anonymous 2009-09-16 0:43

>>19

I know Lua/Ruby, but still consider myself an imperative programmer as most of my work is still in C#/Java/C.

"Excessive recursion leads to stack overflows"
This is why the functional people speak about tail recursion so much.

"immutable state leads to SLOW AS FUCK"
Not a property of functional languages. Ruby (and this bothers me) even has mutable strings. Java doesn't. This argument only sticks to theoretical functional programming, or specific instances (LISP? I don't use it), where there's a state getting modified and passed on to another function, but the state itself is never directly mutated.

"dynamic typing leads to SQL injection"
I have no idea how this relates to SQL injection. The reason so many people write shitty injectable PHP code is (1) people are generally ignorant of injection when they cook up their own php crapwad, or even worse, the stupid-ass mysql tutorials that don't even mention it, and (2) PHP has magical string-variable substitution... like ruby.

ihbt

Name: Anonymous 2009-09-16 0:45

>>21
Lisp isn't slow. Some compilers produce very good code (look at SBCL or CCL). It can be faster than Java and with proper type declaration, as fast as C. Next time you claim that, do your own benchmarks and learn your compiler well. You can examine disassembled code with (disassemble #'function) to see the generated code.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List