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

Pages: 1-4041-

Why is LISP hated so much?

Name: Anonymous 2013-08-09 19:25

Isn't it okay for beginners?

Name: Anonymous 2013-08-09 19:34

LISP is hated? Where?

Name: Anonymous 2013-08-09 19:49

reconstituted pork product in gravy

Name: Anonymous 2013-08-09 20:21

i hate lisp because it has ugly stupid syntax

Name: Anonymous 2013-08-09 20:57

Because it has had too many idiots for fanboys, who have annoyed the idiots in the programming community at large.

Other than that, Racket is okay for beginners, Clojure and Common Lisp aren't.

Name: Anonymous 2013-08-09 21:24

>>5
I love Racket, r5rs, Clojure and Common Lisp.

Name: Anonymous 2013-08-09 22:50

Random Newbie: "SBCL's memory usage is completely terrible and makes it unusable. The libraries are half-assed and suck."
Amateur Lisp Dipshit: "NO IT ISN'T, IT'S BECAUSE LISP IS GOOD."
Random Newbie: "FUCK YOU I'M GOING BACK TO JAVA/RUBY/PYTHON."

If you repeat this for decades, you'll have the current state of Lisp. I hope this explains everything.

Name: Anonymous 2013-08-09 23:07

>>7
It sounds like C#, where the amateur is a Microsoftie, oder?

Name: Anonymous 2013-08-09 23:18

>>7
It also doesn't help that SBCL can't be cleanly bootstrapped from C source, so it's twenty fucking thirteen and there's still no ARM port.

Name: Anonymous 2013-08-09 23:19

>>8
Yeah, fanboys usually sound the same, no matter that they're shilling for.

Name: Anonymous 2013-08-09 23:26

I love Jews.

Name: Anonymous 2013-08-09 23:26

>>9
Nor will there ever be, since any failing of Lisp is treated as being that way because of some inherit, superior choice in the philosophy of Lisp and not incompetence. One time, when asking for help with using TrueType fonts in a Lisp project, I was asked what my "real motivations" were for using the project, as if I had dissented from a fucking cult.

Most "Lispers" grow up and write Perl or Java for The Man anyway, because they're a pack of retarded hypocrites. This leaves the "beautiful tragedy" of Lisp a continual cycle of bad libraries and stupid amateurs.

Name: Anonymous 2013-08-09 23:32

write your own libraries in lithp you stupid shitheads, nobody is forcing you to use others'

Name: Anonymous 2013-08-09 23:40

>>13
I'm sure that works out really well with all of your illustrious side projects, you stupid fuck.

When you re-implement all of your own cryptographic algorithms and protocols and don't end up with a hobbled piece of shit, it must be hard to contain your talent. There is definitely no use in having a well-tested library for anything. I've never written Lisp before at all, so I don't really understand what I'm talking about, either.

Also, nice job not directly replying since you're too much of a coward to debate directly, even anonymously, over the fucking Internet.

Fuck off and die, faggot.

Name: Anonymous 2013-08-09 23:41

>>7
How is SBCL's memory usage terrible?  It's standard behavior, intended to improve memory allocation throughput, is to allocate a certain, easily changable, amount of memory when the image is loaded. 

>>9
It wouldn't take all that much effort to get SBCL to run on ARM (as it can be bootstrapped from CLs that do run on arm, like CCL).  Adding an ARM backend would take a bit more work, and bootstrapping from C doesn't really help.

Name: Anonymous 2013-08-09 23:46

The sign of a naive programmer is that they get wrapped up in which language is best, rather than considering different tools for different jobs.
If Lisp is a hammer, and somebody asked what would be best for cutting wood they would go into a rant about how hammers are the best thing for cutting wood and how the saw companies are conspiring to keep that a secret.

Name: Anonymous 2013-08-09 23:54

>>16
Lisp's best use is as a construction kit for making other 'tools', so to speak.

Name: Anonymous 2013-08-10 0:04

>>15
SBCL's memory usage 2 years ago (when I last attempted to use it for web development) was terrible because it used too much memory. "Hello World" was 50MB, and a web application used a lot more. Nobody wants to deploy a web application like that, for something that is negligible even with Ruby. To be fair, I hate the JVM for the same reason.

It's nice that you think it's standard behavior, but Lispworks has something called a "tree shaker" which removes redundant crap from the image which greatly reduces this problem. At some point people do want to deploy the application, which SBCL was really bad at doing the last time I checked.

