There were no slides. It was just chatting in a coffee shop.
Ted Neward
Java, .NET, XML Services
Consulting, Teaching, Speaking, Writing
http://www.tedneward.com
"Single-pass compilers no longer around" - if it's any compensation, isn't JavaScript even worse? ie it allows forward references as long as they are not used forwardly!
If that's the worst of it, I'd say Clojure is in good shape.
That’s actually one of biggest things that turns me off to the Python language—the community and their “Guido is the only one who is smart enough to decide how things should be done” attitude.
I think part of the problem there is that the Clojure community is populated by ex-Lispers who feel like they’ve finally, after decades of popular neglect, come into the limelight and recognized for the geniuses they are. Which is quite the turn-off.
I did weigh in with my opinion, which is the same as what you did. I
respect your opinion, and would not be upset if clojure changed it's
single-pass declarations.
I expect that you also respect people with different opinions, as long
as we're all tolerant. If you read something other than that in what I
wrote, it was absolutely unintentional.
FWIW I personally have criticisms of clojure that I consider worse
than those you've listed to date in this thread. (Based on my
weighting system and certainly no one else's!)
Regards
-Patrick
Eh; that's not quite right. The talk I saw was about how functions are
generally more composable than macros, so they should be the first
tool you reach for. I think it was more directed at folks who come to
lisp and are drunk with the power of macros.
(Assuming it was this talk: http://clojure.blip.tv/file/4522250/)
-Phil
--
And what is good, Phaedrus,
And what is not good—
Need we ask anyone to tell us these things?
Hopefully there are few things in CS or life that would actually cause
one's blood to boil.
It's sunny in PDX. The sun's the only thing allowed to boil _my_ blood.
I’m not really “in” t the Clojure community, but I have several friends who are (Stu Halloway, Neal Ford, etc) and I didn’t get the impression that it was heavily populated by the MLers or Haskellers; in fact, I got the impression that the MLers and Haskellers were more into languages like F# and Scala because of the static typing and type inference in those languages that were more similar to ML and Haskell. *shrug* Like I said, I’m coming at this third-hand, so I can’t say for certain.
I do find it interesting that you take the position that Java-ers “have a fanatical insistence on avoiding certain language mechanisms
(such as inheritance, arrays, static methods, constructors and a bunch of others I'm forgetting)”; that’s definitely not been my experience when interacting with said community. If anything, I find it difficult to get them to recognize that arrays suck, that inheritance isn’t the be-all/end-all solution to problems, and so on. I’m not one of the fanatics that you describe—though I do subscribe to some of the aforementioned beliefs, I don’t subscribe to it religiously—but that’s not my point. My point is that I’d love to sit down with you sometime and try to figure out where our opposing views on this come from. (And I mean that in the most pleasant sense—I’m always fascinated by examples where two people look at the same thing and see radically different things.)
That said, I do think that domain-driven design is the kiss of death for any multi-JVM project.
Meanwhile, back to Clojure.
It seems to me that clearly the key to fixing Clojure is to convince Rich Hickey of the sin or infraction in question, and though I’ve not met Rich personally, I get the impression that he’s (a) pretty smart, and (b) pretty opinionated. I’m not sure how successful such an effort would be.
Lisp in general is a "yes" language. The more "purely" functional the
lisp, the more challenging it is to have imperative statements "yes"'d
into it. But still. It could be worse. (And that's not better.)
On Tue, Apr 19, 2011 at 2:52 PM, Andrew Cristina <acri...@gmail.com> wrote:
We must not tolerate the intolerant! My new rallying cry.
StanD.
so where is your set of proposals that have been shot down? where is
your github fork of clojure which the changes you would like to see?
where are the patches, where is the code? Have you done anything to
move the language in the direction you want?
My primary focus is getting a debugger written. I believe this is one of themost pressing needs, and it is the area to which I think I can best contribute,
having spent a few months last year modifying JSwat to add a command-line
interface. I've also worked with powerful debuggers in the past and have a
clear vision around what I want it to do. In contrast, most devs consider
a debugger to be a slightly dirty adjunct to the compiler tool suite, and they
only use one in times of dire need. I hope to change this perception by
creating a tool that people can't remember ever living without.
A pretty reasonable way of writing a debugger is to take advantage of lisp being a good "yes" language. See Dybvig, et al.'s paper on "Expansion Passing Style". Even if you don't want to use EPS for the final product it's more than sufficient to build a highly usable prototype.
---
My modest proposal:
I invite the Clojure community to deem this input-from-keyboard
problem to be a Clojure "Adoption Assassin" that is stifling Clojure
adoption by the larger programming community. There are other such
pain points, and they need to be solved.
---
The problem is well-understood, at least on the Leiningen side. It's a
bug in Ant (or possibly a missing feature if you want to argue) that
apparently the Ant developers have no intention of fixing. So
Leiningen needs to completely change the way it handles subprocesses.
It's been on the roadmap for a while now, but it's a huge endeavour,
and other things (deploy functionality, search, and retest) have taken
precedence due to their much higher bang-for-buck ratios.
I'd be thrilled if anyone who is particularly interested in fixing
stdin wants to help; start a thread on the Leiningen mailing list and
I can provide details. I also have an idea for a short-term
non-transparent workaround that would be much less involved.
-Phil
Beautiful. I hope my observation isn't seen as a personal attack
here, but this quote seems like a textbook example of an "unfriendly"
reply:
Thanks,
James
Let me add a specific example of what Steve is talking about. See my
post on the Clojure mailing list entitled "help--reading keyboard
input from Clojure is surprisingly difficult" (here's the link--http://
groups.google.com/group/clojure/browse_thread/thread/9261480fbea72ead/
c2fb8a910ee410cf?lnk=gst&q=Gregg+williams#c2fb8a910ee410cf--but if
that doesn't work, you can search on my name or the title).
My modest proposal:
I invite the Clojure community to deem this input-from-keyboard
problem to be a Clojure "Adoption Assassin" that is stifling Clojure
adoption by the larger programming community. There are other such
pain points, and they need to be solved.
I'm afraid that by focusing on this specific problem the point is missed. I think what Steve is saying here is open source projects need to have great customer service in order to thrive. Having processes to collect bugs and curated priority lists of desirable features is necessary for product building; having a friendly, responsive, positive public face is necessary for community building. There's a reason why positions like "Community Manager" and "User Advocate" keep popping up in businesses built around OSS -- they're necessary for adoption which is in turn necessary for success.Just my 2-cents.-n
'User facing' and 'developer facing' communications are often in opposition to one another. Developers need to be able to deliberate on ideas in a frank manner that takes feelings as a secondary consideration. In this regard, the Clojure mailing list is definitely more developer focused.
Perhaps the answer is to let local user groups like Seajure take on the work of answering questions from newer users and helping them acclimate to functional programming tropes. Just like the linux kernel development list wouldn't be the first place you asked a question when having issues with your video card.
This is not generally true if you make the distinction between users
who develop software using the language and the developers who
implement this language. That said, I'm a huge fan of the lisp
philosophy of putting the application developers on the same footing
as the implementers, so in spirit I agree with you.
I also think that while user groups are great, there are many areas
where they just do not exist and even when they do, a language's
website, FAQ and irc channel are the first places a potential user is
going to look for help getting setup and determining if the language
will do what they want.