3,365 karma · joined March 28, 2007
And anyway the article, which doesn’t dig deeper into this person’s motives, doesn’t even paint it as a protest. It could simply be not wanting to participate in harm, which is not exactly the same as a protest.
The experience was just so weirdly baffling and frustrating and I've since avoided the place. I realize this sounds like the height of American consumer entitlement but it was truly bizarre that the response to "Hi I would like to hand you more than $1,200" was "please wait 45 minutes."
Then there was also the confusion about who to actually to talk to in the first place if you wanted to buy something. Do I talk to the person at the door? Nope, because I don't have an appointment. I should just stand in a corner and hope someone finally talks to me. It was truly amazing that Apple could so thoroughly botch the experience of exchanging money for goods.
Your comment is rightfully being downvoted because it reveals that you haven't even tried to research this topic. It is offensive because it continues to perpetuate attitudes that contribute to violence toward Black and brown people. It is also offensive because it is _so easy_ to educate yourself and contribute informed opinions instead of ignorant ones. One place to start is "The New Jim Crow" by Michelle Alexander. I really hope you take the time to read it and other books that explain what it's really like to be Black in America.
Or maybe it makes sense to show the TOC by default, with the option to hide it. Either way, I'm curious to hear more about your reasoning for why it's so horrible.
Did you do the design, too? What's the tech stack? How do you stay motivated?
edit: also, clojure applied is a good book for what you're talking about
A few things to clarify:
* The before/after flyers were taken from real life. These were printed out and tacked up to community boards and the like.
* One reason why I think the right poster is better is that it looks nicer on the surface and would therefore be more enticing for people to read to find the details. I think the left poster looks like it would be harder to find information. If an ad looks hard to decipher, then people aren't even going to bother. A lot of criticism here has to do with how the phone number doesn't stand out. If you're walking down the street and just see a giant phone number scrawled on a wall, would you call it? No. You need to have a reason to call it. I think that the flyer on the left gives passersby less reason to call.
* That said, I do need better examples, and the site needs to look less ugly. As it happens, my next project after finishing http://braveclojure.com is to revamp this site. If you're interested in hearing about the revamp, please sign up for an email reminder: http://eepurl.com/biiMZT . I'm going to add more content on actually implementing this stuff using CSS/SCSS. If you think the Clojure site is OK looking then you'll probably like the new visual mess content.
* For some reason, beginners seem to love this site as it is. Weird!!!
edit: If you have little or no experience trying to do visual design, I hope the site has encouraged you to give it a try, if only so that you can do better than I did :)
edit 2: Back in 2011 I wrote a blog post thanking readers, looks like it's relevant again: http://www.flyingmachinestudios.com/design/cuym-thank-you/
If you still have trouble feel free to leave a comment on the site or tweet me - I'll be able to respond more quickly that way :)
Still, though, I think you have it wrong about Clojure's design. You mentioned the talk "the value of values." Immutability and functional programming are core to Clojure's philosophy. This is pointed out on the clojure.org home page. I'm not sure why you think it's not?
Also, Clojure is meant to be a general-purpose language. Also from the home page: "It is designed to be a general-purpose language". So I'm not sure why you think otherwise? I started learning Clojure with 0 experience with the JVM, and many others are doing the same.
I'm also not sure what you mean by "education is entirely orthogonal to Clojure." I think you're commenting on the value of producing an introductory Clojure book? In any case - you mention that "there are better languages for teaching functional programming." The point of Clojure for the Brave and True is not to teach functional programming, it's to teach Clojure.
I don't know if its emphasis on functional programming and values makes Clojure unique, but that's definitely one of its core design concerns. The "article" is a chapter from a book on Clojure, and learning to write in a purely functional style is essential to learning Clojure. The point of the chapter isn't to get to the heart of what makes the language unique, it's to offer instruction on how to use it.
Also, you say that lisps have "always had shared structure." I'm not sure what you mean by that? Clojure implements _structural sharing_, which is what allows it to have persistent, immutable data structures. Common Lisp certainly doesn't do the same.
I'm not sure what you mean by "Lisp went on a journey to Java and was transformed by the experience." I think you're saying that Rich Hickey designed Clojure to be a lisp that's more Java-like? Could you explain how? My impression is that Rich Hickey thinks OO is broken (see the talk "Are we there yet?"), as is the notion of mutability as implemented by Java. Clojure's interop with Java is a great convenience, but the emphasis is still on functional programming. I don't think I understand what you're saying, or maybe it's just that we disagree?
Finally, from clojure.org: "Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs." Maybe it's these state management features you're concerned about? If so, then I would suggest that vars, atoms, refs, and agents are not as inspired by Java as you're saying. Or maybe we just disagree that, the majority of the time, you should be writing pure functions and using immutable data structures in Clojure?
Second, the point of the point of the chapter is to show how much can be accomplished without mutating data structures. I think that's something valuable to focus on. Saying "You can do a lot with pure functions and immutable data structures" is not the same as saying "You'll never need to mutate anything" and as the author, I apologize if my writing suggests otherwise :(
Lastly, Clojure definitely places a huge emphasis on limiting mutability by using pure functions and immutable data structures. I think Rich Hickey even describes pure functions as stable bricks or stable atoms in one of his talks. My impression is that it's definitely not the love child of common lisp and java. Clojure is pragmatic, but that doesn't mean it doesn't place an emphasis on functional programming. I agree that it's "not bogged down in a theory of pure anything", but that doesn't mean it wasn't intentionally designed to support and encourage programming with pure functions and immutable data structures.
edit: Realm of Racket is also a good lisp book, and a lot of people like "the little schemer". It's hard for me to say how good these are for people completely new to programming, though.
Finally, there's the ClojureBridge curriculum, which is targeted at new programmers: https://github.com/ClojureBridge/curriculum