>>16
Pretty much. I actually like Lisp because it does feel really nice and logical when designing programs, but I find the community around the dialects frustrating and closed-minded. "Too smart to fix it" gets kind of old. If you really feel that way about the outside world, stop advocating it and talking about it and write Lisp in a cave, and stop bitching that the rest of the world doesn't write in Lisp. That said, I don't give a shit about programming these days anyway. There are too many retards and the bad ideas are too strong to be fought.

Name: Anonymous 2013-08-10 0:15

>>18
Ok, that's different than what is usually meant by memory usage.  When you dump a Common Lisp image to disk as an executable file, it dumps the runtime, compiler, interpreter, and compiled functions to disk.  SBCL in particular creates pretty large files, but basing it on a hello world executable is sort of silly.  The language includes many things by default that other languages would need libraries or entire new runtimes to support.  If it's a real issue, try CCL or one of the commercial lisps, which have tree shakers.

Name: Anonymous 2013-08-10 0:15

>>15
It wouldn't take all that much effort to get SBCL to run on ARM (as it can be bootstrapped from CLs that do run on arm, like CCL).  Adding an ARM backend would take a bit more work, and bootstrapping from C doesn't really help.

Bootstrapping from C would eliminate the large chunks of ARM assembly necessary for an SBCL port.

Name: Anonymous 2013-08-10 1:40

Name: Anonymous 2013-08-10 1:41

