The Red Pill

from LispUsersAreArrogant

"Lisp is like TheRedPill -- after you take it, you think that maybe you should start killing other programmers who don't know any better and seem opposed to taking TheRedPill anyway. This wears off eventually, and you focus on building your own little submarines that fly. Occasionally popping into the net and fighting mythological creatures like trolls, or offering strangers odd red candies."


It is not unusual for a programmer coming across a new language, paradigm, editor, IDE, etc. that fits their particular mindset very well to experience a ConversionExperience? - they realize that they have found IT, whatever they think 'it' is. While this usually fades with time and the abrasive effects of reality on this idealized image, in the case of things which are marginalized in mainstream IT, the 'us vs them' aspect can reinforce the belief that 'we' have found something special and magical that would TakeOverTheWorld? if only 'they' understood. Unfortunately, this attitude often only serves to marginalize 'it' (and the programmers) even further. As a result, many take a guerilla approach, trying to convert other programmers by example, hoping to lead them to the same epiphany they had. - JayOsako


A typical example of this from a recent posting to the PLT Scheme mailing list by PedroPinto?:

For reasons that are unimportant right now, I found myself in need of a tcp re-director, i.e. a program that can re-direct traffic from a local port to a foreign host/port. Not knowing enough Unix to conjure up the appropriate command line, and more importantly, certain that playing with Scheme would be far more enjoyable than deciphering badly written man pages, I decided to fire up MzScheme. To my delight it took me less than 10 minutes (I am a bit slow) to write and test the script below. The relevant core of script implements a robust, multi-threaded redirecting function. In 7 lines of code.

Try that in Java, C# or any other billion dollar framework.

Thanks guys, for a glimpse into what programming would look like if we had proper tools.

 #!/usr/bin/mzscheme -r

; syntax: redirect <source-port> <target-port> <target-host> ; - Redirects tcp traffic from <source-por> into <target-port> <target-host>

(require (lib "cmdline.ss") (lib "thread.ss"))

(define (redirect source-port target-port target-host) (run-server source-port (lambda (s-in s-out) (let-values (((t-in t-out) (tcp-connect target-host target-port))) (thread (lambda() (copy-port s-in t-out))) (copy-port t-in s-out))) #f))

(command-line "redirect" (current-command-line-arguments) (help-labels "Redirects connections to <source-port> to <target-port> <target-host>") (args (source-port target-port target-host) (redirect (string->number source-port) (string->number target-port) target-host)))


see PinkyAndTheBrainLanguage, SmugLispWeenie, ObjectWeenie, RelationalWeenie


EditText of this page (last edited March 1, 2005) or FindPage with title or text search