8 ms·
If you're going to rant, you might want to actually have a clear point to make. > college kids on comp.lang.lisp asking for the answers for problem-set 3 on la
by georgegeorges 12y ago
If you're going to rant, you might want to actually have a clear point to make.
> college kids on comp.lang.lisp asking for the answers for problem-set 3 on last night's homework
Surely not during the Naggum days. CLL was a hostile wasteland.
> That is the lesson of perl and python and all these other languages. They're not good for anything. They suck. And they suck in libraries and syntax and semantics and weirdness-factor and everything.
What? How have you not heard of CPAN? There is not a single language in the world that can touch Perl's libraries. I'm not sure why you feel the need to toss either Perl or Python under the bus to make some petty point about Dylan's lack of popularity. Python replaced Scheme at MIT. It's time to move on. I know I have.
You have to have your head pretty far up your own ass to not see how much Common Lisp sucks. It's a language designed by committee, and it looks like it.
I've used Erlang too. For everything Erlang does well, there are countless areas that make you want to bang your head against the desk.
Languages don't matter. Platforms matter. APIs matter. Playing nicely with the rest of the world fucking matters. Common Lisp wouldn't.
- eudox 12y ago> It's a language designed by committee, and it looks like it. This means nothing. When a design succeeds, we say it was designed by the community; when it fails, by committee. You can produce examples for any language: In Common Lisp the committee that designed it and the community of previous Lisp users that backed it. For Python, the community of users and Guidos' mailing list pals. There is nothing inherently superior or inferior about design by community or committee, respectively.
- rtpg 12y agoI think a good reference for what people mean by "designed by committee" is to look at the reference spec for a language. I remember picking up the Common Lisp reference book in my college library. It was one of the thickest books in the entire CS section. Obviously much thicker than any books on Scheme, but even on the same level as "The C++ Programming Language". And the latter spends a lot more time explaining things than the Lisp book did. CL is a huge and complex language, and I'm still not sure why there are 80 different ways to loop. It's a confusing language, with not nearly as much orthogonality as it could have.
- justinpombrio 12y agoHaskell was designed by committee, and it's exactly the opposite of the stereotype: it's a small language with orthogonal features and a clean syntax. The few "features" the language has, like list comprehensions and do notation, are defined by simple translations into the rest of the language. http://www.haskell.org/onlinereport/ http://www.haskell.org/onlinereport/
- rwallace 12y agoAnd conversely, Ada was designed by one man, and if you weren't aware of that historical fact and just looked at the language spec, you'd swear it was the classic example of committee design. Fred Brooks' dictum that design should be done by a single mind, or at most two, is a guideline not a rule.
- topkekz 12y ago>Ada was designed by one man http://cs.fit.edu/~ryan/ada/ada-hist.html http://cs.fit.edu/~ryan/ada/ada-hist.html "The Ada design team was led by Jean D. Ichbiah and has included Berned Krieg-Bruechner, Brain A. Wichmann, Henry F. Ledgard, Jean-Cluade Heliard, Jean-Loup Gailly, Jean-Ryanmond Abrial, John G. P. Barnes, Mike Woodger, Olivier Roubine, Paul N. Hilfinger, and Robert Firth."
- rwallace 12y agoRight, but wasn't it structured as 'Ichbiah assisted by the others' rather than 'Ichbiah leading a committee by consensus'? In particular, iirc, there were some points at which the others almost unanimously disagreed with Ichbiah on some design decision and he overruled them and went ahead anyway.
- bunderbunder 12y agoAlternatively, look at R6RS[1]. 90 pages, including the index. That language is also designed by committee, and looks like it, too. An effective committee, that is. [1]: http://www.r6rs.org/final/r6rs.pdf http://www.r6rs.org/final/r6rs.pdf
- JackFr 12y ago> When a design succeeds, we say it was designed by the community; when it fails, by committee. Extremely well said.
- mindstab 12y ago> Languages don't matter. Platforms matter. APIs matter. Playing nicely with the rest of the world fucking matters. Common Lisp wouldn't. this. playing with CL inside CL is fun and nice. As soon as you try to interface with the outside world, and actually do almost anything you run into trouble. I mean an FS api that was designed before we solidified on hierarchical filesystems? Lisp does not play nice or well or easily with the outside environment it is running on. (in my experience) it can be an ugly language, but if it has all the libraries, then you can get so much more done so much quicker with so much work done for you, people will go there. Again, some little progress has started with things like quicklisp finally starting to provide a better (or first proper) package management system for CL like most newer languages have all had, but still. little and late. But given time and work maybe resuscitateable. We'll see
- lispm 12y agoHmm, where is the ISO C++ standard to access the Windows file system? If you were using say, Allegro CL on Windows, I doubt you had any difficulties accessing the file system.
- jacobparker 12y agohttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3940.html http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n394... Not finalized yet, but soon: https://isocpp.org/std/status https://isocpp.org/std/status (It is basically a standardization of boost::filesystem) Here are the MSDN docs: http://msdn.microsoft.com/en-CA/library/hh874694.aspx http://msdn.microsoft.com/en-CA/library/hh874694.aspx
- lispm 12y agoThat's great. But it's POSIX, not native Windows.
- deleted 12y ago[deleted]
- nunb 12y ago
- chrismonsanto 12y ago> What? How have you not heard of CPAN? There is not a single language in the world that can touch Perl's libraries. That's a really outdated meme. CPAN is small, pretty much every language you hear about regularly has a larger package space than CPAN. Even Go's package space is bigger than CPAN's. JS and Java each have package spaces roughly 3x CPAN's size. http://www.modulecounts.com/ http://www.modulecounts.com/
- alanctgardner3 12y agoCPAN is much higher quality, though. For every Perl package that works and has unit tests and documentation, there are 10 node packages someone tried for a month to write, then gave up and left at 0.01 with no docs. Perl isn't sexy, but Perl diehards have written and published modules to do everything you can imagine.
- draegtun 12y agoThe http://www.modulecounts.com/ http://www.modulecounts.com/ site counts the number of distributions on CPAN, which probably is the closest measure for comparisons with number of projects given on PyPI, RubyGems, etc. However GoDoc seems to be showing number of package namespaces. If so this would be more comparable to the module count on CPAN (see http://www.cpan.org/ http://www.cpan.org/) So at this point in time we have: GoDoc: 36,497 CPAN dists: 30,216 CPAN modules: 137,603
- Diederich 12y agohttps://metacpan.org/recent https://metacpan.org/recent There are a couple of CPAN module installers, and every one of them, by default, will not install the target module if there are any test failures. Honest question: are there any other languages that do that? I last looked a few years ago, and it didn't seem to be the case.
- lmm 12y agoMaven will not, by default, allow you to perform a release if there are any test failures. That seems like a better model, at least for a VM language - if something works on the release machine and not on the user's machine, you have bigger problems.
- andrewchambers 12y agoClojure is pragmatic in using jvm as its platform.
- lispm 12y ago> You have to have your head pretty far up your own ass to not see how much Common Lisp sucks. It's a language designed by committee, and it looks like it. The original design was by four people. Common Lisp does not look worse or better than the Lisp's it was designed to improve on (Maclisp, Lisp Machine Lisp, NIL, ...) and the Lisps it made mostly obsolete (Portable Standard Lisp, Interlisp, ...).
- klibertp 12y ago> Languages don't matter. Bullshit. Languages DO matter. Language features matter, too. Even syntax matters, although not that much. It's easy to get trapped in "languages don't matter" attitude if you know a couple languages. The perspective changes drastically with mastery - being able to use a language to its fullest, as opposed to just using it - and with dozens more of learned languages. A language is your baseline, a starting point for building things. How you build API, how you interact with outside world, how you accomplish common tasks depends on a language and language features. And it gets even more important as you climb the abstraction ladder. For example, at language level Scheme offers call/cc. You may say it doesn't matter, as it's just a language feature. But take a look at Racket continuation-based web server - it's an impressive piece of work which solves a certain problem really well and is almost impossible to implement in some other languages (you don't need continuations specifically to implement this, there are other features which would enable it). At a language level Lua offers coroutines, which in itself is not very impressive. But take a look at OpenResty: you can write code which looks perfectly normal and synchronous (no callback etc.) while still fitting inside of async by nature Nginx. Anyway, thing you mention, like APIs, do matter too, but language features are equally important. Don't dismiss them because you superficially know a few languages; rather learn some of them in depth and build real world things with them and I'm 97% sure you'll see how language features matter.
- AnimalMuppet 12y agoI think you're missing George's point. Languages don't matter in isolation. It's the language plus the libraries plus the rest of the ecosystem, which he's calling the "platform". If you have this language with these great features, but it has lousy libraries and therefore you have to write a bunch more stuff yourself, you need to weigh that against the great features when deciding whether to use that language. Just having the great features isn't enough. (In fact, this is a big part of how Java conquered a big chunk of the world. As a language, it's kind of a yawn. But the library is like Barbie - it has everything.)
- klibertp 12y agoI completely agree. As I wrote, libraries and other features of a platform do matter and of course you need to take those into account when deciding which language to use. It's always very specific to a given situation though, for example lack of "batteries included" libraries may not be a concern when choosing language to embed in your app (like Lua). But in general great language features and great platform features (for example working package manager) are both very important factors that you need to take into account when deciding on language(s) for your project.
- Dolimiter 12y ago"Languages don't matter. Platforms matter. APIs matter. Playing nicely with the rest of the world fucking matters." Nice, I like that. Reminds me of the Discourse peeps, who rejected eg PHP, and wrote it in their pet language, ignoring that no-one cares about language, and finding the problem that their platform is so difficult to install and use, that no-one uses their software.
- Jgrubb 12y ago> the Discourse peeps, who rejected eg PHP, and wrote it in their pet language, ignoring that no-one cares about language Are you talking about Ruby/Rails?
- cwyers 12y agoThe OP is being overly dismissive, but has a point -- there's a market for Ruby, but in terms of most of the use cases for online bulletin board software, both Rails and Postgres are much rarer than PHP and MySQL.
- klibertp 12y ago> no-one cares about language Yeah, why should users ever care about language? Users generally don't know what the heck this "language" thing is. At least if it's not French, English, Chinese or something like that. Now, for developers, not caring about a language they use is very short-sighted, to say the least.
- ohyes 12y ago> You have to have your head pretty far up your own ass to not see how much Common Lisp sucks. It's a language designed by committee, and it looks like it. Erh, no. You don't seem to have any historical insight into how common lisp came to be. (Or maybe you do have historical insight and are just being willfully ignorant). It is a language designed by a set of companies and institutions compromising 25 years ago. Companies and institutions that had radically different operating systems and hardware, it wasn't a matter of writing software for a machine that ran either 'Windows or Unix.' You had to support the lisp machine vendors and a variety of mainframes/minicomputers. Emphasis on 'Common.' The theoretical possibility was that you could write a program on a MacIvory and then run it on your Symbolics Machine, ThinkingMachines machine, Unix Machine, Windows machine, PDP-11, Dandelion, DEC Alpha etc... Go write a C (or Python for that matter) program that lets you access the file-system port-ably on a huge variety of operating systems using only the C standard. I suspect it will be difficult. Anyway, you couldn't be any more wrong. You've limited the 'entire world' to essentially two similar platforms, one of which (Windows) isn't really that well supported. The whole point is that it tried really, really hard to satisfy the entire lisp world, which included a number the larger players who were put out of business by Moore's law and cheap generic hardware rapidly outpacing expensive special purpose hardware. All this said, Common Lisp (and Scheme, and it's implementations) have features that the general programming community is still rediscovering 30 years later. Dismissing it as something that sucks because the people involved didn't try hard enough is incredibly myopic. tl;dr: Nu-uh.
- foldr 12y agoYour comment is a bit confusing because you're basically explaining how Common Lisp was indeed a language designed by committee containing all sorts of compromises between competing vendors. That's what the OP was getting at.
- ohyes 12y agoI wasn't trying to contradict that. I was trying to indicste that failures in it are due to how much the terrain has changed. By and large the standardization process was successful, the failure is that there haven't been any revisions since (and likely won't be).
- sitkack 12y agoRead the whole post, everything sucks. It is Salinger + PK Dick + Vonnegut + Allan Watts.