>>1
Why is LISP hated so much?
1. CONS-pairs simplicity is deceiving: CONS introduces mutability, together with silly notions of proper and improper lists, while impeding advanced and optimized list representations, so you can't have lists with O(log2(N)) random access, catenation and insertion, like Haskell's finger trees.
2. NIL punning (treatment of NIL of as empty list, false and void) breaks strong-typing and goes against lambda calculus, which hints us that IF should accept only TRUE and FALSE, which should be functions (Church Booleans), so all objects must be explicitly coerced to boolean for use with IF. Common Lisp has a confusing lot of NIL/CONS related predicates: there is CONSP, LISTP, ATOM, ENDP and NULL, while TYPECASE discerns between CONS, LIST, ATOM, BOOLEAN and NULL. The ATOM predicate considers NIL an atom, so if you have some code that should be invoked on every list, you can miss some empty lists. Hash-table access returns NIL, when key isn't present, making it harder to store empty lists. Some Lisps demonstrate half-broken behavior: for example, Clojure, discerning between nil and empty-list, still allows using nil in-place of empty-list; moreover, Clojure introduces true and false, duplicating nil and confusing semantics even further. NIL punning is the single worst Lisp wart, reminiscent of PHP and JavaScript horrors.
3. Non-Lispy behavior: FORMAT function competes with regular expressions in providing cryptic and unreadable DSL, indulging obfuscated code like "~{~#[<empty>~;~a~;~a and ~a~:;~@{~a~#[~;, and ~:;, ~]~}~]~:}", which could have been easily replaced with SEXP based format. On the other hand, Lisp misses string construction, like "Name=$name, Age=$age", so you have to carry FORMAT everywhere. LOOP macro employs baroque Pascal-like syntax with a lot of clauses, having complex interplay with each other, which would confuse newbies and annoy Lispers, who love simpler solutions, playing nicely with lambda calculus, like letrec.
4. Over-engineered OOP: despite Lambda Calculus prescribing using lambdas to construct objects, most Lisps implement full blown class-based OOP, like CLOS, conflicting with Lisp's minimalism and complicating semantics. Moreover, lists/conses and booleans don't have first class citizen rights in these ad-hoc object systems, meaning you can't overload CAR or CDR, so you can't implement your own lists, like, for example, a list-like interface to filesystem, where a directory could behave as a list of files and every file as a list of bytes. CLOS generics (multi-methods) clutter global scope and collide with functions. Package symbols have dynamic scope, which is argumentably bad and shouldn't be indulged, while packages are global and first-class, so you can't easily get a sandboxed environment (like Unix's chroot) by making a package with only safe functions. Instead of providing viable encapsulation, some Lisps treat the symptoms by introducing second namespace for variables, so that identifiers would have less chances to collide. Other Lisps, like Clojure, disapprove OOP, using some ad-hoc package systems and kludges, like "protocols".
5. Duplication is not the right thing: CONS duplicate arrays and lists; QUOTE duplicates QUASIQUOTE, which for some reason implemented as reader macro, so you can't overload it for you own use; LOOP duplicates DO; symbols duplicate strings; chars duplicate single-letter symbols. Package encapsulation duplicates OOP, which in turn duplicates encapsulation features provided by lexical scope. Growing from broken OOP encapsulation, there is an explosion of comparison functions, just to compare for equality we have: =, char=, string=, eq, eql, equal, equalp, tree-equal, string-equal, char-equal; worser, `eq` compares pointers and has undefined behavior, so it should be part FFI, instead of being exposed with normal interface. Analogously, AREF, SVREF, ELT, NTH, CHAR, SCHAR, BIT, SBIT - all do exactly the same.
6. Verbosity and inconsitent naming: define and lambda are most used keyword, yet take 6 character each; then we have monstrosities like destructuring-bind and remove-if-not, which could be named just bind and keep. Verbosities like MAKE-HASH-TABLE, MAKE-ARRAY and (DECLARE (INTEGER X)) ensure that you will avoid optimized structures and type-checking at all cost, making your code slower. In rare cases, when names ain't verbose, they are just cryptic, like PSETF, CDAADR and REPLACA. Macros LET and COND have especially bloated syntax: where simpler (let name value …) would have been enough, LET adds additional 2 levels of parentheses (let ((name value)) …) just to annoy you. CLOS and defstruct syntaxes are especially verbose, which is aggravated by absence of self/this context. Many people complain about absence of infix expressions, which could have been easily supported through reader macro, like {a*b+c}, and while Scheme does support infix expressions, it misses operator precedence, making it incompatible with formulas you may copy-paste from your math textbook. LISP lefts unused a lot of special characters, which otherwise would made code succinct and provided visual cues: for example, you have to write (list 1 2 3), instead of [1 2 3]. Coercion naming scheme impede composition: (y->z (x->y ...)) hides the `y` entrepot, while (z<-y (y<-x ...)) would have underlined it.
7. Missing features: While Lisp does support complex and rational numbers, it doesn't support vector arithmetic, so you have to write something like (map 'vector (vector x1 y1 z1) (vector x2 y2 z2)), making geometry and physics code exceedingly verbose. A few important functions, like SPLIT and JOIN, are missing from standard library, which for some reason includes rarely used string-trim and string-right-trim, although JOIN usually simulated with (format nil "~{~a~^-~}" '("a" "b" "c")), making code impenetrably cryptic. Absence of good type system, call-by-name (lazy evaluation) and immutability, which really makes functional programming shine. Although, Qi does provide acceptable type system and Clojure introduces immutability, we can't have all this in a single production quality Lisp. Call-by-name is more of an on-demand-feature to be used in some contexts (like implementing if/then/else special-form), but no Lisp features it, despite call-by-name being natural semantics of Lambda Calculus. Some popular Lisps, like Clojure and Common Lisp, don't even guarantee TCO (tail call optimization), meaning that expressing advanced control structures would be hard. No Lisp, beside Scheme, supports continuations - silver bullet control-flow feature, although some Lisps do support goto - limited form of continuations. "It needs to be said very firmly that LISP is not a functional language at all. My suspicion is that the success of Lisp set back the development of a properly functional style of programming by at least ten years." -- David Turner.
8. Horrible community: Lispers are unhelpful, inert and elitist, so much that they continuously fail to coordinate the development of Lisp. The backwardness of Lispers shows even in their choice of long obsolete GNU/Emacs (an orthodox command line text editor without mouse support or any GUI at all) as the only true IDE and tool for everything. Lispers are the ones who will make fun of newbies, instead of helping them. Lispers will call you "retard", if you don't know the meaning of buzzwords like "pandoric eval", "CPS" or "reversible computation".

Name: Anonymous 2013-08-10 2:00

>>21
Yep. Chicken Scheme is probably my personal favorite, but SBCL and the libraries that work with it lead in terms of activity, making them the most practical thing to turn to for a lot of complicated applications or real-world deployments. The last time I looked, there were way less libraries.

Chicken is great and is a rare exception to the problems of the Lisp community, IMO. Installing libraries is nice (it's fine in CL with Quicklisp, don't get me wrong) and still seems to be going strong.

Name: Anonymous 2013-08-10 2:00

>>23
*way less libraries for Chicken than for SBCL.

Name: Anonymous 2013-08-10 2:02

>>18
"Hello World" was 50MB, and a web application used a lot more.
Look how much your GCC, libc and Linux kernel take. SBCL is an OS in itself.

Name: Anonymous 2013-08-10 2:07

>>25 win98 can fit in 9mb  http://www.litepc.com/
Embedded Windows 98 / ME with EOS

    Images as small as 9 MB!! with the Explorer GUI
    no need for compression or ram disks
    boot times from 3-10 seconds!
    Industry proven reliability
    zero shutdown time - instant power on/off
    run from 1" hard drive, flash memory, removable USB keys whatever!

Name: Anonymous 2013-08-10 2:08

>>25
This is naive, and no, SBCL is not an OS.

Name: Anonymous 2013-08-10 2:35

Honestly, since Lispers attack the world of computing as broken-down-to-the-core (which it is), they should do something to try to change it. The thing about having superior skill is that you have to apply it and push the limits.

Here's an idea which I'd gladly donate to a Kickstarter campaign for: a Lisp-from-the-ground-up smartphone with a complete emphasis on user control and data privacy. Automatic encryption to similiar or compatible devices. Bring Lisp back in a way that's awesome and makes people give a shit.

What pisses me off is the attitude that never finishing projects while being a cynical dick about existing technology somehow makes you superior. It doesn't!

I get pissed off about Lisp because I like Lisp a lot, and the community is so blind and ignorant to the damage they do to it. They need to realize that Lisp Machines are dead and are never going to be popular again, and then move on and make something awesome instead of jerking themselves off. It will only get worse over time. Perhaps this is what John McCarthy meant about a fucking bomb taking out the Lisp community.

Lisp is an amazing language for building things, as a language. In practice, it sucks.

Name: Anonymous 2013-08-10 2:46

>>28
smartphone
stopped reading right fucking there

Name: Anonymous 2013-08-10 2:47

>>28
It seems like people like you, looking from the inside out, are the only people who seem to be dwelling on this kind of stuff. 

There are plenty of people in the lisp community who just use it to write software.

Name: Anonymous 2013-08-10 2:48

If Lisp makes programming so easy, wouldn't it mean that retards could use it?

Name: Anonymous 2013-08-10 2:59

>>24
That's because sbcl adheres to the common lisp standard, while adding it's own extensions in packages along the side, while chicken as a language is a superset of scheme. A lot of chicken's libraries are scheme libraries from other implementations that have been ``ported'' to chicken. It's madness.

Name: Anonymous 2013-08-10 3:02

>>31
LISP makes hard programming easy. Retards (I'm assuming you mean novice programmers) haven't developed to the point where they need to push their language past what their ast provides.

Name: Vyatta 2013-08-10 3:06

>>28
The only attackers are l33th4x0r and /prog/riders. Those are the cynics. The actual Lisp community works with everything everyone does: Mac OSX or Windows, some Linux, even fewer true *Nix, ex-vi, vim, emcas, [insert another lisp IDE or editor], etc.

But if you are working the the mobile thing, be sure to add B.A.T.M.A.N., IEEE 802.15.4 card (ZigBee?), cjdns, Babel, Netsukuku?, Freenet, I2P, tor, and GNUnet. I'd love to see the CPU you use for the phone, and what peripherals you place.

Name: Anonymous 2013-08-10 3:24

Name: Anonymous 2013-08-10 3:52

>>27
It is, because it includes most of the OS facilities, including dynamic linking.

Name: Anonymous 2013-08-10 4:02

>>2
everywhere except half of /prog/

Name: Anonymous 2013-08-10 6:21

>>35
novak
Shalom!

Name: Anonymous 2013-08-10 7:54

>>5
Clojure is JVM Cancer

Name: Anonymous 2013-08-10 12:10

I enjoyed scheme, I think that is a good language for beginners. I found lisp a bit dirty and impure for my taste. After that learn Haskell and then abandon Haskell to learn Agda, which probably is very close to future programming languages. At least for the intelligentsia.

Name: Anonymous 2013-08-10 18:15

>>40
Could you recommend me a good way to get into Agda?

Name: Anonymous 2013-08-10 20:04

>>41
Could you recommend me a good way to get into Anus?

Name: Anonymous 2013-08-10 20:06

>>42
Could you recommend me a good way to get into Ana's Anus?

Name: Anonymous 2013-08-10 20:10

>>41
yesm. I've found some guides.

https://en.wikipedia.org/wiki/Agda_%28programming_language%29

this looks good.

http://ocvs.cfv.jp/Agda/main.pdf

compiling might be a bitch.

There are three compiler backends, MAlonzo which targets Haskell, a JavaScript backend, and an Epic backend.

Name: Anonymous 2013-08-10 20:22

>>43
Could you recommend me a good way to check these dubs?

Name: Anonymous 2013-08-11 13:36

>>44
http://ocvs.cfv.jp/Agda/main.pdf
Very nice.

a JavaScript backend
NOOOOOOO!

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