The Clojure Community and Me
blog.raynes.me
blog.raynes.me
More than anything, I Get Things Done with Clojure, and the community helps me do that. And from the feedback/re-hiring I get from my jobs, my employers and the people they serve would agree.
Anthony: Keep at it man–you're great!
Was this in SF?
I've always used Clojure in my spare time with hobby projects. But I didn't really see it as a professional option. I'm curious if thats changing now.
Now we take for granted that a smart kid in Alabama has his own personal computer and can participate in a conversation with an expert community anytime he wants. But it's amazing. And more importantly, the experts are so incredibly supportive!
I guess this tradition goes back quite a ways, though...think of Ramanujan and Hardy's mathematical relationship. Perhaps the key is a field that doesn't require expensive equipment and the gatekeepers that go with that. Or does this sort of thing happen nowadays in fields other than CS and math? Do 16-year-olds show up in economics or physics IRC channels and meet supportive communities?
In contrast, bug-testing Newton's Laws is a waste of time, and bug-testing General Relativity requires a very large budget. Attempting to make a meaningful contribution to physics is very difficult. The same can be said for any pure science.
By definition, any pure science (natural or social) doesn't evolve quickly enough to allow for quick-but-meaningful contributions because pure science is about establishing a base of knowledge that builds directly on previous knowledge. Without an understanding of the "previous knowledge," any newcomer would be lost and wondering what's happening.
In contrast, applied science is often an orchestrated effort that involves experts in different fields and contributions from different fields (e.g. your software is as valuable as its support, and your interface ideas are as good as the person implementing them). Prior knowledge isn't necessarily as valuable as the ability to integrate ideas from different places or collaborate with others.
Would you agree? I ask because part of me feels like I might be missing something.
Perhaps many people get into programming by fixing bugs, but that never appealed to me, and didn't really appeal to many people I know. It's good advice for newbies trying to get better, I suppose, but it's not very satisfying work (for many).
I got into programming by exploring my computer, websites, and slowly piecing together an understanding of the machine. Eventually, I learned a programming language to (mostly) proficiency. And then another. And then another. I still don't feel like a pro, but I'm getting there. And I still hate fixing other peoples' bugs, or my own.
For anyone else who's been toying with the idea of looking at Clojure, it has, IMO, the best tech community on the web. It seems like every maintainer for every Clojure project I've ever looked at is at least idling in #clojure on freenode 24/7.
(No pressure, raynes.)
And he's right about the community. Besides attracting some really bright people, there isn't a lot of language chauvinism evident. (Well, the JRuby folks took some shots, but it was all in fun. We love you guys, really.)
One of the most difficult things to do is to suspend your own beliefs, dogmas, and preconceived notions about how the world is or should be, and completely immerse yourself in adapt to another culture, be that culture a foreign country, or just the other side of a big one like the US or Europe.
And that is particularly difficult for Americans who are taught from an early to 'express yourself', rather than to perceive the world or any given situation from the point of view of other people (as many foreign cultures, especially Asian ones, do). It's even more difficult for Southern Americans, who are, on top of all that, brought up with this relatively complacent world view.
I know plenty of exceptions, but in general I agree with your assessment.
This strikes me as an odd "next step". I don't code in Haskell or clojure, but I've been eyeing both and the impression I got is that Haskell is harder to grasp but more powerful once fully grasped (and nearly as portable as C++). Sort of a superset of lisp. It seems that the next logical step after a couple of months of Haskell is more Haskell. It evidently worked out great for him, but I'd have liked to know why he switched to clojure.
It's certainly more 'advanced' than any Lisp, including Clojure -- for the past few years (or decades now...), Haskell has been where new academic language research has been done. [1]
But that's just the problem. The fact is that Haskell is a research language standardized by a committee of academics without much experience or interest in real-world use. And it shows. Clojure, in contrast, is a language designed for practical purposes after years of experience from real-world use, mostly by one person, and while he's not as smart as the committee that designed Haskell, he has something committees rarely ever have. Taste.
In practice, I find Haskell beautiful. With Clojure I get things done.
[1] I'd be willing to say that today, if you are not fluent in Haskell, you are strictly not competent to design a new programming language. For the exact same reason you weren't competent to design new one without knowing Lisp from about the '80s through '00s -- unless you know Haskell, you are passing by most of the new inventions in programming languages done in past few decades simply because you have never heard of them, and don't even know you are missing them.
Furthermore, I'd probably disagree with the assertion that Haskell is more powerful once fully grasped. Lisp gives a lot of power to programmers (exhibit 1: the Lisp macro system). However, that means molding the definition of 'power' to suit my needs, and I don't really want to go there. I think that Haskell and Clojure are both very powerful and amazing languages. They are not mutually exclusive. I just happen to like Clojure more. Plenty of people go the other way. I, of course, still have a lot of respect and love for Haskell and hope to have time to do more with it in the near future.
As for why I switched in the first place, I guess it was mostly because Clojure looked like it would be so much fun. When you're young, what others perceive as weirdness can sometimes be exactly the thing that appeals to you. The reaction I had to parentheses is exactly the opposite of what experienced developers tend to have in the beginning. I loved them.
I dont get it, why?
I know that the people at americans airports think that everybody is a terorrist or nazi but do the even think that if you travell within america?
If something were to go wrong at any point, I wanted to make sure that someone would be around that had Anthony's best interests at heart (could have been any relative as far as I was concerned — I think Anthony's brother was also an option at one point). Similarly, I made sure I talked to Anthony's mother by phone before I started the fundraiser to make sure she was aware of what was going on and had no objections.
Yeah, there may have been liability involved — for me, for Relevance, for others, who knows — had something gone badly wrong. I'm not a lawyer, so I don't know; but, having a parent or other adult relative along seemed like a relatively simple way to address that unknown.
Fundamentally, this had nothing to do with laws or regulations or even liability — it just seemed like the right thing to do.
Why I said "typical America"
- In Europe we have a view of America where you can get sued for anything.
- Since 9/11 America has very strange laws about travling. (I had to fill out more then one form asking me if im a Nazi or if I knew one)
Made the line 2x slower then it had to be. Made me not wanting to go back to Amerika anymore.