Re: Please stand firm against Steve Yegge's yes language push
Are Steve Yegge's comments blogged/written anywhere? The last post I could find on his blog http://steve-yegge.blogspot.com/ was about Haskel and written 12/1/2010. Thanks. cmn On Jul 1, 3:59 pm, James Keats james.w.ke...@gmail.com wrote: Hi all. I've been looking at Clojure for the past month, having had a previous look at it a couple of years ago and then moved on to other things only to return to it now. Over the past decade I have looked at many languages and many ways of doing things. People may say this language or that language is general purpose, but the fact remains that languages have their niches in which they excel and beyond which it'd be foolish to venture. Clojure should not attempt be a mass success language or worry about its Tiobe index ranking. Clojure, the way I see it, is most suitable for the advanced independent developer. It is a language in the image of its creator, Rich Hickey. It's not a language for the factory hen. It won't become the next Java. Java already fills that niche, and despite what some may say, I don't see it going away anytime soon. I don't feel Clojure needs to grow - in terms of size of language. In fact it would worry me enormously if Clojure's path is to grow in size. It is fundamentally unsuited for that. If anything I wish for it to shrink even further and further. A Rich Hickey's quote comes to mind: • (paraphrased) Most Clojure programmers go through an arc. First they think “eww, Java” and try to hide all the Java. Then they think “ooh, Java” and realize that Clojure is a powerful way to write Java code and As I've said in my talks, most Clojure users go from eww, Java libs to ooh, Java libs, leveraging the fact there there is already a lib for almost anything they need to do. And using the lib is completely transparent, idiomatic and wrapper free. - Google verbatim for sources. Whereas when Steve Yegge writes: which means that everyone (including me!) who is porting Java code to Clojure (which, by golly, is a good way to get a lot of people using Clojure) is stuck having to rework the code semantically rather than just doing the simplest possible straight port. The more they have to do this, the more you're going to shake users off the tree. all I could think on reading this is horror, horror, oh God, horror!!!; he really doesn't get it. First, he shouldn't be porting Java code to clojure, Second, Clojure IS fundamentally different from Java, and third, such said users who don't want to touch Java should not touch Clojure. Clojure shouldn't worry about growing; java already has innumerable libs. Clojure, imho, should continue its - what I would dub - middleware begone! path, in which it'd provide an end-to-end, down- to-the-metal comprehensible system that an individual developer can get his head round and know exactly what's happening with his code and its environment here and everywhere. I could write more, but I have to run. Regards. J. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Sun, Jul 17, 2011 at 10:59 AM, octopusgrabbus octopusgrab...@gmail.com wrote: Are Steve Yegge's comments blogged/written anywhere? Googling is your friend -- search for: steve yegge clojure yes language and it turns up the original thread as the second result: http://groups.google.com/group/seajure/browse_thread/thread/18baa18ffdbdd790 This thread in which we are participating is the #1 result for that query on Google, BTW. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 8:37 pm, Christian Marks 9fv...@gmail.com wrote: The moral of this story is: don't let anyone clip your wings. Well said. That is my take away too. It is surprising how to me how much weight people give to the assertions of others, famous or not. In truth, this human endeavor of programming (as all else) is really just a series of experiments, some grander than others, some will succeed, some fail, (and sometimes oscillate between success and failure over time :) The best thing someone can do, rather than opine loudly about the outcome of an experiment, is to either a) help to define and execute the experiment or b) if you don't like the idea, help to define and execute a different experiment. When the results are in, *then* you can opine loudly. :) So that, Chris, is why out of 125 posts (or so) I wanted to respond to yours, because you have done the experiment. Frankly, I'm not really sure if it's a good idea or not to reimplement Java libraries like Swing in Clojure, but I do know that we won't know unless someone gives it a shot. -- Josh -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Thanks. On Jul 17, 5:52 pm, Sean Corfield seancorfi...@gmail.com wrote: On Sun, Jul 17, 2011 at 10:59 AM, octopusgrabbus octopusgrab...@gmail.com wrote: Are Steve Yegge's comments blogged/written anywhere? Googling is your friend -- search for: steve yegge clojure yes language and it turns up the original thread as the second result: http://groups.google.com/group/seajure/browse_thread/thread/18baa18ff... This thread in which we are participating is the #1 result for that query on Google, BTW. -- Sean A Corfield -- (904) 302-SEAN An Architect's View --http://corfield.org/ World Singles, LLC. --http://worldsingles.com/ Railo Technologies, Inc. --http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 17, 6:43 pm, javajosh javaj...@gmail.com wrote: On Jul 8, 8:37 pm, Christian Marks 9fv...@gmail.com wrote: The moral of this story is: don't let anyone clip your wings. Well said. That is my take away too. It is surprising how to me how much weight people give to the assertions of others, famous or not. In truth, this human endeavor of programming (as all else) is really just a series of experiments, some grander than others, some will succeed, some fail, (and sometimes oscillate between success and failure over time :) I was responding to the idea that one should play around with Java for a few months before getting involved with Clojure. Spending months with a language whose idea of a type system is one in which the only operation on types is sub-classing sounds like a recipe for instantaneous profound boredom. Perhaps Java has improved its type system, but whatever it is, it isn't homotopy type theory (cf. http://homotopytypetheory.org/ ). ... So that, Chris, is why out of 125 posts (or so) I wanted to respond to yours, because you have done the experiment. Frankly, I'm not really sure if it's a good idea or not to reimplement Java libraries like Swing in Clojure, but I do know that we won't know unless someone gives it a shot. -- Josh I didn't re-implement Swing--it was just a translation of a demo from a language I didn't know into another I didn't know, using a build system I didn't know. I did manage to learn more by doing several things at once, instead of plodding through one language at a time; e.g., I saw how to handle resources in Clojure in conjunction with Leiningen (cute name: the author seems to have been bitten by Ant). What I posted was a second iteration--I wasn't making use of doto, for or if-let at first, incidentally. CM -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 2, 10:30 am, James Keats james.w.ke...@gmail.com wrote: What is actually there in his posts in that thread?! blatherings and generalities about community and attitude and language economics and marketing that any kid high on weed who'd read a post too many on reddit's /r/programming could've wrote, and what little specific technical detail shows a clear lack of knowledge about clojure and its take on functional programming and java interop and unwillingness to learn. I see I've been gratuitously harsh. I agree with this, having narrowly escaped the evangelists for the Information Technology Indoctrination Library at my former place of employment. Since I've posted some working code, I'm going to indulge in my own journalistic, sociological gloss. I am reminded of the anthropological finding that the human brain decreased in volume by 10% — about the size of a tennis ball — around the dawn of civilization 20,000 years ago. It is believed that the decrease in volume coincided with the emergence of cooperative, prosocial behavior, which enabled the members of reduced-cranium groups to solve some problems that eluded their more amply brained relatives. The larger brains were adapted to more independent modes of survival. But the question for me--speaking of weed-addled advocacy of community and attitude--is how far are we willing to decrease the volume of our brain cases in the name of cooperation? I have now vastly exceeded my OT limit. :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Vagrant setup [was Re: Please stand firm against Steve Yegge's yes language push]
On Fri, Jul 8, 2011 at 10:28 PM, Lee Spector lspec...@hampshire.edu wrote: On Jul 8, 2011, at 12:38 PM, Vivek Khurana wrote: That is still not as easy as python. Running VM is a bigger overhead... There are different kinds of overhead. If the installation and setup of the VM is simple and bullet proof then this is acceptable overhead for me. Tell a newbie that they need to run a VM in order to try clojure... I dont think many will be interested in doing this. regards Vivek -- The hidden harmony is better than the obvious!! -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 7, 4:58 pm, James Keats james.w.ke...@gmail.com wrote: For people's sense of sanity, it's not wise to try to run before you walk. ... But fine, people are free to be impatient and get frustrated and depressed if they so insist. I must respectfully disagree. I was interested in learning Clojure, and decided, not knowing Java, to learn both by translating a Java ButtonDemo to Clojure. I didn't know Leningren either, but decided to add this as well. Here's the result of a couple of days work: (ns buttondemo.core (:gen-class) (:import [javax.swing AbstractButton JButton JPanel JFrame ImageIcon] [java.awt.event ActionEvent KeyEvent ActionListener]) (:use [clojure.contrib.swing-utils])) (defn create-image-icon [path] (if-let [img-url (clojure.java.io/resource path)] (ImageIcon. img-url) (.println System/err (str File not found: path (defn enable-buttons [button-flags] (doseq [[button flag] button-flags] (.setEnabled button flag))) (defn initialize-buttons [b1 b2 b3] (doto b1 (add-action-listener (fn [_] (enable-buttons [[b1 false][b2 false][b3 true]]))) (.setVerticalTextPosition AbstractButton/CENTER) (.setHorizontalTextPosition AbstractButton/LEADING) (.setToolTipText I can disable the middle button.) (.setMnemonic KeyEvent/VK_D)) (doto b2 (add-action-listener (fn [_] (prn I told you not to click me.))) (.setVerticalTextPosition AbstractButton/BOTTOM) (.setHorizontalTextPosition AbstractButton/CENTER) (.setToolTipText Don't click me.) (.setMnemonic KeyEvent/VK_M)) (doto b3 (add-action-listener (fn [_] (enable-buttons [[b1 true][b2 true][b3 false]]))) (.setMnemonic KeyEvent/VK_E) (.setToolTipText I can enable the middle button.) (.setEnabled false)) ) (defn -main [] (let [[b1 b2 b3 :as buttons] (for [[title file] [[Disable middle button right.gif] [Middle button middle.gif] [Enable middle button left.gif]]] (JButton. title (create-image-icon file))) panel (doto (JPanel.) (.setOpaque true))] (doseq [b buttons] (doto panel (.add b))) (initialize-buttons b1 b2 b3) (do-swing-and-wait (doto (JFrame. Button Demo) (.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE) (.setContentPane panel) (.pack) (.setVisible true ) If I had waited to attempt the translation before developing some proficiency in Java and Clojure first, I would not have bothered. There are even improvements on the java code; e.g., a test in the action listener in the original code is eliminated in this version. Not needed. Here's my Leiningren project file: (defproject buttondemo 1.0.0-SNAPSHOT :description Translation of the abysmal java button demo into clojure. :dependencies [[org.clojure/clojure 1.2.0] [org.clojure/clojure-contrib 1.2.0]] ; :resources-path resources/ :main buttondemo.core :license {:url http://bit.ly/igfXCC; :comments Derived in April 2011 from the above url.} ) The moral of this story is: don't let anyone clip your wings. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 2011, at 1:19 AM, Ken Wesson wrote: If your programming experience lies elsewhere, or you're new to programming altogether, _insert something here_. The last one is maybe the trickiest. Best might be a good text editor for programming that isn't Emacs, combined with leiningen. Someone had been working on a lightweight Clojure IDE/editor here recently but I don't know the current status of that. I'd like to hear more about this IDE/editor if it's still a going concern. I tried to find an editor for a setup like this but was unable to find one that really fit the bill, with a major sticking point being what I consider minimal Lisp editing features: bracket matching and language-aware auto-re-indenting (and syntax coloring wouldn't hurt). I'm not so sure. For newbs to it, emacs has a steep learning curve even if you avoid any installation hiccups. Certainly true, and this is one of the other reasons that I taught with Eclipse/CCW rather than an emacs setup last year. But with a well-configured modern emacs some of this can be ameliorated; e.g. there are Mac versions in which you can use multiple windows for different buffers in an OS native way, and use OS native navigation techniques, and find commands in menus, etc. My dream installer would produce as friendly a setup as possible, with versions for most common platforms, and if this existed then I think that students could go from zero to knowing what they need to know for an edit/run cycle on this setup in one session. Yes they could spend years mastering it, but they could do real work without mastering it or knowing anything about how to tinker with it. I agree that the emacs interface learning curve would be the roughest spot in this particular setup, but I think it would be manageable and worth it to get the positives. Of course, emacs setup for Clojure that works painlessly out of the box wouldn't be a bad thing, but I'm not sure it's a priority compared to getting a truly newbie-friendly installation option up there and documented for people that would be intimidated by Eclipse and Netbeans and would have kittens if suddenly confronted with emacs. :) A lot of the bad complexity of Eclipse (and I guess Netbeans, though I have less experience there) has to do with things that will be handled elegantly by leiningen from the command line in an emacs/lein setup. I guess I would rank the emacs/slime/lein installation/configuration problem as a high priority because I think that solving it would produce a good way for newbies to get started with just one step (with the downside of the emacs interface learning curve, to whatever extent that can't be addressed via configuration) while also providing an environment that works well for advanced users. At least in my own case I'm pretty sure that if the emacs/slime/lein installation/configuration problem was really solved well then I would switch to that as my teaching environment (and also as my research coding environment). BTW I'm an old lisper who has lived a lot in emacs but I've mostly avoided having to tinker with it, so the hoops that I had to jump through to set things up for Clojure didn't come naturally to me. Part of this is probably because I spent a fair amount of time using Lisp machines and then a long stretch using MCL which had the wonderful FRED (FRED Resembles Emacs Deliberately) editor that combined all of the power of Emacs with single-drag installation and a thoroughly OS (Mac) native interface. FRED still lives on in some forms, including MCLIDE, which has Clojure support (but it's Mac only and has some other issues). -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 2:19 AM, Lee Spector lspec...@hampshire.edu wrote: Certainly true, and this is one of the other reasons that I taught with Eclipse/CCW rather than an emacs setup last year. But with a well-configured modern emacs some of this can be ameliorated; e.g. there are Mac versions in which you can use multiple windows for different buffers in an OS native way, and use OS native navigation techniques, and find commands in menus, etc. There are people that would kill for a Windows port of emacs that let you navigate, find capabilities, and find out about shortcut keys in an OS native way. Especially if it came with OS native help you could use the OS native help browser to browse. :) Well, at the very least, there are people that might actually try emacs (or try emacs again) if such a thing existed, but not otherwise... My dream installer would produce as friendly a setup as possible, with versions for most common platforms, and if this existed then I think that students could go from zero to knowing what they need to know for an edit/run cycle on this setup in one session. Yes they could spend years mastering it, but they could do real work without mastering it or knowing anything about how to tinker with it. Yes, a problem with emacs is that it doesn't follow either of the usual patterns. Some apps have a learning curve that's gentle, then plateaus -- simple things like Notepad. Others have one that starts out gentle and then takes off like an exponential function graph -- it's easy to become productive at simple tasks with these, but you can also do more wizardly things with time and practice. The easy part also gives you a beachhead in its territory; no matter how complex the advanced features are, at least such basic things as locating and searching the documentation, changing the advanced feature's settings, the general navigation mechanics, etc. are familiar, giving you a starting point. The emacs learning curve, by contrast, is like a sheer cliff of solid ice without hand or foothold. :) A lot of the bad complexity of Eclipse (and I guess Netbeans, though I have less experience there) has to do with things that will be handled elegantly by leiningen from the command line in an emacs/lein setup. Yes, possibly. Would that the Eclipse/CCW modern graphical editor, namespace browser, REPL, and other features could be used with lein instead of Eclipse's own build configurators. I guess I would rank the emacs/slime/lein installation/configuration problem as a high priority because I think that solving it would produce a good way for newbies to get started with just one step (with the downside of the emacs interface learning curve, to whatever extent that can't be addressed via configuration) That's not a downside, that's a pit full of sharks with lasers on their heads, at least from your hypothetical newb's perspective, unless it was really REALLY tamed. That Mac version MIGHT do it, but only for Mac users and only if OS-native shortcut keys for common tasks (save, save as, change to mru nonfocused window, cut, copy, paste, undo, redo) are supported or an installer can easily configure that. Nothing will annoy a new user of the app that isn't new to the OS more than being tripped up if they try to use keyboard shortcuts instead of the mouse to get a task like that accomplished. Oh, and I do hope clicking, click-drag-selecting, and so on in the editor windows would not violate Least Surprise either. With ports of nonnative software you often can't even count on that. That and command-X not being bound to format filesystem instead of cut are the most crucial I'd think there. Windows users, OTOH, will apparently be SOL for the foreseeable unless you have an alternative Windows editor that'll do and is sufficiently native in its UI behavior. BTW I'm an old lisper who has lived a lot in emacs but I've mostly avoided having to tinker with it, so the hoops that I had to jump through to set things up for Clojure didn't come naturally to me. Part of this is probably because I spent a fair amount of time using Lisp machines and then a long stretch using MCL which had the wonderful FRED (FRED Resembles Emacs Deliberately) editor Ah, the familiar hacker GRAT (GRAT Recursive Acronym Trick). Gotta watch out for that. :) that combined all of the power of Emacs with single-drag installation and a thoroughly OS (Mac) native interface. FRED still lives on in some forms, including MCLIDE, which has Clojure support (but it's Mac only and has some other issues). Why are the poor Windows users left out? For that matter, why are the poor Gnome/KDE users, many of them Windows refugees that want a GUI and applications that act Windowslike (minus all the crashing and viruses), left out? -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a
Re: Please stand firm against Steve Yegge's yes language push
Disclosure: I only began learning/setting up Clojure about a week ago... Despite putting a relatively sizeable chunk of time into it, I still don't have what I would consider a pleasant working environment... How about: GETTING STARTED snip This would have been great - one canonical source of information, up-to-date, without having to scour slightly out of date blog posts... If you're coming from a Lisp background, or at least are familiar with emacs _here is how to set up with emacs and leiningen_. As 'this guy', pointers to decent You will also need to know these things about Java classpaths etc would be also helpful here On the emacs/lein option I think the main problem is the messiness of the installation and configuration process. If code/instructions were available that reliably produced a full and reasonably configured emacs/slime/lein setup, on most common platforms, with a single download and double click (or something not much more complicated), then this would be a more attractive option. Problem with this is that many Emacs users will already have an installation that contains all kinds of customizations and configurations that are liable to be hard to cover/predict... On the other hand, for emacs old hands the current rocky road to configuring emacs/slime/swank-clojure/lein/etc. to play nice with one another is the sort of thing they've been coping with for years and in some cases even decades; one might argue they can take it. Doesn't mean we actually enjoy that part of it ;) -- Love regards etc David Miller http://www.deadpansincerity.com 07854 880 883 -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 2011, at 2:39 AM, Ken Wesson wrote: (with the downside of the emacs interface learning curve, to whatever extent that can't be addressed via configuration) That's not a downside, that's a pit full of sharks with lasers on their heads, at least from your hypothetical newb's perspective, unless it was really REALLY tamed. Yeah, but there are a lot of sharks in these waters, and FWIW an improvement on the emacs/slime/lein installation/configuration front would make that the clear winner for me, lasers and all. I'm currently leaning this way anyway for the fall semester, inspired in part by Sam Aaron's setup and video (http://vimeo.com/25190186). Also FWIW our classroom/lab is mac based, although students have a mix of platforms and they'll have to set things up on their own machines too. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 6:19 am, Ken Wesson kwess...@gmail.com wrote: On Fri, Jul 8, 2011 at 1:07 AM, Lee Spector lspec...@hampshire.edu wrote: On Jul 7, 2011, at 7:29 PM, Sean Corfield wrote: And yet the #1 FAQ we see on lists and reflected in blog posts is about getting Clojure up and running... We see Java developers, committed to their favorite IDE, still asking Should I install / learn Emacs? We see old-time Lispers, happy with Emacs, struggle with the Java infrastructure. A lot of n00bs want to be told the One True Way to set up their development environment - they don't want to be confronted with choices. Like you, I don't entirely understand why this is an issue - but I accept that it clearly _is_ an issue... For me at least the issue isn't that there should be a single blessed setup, but rather that there should be at least one setup (and documentation for that setup) that's a little more newbie-friendly than any of them currently are. How about: GETTING STARTED If you're coming from a Lisp background, or at least are familiar with emacs _here is how to set up with emacs and leiningen_. If you're coming from a Java background, _download Eclipse and CCW_ or _download NetBeans and Enclojure_. If your programming experience lies elsewhere, or you're new to programming altogether, _insert something here_. The last one is maybe the trickiest May I also add the following caveat emptors: - If you're new to programming, clojure will overwhelm you. Start with something like python. - If you come from python/ruby and have no java background, do not expect to start hacking clojure in the morning and be productive and accomplishing work in the afternoon of that same day; go learn java for a while first (a few months at least). Also, continue using whatever it is you use now till you're confident you know enough to jump ship. - we can't teach you java, please go learn java for a while if you have no java experience, there are tons and tons of tutorials and books on teaching you java. - if all you need is a hello world program, there are simpler languages for this purpose (python etc). Consider clojure if you have need for java apis or concurrency needs (concurrency is an advanced, low level topic and not something most programmers should concern themselves with). - and so on... I think it's important to have such caveat emptors, it seems many of the complaints relate to expectations mismatched to reality Regards J -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
do not expect to start hacking clojure in the morning and be productive and accomplishing work in the afternoon of that same day reality is cruel: http://norvig.com/21-days.html but fair ... isn't it ? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 2011, at 10:29 AM, James Keats wrote: May I also add the following caveat emptors: - If you're new to programming, clojure will overwhelm you. Start with something like python. I disagree. This is a subject of religious debates that I don't want to get into in detail, but FWIW this educator thinks that Lisp is a perfectly defensible first language and that Clojure can serve the purpose quite well as long as installation and tooling doesn't make it unnecessarily difficult to write and run code. - If you come from python/ruby and have no java background, do not expect to start hacking clojure in the morning and be productive and accomplishing work in the afternoon of that same day; go learn java for a while first (a few months at least). Also, continue using whatever it is you use now till you're confident you know enough to jump ship. - we can't teach you java, please go learn java for a while if you have no java experience, there are tons and tons of tutorials and books on teaching you java. Disagree and disagree. One can do a lot in Clojure with almost no knowledge of the Java language or the Java ecosystem. At least for the kinds of things that I do. Yes, I occasionally need to use an interop form for something for which there's no Clojure version, but for me that's rare and easy to pick up on a case by case basis without being a Java programmer. - if all you need is a hello world program, there are simpler languages for this purpose (python etc). Consider clojure if you have need for java apis or concurrency needs (concurrency is an advanced, low level topic and not something most programmers should concern themselves with). Disagree. Nobody *just* wants to write hello world, of course, but Clojure can be a great language for many people who have zero need for Java APIs or concurrency. I use/teach it because of all of the great features of Lisps more generally, and because Clojure is the best Lisp going (IMHO). - and so on... I think it's important to have such caveat emptors, it seems many of the complaints relate to expectations mismatched to reality Maybe, but since I disagree with every one of your caveats I wouldn't advocate making them :-0. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 4:29 PM, James Keats james.w.ke...@gmail.com wrote: May I also add the following caveat emptors: - If you're new to programming, clojure will overwhelm you. Start with something like python. I think most programming languages overwhelm you if you don't have any prior experience. I started with C++ and when pointers references where introduced to me, my head almost blew out. - If you come from python/ruby and have no java background, do not expect to start hacking clojure in the morning and be productive and accomplishing work in the afternoon of that same day; go learn java for a while first (a few months at least). Also, continue using whatever it is you use now till you're confident you know enough to jump ship. I'm learning java through clojure. Since clojure and java is so tight, it works fine. - if all you need is a hello world program, there are simpler languages for this purpose (python etc). Consider clojure if you have need for java apis or concurrency needs (concurrency is an advanced, low level topic and not something most programmers should concern themselves with). You probably don't mean an actual hello world program, but let's compare them anyway. python: print hello world clojure: (print hello world) Not that much harder, is it? Jonathan -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I disagree. This is a subject of religious debates that I don't want to get into in detail, but FWIW this educator thinks that Lisp is a perfectly defensible first language and that Clojure can serve the purpose quite well as long as installation and tooling doesn't make it ?unnecessarily difficult to write and run code. And this is the crux of the issue. It's the installation and tooling that's killing Clojure, ATM. Okay, killing is a strong word..but perhaps killing it for the newbies. Let's say I want to install some OpenGL libs for Python...I go and install Python. On Windows this is a simple .exe installer. This puts python into a location on my drive that makes sense (c:\Python27), and in there I see (c:\Python27\python.exe). If I run that program, HEY!, I get a REPL. Now I want to install opengl...so I find pygame...download the .exe, and run it. The installer finds my Python directory, and after install I just have to re-load my REPL. Now compare that to Clojure. I know Clojure does what it does for a reason, but let's be honest. First I have to download the JDK (and I have to know what that is), then I have to download something like lein, and add it to my command path. From there I have to figure out what on earth a project.clj file is, and what the contents mean. Then I can do lein deps, and then lein repl. Yay! I have a repl. Now I want to install OpenGL. That involves some interesting magic with clojars, lein and other such tools. As a quick compare... Python: python-pygame Clojure: JDK-lein-clojure-penumbra So over all yes, I think Clojure is just fine as a first language, but it's horrible as a first installed language. Timothy -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Lee Spector lspec...@hampshire.edu writes: On Jul 8, 2011, at 2:39 AM, Ken Wesson wrote: (with the downside of the emacs interface learning curve, to whatever extent that can't be addressed via configuration) That's not a downside, that's a pit full of sharks with lasers on their heads, at least from your hypothetical newb's perspective, unless it was really REALLY tamed. Yeah, but there are a lot of sharks in these waters, and FWIW an improvement on the emacs/slime/lein installation/configuration front would make that the clear winner for me, lasers and all. Have you tried the Vagrant approach? It's a one-button Emacs/Clojure/Leiningen hacking VM setup[1]: https://github.com/Seajure/emacs-clojure-vagrant -Phil [1] - provided you have virtualbox. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 2011, at 12:17 PM, Phil Hagelberg wrote: Have you tried the Vagrant approach? It's a one-button Emacs/Clojure/Leiningen hacking VM setup[1]: I haven't, although I've been watching the list traffic on this. Now I see that I must. I will! Thanks, -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 9:47 PM, Phil Hagelberg p...@hagelb.org wrote: Have you tried the Vagrant approach? It's a one-button Emacs/Clojure/Leiningen hacking VM setup[1]: https://github.com/Seajure/emacs-clojure-vagrant -Phil [1] - provided you have virtualbox. That is still not as easy as python. Running VM is a bigger overhead... regards Vivek -- The hidden harmony is better than the obvious!! -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Vagrant setup [was Re: Please stand firm against Steve Yegge's yes language push]
On Jul 8, 2011, at 12:38 PM, Vivek Khurana wrote: That is still not as easy as python. Running VM is a bigger overhead... There are different kinds of overhead. If the installation and setup of the VM is simple and bullet proof then this is acceptable overhead for me. On the other hand I just tried it and while the first two steps were fine (installing virtualbox and the extension pack) I then got: lee-spectors-macbook-pro:Seajure-emacs-clojure-vagrant-9a47c23 leespector$ gem install vagrant WARNING: Installing to ~/.gem since /Library/Ruby/Gems/1.8 and /usr/bin aren't both writable. WARNING: You don't have /Users/leespector/.gem/ruby/1.8/bin in your PATH, gem executables will not run. Building native extensions. This could take a while... ERROR: Error installing vagrant: thor requires RubyGems version = 1.3.6 This is on a macbook pro running os x 10.8.7. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Vagrant setup [was Re: Please stand firm against Steve Yegge's yes language push]
It looks like you haven't got enough privileges, try sudo gem install vagrant Jonathan On Fri, Jul 8, 2011 at 6:58 PM, Lee Spector lspec...@hampshire.edu wrote: On Jul 8, 2011, at 12:38 PM, Vivek Khurana wrote: That is still not as easy as python. Running VM is a bigger overhead... There are different kinds of overhead. If the installation and setup of the VM is simple and bullet proof then this is acceptable overhead for me. On the other hand I just tried it and while the first two steps were fine (installing virtualbox and the extension pack) I then got: lee-spectors-macbook-pro:Seajure-emacs-clojure-vagrant-9a47c23 leespector$ gem install vagrant WARNING: Installing to ~/.gem since /Library/Ruby/Gems/1.8 and /usr/bin aren't both writable. WARNING: You don't have /Users/leespector/.gem/ruby/1.8/bin in your PATH, gem executables will not run. Building native extensions. This could take a while... ERROR: Error installing vagrant: thor requires RubyGems version = 1.3.6 This is on a macbook pro running os x 10.8.7. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Vagrant setup [was Re: Please stand firm against Steve Yegge's yes language push]
On Jul 8, 2011, at 1:02 PM, Jonathan Fischer Friberg wrote: It looks like you haven't got enough privileges, try sudo gem install vagrant Thanks. That solved some of the problems (and I would suggest that sudo be added to the vagrant readme instructions) but I still get: ERROR: Error installing vagrant: thor requires RubyGems version = 1.3.6 So I guess I need to track that down... -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Vagrant setup [was Re: Please stand firm against Steve Yegge's yes language push]
2011/7/8 Lee Spector lspec...@hampshire.edu ERROR: Error installing vagrant: thor requires RubyGems version = 1.3.6 So I guess I need to track that down... what does gem --version output? To upgrade rubygems, use [sudo] gem update --system -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I think we need to be careful here about the association between Java and Clojure. Sure, they run on the JVM, but that is their *only* relationship (from a consumer's point of view) as far as I can see. For me, after a decade+ of developing Enterprise Java (primarily web) applications I am sick and tired of all the hoops and ceremony involved in building Java applications. More and more I am coming (from reading other people's work - not my own discovery!) to realise that most established best-practice is only required to answer an insufficiency in the language itself. The thing that most sold me on Clojure (rather than Scala, the main other contender) was the simplicity of the language itself and the low ceremony build-process. To this end, I am absolutely *not* interested in having to live inside a huge complex bit of machinery in order to productively write programs. Eclipse and IntelliJ (and ilk) are necessary for serious Java development mainly because they take the implicit weight of Java applications. I would see it as a failing (maybe too strong) if Clojure required either that much machinery. So, for me, and I appreciate this is maybe unique, I want to go back and basics and learn Clojure properly. Getting Clojure installed in my nice familiar Java IDE _might_ send the wrong, and very dangerous message that Clojure is on a migration path from Java, when, to my mind, it isn't. It is a completely different language, right down to the fundamental build-deploy cycle. I guess I am saying how much of IDE _whatever_'s functionality is actually helpful in building Clojure applications? As I understand it, large, deep nested packages (a sign of a nicely decomposed Java system) probably isn't the right thing in Clojure. Refactoring support probably isn't required as much because Clojure *seems* easier to write the right thing first time I am being naive and simplistic, but hopefully you get my point. I absolutely get that saying forget IDE _whatever_ and use Emacs isn't the right thing either, but I do think there is something good about a message of Clojure is a LISP, which have certain behaviours of development, Emacs is designed for that very purpose and whilst you can use IDE X, maybe you are trying to fit a square peg into a ridiculously heavy and complex hole. I too was pretty disillusioned when, after reading about the purity of development with the REPL and the bliss that is LISP development in emacs it turned out that after hours trying to get it all configured, I still couldn't get it working A downloaded VM, or a vagrant/ puppet/chef/one line batch/sh script file orr windows (or statically compiled tar.gz) executable would have made life much much simpler. P.S To be transparent, although I have written millions of LOC of Java on trivial and large enterprise systems, I have written 3 lines of Clojure code, along the lines of (+ 1 2 3). I have spent many hours thinking about what solutions look like in a functional language and have read 4 books on Clojure, so I am viewing this from afar. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 4:30 pm, Lee Spector lspec...@hampshire.edu wrote: On Jul 8, 2011, at 10:29 AM, James Keats wrote: May I also add the following caveat emptors: - If you're new to programming, clojure will overwhelm you. Start with something like python. I disagree. This is a subject of religious debates that I don't want to get into in detail, but FWIW this educator thinks that Lisp is a perfectly defensible first language and that Clojure can serve the purpose quite well as long as installation and tooling doesn't make it unnecessarily difficult to write and run code. - If you come from python/ruby and have no java background, do not expect to start hacking clojure in the morning and be productive and accomplishing work in the afternoon of that same day; go learn java for a while first (a few months at least). Also, continue using whatever it is you use now till you're confident you know enough to jump ship. - we can't teach you java, please go learn java for a while if you have no java experience, there are tons and tons of tutorials and books on teaching you java. Disagree and disagree. One can do a lot in Clojure with almost no knowledge of the Java language or the Java ecosystem. At least for the kinds of things that I do. Yes, I occasionally need to use an interop form for something for which there's no Clojure version, but for me that's rare and easy to pick up on a case by case basis without being a Java programmer. - if all you need is a hello world program, there are simpler languages for this purpose (python etc). Consider clojure if you have need for java apis or concurrency needs (concurrency is an advanced, low level topic and not something most programmers should concern themselves with). Disagree. Nobody *just* wants to write hello world, of course, but Clojure can be a great language for many people who have zero need for Java APIs or concurrency. I use/teach it because of all of the great features of Lisps more generally, and because Clojure is the best Lisp going (IMHO). - and so on... I think it's important to have such caveat emptors, it seems many of the complaints relate to expectations mismatched to reality Maybe, but since I disagree with every one of your caveats I wouldn't advocate making them :-0. -Lee Teaching is a strictly controlled and supervised environment. I wouldn't mind teaching a lisp curriculum based on clojure that wouldn't veer from the set path, and which test of learning are a set of specific and circumscribed exercises. For people who come to learn clojure though from the internet, they tend to be people who self- teach, and who'll actually want to use it to do actual work. I am skeptical about its ease for those. Either that, or all those experienced programmers who still struggle with it despite their long experience (I included) are just a bunch of pansies. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 7:29 AM, James Keats james.w.ke...@gmail.com wrote: - If you're new to programming, clojure will overwhelm you. Start with something like python. Totally disagree. Lisps have been many people's first introduction to programming over several decades and it works extremely well as an introductory language. Very simple syntax, simply data structures, consistent semantics. If you're new to programming, Lisps are just about the simplest languages you can pick up. Now, Clojure does require that a JVM is installed. So do any/all of the JVM-based languages so I think that's really neither here nor there. Installing a JVM is not a big deal. All of the ceremony around the JVM is completely hidden by Leiningen - no need to understand classpaths or Java runtime commands / options and no need to deal with dependencies, other than adding them to project.clj. So one simple download (the 'lein' script), one setup command ('lein self-install' - ok, maybe you need to make lein executable). Now you can hack Clojure with almost no ceremony: lein repl and off you go. Want code in files? lein new scratch; cd scratch; edit src/scratch/core.clj and off you go. Read my blog post (written a year ago; updated several times to ensure it works with newer versions of Clojure and Leiningen): http://corfield.org/blog/post.cfm/getting-started-with-clojure Now replace clojure.org/getting_started with something like that and I think most of the complaints would go away. No one needs a fancy editor / IDE setup to use Clojure - the key is just getting it installed and then a REPL to experiment and a way to run Clojure scripts easily from the command line. That blog post has gotten a lot of people up and running - with varying degrees of programming skills and varying degrees of Java/JVM knowledge (from zero to expert in both areas). -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I don't agree that clojure is, or should be seen as something entirely different than java. If it weren't for java, clojure wouldn't have much use at all. When it comes to IDEs, I agree. I write all code in vim (for editing only), and do the rest from the command line (meaning mostly leiningen). It felt a bit clunky at first, but I have grown to become very confident in that environment. Jonathan On Fri, Jul 8, 2011 at 7:38 PM, Colin Yates colin.ya...@gmail.com wrote: I think we need to be careful here about the association between Java and Clojure. Sure, they run on the JVM, but that is their *only* relationship (from a consumer's point of view) as far as I can see. For me, after a decade+ of developing Enterprise Java (primarily web) applications I am sick and tired of all the hoops and ceremony involved in building Java applications. More and more I am coming (from reading other people's work - not my own discovery!) to realise that most established best-practice is only required to answer an insufficiency in the language itself. The thing that most sold me on Clojure (rather than Scala, the main other contender) was the simplicity of the language itself and the low ceremony build-process. To this end, I am absolutely *not* interested in having to live inside a huge complex bit of machinery in order to productively write programs. Eclipse and IntelliJ (and ilk) are necessary for serious Java development mainly because they take the implicit weight of Java applications. I would see it as a failing (maybe too strong) if Clojure required either that much machinery. So, for me, and I appreciate this is maybe unique, I want to go back and basics and learn Clojure properly. Getting Clojure installed in my nice familiar Java IDE _might_ send the wrong, and very dangerous message that Clojure is on a migration path from Java, when, to my mind, it isn't. It is a completely different language, right down to the fundamental build-deploy cycle. I guess I am saying how much of IDE _whatever_'s functionality is actually helpful in building Clojure applications? As I understand it, large, deep nested packages (a sign of a nicely decomposed Java system) probably isn't the right thing in Clojure. Refactoring support probably isn't required as much because Clojure *seems* easier to write the right thing first time I am being naive and simplistic, but hopefully you get my point. I absolutely get that saying forget IDE _whatever_ and use Emacs isn't the right thing either, but I do think there is something good about a message of Clojure is a LISP, which have certain behaviours of development, Emacs is designed for that very purpose and whilst you can use IDE X, maybe you are trying to fit a square peg into a ridiculously heavy and complex hole. I too was pretty disillusioned when, after reading about the purity of development with the REPL and the bliss that is LISP development in emacs it turned out that after hours trying to get it all configured, I still couldn't get it working A downloaded VM, or a vagrant/ puppet/chef/one line batch/sh script file orr windows (or statically compiled tar.gz) executable would have made life much much simpler. P.S To be transparent, although I have written millions of LOC of Java on trivial and large enterprise systems, I have written 3 lines of Clojure code, along the lines of (+ 1 2 3). I have spent many hours thinking about what solutions look like in a functional language and have read 4 books on Clojure, so I am viewing this from afar. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Read my blog post (written a year ago; updated several times to ensure it works with newer versions of Clojure and Leiningen): http://corfield.org/blog/post.cfm/getting-started-with-clojure Now replace clojure.org/getting_started with something like that and I think most of the complaints would go away. 1. That's really all there is to it. The starting path needs to be Lein and lein repl. If that one section on the Clojure.org website were changed (it's been there for whattwo years?) it would look so much better to newcomers. Lein can at least get people up and running, and give them time to play with Clojure while they figure out IDEs. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Vagrant setup [was Re: Please stand firm against Steve Yegge's yes language push]
On Jul 8, 2011, at 1:24 PM, Michael Klishin wrote: what does gem --version output? It was 1.3.5. To upgrade rubygems, use [sudo] gem update --system Thanks so much. I've now successfully upgraded rubygems and completed the sudo gem install vagrant step without error. I will take the next steps shortly. Is this an okay place to make suggestions about the vagrant readme? In addition to adding sudo I would suggest adding an explicit step with links/instructions for installing or upgrading rubygems. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
If it weren't for McDonalds I wouldn't have such a large belly, but my belly isn't McDonalds ;) I jest (obviously!), but I do think this is a fundamental point. I (like a lot of others I expect) found Clojure and Scala whilst looking for Java.next. I read a bit about Scala, and part of its marketing is that there is no learning curve to start writing Scala applications, due to Scala being a hybrid OO and functional language. On the other hand, the very first thing I started doing when thinking how do I wield this Clojure tool was trying to see how I can use it to make OO solutions. And the answer was painfully - *because I was asking the wrong question*. Clojure != Java - different paradigms, different mindsets, different beasts. Trying to write Java in Clojure seems to be entirely the wrong thing to do. Write Java in Scala is a recommended on-ramp to integrating Scala in your organisation. Clarifications: I use Java to mean more than the language, I use it to mean the typical shape of implemented solutions using the Java programming language, i.e. OO with anaemic domain models and a fair chunk of XML and/or annotations. I keep mentioning Scala because this whole thread seems to be about newbie experience (where newbie is in reference only to Clojure) and I suspect most newbies will be thinking about Scala as well. On Jul 8, 7:15 pm, Jonathan Fischer Friberg odysso...@gmail.com wrote: I don't agree that clojure is, or should be seen as something entirely different than java. If it weren't for java, clojure wouldn't have much use at all. --- snip I think we need to be careful here about the association between Java and Clojure. Sure, they run on the JVM, but that is their *only* relationship (from a consumer's point of view) as far as I can see. For me, after a decade+ of developing Enterprise Java (primarily web) applications I am sick and tired of all the hoops and ceremony involved in building Java applications. More and more I am coming (from reading other people's work - not my own discovery!) to realise that most established best-practice is only required to answer an insufficiency in the language itself. --- snip -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I think we need to be careful here about the association between Java and Clojure. Sure, they run on the JVM, but that is their *only* relationship (from a consumer's point of view) as far as I can see. Clojure != Java - different paradigms, different mindsets, different beasts. Trying to write Java in Clojure seems to be entirely the wrong thing to do. Write Java in Scala is a recommended on-ramp to integrating Scala in your organisation. I don't think anyone is arguing that Clojure should be written as if it were Java, but that new users are often exposed to and have problems understanding classpaths and installing a jvm. And if it weren't for the nice Java interop, a significant number of users (myself included) would probably never have jumped on board. On Fri, Jul 8, 2011 at 2:29 PM, Colin Yates colin.ya...@gmail.com wrote: If it weren't for McDonalds I wouldn't have such a large belly, but my belly isn't McDonalds ;) I jest (obviously!), but I do think this is a fundamental point. I (like a lot of others I expect) found Clojure and Scala whilst looking for Java.next. I read a bit about Scala, and part of its marketing is that there is no learning curve to start writing Scala applications, due to Scala being a hybrid OO and functional language. On the other hand, the very first thing I started doing when thinking how do I wield this Clojure tool was trying to see how I can use it to make OO solutions. And the answer was painfully - *because I was asking the wrong question*. Clojure != Java - different paradigms, different mindsets, different beasts. Trying to write Java in Clojure seems to be entirely the wrong thing to do. Write Java in Scala is a recommended on-ramp to integrating Scala in your organisation. Clarifications: I use Java to mean more than the language, I use it to mean the typical shape of implemented solutions using the Java programming language, i.e. OO with anaemic domain models and a fair chunk of XML and/or annotations. I keep mentioning Scala because this whole thread seems to be about newbie experience (where newbie is in reference only to Clojure) and I suspect most newbies will be thinking about Scala as well. On Jul 8, 7:15 pm, Jonathan Fischer Friberg odysso...@gmail.com wrote: I don't agree that clojure is, or should be seen as something entirely different than java. If it weren't for java, clojure wouldn't have much use at all. --- snip I think we need to be careful here about the association between Java and Clojure. Sure, they run on the JVM, but that is their *only* relationship (from a consumer's point of view) as far as I can see. For me, after a decade+ of developing Enterprise Java (primarily web) applications I am sick and tired of all the hoops and ceremony involved in building Java applications. More and more I am coming (from reading other people's work - not my own discovery!) to realise that most established best-practice is only required to answer an insufficiency in the language itself. --- snip -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Read my blog post (written a year ago; updated several times to ensure it works with newer versions of Clojure and Leiningen): http://corfield.org/blog/post.cfm/getting-started-with-clojure Now replace clojure.org/getting_started with something like that and I think most of the complaints would go away. 1. That's really all there is to it. The starting path needs to be Lein and lein repl. If that one section on the Clojure.org website were changed (it's been there for whattwo years?) it would look so much better to newcomers. Lein can at least get people up and running, and give them time to play with Clojure while they figure out IDEs. Here's a possible plan: 1. Core will produce a smaller, up-to-date page for clojure.org/getting_started. This page will do less, and will link out prominently to the contributor wiki. Turnaround time on this: probably not before the announcement [1] on July 20. We're quite busy atm. 2. Between now and then, please help make the contributor wiki (http://dev.clojure.org/display/doc/Getting+Started) better! Some obvious things: 2a. Create a no decisions needed path for beginners. I share the opinion that this should not be IDE-based. 2b. Link out to the various other resources that are particularly useful for beginners. Stu Stuart Halloway Clojure/core http://clojure.com [1] http://www.meetup.com/Clojure-NYC/events/16166953/ -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Mailing my contributor agreement today so I can helpreally excited! May I just add that at the same level of prominence after the no decisions beginner path, we might also put a tutorial on Web (via Noir, perhaps?) and Incanter development? Those are two amazing applications of Clojurelet's not be coy to beginners about them! On Jul 8, 11:50 am, Stuart Halloway stuart.hallo...@gmail.com wrote: Read my blog post (written a year ago; updated several times to ensure it works with newer versions of Clojure and Leiningen): http://corfield.org/blog/post.cfm/getting-started-with-clojure Now replace clojure.org/getting_started with something like that and I think most of the complaints would go away. 1. That's really all there is to it. The starting path needs to be Lein and lein repl. If that one section on the Clojure.org website were changed (it's been there for whattwo years?) it would look so much better to newcomers. Lein can at least get people up and running, and give them time to play with Clojure while they figure out IDEs. Here's a possible plan: 1. Core will produce a smaller, up-to-date page for clojure.org/getting_started. This page will do less, and will link out prominently to the contributor wiki. Turnaround time on this: probably not before the announcement [1] on July 20. We're quite busy atm. 2. Between now and then, please help make the contributor wiki (http://dev.clojure.org/display/doc/Getting+Started) better! Some obvious things: 2a. Create a no decisions needed path for beginners. I share the opinion that this should not be IDE-based. 2b. Link out to the various other resources that are particularly useful for beginners. Stu Stuart Halloway Clojure/corehttp://clojure.com [1]http://www.meetup.com/Clojure-NYC/events/16166953/ -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Vagrant setup [was Re: Please stand firm against Steve Yegge's yes language push]
Lee Spector lspec...@hampshire.edu writes: Thanks so much. I've now successfully upgraded rubygems and completed the sudo gem install vagrant step without error. I will take the next steps shortly. Is this an okay place to make suggestions about the vagrant readme? In addition to adding sudo I would suggest adding an explicit step with links/instructions for installing or upgrading rubygems. Maybe a troubleshooting section at the bottom of the readme? Sounds good to me; feel free to issue a pull request. -Phil -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 2011, at 2:13 PM, Sean Corfield wrote: Now replace clojure.org/getting_started with something like that and I think most of the complaints would go away. No one needs a fancy editor / IDE setup to use Clojure - the key is just getting it installed and then a REPL to experiment and a way to run Clojure scripts easily from the command line. I'm with you 95% here, but I do think that this much editor fanciness is needed to have a sane environment for coding lisp for anything more than a few minutes: bracket-matching and language-aware auto-re-indenting. If there's a straightforward way to get this along with the rest of your setup then I agree that this would be an excellent entry path for newcomers. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 8:02 pm, Lee Spector lspec...@hampshire.edu wrote: I'm with you 95% here, but I do think that this much editor fanciness is needed to have a sane environment for coding lisp for anything more than a few minutes: bracket-matching and language-aware auto-re-indenting. If there's a straightforward way to get this along with the rest of your setup then I agree that this would be an excellent entry path for newcomers. -Lee Sam Aaron's emacs setup with cake's swank is really really nice. It could possibly be combined with a cheatsheet for emacs' most needed keyboard shortcuts. May I also add that I found remapping some keyboard keys quite useful for a sane emacs lisp editing experience. It gives me 3 ctrl keys on the right and 3 ctrl keys on the left so I could basically use any of my fingers, pinky to thumb, for that often needed key (I've also remapped the meta/alt key to one that's tactilely distinguishable - 6 ctrl may seem a bit overboard but i prefer it this way). Remapping the parens too is possibly a good thing so they'd not require a shift and won't be a rather tiresome fourth keyboard row pinky affair, I've done it, but I haven't yet settled on where to put them. I'm not sure this remapping is needed for newbies, perhaps, perhaps not, depending on how annoying emacs finger acrobatics seem to them, but for the heavy duty use I'd probably recommend it. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Vagrant setup [was Re: Please stand firm against Steve Yegge's yes language push]
On Jul 8, 2011, at 3:00 PM, Phil Hagelberg wrote: Maybe a troubleshooting section at the bottom of the readme? Sounds good to me; feel free to issue a pull request. I don't have the expertise to write such a thing. In other news, I've now done vagrant up in the directory containing the readme, and a long installation ensued ending with: [default] Copying client components to /root/.config/jark [default] Copying server components to /root/.cljr [default] Installed successfully. but I'm not sure if it's really done or not because it didn't return to the shell (I get no new prompt). In any event I opened another Terminal window to try to proceed with the next steps and got: lee-spectors-macbook-pro:~ leespector$ vagrant ssh No Vagrant environment detected. Run `vagrant init` to set one up. So I did: lee-spectors-macbook-pro:~ leespector$ vagrant init create Vagrantfile And then: lee-spectors-macbook-pro:~ leespector$ vagrant ssh The local file Vagrant uses to store data .vagrant already exists and is a directory! If you are in your home directory, then please run this command in another directory. If you aren't in a home directory, then please rename .vagrant to something else, or configure Vagrant to use another filename by modifying `config.vagrant.dotfile_name`. So I did: lee-spectors-macbook-pro:~ leespector$ mkdir vagrant-foo lee-spectors-macbook-pro:~ leespector$ cd vagrant-foo/ But still: lee-spectors-macbook-pro:vagrant-foo leespector$ vagrant ssh The local file Vagrant uses to store data .vagrant already exists and is a directory! If you are in your home directory, then please run this command in another directory. If you aren't in a home directory, then please rename .vagrant to something else, or configure Vagrant to use another filename by modifying `config.vagrant.dotfile_name`. Not sure what to do next. BTW early in the long output from vagrant up I saw: [default] The guest additions on this VM do not match the install version of VirtualBox! This may cause things such as forwarded ports, shared folders, and more to not work properly. If any of those things fail on this machine, please update the guest additions and repackage the box. I don't know if this may be responsible for my current impasse and/or if how it will effect the process of working with this setup if I ever get it working; I don't have experience with VirtualBox and I don't have a sense of how files can be moved/shared between OSes. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 11:50 AM, Stuart Halloway stuart.hallo...@gmail.com wrote: Here's a possible plan: 1. Core will produce a smaller, up-to-date page for clojure.org/getting_started. This page will do less, and will link out prominently to the contributor wiki. Turnaround time on this: probably not before the announcement [1] on July 20. We're quite busy atm. Thank you Stu - much appreciated that Clojure/core are listening on this and recognize the need for a change. 2. Between now and then, please help make the contributor wiki (http://dev.clojure.org/display/doc/Getting+Started) better! Some obvious things: 2a. Create a no decisions needed path for beginners. I share the opinion that this should not be IDE-based. Anyone with decent writing skills (i.e., not me) who wants to use my blog post as a basis for that, I'm happy to donate to the cause. The only reason I haven't already edited that page to be a version of my blog post is because I thought it might be controversial and upset people if the Getting+Started page suddenly recommended Leiningen, a REPL and simple text editing to get people up and running... 2b. Link out to the various other resources that are particularly useful for beginners. I'm happy to move / rewrite any of my blog posts over to the dev wiki so resources are more centralized - if ppl think I have any posts of valid to folks Getting+Started (perhaps my Clojure and SQL one, focusing on clojure.java.jdbc?). I don't consider myself much of a writer so I'd value any editorial assistance folks feel inclined to give. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 11:46 AM, Jonathan Fischer Friberg odysso...@gmail.com wrote: You probably don't mean an actual hello world program, but let's compare them anyway. python: print hello world clojure: (print hello world) Not that much harder, is it? And probably slightly *easier* than what my generation often started with: 10 PRINT HELLO WORLD Lack of decent screen-oriented editors presumably being to blame for the weird way those old ROM BASICs had of editing source. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 12:02 PM, Timothy Baldridge tbaldri...@gmail.com wrote: As a quick compare... Python: python-pygame Clojure: JDK-lein-clojure-penumbra If you download and install Eclipse or NetBeans they will install a JDK by default, and if you then use their internal plugin browsers to find and install CCW resp. Enclojure, they will install Clojure 1.2.0 (last time I checked) for you and set up classpaths. You can be up and running at a REPL in no time. Of course, adding a third-party library isn't as simple as install it - restart REPL, because add it to project dependencies in the IDE comes in between. I'm not sure how much that could be improved within the Java ecosystem. A lein frontend with a concept of current project that lets you just do leinfrontend install foreign-dependency and have the thing add the dependency to the project.clj and rerun lein deps under the hood, perhaps...or a feature in Enclojure or CCW that can do likewise, using the automatic dependency finding stuff that now seems to exist in the lein/maven world and possibly beyond to allow you to browse libraries and pick ones to install from within the IDE, then install the chosen libraries and their dependencies and add them to the active project's classpath in one go. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 12:38 PM, Vivek Khurana hiddenharm...@gmail.com wrote: On Fri, Jul 8, 2011 at 9:47 PM, Phil Hagelberg p...@hagelb.org wrote: Have you tried the Vagrant approach? It's a one-button Emacs/Clojure/Leiningen hacking VM setup[1]: https://github.com/Seajure/emacs-clojure-vagrant -Phil [1] - provided you have virtualbox. That is still not as easy as python. Running VM is a bigger overhead... The easy we're talking about here is how much users need to learn before they can be minimally productive (e.g., have a REPL they can evaluate stuff at, at which point you can already do useful things in Clojure, especially from a learning-programming perspective where flashy UIs and complicated DB/file work is initially secondary to such concerns as arithmetic, algorithms and data structures, flow control and that -- and using Clojure would teach good, functional habits like prefer immutable stuff and prefer HOFs to loops and clean loops that don't bash random mutable state in random ways to messy loops that have all kinds of side effects.) How much memory etc. the process consumes when it's running is rather secondary to all that. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 2011, at 3:30 PM, James Keats wrote: Sam Aaron's emacs setup with cake's swank is really really nice. It could possibly be combined with a cheatsheet for emacs' most needed keyboard shortcuts. inc! May I also add that I found remapping some keyboard keys quite useful I'd personally prefer to avoid this, since emacs keyboarding is going to be weird anyway and standard weird is generally better than novel weird unless you're already really committed. The only change that I found I wanted to make in Sam Aaron's setup was to comment out lines concerning clutter at the end of .emacs.d/live-config/cosmetic.el. At least in the emacs that I used (from emacsformacosx.com) this clutter is OS native menus which are a huge plus. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 2:23 PM, nchubrich nchubr...@gmail.com wrote: Read my blog post (written a year ago; updated several times to ensure it works with newer versions of Clojure and Leiningen): http://corfield.org/blog/post.cfm/getting-started-with-clojure Now replace clojure.org/getting_started with something like that and I think most of the complaints would go away. 1. That's really all there is to it. The starting path needs to be Lein and lein repl. If that one section on the Clojure.org website were changed (it's been there for whattwo years?) it would look so much better to newcomers. Lein can at least get people up and running, and give them time to play with Clojure while they figure out IDEs. Can it? Lein is a script which has to be made executable. So presumably it can for Unix users, probably including MacOS users, that are not completely intimidated or bewildered by a command prompt window. But what about Windows users? For better or for worse, that OS has dominant market share among desktop users, including many likely Clojure newbies. I'd say for them we need a lein.exe. Lein is written in what, Python? If it were bash that would be a problem but it shouldn't be hard to bundle a Python interpreter and the lein script into a Windows executable that can be run at a Windows command prompt and will behave there much as the lein script does on a Linux box. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 2011, at 6:23 PM, Ken Wesson wrote: If you download and install Eclipse or NetBeans they will install a JDK by default, and if you then use their internal plugin browsers to find and install CCW resp. Enclojure, they will install Clojure 1.2.0 (last time I checked) for you and set up classpaths. You can be up and running at a REPL in no time. Of course, adding a third-party library isn't as simple as install it - restart REPL, because add it to project dependencies in the IDE comes in between. I agree that Eclipse/CCW provides a great path for newbies (modulo some Eclipse interface weirdness) up to the point of project management, but then it can be messier and more opaque to the non-Java-savvy than you imply here, and this can trip you up even if you're only trying to do pretty simple things. Eclipse's idea of what's where etc. is confusing and often invisible or hidden in the interface, etc., and this produced a lot of frustration in my class. I think I said recently that several setups are about 95% the way to being newbie-friendly, and while the missing 5% for emacs/lein is mostly in installation/configuration the missing 5% for Eclipse is in project management. People have posted recipes for using lein and Eclipse/CCW together, but at least as far as I've tried them none is yet really satisfying -- a few too many steps doing things that are opaque and weird on the Eclipse side. I'm not sure how much that could be improved within the Java ecosystem. A lein frontend with a concept of current project that lets you just do leinfrontend install foreign-dependency and have the thing add the dependency to the project.clj and rerun lein deps under the hood, perhaps...or a feature in Enclojure or CCW that can do likewise, using the automatic dependency finding stuff that now seems to exist in the lein/maven world and possibly beyond to allow you to browse libraries and pick ones to install from within the IDE, then install the chosen libraries and their dependencies and add them to the active project's classpath in one go. I personally think that lein is clear enough not to need such a front-end. If there were a better way of working with lein+Eclipse/CCW, or a better way of installing/configuring a lein+emacs+slime setup, then I don't think it'd be a terrible barrier for newbies to say that project dependencies are managed by editing project.clj. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 3:30 PM, James Keats james.w.ke...@gmail.com wrote: May I also add that I found remapping some keyboard keys quite useful for a sane emacs lisp editing experience. It gives me 3 ctrl keys on the right and 3 ctrl keys on the left so I could basically use any of my fingers, pinky to thumb, for that often needed key (I've also remapped the meta/alt key to one that's tactilely distinguishable - 6 ctrl may seem a bit overboard but i prefer it this way). Remapping the parens too is possibly a good thing so they'd not require a shift and won't be a rather tiresome fourth keyboard row pinky affair, I've done it, but I haven't yet settled on where to put them. I'm not sure this remapping is needed for newbies, perhaps, perhaps not, depending on how annoying emacs finger acrobatics seem to them, but for the heavy duty use I'd probably recommend it. For newbies, any mapping that results in keys not doing what the keycaps lead the newbie to expect will be a bad mapping. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 7:02 PM, Lee Spector lspec...@hampshire.edu wrote: I think I said recently that several setups are about 95% the way to being newbie-friendly, and while the missing 5% for emacs/lein is mostly in installation/configuration the missing 5% for Eclipse is in project management. People have posted recipes for using lein and Eclipse/CCW together, but at least as far as I've tried them none is yet really satisfying -- a few too many steps doing things that are opaque and weird on the Eclipse side. Yes, the ideal is probably some sort of notemacs/lein combination for some suitable choice of notemacs and with some kind of one-shot install clojure, lein, on Windows anything else needed to just do 'lein foo' from the command prompt e.g. Python interpreter, and notemacs distributable. I personally think that lein is clear enough not to need such a front-end. If there were a better way of working with lein+Eclipse/CCW, or a better way of installing/configuring a lein+emacs+slime setup, then I don't think it'd be a terrible barrier for newbies to say that project dependencies are managed by editing project.clj. My concern there is with newbies just getting their feet wet in Clojure needing to hack a Clojure file in order to start learning how to hack Clojure files. :) -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
2011/7/9 Ken Wesson kwess...@gmail.com e.g. Python interpreter Sorry, why does Clojure starter kit need to embed Python? I couldn't figure it out from a few recent posts. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 7:18 PM, Michael Klishin michael.s.klis...@gmail.com wrote: 2011/7/9 Ken Wesson kwess...@gmail.com e.g. Python interpreter Sorry, why does Clojure starter kit need to embed Python? I couldn't figure it out from a few recent posts. Leiningen is a script, and I thought it might be a Python script. On Windows, the interpreter won't typically already be installed anyway -- at least, you can't count on it. So either the Windows version has to come as a standalone executable (script, tweaked for Windows environment, and interpreter bundled into one binary) or the Windows installer has to install the interpreter and set things up to the script will run in it when launched from the command prompt (so, lein.exe needed again, but this time fires up external interpreter aimed at external script file after installer installs all three). -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
2011/7/9 Ken Wesson kwess...@gmail.com Leiningen is a script, and I thought it might be a Python script. On Windows, the interpreter won't typically already be installed anyway -- at least, you can't count on it. Ken, Leiningen is not just a script. It is a Clojure application with a script that makes it possible to run that application w/o all the java -jar … jazz. On Linux, Mac OS X and so on that wrapper is a shell script. On Windows it is .bat file: https://github.com/technomancy/leiningen/tree/master/bin What are kind of improvements to the wrapper cannot be implemented without embedding Python in your opinion? I like the idea of having lein.exe for Windows users, by the way. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 8, 2011, at 7:13 PM, Ken Wesson wrote: My concern there is with newbies just getting their feet wet in Clojure needing to hack a Clojure file in order to start learning how to hack Clojure files. :) Yeah, but it's a minimal copy this line and your library name goes here kind of edit that you have to make, and the default project.clj gets you started. I don't think this is really a problem. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
@nchubrich It did go on too long. I hope when someone \does read it, they will see I am not being wholly unreasonable. i liked to read through it anyway ... I was drawn to Clojure because I felt it was another evolutionary step in programming. I hope I am not wrong. i feel and hope that too. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I think we need to nail the intro / setup experience and I'm nailing my colors to Leiningen. I think that needs to be adopted as the default, standard way to get up and running on Clojure and all the official tutorials need to be updated to reflect that. I think getting an experienced Clojurian to agree with that is worth any (hopefully fixed) logorrhea! If people can agree to that one point, I'm really not going to worry about \any of the others (hence I put it first). I think it's an important time to be making it (so let's forget about the other stuff for now). Clojure was \just put on Herokuand for the first time in a while, it showed up under Google news. Steve Yegge is also (threatening? promising?) to blog about it (after writing an intro to the Joy of Clojure), and he happens to be one of the 2 or 3 most-read language bloggers. That means that a lot of attention is going to be coming Clojure's way soon. It would be very much a travesty if large portions of these people were put off by out- of-date stuff on the website. Once they are put off once, it is going to be much harder to get them in a second time. Speaking to people who I think would not mind being paid to program Clojurewe all have a stake in making the language popular and useful. (As for Steve Yeggeis he reading all this?if he's totally wrong, then of course people should feel free to disagree with him, and forget about the consequences. But if he happens to be \right, and I do think he mostly is, then making basically dismissive firm stands against him is not going to do anybody any good. This isn't a political party, thank God.) It may be that I am really talking about the website (clojure.org, not any of the auxiliary ones, which are a bit of a mess in themselves) more than the language itself. If people receive the \right instructions, setting up Emacs/Leiningen/Web servers etc. is actually not so hard. The trouble is that all of this information is currently scattered to the four winds (I include things like the Paredit cheat sheet, Slime commands, which Emacs to use, etc.), and I don't think we should rely on users to pull this information together themselves and at any rate, why should they? Mainstream languages (Java, Python) provide good resources drawn together onto their websites, painless documentation systems for contributed packages (where is the Contrib documentation these days?), and they have a pretty standard option for getting started. I think Clojure should fully aspire to that, and provide ways for users to help with developing it. That is a long-term project, but in the meantime, there seem to be some really simple things that can be done now. That's not my whole point by any means, but it's more than enough. I wish that someone of the stature of Phil Hagelberg would have brought it up on this thread; but as I have made (enough of) my point, I'll get off my hobby-horse now. See (some of) you at the Bay Area meetup tomorrow! Nick. On Jul 6, 11:37 pm, Sean Corfield seancorfi...@gmail.com wrote: Much better. Now I can read it and see your points... and respond... On Wed, Jul 6, 2011 at 10:42 PM, nchubrich nchubr...@gmail.com wrote: * Clojure still ends up turning off new users more than it needs to. I think we need to nail the intro / setup experience and I'm nailing my colors to Leiningen. I think that needs to be adopted as the default, standard way to get up and running on Clojure and all the official tutorials need to be updated to reflect that. It's the biggest, single roadblock IMO and all that nonsense about downloading ZIP files and running some specific Java command is a huge barrier to entry. So far everyone I've introduced to Clojure has struggled with the Java infrastructure stuff but has got Leiningen instantly. * It also can do a better job of attracting and retaining core contributors. I cited an example of someone who posted a patch to make refs persistent. She ended up being ignored, and left for Erlang. But Clojure needs people like her. Unfortunate but all open source projects have a bar to entry and lots of potential contributors get left by the wayside. I think Clojure actually has a pretty good ecosystem around contribution. Could it be better? Maybe. Could it maintain the high level of quality and still be more inclusive? Hard to say... * Putting up barriers to entry is \not a good thing. I think most people agree with that but the disagreement is on whether Clojure really is putting up such barriers. I think that's debatable. * Since Lisp is highly extensible, in the long run being 'prescriptive' is a losing battle. Again, I think this is a debatable point. I don't believe there is any direct correlation between the prescriptiveness of a language / framework and its success. * Clojure is already enough of a new way of thinking, and it may be simply too much at once for many people. Aye, maybe.
Re: Please stand firm against Steve Yegge's yes language push
On Thu, Jul 7, 2011 at 7:42 AM, nchubrich nchubr...@gmail.com wrote: * Since Lisp is highly extensible, in the long run being 'prescriptive' is a losing battle. It is better to eventually add standard 'bad' features to the language than to tempt third parties to do it in even worse and incompatible ways. Maybe, but I don't think that the core should change much or at all. Besides, most of those features are probably already in java. * Clojure is already enough of a new way of thinking, and it may be simply too much at once for many people. If a gentle path gets more people into the ecosystem, it's worth itonce they are in Clojure they can be steered towards better, more functional ways of doing things. In any case, experienced users are always free to ignore extra features. I don't agree, It's like postponing your homework. You have to learn sometime, and I don't think it's going to be easier later on. * It's meant to be a pragmatic language. This means that a prime goal should be to get people writing useful (web, GUI, shell) code in it right away. Having choices is good, but being forced to make all these choices your first day of writing Clojure, when you don't have a sixth sense about the community and What Really Works, is needlessly discouraging. This is dangerous. One of the main points of clojure (in my opinion), is that it's written for the actual users, and not the potential users. * Final (added) point: while it might have made sense to be 'prescriptive' initially in order to establish the identity, core, and soul of the language, this has been done sufficiently. Newcomers are not going to be confused about what the main points of Clojure are now. There is therefore less risk in making it broadly useful to different paradigms. Run for the hills! I don't quite know what to say about this point, but an earlier mail comes to mind. In that mail someone pointed out that it doesn't really matter how many features a language supports, it will still be specifically good at doing one thing. ___ Otherwise, I agree with the documentation issue. clojure.org seldom gives me useful information. Jonathan -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
It may be that I am really talking about the website (clojure.org, not any of the auxiliary ones, which are a bit of a mess in themselves) more than the language itself. If people receive the \right instructions, setting up Emacs/Leiningen/Web servers etc. is actually not so hard. The trouble is that all of this information is currently scattered to the four winds (I include things like the Paredit cheat sheet, Slime commands, which Emacs to use, etc.), and I don't think we should rely on users to pull this information together themselves and at any rate, why should they? Getting Started documentation is bound to be a high churn area. Here are things you can do to help: (1) Edit and improve the official docs: http://dev.clojure.org/display/doc/Getting+Started (2) Link to the official docs, and help us do the same. clojure.org has a slower update process than the dev site (by design!) but if there is something wrong, or a place where it needs to link out, please let us know! (3) Encourage people who wrote a blog post 18 months ago that is now filled with misinformation (as things have moved on) to go back and add a link to the official docs. There are now almost 300 signatories to the contributor agreement, and any of them can update dev.clojure.org without any review process. This should be plenty of horizontal scaling to keep documentation (even high-churn documentation) accurate. Thanks to everyone who is helping out! Stu Stuart Halloway Clojure/core http://clojure.com -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Thu, Jul 7, 2011 at 1:42 AM, nchubrich nchubr...@gmail.com wrote: ... * It also can do a better job of attracting and retaining core contributors. I cited an example of someone who posted a patch to make refs persistent. She ended up being ignored, and left for Erlang. But Clojure needs people like her. ... Just wanted to address one of your points here, as the patch submission process has been brought up before. For clojure 1.3, I actually found a small bug in the accompanying son library. I tried to submit a patch via a github pull request. But it turns out that's not the correct path to take. You have to sign a Contributor's Agreement, then submit a patch to Jira. Discussing both the error and the patch process was all plainly laid outhttp://groups.google.com/group/clojure/browse_thread/thread/58691da25896a608/d17ba8c265e95fcb?lnk=gstq=ClassCastException+on+%27clojure.data.json%2Fprint-json%27#d17ba8c265e95fcbin a friendly manner by members of the core team. So I haven't had the problem your friend experienced. If it has been a problem in the past, it seems to have improved at this point. HTH Tim -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 7, 6:42 am, nchubrich nchubr...@gmail.com wrote: I'll try :) It was really a polemical post for a polemical thread, but my main points can be extracted here. Feel free to read as many or as few of them as you are inclined nchubrich, I've read your original post in its entirely, so forgive me for not having the time to read your points of summary. To be clear, I do *not* reflect in any way on the clojure community. As has been pointed out, I've only been around this group for ~3 weeks. Given though that I've only been around for ~3 weeks, it irked me to no measure that I saw things in those Steve Yegge's posts in that thread (here and on hackernews) that could've only indicated that had he only bothered to read what books had been published and what screencasts had been put out and what interviews and posts Rich Hickey and others had made he would've come to an understanding of the technical reasons why things with the core language are the way they are - I did - and had answers to his complaints and wouldn't have had to rant about them. Yup, it irked me that - evidently - he didn't even bother to learn the language properly and instead ranted vehemently against things right to its core (compiler etc), demanding they change. Those videos that Rich Hickey put out on blip.tv are outstanding. The guy is a natural teacher, technically brilliant and a joy to listen to. I think humility should go both ways. People should be humble enough to realize that no matter how smart they are that they always have to be willing and eager to learn. Yes, sorry, it's a fact of this trade that you should always be willing and eager to learn, and not a particular situation to this language community. You can never get too smart for these shifting sands of industry. Sorry, there's no excuse here. With regard to emacs, I've pointed out that I wasn't a fan and that I regarded it as too tinkerish for my taste, especially so in a thread in which I invited others to convince me to use it instead of netbeans. In any case, if you do want to use emacs and wish for an out of the box good user experience, then you may wish to have a look at this post by Sam Aaron in this group. I found it very useful and I must admit it made me play with emacs a bit. There really is nothing much to emacs, just knowing the shortcut keystrokes and doing them until they become finger/muscle memory: http://groups.google.com/group/clojure/browse_thread/thread/c3c4febb5b0f0208 Again, to be clear, and I believe I pointed this out in my original post, I was *not* against the language growing in terms of users. I've emphasized that what I was against was that being seen as more important a goal than having a technically sound language. I could reply to more of your points, but not wishing this post to get too long, I'll stop here. :-) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 7, 8:09 am, nchubrich nchubr...@gmail.com wrote (As for Steve Yeggeis he reading all this?if he's totally wrong, then of course people should feel free to disagree with him, and forget about the consequences. But if he happens to be \right, and I do think he mostly is, then making basically dismissive firm stands against him is not going to do anybody any good. This isn't a political party, thank God.) I agree it isn't a political party, but it isn't a social club either. It's a technical forum. Technical soundness, rather than social expansion, should, imho, be the utmost concern. :-) I empathize with your point regarding how hard it is to deal with Java. Unfortunately, it is. But I believe it has to be done. Python is no better in that regard; you still need to understand Unix/C otherwise you'd be too limited and lost too soon. The other issues you cited are tangential to the programming language itself, they are issues of IDE, build system, documentation, etc etc. They do not affect my original post argument for the language core to be conservative and technically sound, Python's is. :-) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
For instance, a little while ago I was corresponding with someone who had released a patch to Clojure. (This was Alyssa Kwan, in case you want to look up the thread.) Her patch made refs persistent to disksomething that seemed very much in the spirit of Clojure. Dealing with disk persistence in a production-ready way may be its own discipline, but in a language that wishes to reduce ceremony, there is no reason that you should have to worry about which database to use when you merely want to write a program that remembers data when you re-start it. The interface needed to do this is \almost there It seemed an eminently useful thing, but it got posted to this list and sank without a trace. Nobody from Core ever contacted her. (She admitted it was a hack, but isn't that how all patches start out?) Several points worth calling out in the this short paragraph: (1) It is certainly a shame is somebody got frustrated and left the community, esp. if all that was needed was recognition of their input. The core team is doing better with this over time, but there is always room for improvement. (2) Improvements to Clojure do not, in fact, begin as hacks. Or even as patches. In general, they begin with a statement of a problem and some possible approaches to a solution. This is then followed by months of contemplation on and off at different times. 90% of carefully considered ideas are eventually rejected, or simply wither from lack of attention/urgency. (You can see some of these at [1], [2], [3], [4], and [5], below). For random patches, the failure rate is probably more like 99.5%. (3) The specific patch [6] you are discussing fails a bunch of different sniff tests: * creator acknowledges it is a hack * IP and licensing issues have not been resolved * new dependency underneath Clojure? hard coded to one db? * open composability issues (what happens to e.g. closed-overs?) * the patch is compound. There are a number of separate subfeatures hiding in the proposal, each also incomplete (e.g. a generic serialization mechanism) * ACID most of the time is not, IMO, in the spirit of Clojure * how is this better/worse than using a database? (4) That's just the sniff tests. It has already taken me about an hour to follow the thread and write this response, and I would categorize this idea as being in the pre-design phase of its lifecycle. It could easily take several more hours just to document the rough edges of this idea, which is tantamount to starting the design process. Once started, how long do you think it would/should take to design and implement a generic solution bridging Clojure's in-memory reference semantics with disk? It is absolutely true that as Clojure grows, more attention needs be paid to ease-of-use and ease-of-getting-started. Suggestions here are welcome! I think there are a number of issues around user experience that are almost entirely orthogonal to deep challenges such as disk-persistent references. As such, they are amenable to suggestions and improvements that do not require language changes or the same level of vetting that language changes imply. Leiningen [7] is a great example of this. Most of the core team's time is, and will continue to be, focused on solving hard problems. Rich will be presenting a great example of this at the NYC Clojure group on July 20 [8]. Cheers, Stu Stuart Halloway Clojure/core http://clojure.com [1] http://dev.clojure.org/display/design/Error+Handling [2] http://dev.clojure.org/pages/viewpage.action?pageId=950382 [3] http://dev.clojure.org/display/design/Resource+Scopes [4] http://dev.clojure.org/display/design/Asynchronous+Events [5] http://dev.clojure.org/display/design/Improve+Binding [6] https://groups.google.com/group/clojure/browse_thread/thread/561230749be02f28/655507b9773aa8be?lnk=gstq=alyssa+kwan#655507b9773aa8be [7] https://github.com/technomancy/leiningen [8] http://www.meetup.com/Clojure-NYC/events/16166953/ -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 6, 2011, at 10:06 PM, nchubrich wrote: And as to improving documentation, how is one to go about doing it? This would be an excellent area to have some community effort on, especially from relative beginners, and that is an itch I would not mind scratching. Stuart Halloway responded about how to contribute to the Getting Started documentation. If you want another place for language documentation, take a look at ClojureDocs.org. Anyone can sign up and contribute examples and usage notes. Steve Miner -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I think Yegge clarified in a follow-up post that what he really meant to say was say yes to USERS, not say yes to FEATURES, but in his typical off-the-cuff ranty writing style, he had accidentally conflated the two. As far as saying yes to every feature, I think that is obviously not a great idea. It is easy to make the argument that one of the reasons Java became successful are the features that it said no to: No to pointers, no to multiple inheritance, no to operator overloading. As far as saying yes to USERS. I think Yegge brings up a really important point about a critical problem that plagues not just clojure but all open source communities in general. Basically the blowhard who thinks he is smarter than the average person and who enjoys letting other people know it. We all have some element of self-interest in our hearts. When you get paid to write software the reward is obvious. When you are contributing to open source what is the motivation? If you have the soul of an artist maybe you just want to create something beautiful. But there are a lot of others for whom contributing to open source is an ego trip. They haven't gotten the recognition that they feel they deserve in other parts of their life, so they decided that by writing something cool and putting it on the internet then they will be cool too. When you are getting paid for software you have a direct incentive to make your software as user friendly as possible. If it just works for the users and they like it and they can happily use it without ever looking at a manual, then you get more users and more money. People in open source want more users too but they don't necessarily want it to be user friendly. In fact often I feel there is this huge incentive to NOT be user friendly. It is like hazing. You get to say things like That is not the functional way, I know the right way but you don't, I am better than you. or Why would anyone want to do that? The problem you are stumped on has such an obvious solution to me that I can't even understand why you have a problem, I am better than you. There is this attitude of I figured how to write my own .emacs all by myself, from reading the forums and the documentation, because I was too socially maladjusted to ask anyone for help. Why can't you? This poisonous attitude is perfectly exemplified in this thread by James Keats. I think it's important to recognize that we are all human beings, which means that we are herd animals, which means that we all have genetically hardwired responses to desire to be part of a hierarchy and we desire to place ourselves higher up on that hierarchy. This is why we have bullies in kindergarten. But just because you were bullied in kindergarten does not make it okay for you to bully newbies over the internet now. Back then it was not okay for the bigger kids to pick on the smaller kids and right now just because you are smarter than someone does not make you a better person. We are herd animals but we are also civilized human beings, we can rise above our base animal desires to put other people down, we don't have to give in to our desire to feel like we are part of a special club. I think the clojure community has in general been much better about this than some other open source communities, but as clojure gets more popular, the ego trippers are starting to join the party, the guys who want to say I use clojure, clojure is the best language of all, I am better than you! The guys who don't care about the pragmatic beauty of clojure and just want to be a big man in a new tribe. I think it would be good to not pay too much attention to such people and say yes to the users. Say yes to the newbies, yes to the object oriented people not by making clojure more object oriented, but by not shutting them out of the discourse and laughing them off as just object oriented people. As someone whose name I can't remember right now once said, There are no bad students, only bad teachers. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Thank you, Logan, you put it very well. You're absolutely right there can be an inherent instinct against user-friendliness in open-source software, as well as a kind of hierarchyand you've identified the source and nature of it, I think. The response to this is not to try to become commercial. The response is to realize that it's a piece of sociology and human nature that we all have to make an extra effort to rise above. It's not such a different issue from table manners good food tends to make people act like pigs unless they are careful, so people actually have to explicitly learn to eat politely. It doesn't happen by instinct, it requires leadership and guidance. For the present circumstance, I think it means that open source projects have to make user-friendliness (both on the forums, in the software, and in the documentation) a core value whether they have any deep animalistic drive to do so or not. It needs to become ingrained in the culture, and examples need to be set. I think Clojure is not too far behind the head of the pack on some of these matters. As Sean Corfield pointed out, Lein is a big part of making Clojure user- friendly; unfortunately, its central role isn't really reflected on Clojure.org. The documentation meanwhile could stand to be improved (many people seem to agree on that point), and that I think will go a long way towards shaping the culture in the right direction. I need to reply to Stu's post on that. (And yes, I intend to help. But I do want to say that talking about things is \also useful. I admit the wrongth of my prolixity in the first post, but I \don't think it's wrong to talk about cultures and processes. Every group of people has to do this at some point, and it may not always fit under the 140 character limit. And not all problems in a programming language community can be solved by programming.) Logan's economic explanation makes sense, but there is still an irony in the way programmers spend their day jobs making life easier for users, but don't always bring the same ethic to bear on their own environment. If I may make yet another homely analogy, it's like a family that keeps one room in pristine condition for guests, but lets the rest of their house accumulate cruft. It's a common but odd situation. And (as anyone who has dealt with Makefiles would know) it can be amazingly durable. We're already vastly better off than Makefiles, but this is no reason for complacency. On Jul 7, 12:03 pm, logan duskli...@gmail.com wrote: I think Yegge clarified in a follow-up post that what he really meant to say was say yes to USERS, not say yes to FEATURES, but in his typical off-the-cuff ranty writing style, he had accidentally conflated the two. As far as saying yes to every feature, I think that is obviously not a great idea. It is easy to make the argument that one of the reasons Java became successful are the features that it said no to: No to pointers, no to multiple inheritance, no to operator overloading. As far as saying yes to USERS. I think Yegge brings up a really important point about a critical problem that plagues not just clojure but all open source communities in general. Basically the blowhard who thinks he is smarter than the average person and who enjoys letting other people know it. We all have some element of self-interest in our hearts. When you get paid to write software the reward is obvious. When you are contributing to open source what is the motivation? If you have the soul of an artist maybe you just want to create something beautiful. But there are a lot of others for whom contributing to open source is an ego trip. They haven't gotten the recognition that they feel they deserve in other parts of their life, so they decided that by writing something cool and putting it on the internet then they will be cool too. When you are getting paid for software you have a direct incentive to make your software as user friendly as possible. If it just works for the users and they like it and they can happily use it without ever looking at a manual, then you get more users and more money. People in open source want more users too but they don't necessarily want it to be user friendly. In fact often I feel there is this huge incentive to NOT be user friendly. It is like hazing. You get to say things like That is not the functional way, I know the right way but you don't, I am better than you. or Why would anyone want to do that? The problem you are stumped on has such an obvious solution to me that I can't even understand why you have a problem, I am better than you. There is this attitude of I figured how to write my own .emacs all by myself, from reading the forums and the documentation, because I was too socially maladjusted to ask anyone for help. Why can't you? This poisonous attitude is perfectly exemplified in this thread by James Keats. I think it's important to recognize that we
Re: Please stand firm against Steve Yegge's yes language push
On Thu, Jul 7, 2011 at 6:12 AM, Stuart Halloway stuart.hallo...@gmail.com wrote: (1) Edit and improve the official docs: http://dev.clojure.org/display/doc/Getting+Started I think one sticking point here is that there are (so far) seven IDEs/editors listed and five build tools. For a n00b, that's too much choice. There have been discussions about http://clojure.org/getting_started in the past but it's still showing the (fairly horrible) instructions that start with talk of a source code repository, a ZIP file and bytecode generation(!). There needs to be a decision by the core team on a single, recommended, _simple_ getting started process and update that page to show that (please: lein). Beyond that simple process, it can point to the dev wiki with the list of IDEs and build tools. The problem here is there needs to be more proscription around Getting Started so n00bs aren't completely confused by either the primitive instructions (clojure.org) or overwhelmed by choice (dev.clojure.org). (2) Link to the official docs, and help us do the same. clojure.org has a slower update process than the dev site (by design!) but if there is something wrong, or a place where it needs to link out, please let us know! See above. Suggestions have been made about making clojure.org/getting_started better :) (3) Encourage people who wrote a blog post 18 months ago that is now filled with misinformation (as things have moved on) to go back and add a link to the official docs. Definitely a good point. I'll go back over my blog posts for Clojure and update anything that's wrong (I think I already updated some of my Getting Started stuff but I'll double-check). -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 7, 8:03 pm, logan duskli...@gmail.com wrote: This poisonous attitude is perfectly exemplified in this thread by James Keats. I completely disagree with your mis-characterization and invite you to read again what I had maintained: - I had implored that technical arguments alone should decide technical issues, not who's who. - I made clear that I had asked dumb questions, and that I don't consider myself too smart to read what'd been put out already. I made a clear distinction between a newbie who'd ask dumb questions (and explicitly included myself in that category), and a who's who from elsewhere demanding major changes outright. - If this is going to turn into a who's against whom (I made it clear time and again I wasn't against Steve Yegge personally but against his yes language *features* push, had it come from a Mr firstName lastName I would've still voiced the same technical concern and titled it accordingly), I regret that I do not have the time for that. Regards. J -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Stu--- Thanks for the links. I took a look at clojure dev and signed up. I don't see any way to editdoes that happen after I mail in the Contributor agreement? It does seem a little medieval to have to mail it in. Clojure dev though doesn't seem like such a direct way of improving clojure.org, which is what people see and try to use. (Steve, ClojureDocs.org is also another outside site.) The fact that people are posting tutorials in blog posts that need to be corrected as the language changes strikes me as an indication that there isn't enough of a way for them to write these things under Clojure's aegis. Why not eventually make a beta version of Clojure.org (with the exact same formatting), that can then be migrated piece-by-piece to the main site as things get approvedand let anyone edit this, wiki- style? What's there on clojure.org is already quite good (with the exception of Getting Started, which still tells people to do java - cp ). There could also be someone responsible overall for each section, so it doesn't get too messy a la the Emacs Wiki. I'm happy to put some time into organizing the API a little better, but I don't see any way of doing this at the moment. (I see no API section on Clojure dev.) I'd love to see the API reference not only organized into good groupings with cross-references from a given function (one area where OOP actually \is a good thingthe only one, so far as I can tell), but have these groupings include references to related Contribs and even Java functions with their Clojure call syntax. So long as there is a way for users to add these sorts of things, it can grow over time. There is probably a way of automatically snarfing things from JavaDocs as well. Again, I'm happy to undertake this sort of project, but I need to see if it's a good idea, and I obviously need guidance. Why not have clojure.org also include tutorials (the equivalent of Java trails, perhaps) to get a given thing done: shell scripting; web server; system programming; Swing; etc. The best of what people put on blogs could go straight on the main site, and then be kept up to date right there. Once this is done, you might actually get people up to speed on Clojure fairly quickly. Best, Nick. On Jul 7, 6:12 am, Stuart Halloway stuart.hallo...@gmail.com wrote: It may be that I am really talking about the website (clojure.org, not any of the auxiliary ones, which are a bit of a mess in themselves) more than the language itself. If people receive the \right instructions, setting up Emacs/Leiningen/Web servers etc. is actually not so hard. The trouble is that all of this information is currently scattered to the four winds (I include things like the Paredit cheat sheet, Slime commands, which Emacs to use, etc.), and I don't think we should rely on users to pull this information together themselves and at any rate, why should they? Getting Started documentation is bound to be a high churn area. Here are things you can do to help: (1) Edit and improve the official docs:http://dev.clojure.org/display/doc/Getting+Started (2) Link to the official docs, and help us do the same. clojure.org has a slower update process than the dev site (by design!) but if there is something wrong, or a place where it needs to link out, please let us know! (3) Encourage people who wrote a blog post 18 months ago that is now filled with misinformation (as things have moved on) to go back and add a link to the official docs. There are now almost 300 signatories to the contributor agreement, and any of them can update dev.clojure.org without any review process. This should be plenty of horizontal scaling to keep documentation (even high-churn documentation) accurate. Thanks to everyone who is helping out! Stu Stuart Halloway Clojure/corehttp://clojure.com -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 7, 8:35 pm, nchubrich nchubr...@gmail.com wrote someone whose name I can't remember right now once said, There are no bad students, only bad teachers. There are three good books already and more on the way (I look forward to Clojure in Action later this month), there are excellent videos on blip.tv (Rich Hickey's are some of the best programming talks I've ever seen), there are tons and tons and tons of books on Java, and there's ample, ample lisp literature. I don't buy the user-friendliness argument or bad teachers. This is a technical trade, not an end user application for grampa. What's more, people are not in the business of education; they're gracious enough to share their code. I also don't understand why people are in such a rush to get hacking clojure code right away; Peter Norvig has argued that it takes a long time to learn to program, and I would suggest to anyone considering a new language to learn to allow themselves an adequate amount of time well ahead to do the homework required. I think for those who come to clojure having had some Java experience, some lisp experience, some functional programming experience o the ML/Haskell family, then the language is actually such a leap in simplification. For people's sense of sanity, it's not wise to try to run before you walk. Am I being a blowhard by saying this?! I don't believe so, this is a reality. I have expressed an opinion that clojure is for the advanced programmer (Java/lisp/ML-Haskell), and there are perhaps some simpler language (eg. python, which is quite capable and I'm actually quite fond of). But fine, people are free to be impatient and get frustrated and depressed if they so insist. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Hi, Am 07.07.2011 um 21:54 schrieb Sean Corfield: I think one sticking point here is that there are (so far) seven IDEs/editors listed and five build tools. For a n00b, that's too much choice. I'm always bewildered by this argument. What has a newbie to choose here? Of course he uses what he's used to. Many Java devs probably want one of the IDEs they already know. Old-time Lispers use emacs. I don't read this information as “Look, newbie, there is emacs, or eclipse, or vim, which you can use to edit Clojure code. And you can build clojure stuff with leiningen, or with gradle, or with maven.” I see this list as: “I'm used to maven and eclipse, let's see how I get this running with the tools I know already.” Isn't that the most natural thing someone would try to do? Sincerely Meikel -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I'm always bewildered by this argument. What has a newbie to choose here? Of course he uses what he's used to. Many Java devs probably want one of the IDEs they already know. Old-time Lispers use emacs. I think it's a question of style and how to present the information (which is why it would help to have a single person in charge of each section). For one thing, the information is really in the wrong placeit should be on Clojure.org. Even where it is, there's something aesthetically wrong about having to wade through all of those choices right at the outset. (I say this even as an admitted long-poster) Having text describing emacs and lein setup, followed by links to all the other options for those who know about them, seems like a good compromise. The information is still there, and people who need it will know to click on it. Everyone else can have setup instructions that are simple and concise (and Emacs and Lein really do seem to be emerging standards). On Jul 7, 2:37 pm, Meikel Brandmeyer m...@kotka.de wrote: Hi, Am 07.07.2011 um 21:54 schrieb Sean Corfield: I think one sticking point here is that there are (so far) seven IDEs/editors listed and five build tools. For a n00b, that's too much choice. I'm always bewildered by this argument. What has a newbie to choose here? Of course he uses what he's used to. Many Java devs probably want one of the IDEs they already know. Old-time Lispers use emacs. I don't read this information as “Look, newbie, there is emacs, or eclipse, or vim, which you can use to edit Clojure code. And you can build clojure stuff with leiningen, or with gradle, or with maven.” I see this list as: “I'm used to maven and eclipse, let's see how I get this running with the tools I know already.” Isn't that the most natural thing someone would try to do? Sincerely Meikel -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Thu, Jul 7, 2011 at 2:37 PM, Meikel Brandmeyer m...@kotka.de wrote: I'm always bewildered by this argument. What has a newbie to choose here? Of course he uses what he's used to. Many Java devs probably want one of the IDEs they already know. Old-time Lispers use emacs. And yet the #1 FAQ we see on lists and reflected in blog posts is about getting Clojure up and running... We see Java developers, committed to their favorite IDE, still asking Should I install / learn Emacs? We see old-time Lispers, happy with Emacs, struggle with the Java infrastructure. A lot of n00bs want to be told the One True Way to set up their development environment - they don't want to be confronted with choices. Like you, I don't entirely understand why this is an issue - but I accept that it clearly _is_ an issue... -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 7, 2011, at 7:29 PM, Sean Corfield wrote: And yet the #1 FAQ we see on lists and reflected in blog posts is about getting Clojure up and running... We see Java developers, committed to their favorite IDE, still asking Should I install / learn Emacs? We see old-time Lispers, happy with Emacs, struggle with the Java infrastructure. A lot of n00bs want to be told the One True Way to set up their development environment - they don't want to be confronted with choices. Like you, I don't entirely understand why this is an issue - but I accept that it clearly _is_ an issue... For me at least the issue isn't that there should be a single blessed setup, but rather that there should be at least one setup (and documentation for that setup) that's a little more newbie-friendly than any of them currently are. The available options are definitely getting better (and by the options I mean not only the software packages but also the installation recipes etc., although a lot of this is scattered) but in my experience and for my purposes, which include teaching, they all still have some rough spots. On the emacs/lein option I think the main problem is the messiness of the installation and configuration process. If code/instructions were available that reliably produced a full and reasonably configured emacs/slime/lein setup, on most common platforms, with a single download and double click (or something not much more complicated), then this would be a more attractive option. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Fri, Jul 8, 2011 at 1:07 AM, Lee Spector lspec...@hampshire.edu wrote: On Jul 7, 2011, at 7:29 PM, Sean Corfield wrote: And yet the #1 FAQ we see on lists and reflected in blog posts is about getting Clojure up and running... We see Java developers, committed to their favorite IDE, still asking Should I install / learn Emacs? We see old-time Lispers, happy with Emacs, struggle with the Java infrastructure. A lot of n00bs want to be told the One True Way to set up their development environment - they don't want to be confronted with choices. Like you, I don't entirely understand why this is an issue - but I accept that it clearly _is_ an issue... For me at least the issue isn't that there should be a single blessed setup, but rather that there should be at least one setup (and documentation for that setup) that's a little more newbie-friendly than any of them currently are. How about: GETTING STARTED If you're coming from a Lisp background, or at least are familiar with emacs _here is how to set up with emacs and leiningen_. If you're coming from a Java background, _download Eclipse and CCW_ or _download NetBeans and Enclojure_. If your programming experience lies elsewhere, or you're new to programming altogether, _insert something here_. The last one is maybe the trickiest. Best might be a good text editor for programming that isn't Emacs, combined with leiningen. Someone had been working on a lightweight Clojure IDE/editor here recently but I don't know the current status of that. Notepad won't cut it and it should follow normal GUI text editor conventions. All of the programmers' editors I know of are either the one built into NetBeans, the one built into Enclojure, emacs, vi, something that imitates emacs, something that imitates vi, abandoned, or non-free, though. On the emacs/lein option I think the main problem is the messiness of the installation and configuration process. If code/instructions were available that reliably produced a full and reasonably configured emacs/slime/lein setup, on most common platforms, with a single download and double click (or something not much more complicated), then this would be a more attractive option. I'm not so sure. For newbs to it, emacs has a steep learning curve even if you avoid any installation hiccups. On the other hand, for emacs old hands the current rocky road to configuring emacs/slime/swank-clojure/lein/etc. to play nice with one another is the sort of thing they've been coping with for years and in some cases even decades; one might argue they can take it. Of course, emacs setup for Clojure that works painlessly out of the box wouldn't be a bad thing, but I'm not sure it's a priority compared to getting a truly newbie-friendly installation option up there and documented for people that would be intimidated by Eclipse and Netbeans and would have kittens if suddenly confronted with emacs. :) -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 5, 11:07 pm, faenvie fanny.aen...@gmx.de wrote: note on the original posting: First, he shouldn't be porting Java code to clojure, Second, Clojure IS fundamentally different from Java, and third, such said users who don't want to touch Java should not touch Clojure. to port java-code to clojure-code is certainly not the right thing to do in most cases ... but the fact that clojure is not determined to use the jvm as its hosting-language could certainly be a driver for the reimplementation of popular components. even memory-management (gc), io-functions and process-management may be candidates for a (re)implementation in clojure some day. I recently read this and I think it's a very sensible position: Fogus: Different target hosts would naturally support different subsets of Clojure’s functionality. How do you plan to unify the ports? Hickey: I don’t. It has not been, and will not be, the objective of Clojure to allow porting of large programs from one host to another. That is simply a waste of time, and needed by almost no one. Currently, you often have to change languages when you change hosts— from Java to C# or Javascript. This is better than that, while short of some full portability layer. The idea is to be able to take one’s knowledge of Clojure and its core libraries, and of the host du jour, and get something done. Certainly, non-IO libraries, like Clojure’s core, can move between hosts. The JVM and CLR have rough capability parity. We’ll have to see how restrictive a Javascript host might be. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Tuesday, July 5, 2011 8:08:51 PM UTC+2, Sean Corfield wrote: It might be an interesting community exercise to examine the 23 GoF patterns and discuss whether they are applicable in an FP world and, if a pattern _is_ still applicable, what it would look like? Hi Sean, take a look at http://norvig.com/design-patterns/index.htm I think it corresponds to what you're suggesting. Cheers, Carlos -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 5, 7:30 pm, Sean Corfield seancorfi...@gmail.com wrote: On Sun, Jul 3, 2011 at 8:04 PM, Sean Corfield seancorfi...@gmail.com wrote: On Sun, Jul 3, 2011 at 3:34 PM, James Keats james.w.ke...@gmail.com wrote: For example I suggest you look at this video/transcript and pay attention in particular to the point of debate between Joe Armstrong of Erlang and Martin Odersky of Scalahttp://www.infoq.com/interviews/functional-langs , in particular around the point where Odersky says I’m not quite sure I buy that (also of additional relevance to those two points arehttp://erlang.org/pipermail/erlang-questions/2011-May/058769.html and alsohttp://www.scala-lang.org/node/1637), and if you're further interested you may wish to read Eric Meyer's essay in the book Beautiful Architecture regarding a previous Simon Peter Jones Haskell- related publication, titled Software Architecture: Object-Oriented Versus Functional. I've read that book (a month or two ago) but I'll go back and re-read that essay in light of this thread. I think you mean Bertrand Meyer's piece, extolling the virtues of OO in general (and Eiffel in particular)? I thought it was a terribly self-serving piece. Meyer has a strong bias and quite a bit of disdain for anything that isn't Eiffel - which shines right thru that essay to the point of making it fairly worthless, IMO. It has no objectivity :) It was an amusing read somewhat - at points hilarious (I'm actually a fan of Meyer!), but it needs to be considered within a long... what to call it... well, debate or dispute that I've long observed between the Haskell and Eiffel communities; both are concerned with correct software, but come at it in different ways. I believe both are relevant, Haskell's statelessness and Meyer's design by contract. I read the interview transcript for Syme, Armstrong and Odersky and I have to be honest that I found Armstrong almost incoherent and half the time couldn't figure out what he was trying to argue at all - so I'm not sure what point you're trying to make by referring to that interview, sorry. Similarly Armstrong's musings on the Erlang list about the entire world being a single flat namespace full of functions that are globally unique seems rather incoherent too. He talks about the problems with using modules to organize functions (and, yes, modularity can be hard) but then proposes something that would be no different (functions made unique by either having nearly random names or a structured set of metadata that would really be indistinguishable from modules in the first place - seehttp://erlang.org/pipermail/erlang-questions/2011-May/058773.html). Armstrong can come across as incoherent but if you read him again and again and again I find more and more and more in what he says. In any case, what he's suggesting there reminds me of something I read years ago by Dr Richard Hipp of Sqlite and Tcl core, where he suggests instead of putting your program in files you put it in a database http://www.tcl.tk/community/tcl2004/Papers/D.RichardHipp/drh.html The Scala forum discussion is more useful and relevant: TL;DR - objects are occasionally the most natural model for solving a problem. And in Clojure, mutable (shared) state is occasionally the most natural model for solving a problem. That doesn't seem newsworthy to me, just that a pure functional approach might not always lead to the cleanest solution. That's kind of a duh! because otherwise why would we need STM... I think the point he was making was not so much that, but that OOP allows you to defer implementation and there's value in that. And then there's the Ruby rant. Yeah, I'd be pretty ticked off that I got shot in the foot by combining two or three libraries that otherwise ought to behave reasonably together. Global method injection is pretty nasty. When I first read about multi-methods and protocols in Clojure I was a bit worried that library code might cause a similar problem by redefining functions out from under me, by virtue of more specific overloading but it hasn't been a problem yet and when I look at how those features are used in various libraries, I'm no longer so worried. I have other reasons for not liking Ruby so it's ability to shoot you in the foot like that doesn't change my opinion of the language (nor does it change its widespread popularity for a certain class of programmers / companies). Overall then, modularity is hard and sometimes a shared / mutable state solution is cleaner... And I agree with both points. Am I missing something in your concerns? No, you're spot on. I wasn't advocating anything in particular, I was merely suggesting that some of the finest minds in the industry do still find this a hard problem and can disagree on to how best to deal with it. :-) I personally don't feel that much of a schism between functional and OO, but perhaps that's because I actually quite like
Re: Please stand firm against Steve Yegge's yes language push
I've been using Clojure on and off for a whilecurrently off, though not because of the language itself. The thread now seems to have moved in a different direction, but I have to say (looking at the Seajure and Y Combinator threads) that Steve Yegge has some good points. And ending up here with a thread titled stand firm against... seems to be exactly the sort of community problem that he is worried about. I wish that we did not have to deal with a fundamental disagreement about what a language is \for. If a programming language is something like Hermann Hesse's Glass Bead Gamean intellectual diversion for superior intellectsthen spending time contemning Joe Developer and deploring people who want to suggest different directions for the language is a worthwhile activity. But ultimately programming languages are about getting things \done, just as cars are about \going places. It is still possible (though increasingly difficult) to tinker with your own car before driving it. In the beginning, it was obligatory. You had to choose a third-party auto-body manufacturer. You had to crank the engine yourself. You even had to manually set the ignition timing while you were driving. There was a lot of cruft you had to deal with that had nothing to do with getting from point A to point B. The first users of cars had to be willing to work with them as a kind of \hobbyyou had to give over a certain amount of time out of your day just to just keeping the things running. At some point, a transition happened. They became mass-market devices. The tinkerers never went away, but their increased numbers, and the increased numbers of people simply \using cars, led to an increase in simplicity and reliability. Every time there was an issue to deal with, there were that many more people with a stake in fixing it. Some people may miss the old hobbyist culture around cars, but I don't think anyone really wants to go back to Model T days. The remarkable thing nowadays is that a \huge number of people become good drivers (although admittedly there are quite a few that shouldn't be on the roads)and driving is a fairly demanding and crucial activity. Sadly, we cannot say the same thing for computer users. Clojure is still in the Model T days (though it is continuously improving). Getting a non-broken Emacs setup is not always easy (I attended a Clojure class a few weeks ago where we spent the first couple of hours just trying to get Clojure and Emacs working). There is no built-in command-line REPL or interpreter. Debugging is cryptic and not particularly helpful, and occasionally outright misleading (see what someone posted to the Seajure and Y Combinator threads on his roundabout way of discovering that Clojure needed advance declarations). The documentation is not quite as consolidated and organized as the Java or Python documentation (though it has also gotten better), and people really wanting to get things done must deal with two independent sets of documentation, Java and Clojure, the latter of which is simply organized alphabetically. Supposing that they do get over this hump and now wish to develop a practical project, they are immediately faced with more choices. There is no standard, immediate path for developing web apps, GUIs, or even shell scriptsyou have to use your sixth sense of what libraries may or may not actually work (which on the Internet can be quite difficult, as something that doesn't really work rarely \tells you so itself). You can jump into Python as a complete noob in the morning, and have a useful program by the afternoon. This is much less likely to happen with Clojure. There are plenty of smart people who lack both the time and the system administration chops to deal with getting into Clojure. This is very sad, because once you get into it, Clojure is very easy and very sensible. There are surely many great programs that are not being writtensome of them would be programs that help smoothe the way for everyone else. Many people who would help spread the functional programming gospel are getting their brains fried in Python and Javaand teaching them will be that much harder when they eventually come around (as people have pointed out here). Now all of the rough edges are perfectly understandable for a new language, and they continue to get betterand the more you are willing to Google around and read blogs and so forth, the more solutions you find. But what bothers Steve Yegge and many other people, I suspect, is that fixing this fragmented user experience and the gaps in the language doesn't really seem to be a prioritywhen in fact it should be a prime mission. People actually make the argument that these difficulties are good weed outs for the joe developers who would (presumably) get in here and muck everything up. I have actually heard people say here that people who don't have the wherewithal to configure emacs and
Re: Please stand firm against Steve Yegge's yes language push
nchubrich nchubr...@gmail.com writes: A few people could spend a few tens of hours making things easier for everyone else, thereby saving thousands of man-hours (isn't this supposed to be what programming is about in the first place?), and yet it doesn't happen. Really? It doesn't happen? http://groups.google.com/group/clojure/browse_thread/thread/b87468adeffcd899 http://groups.google.com/group/clojure/browse_thread/thread/bdf5e874f5367b7e http://groups.google.com/group/clojure/browse_thread/thread/b86a60e252031e74 http://groups.google.com/group/clojure/browse_thread/thread/eb259e999d381d5d http://groups.google.com/group/clojure/browse_thread/thread/20d314bc0a23b574 http://groups.google.com/group/clojure/browse_thread/thread/48b8fcb3e9b30474 Maybe the twenty minutes spent drafting this voluminous post could have been better spent doing something a bit more tangible to make things better. -Phil -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
And ending up here with a thread titled stand firm against... seems to be exactly the sort of community problem that he is worried about. To be fair, this post and its title were the work of an individual who has only been in this community for about 3 weeks. And while that individual, and everyone else, is completely entitled to their beliefs, and those beliefs may be justified from the perspective they were written from, it is unfair to ascribe them to the community as a whole (which is growing large and very diverse). You can see in the responses, as is almost always seen in this community, the calm, reasoned and balanced behavior of the group as a whole. But what bothers Steve Yegge and many other people, I suspect, is that fixing this fragmented user experience and the gaps in the language doesn't really seem to be a prioritywhen in fact it should be a prime mission. Again, to be fair, the problem is not a lack of effort on the part of the community. The problem is multiple fold: everyone has their own idea of what the ideal new user experience should be, and it is an extraordinarily massive amount of work and a lot of trial and error to go from zero to easy for everyone. Python has had 15+ years to get to that point, Clojure is at 3+. Needs are seeming to be addressed at a reasonable rate, in my view. Not to be rude, only practical: if there are itches you are having that are not being scratched, it would be far more productive to do something about it than complain that others are not pulling their weight. On Wed, Jul 6, 2011 at 7:30 PM, nchubrich nchubr...@gmail.com wrote: I've been using Clojure on and off for a whilecurrently off, though not because of the language itself. The thread now seems to have moved in a different direction, but I have to say (looking at the Seajure and Y Combinator threads) that Steve Yegge has some good points. And ending up here with a thread titled stand firm against... seems to be exactly the sort of community problem that he is worried about. I wish that we did not have to deal with a fundamental disagreement about what a language is \for. If a programming language is something like Hermann Hesse's Glass Bead Gamean intellectual diversion for superior intellectsthen spending time contemning Joe Developer and deploring people who want to suggest different directions for the language is a worthwhile activity. But ultimately programming languages are about getting things \done, just as cars are about \going places. It is still possible (though increasingly difficult) to tinker with your own car before driving it. In the beginning, it was obligatory. You had to choose a third-party auto-body manufacturer. You had to crank the engine yourself. You even had to manually set the ignition timing while you were driving. There was a lot of cruft you had to deal with that had nothing to do with getting from point A to point B. The first users of cars had to be willing to work with them as a kind of \hobbyyou had to give over a certain amount of time out of your day just to just keeping the things running. At some point, a transition happened. They became mass-market devices. The tinkerers never went away, but their increased numbers, and the increased numbers of people simply \using cars, led to an increase in simplicity and reliability. Every time there was an issue to deal with, there were that many more people with a stake in fixing it. Some people may miss the old hobbyist culture around cars, but I don't think anyone really wants to go back to Model T days. The remarkable thing nowadays is that a \huge number of people become good drivers (although admittedly there are quite a few that shouldn't be on the roads)and driving is a fairly demanding and crucial activity. Sadly, we cannot say the same thing for computer users. Clojure is still in the Model T days (though it is continuously improving). Getting a non-broken Emacs setup is not always easy (I attended a Clojure class a few weeks ago where we spent the first couple of hours just trying to get Clojure and Emacs working). There is no built-in command-line REPL or interpreter. Debugging is cryptic and not particularly helpful, and occasionally outright misleading (see what someone posted to the Seajure and Y Combinator threads on his roundabout way of discovering that Clojure needed advance declarations). The documentation is not quite as consolidated and organized as the Java or Python documentation (though it has also gotten better), and people really wanting to get things done must deal with two independent sets of documentation, Java and Clojure, the latter of which is simply organized alphabetically. Supposing that they do get over this hump and now wish to develop a practical project, they are immediately faced with more choices. There is no standard, immediate path for developing web apps,
Re: Please stand firm against Steve Yegge's yes language push
To Phil: I am certainly not complaining about your efforts on Leiningen, Swank, etc. I appreciate them and use themthey have already made things vastly easier for people, and the problems with setting up Emacs, certainly, are probably more to do with Emacs itself. I am just pointing out that there is still a long way to go with the overall user experience, documentation, etc.; and as long as this remains, Steve Yegge will have a point, and it is not fair to simply dismiss what he says. The original poster in this thread was arguing that Clojure has no need to grow to a larger community. He also was arguing essentially that barriers to new users were a \good thing. I just wanted to argue against this, and indeed it ended up being at some length. If I have offended anyone in doing so, that was not my intent. When the transition to a more broad-based language happens, then there will end up being a lot more users than there are people with the ability to make fundamental changes in the language. They may make small improvements that don't get much attention, or they may simply be users with suggestions. There is nothing wrong with either of these things. I don't think their experience is any less important than people who pull their weight. Telling them always to fix it yourself is not necessarily going to improve thingsI think we are all well aware that we should make contributions if we are able. What fraction of Python users end up making any contribution at all? Are they a bad thing for Python? As to making contributions, I just pointed out an example of someone who made a contribution and was ignored. And as to improving documentation, how is one to go about doing it? This would be an excellent area to have some community effort on, especially from relative beginners, and that is an itch I would not mind scratching. It isn't my intention to disparage the community. It is a very good and active community; but this doesn't mean it isn't capable of improving, even based on suggestions from outsiders like Steve Yegge. Mark has a good point that the original poster is a fairly new member, and he is also right that there have been a lot of balanced responses. I felt however that nobody had really spoken directly and fully against his basic premiseif someone had, I would not have said anything. It is also correct to say that fixing many issues with user experience is a lot of hard work. I don't dispute that (and I was certainly exagerrating to say it would only take tens of hours). But there also seem to be things that might make a very big difference in initial impression, and would also not be too much trouble. I don't really know much about packaging, but is it really necessary (for 3+ years) to tell users under 'getting started' to type java -cp jline-0_9_5.jar:clojure.jar jline.ConsoleRunner clojure.main as their first introduction to Clojure? (This is what I was talking about with respect to difficulties in shell scripting.) The fact that it has remained under getting started for all this time (in a place where virtually every new user is going to visit within his first five minutes)this sets the tone to a certain extent, and it makes impressions about where the priorities of the community might be. It also gives a mistaken impression that the language is not ready yet which is entirely untrue. When Yegge talks about marketing a language, this is exactly the kind of thing he is talking about. There may be points of disagreement as to how exactly the user experience should improve, but I hope that the goal of getting new users up to speed and writing useful code quickly is not really a controversial one. Needless to say, I have gone on long enough --Nick. On Jul 6, 5:53 pm, Mark Rathwell mark.rathw...@gmail.com wrote: And ending up here with a thread titled stand firm against... seems to be exactly the sort of community problem that he is worried about. To be fair, this post and its title were the work of an individual who has only been in this community for about 3 weeks. And while that individual, and everyone else, is completely entitled to their beliefs, and those beliefs may be justified from the perspective they were written from, it is unfair to ascribe them to the community as a whole (which is growing large and very diverse). You can see in the responses, as is almost always seen in this community, the calm, reasoned and balanced behavior of the group as a whole. But what bothers Steve Yegge and many other people, I suspect, is that fixing this fragmented user experience and the gaps in the language doesn't really seem to be a prioritywhen in fact it should be a prime mission. Again, to be fair, the problem is not a lack of effort on the part of the community. The problem is multiple fold: everyone has their own idea of what the ideal new user experience should be, and it is an extraordinarily massive
Re: Please stand firm against Steve Yegge's yes language push
On Wed, Jul 6, 2011 at 10:06 PM, nchubrich nchubr...@gmail.com wrote: As to making contributions, I just pointed out an example of someone who made a contribution and was ignored. Does the term tl;dr mean anything to you? I doubt very many people got that far in the wall of text you posted earlier, especially in just the few hours it's been since you posted it. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
It did go on too long. I hope when someone \does read it, they will see I am not being wholly unreasonable. On Jul 6, 7:21 pm, Ken Wesson kwess...@gmail.com wrote: On Wed, Jul 6, 2011 at 10:06 PM, nchubrich nchubr...@gmail.com wrote: As to making contributions, I just pointed out an example of someone who made a contribution and was ignored. Does the term tl;dr mean anything to you? I doubt very many people got that far in the wall of text you posted earlier, especially in just the few hours it's been since you posted it. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
And I thought my posts were long :) Luc P. On Wed, 6 Jul 2011 19:26:04 -0700 (PDT) nchubrich nchubr...@gmail.com wrote: It did go on too long. I hope when someone \does read it, they will see I am not being wholly unreasonable. On Jul 6, 7:21 pm, Ken Wesson kwess...@gmail.com wrote: On Wed, Jul 6, 2011 at 10:06 PM, nchubrich nchubr...@gmail.com wrote: As to making contributions, I just pointed out an example of someone who made a contribution and was ignored. Does the term tl;dr mean anything to you? I doubt very many people got that far in the wall of text you posted earlier, especially in just the few hours it's been since you posted it. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- Luc P. The rabid Muppet -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Wed, Jul 6, 2011 at 7:21 PM, Ken Wesson kwess...@gmail.com wrote: Does the term tl;dr mean anything to you? I'll remember this date - I find myself really liking / agreeing with one of Ken's posts :) Sorry nchubrich but that really was far too long - I started reading but couldn't find any meat in the first few paragraphs and just tuned out... I may try again later but if you can _summarize_ more ppl will read what you're trying to say. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I'll try :) It was really a polemical post for a polemical thread, but my main points can be extracted here. Feel free to read as many or as few of them as you are inclined: * Clojure still ends up turning off new users more than it needs to. This may be partly an issue of priorities (see the Getting Started section on clojure.org). Many good efforts are going into libraries, but this doesn't necessarily lead to a smoothe starting path. That would require choices from the top. * It also can do a better job of attracting and retaining core contributors. I cited an example of someone who posted a patch to make refs persistent. She ended up being ignored, and left for Erlang. But Clojure needs people like her. * Putting up barriers to entry is \not a good thing. The benefits of getting new users outweigh the drawbacks, because they will bring more functionality and maturity with them. It only takes a small effort to filter out 'noise' in the group (even mine!). * Since Lisp is highly extensible, in the long run being 'prescriptive' is a losing battle. It is better to eventually add standard 'bad' features to the language than to tempt third parties to do it in even worse and incompatible ways. * Clojure is already enough of a new way of thinking, and it may be simply too much at once for many people. If a gentle path gets more people into the ecosystem, it's worth itonce they are in Clojure they can be steered towards better, more functional ways of doing things. In any case, experienced users are always free to ignore extra features. * It's meant to be a pragmatic language. This means that a prime goal should be to get people writing useful (web, GUI, shell) code in it right away. Having choices is good, but being forced to make all these choices your first day of writing Clojure, when you don't have a sixth sense about the community and What Really Works, is needlessly discouraging. * The attitude that Smart People are precisely the ones who will want to deal with Clojure's existing drawbacks ends up excluding many great future Clojurians. (A lot of smart people are busy.) The attitude itself is off-putting and self-defeating. Moreover, dealing with these issues takes \everyone's time. * Final (added) point: while it might have made sense to be 'prescriptive' initially in order to establish the identity, core, and soul of the language, this has been done sufficiently. Newcomers are not going to be confused about what the main points of Clojure are now. There is therefore less risk in making it broadly useful to different paradigms. If you want to read the arguments behind all that, you can wade into the postor add your own. On Jul 6, 9:37 pm, Sean Corfield seancorfi...@gmail.com wrote: On Wed, Jul 6, 2011 at 7:21 PM, Ken Wesson kwess...@gmail.com wrote: Does the term tl;dr mean anything to you? I'll remember this date - I find myself really liking / agreeing with one of Ken's posts :) Sorry nchubrich but that really was far too long - I started reading but couldn't find any meat in the first few paragraphs and just tuned out... I may try again later but if you can _summarize_ more ppl will read what you're trying to say. -- Sean A Corfield -- (904) 302-SEAN An Architect's View --http://corfield.org/ World Singles, LLC. --http://worldsingles.com/ Railo Technologies, Inc. --http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Ken Wesson kwess...@gmail.com writes: Hi Ken, A related case may be when you're not making just a straight wrapper, but adding something -- your own pre/post checks, or argument transformations, or etc. As for binding to a Var, that makes sense if the result is not as trivial as #(.meth %) and is going to be used many times. Otherwise #(.meth %) is not much longer than a reasonably clear Var name for it and is crystal clear as to what it does, so I'd just use that. Another consideration I take into account is if a functionality is exposed to users. For example, I have a clojure graph querying and transformation library that is built upon our java graph library. The functionality is hopefully implemented in idiomatic clojure, like iterating nodes and edges using lazy seqs. However, there are two or three functions that basically wrap only java methods. I decided to put them in although it's idiomatic clojure to call java, because then the user gets a complete, consistent clojure API and doesn't have to know anything about the java side. For example, you can write --8---cut here---start-8--- (reduce + (map #(value %1 :inhabitants) (vseq (rg) 'localities.Locality))) --8---cut here---end---8--- instead of the slightly alien --8---cut here---start-8--- (reduce + (map #(.getAttribute %1 inhabitants) (vseq (rg) 'localities.Locality))) --8---cut here---end---8--- That's a bit shorter (and allows for giving the attribute name as keyword, symbol, or string), and most importantly it is documented. If that wrapper wasn't there, users that just want to use the clojure library have to study the javadocs, too. Bye, Tassilo -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
So, another justification for wrapping a Java method is when it's a layer boundary and the Java method is two (or more) layers lower than the caller, basically. This suggests a generalization as well: that there's a form of Law of Demeter applied to layers (and libraries) where one should tend to talk directly to the levels adjacent but not to a level two steps down, for instance. The layer two steps down is an implementation detail of the layer one step down and therefore shouldn't be exposed to that layer's clients, including your current layer. This would be more broadly applicable than just when the layer boundary is a client/library boundary -- then again, maybe in a sense it's the reverse, and all layer boundaries can be thought of as client/library boundaries, i.e. every layer of an application but the top should basically be a library (or set of libraries) that is (or are) used to implement the next layer up. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
Of the people I've tried to expose to Clojure over the last six months, I've definitely found that those with less OO experience tend to pick it up much quicker. that's exactly true for me: 40+ years old and OO-centric-Programmer since 1995. it takes me one year now to reach a highlevel quality in programming clojure. i maybe near but still have the feeling that i am not there ... the IMO main-reasons for this are: - i am so deeply entrenched in OO-thinking - no chance to apply clojure in the job so it's kind of a hobby - 40+ years - brain is full of stuff - more difficult to learn IMO one thing that could help OO-people a lot would be a detailed guide for implementing classical design-patterns using clojure (see: head first desing patterns which is a fantastic book) . 'the joy of clojure' touches this subject but not in detail. Btw. it's not true IMO, that clojure eleminates the benefit of thinking in design-patterns. and finally to correct myself: clojure IS a general purpose language. no doubt about it. - high-level skills in clojure enable programmers to do both: system-programming and application-programming. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Tue, Jul 5, 2011 at 4:54 AM, faenvie fanny.aen...@gmx.de wrote: that's exactly true for me: 40+ years old and OO-centric-Programmer since 1995. it takes me one year now to reach a highlevel quality in programming clojure. I sympathize! I turn 49 this week (Thursday) and have been doing OO since '92. Fortunately I did quite a bit of FP before that so I think I can still be saved :) IMO one thing that could help OO-people a lot would be a detailed guide for implementing classical design-patterns using clojure (see: head first desing patterns which is a fantastic book) . That's an interesting point. Since the Gang of Four book is subtitled Elements of Reusabled _Object-Oriented_ Software, I wonder whether it's really the right starting point tho'? Several of those patterns exist to address problems people run into with OO, much like the Core J2EE Patterns book contains patterns that exist solely to workaround problems / deficiencies with J2EE constructs (such as EJBs). It might be an interesting community exercise to examine the 23 GoF patterns and discuss whether they are applicable in an FP world and, if a pattern _is_ still applicable, what it would look like? For example, Command would probably just be a function or closure, as would Strategy I suspect? Template Method might be a multi-method or protocol / extend-type combo, as might Decorator? Facade would be a new API implemented in a namespace that uses / requires the various namespaces to which it is a facade? Proxy is relatively straightforward in the absence of a static type system. Flyweight is probably not applicable. Singleton could be delay / deref? Iterator is not needed in Clojure due to the seq abstraction. Just throwing some ideas out there - I haven't given any of that much thought... -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Sun, Jul 3, 2011 at 8:04 PM, Sean Corfield seancorfi...@gmail.com wrote: On Sun, Jul 3, 2011 at 3:34 PM, James Keats james.w.ke...@gmail.com wrote: For example I suggest you look at this video/transcript and pay attention in particular to the point of debate between Joe Armstrong of Erlang and Martin Odersky of Scala http://www.infoq.com/interviews/functional-langs , in particular around the point where Odersky says I’m not quite sure I buy that (also of additional relevance to those two points are http://erlang.org/pipermail/erlang-questions/2011-May/058769.html and also http://www.scala-lang.org/node/1637), and if you're further interested you may wish to read Eric Meyer's essay in the book Beautiful Architecture regarding a previous Simon Peter Jones Haskell- related publication, titled Software Architecture: Object-Oriented Versus Functional. I've read that book (a month or two ago) but I'll go back and re-read that essay in light of this thread. I think you mean Bertrand Meyer's piece, extolling the virtues of OO in general (and Eiffel in particular)? I thought it was a terribly self-serving piece. Meyer has a strong bias and quite a bit of disdain for anything that isn't Eiffel - which shines right thru that essay to the point of making it fairly worthless, IMO. It has no objectivity :) I read the interview transcript for Syme, Armstrong and Odersky and I have to be honest that I found Armstrong almost incoherent and half the time couldn't figure out what he was trying to argue at all - so I'm not sure what point you're trying to make by referring to that interview, sorry. Similarly Armstrong's musings on the Erlang list about the entire world being a single flat namespace full of functions that are globally unique seems rather incoherent too. He talks about the problems with using modules to organize functions (and, yes, modularity can be hard) but then proposes something that would be no different (functions made unique by either having nearly random names or a structured set of metadata that would really be indistinguishable from modules in the first place - see http://erlang.org/pipermail/erlang-questions/2011-May/058773.html). The Scala forum discussion is more useful and relevant: TL;DR - objects are occasionally the most natural model for solving a problem. And in Clojure, mutable (shared) state is occasionally the most natural model for solving a problem. That doesn't seem newsworthy to me, just that a pure functional approach might not always lead to the cleanest solution. That's kind of a duh! because otherwise why would we need STM... And then there's the Ruby rant. Yeah, I'd be pretty ticked off that I got shot in the foot by combining two or three libraries that otherwise ought to behave reasonably together. Global method injection is pretty nasty. When I first read about multi-methods and protocols in Clojure I was a bit worried that library code might cause a similar problem by redefining functions out from under me, by virtue of more specific overloading but it hasn't been a problem yet and when I look at how those features are used in various libraries, I'm no longer so worried. I have other reasons for not liking Ruby so it's ability to shoot you in the foot like that doesn't change my opinion of the language (nor does it change its widespread popularity for a certain class of programmers / companies). Overall then, modularity is hard and sometimes a shared / mutable state solution is cleaner... And I agree with both points. Am I missing something in your concerns? -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
note on the original posting: First, he shouldn't be porting Java code to clojure, Second, Clojure IS fundamentally different from Java, and third, such said users who don't want to touch Java should not touch Clojure. to port java-code to clojure-code is certainly not the right thing to do in most cases ... but the fact that clojure is not determined to use the jvm as its hosting-language could certainly be a driver for the reimplementation of popular components. even memory-management (gc), io-functions and process-management may be candidates for a (re)implementation in clojure some day. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Sat, Jul 2, 2011 at 21:33, David Nolen dnolen.li...@gmail.com wrote: On Sat, Jul 2, 2011 at 3:21 PM, James Keats james.w.ke...@gmail.com wrote: And once you encounter the reality and frustration infamously characterized by likening the managing of lispers to the herding of cats then you begin to admire languages like python and java and see what they got right in imposing restrictions. I've yet to see any evidence anecdotal or otherwise that managing a team of good Lisp programmers is any more difficult than managing good programmers in any other language. Links? A very recent quote by Abelson is relevant: One of the things I’m learning here (Google) is the experience of working on these enormous programs. I just never experienced that before. Previously a large program to me was a hundred pages or something. Now that’s a tiny, little thing. One of the most popular text editors to this day is Emacs. It's near 3 million lines of Lisp. David It is? Looks like about 1.4M lines of Lisp and less than 0.4 M lines of C. [bsmith@pepper:~/w/emacs] $ for x in h c el ; do printf .%-2s: %7d lines in %5d files\n $x $(find * -name *.$x | xargs cat | wc -l) $(find * -name *.$x | wc -l) ; done .h : 37093 lines in 165 files .c : 337489 lines in 199 files .el: 1412477 lines in 1551 files Not that 1.4M isn't large, but it's not 3M. // Ben -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 3, 6:15 am, Ken Wesson kwess...@gmail.com wrote: There's one obvious use case for such a wrapper function, though: if you'll want to pass the Java method to HOFs from time to time. You can't directly pass a Java method to a HOF, but you can pass such a wrapper function. Pardon me if I'm wrong, but could you not use an anonymous function in those places where you'd need to pass it to a HOF and continue to use it directly elsewhere? That would probably be how I'd prefer it, as it'd mean less functions to keep track of, and less indirection (decoupling api concerns aside). -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
A function is a function, whether it is bound to a Var or not. I think that was Ken's point, that you need to wrap a Java method in a function (anonymous or named) in order to pass to an HOF, as Java methods are not first class. So, that is one instance where a function whose sole purpose is to wrap a Java method may make sense. On Mon, Jul 4, 2011 at 1:20 PM, James Keats james.w.ke...@gmail.com wrote: On Jul 3, 6:15 am, Ken Wesson kwess...@gmail.com wrote: There's one obvious use case for such a wrapper function, though: if you'll want to pass the Java method to HOFs from time to time. You can't directly pass a Java method to a HOF, but you can pass such a wrapper function. Pardon me if I'm wrong, but could you not use an anonymous function in those places where you'd need to pass it to a HOF and continue to use it directly elsewhere? That would probably be how I'd prefer it, as it'd mean less functions to keep track of, and less indirection (decoupling api concerns aside). -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Mon, Jul 4, 2011 at 1:44 PM, Mark Rathwell mark.rathw...@gmail.com wrote: A function is a function, whether it is bound to a Var or not. I think that was Ken's point, that you need to wrap a Java method in a function (anonymous or named) in order to pass to an HOF, as Java methods are not first class. So, that is one instance where a function whose sole purpose is to wrap a Java method may make sense. Exactly. A related case may be when you're not making just a straight wrapper, but adding something -- your own pre/post checks, or argument transformations, or etc. As for binding to a Var, that makes sense if the result is not as trivial as #(.meth %) and is going to be used many times. Otherwise #(.meth %) is not much longer than a reasonably clear Var name for it and is crystal clear as to what it does, so I'd just use that. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Clojure for large programs, was Re: Please stand firm against Steve Yegge's yes language push
On Sat, Jul 2, 2011 at 8:56 PM, Nick Brown nwbr...@gmail.com wrote: But not the lots of developers part. As much as I like Clojure, it has nowhere near the level of developers languages like Java or Python. And to be honest, that constraint is much more convincing for most software managers than the library one. That's an interesting point. Since 2001, I've mostly been working with CFML - despite my C++ / Java background - and that's a community that has around 800k developers (according to Evans Data Corporation's survey in 2008). One of the biggest concerns that is commonly voiced in the CFML is around the availability of CF developers. We hear of companies who are switching away from CFML to technology X because of the difficulty of finding (good) CF developers. It's hard to know for sure whether that's really the reason for their shift - I think it's a convenient excuse. Some companies will pick the best technology, some companies will pick the most popular technology... -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
In addition, completion on vars is usually much better than on methods. Plus using javadoc when you're used to docstrings feels a bit like using a card catalog when you're used to having Wikipedia in your pocket. -Phil On Jul 2, 2011 10:15 PM, Ken Wesson kwess...@gmail.com wrote: -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Sun, Jul 3, 2011 at 3:14 AM, James Keats james.w.ke...@gmail.com wrote: Again, to be absolutely clear, I do believe it's easily possible to muck up a java or python code base, but I regard the foundational design and community cultures of those languages to be conducive to large, long-term software and healthy ecosystems, java even more so than python. Perhaps we move in different circles but I've seen as much bad Java in the large as I ever used to see bad FORTRAN and bad C / C++ code over the years. I think large enterprise Java projects have just as many below average developers working on them as any other popular language projects. And by definition, half of all developers are below average and the more popular a language is, the broader that spread is likely to be. I think the only way you can avoid the joe developer that you fear is to have a language which requires a very high barrier to entry so only good developers can even write Hello World! in it. I don't think that actually benefits anyone (since such languages don't get sufficient critical mass that people ever get the chance to use them at work to solve real problems). Beyond Java, that was, more or less, predicting the demise of java and was unimpressed by python, whilst favouring ruby, yet since, over those past years, they've only - java and python - gone from strength to strength and remain on the ascendency whilst the ruby hype machine has imploded and the feasibility of ruby has come apart at the seams thanks to an ill-disciplined community culture. I find it interesting that you offer up a perceived demise of Ruby when all I see is continued adoption of Ruby/Rails, far and away ahead of Python. Again, possibly we move in different circles. On Java, I was just at JAXconf where the overall theme was Don't worry, Java's not really dead! - it was an almost desperate sense of trying to rally the (enterprise) Java troops and head off the defections to other languages, whilst all the time praising how much innovation was occurring on the (JVM) platform, i.e., in those other languages. Oracle talked about the big focus for Java EE 6 / 7 / 8 being simplification - making Java easier to use and removing a lot of the complexity and configuration that has grown up in that world (exactly the problems that are causing Java developers to move to more expressive languages and to adopt convention-based frameworks). The big inspiration being held up to everyone at the conference was Ruby/JRuby and the convention-based approach of Rails. I came away with the sense that even its most stalwart supporters think Java is very, very sick and needs to clean its act up if it is to avoid becoming irrelevant as a language. The audience were told that Java developers need to get used to the idea of learning new languages frequently. I bumped into a handful of people there using Groovy and one or two using Scala. I ran into a lot of people who really had no idea what was going on in the world outside of Java and they seemed very focused on data-centric enterprise business applications that really didn't do anything particular complex but yet had grown into gigantic codebases with a huge amount of complicated infrastructure... So, overall, I don't share your belief that Java has a foundational design and community cultures [that is] conducive to large, long-term software and healthy ecosystems. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
On Jul 3, 9:02 pm, Sean Corfield seancorfi...@gmail.com wrote: On Sun, Jul 3, 2011 at 3:14 AM, James Keats james.w.ke...@gmail.com wrote: Perhaps we move in different circles but I've seen as much bad Java in the large as I ever used to see bad FORTRAN and bad C / C++ code over the years. I think large enterprise Java projects have just as many below average developers working on them as any other popular language projects. And by definition, half of all developers are below average and the more popular a language is, the broader that spread is likely to be. I do not dispute that. I think the only way you can avoid the joe developer that you fear is to have a language which requires a very high barrier to entry so only good developers can even write Hello World! in it. I don't think that actually benefits anyone (since such languages don't get sufficient critical mass that people ever get the chance to use them at work to solve real problems). I respectfully but unreservedly disagree with the only way you can avoid the joe developer that you fear is to have a language which requires a very high barrier to entry. I do not worry so much about Hello World! taking too long, this is a business case analysis (if you can't afford to do something right, should you be doing it at all?!), though I do acknowledge that unfortunately Hello World! is the measure many developers use to judge things. I do not worry about that, what I worry about is what happens months or even years down the line, after much had been invested. Business is business; unless your motive is simply to scam someone else by passing it on (much of what startups and VCs nowadays are about - a ponzi scheme of sorts), you do not want to build on shaky foundations. There is much bad Java, no doubt, but no one if forcing you to fall prey to that. Beyond Java, that was, more or less, predicting the demise of java and was unimpressed by python, whilst favouring ruby, yet since, over those past years, they've only - java and python - gone from strength to strength and remain on the ascendency whilst the ruby hype machine has imploded and the feasibility of ruby has come apart at the seams thanks to an ill-disciplined community culture. I find it interesting that you offer up a perceived demise of Ruby when all I see is continued adoption of Ruby/Rails, far and away ahead of Python. Again, possibly we move in different circles. On Java, I was just at JAXconf where the overall theme was Don't worry, Java's not really dead! - it was an almost desperate sense of trying to rally the (enterprise) Java troops and head off the defections to other languages, whilst all the time praising how much innovation was occurring on the (JVM) platform, i.e., in those other languages. Oracle talked about the big focus for Java EE 6 / 7 / 8 being simplification - making Java easier to use and removing a lot of the complexity and configuration that has grown up in that world (exactly the problems that are causing Java developers to move to more expressive languages and to adopt convention-based frameworks). The big inspiration being held up to everyone at the conference was Ruby/JRuby and the convention-based approach of Rails. I came away with the sense that even its most stalwart supporters think Java is very, very sick and needs to clean its act up if it is to avoid becoming irrelevant as a language. The audience were told that Java developers need to get used to the idea of learning new languages frequently. I bumped into a handful of people there using Groovy and one or two using Scala. I ran into a lot of people who really had no idea what was going on in the world outside of Java and they seemed very focused on data-centric enterprise business applications that really didn't do anything particular complex but yet had grown into gigantic codebases with a huge amount of complicated infrastructure... So, overall, I don't share your belief that Java has a foundational design and community cultures [that is] conducive to large, long-term software and healthy ecosystems. Java is vast; there are so many legacy frameworks and legacy ways of doing things I would not adopt or endorse. After all, there is a reason why I'm here at clojure. We need to differentiate between things; how you build your software is up to you, but it is indisputable that Java has a lot of libraries, some may be bad, but others are outstanding, and no one is forcing you to choose the bad ones. I am a big believer that if there's a library that already does what you do, made by experts and vetted by the world, then you shouldn't do it yourself. I also believe that Java's thou shall not do this! and Python's though shall not do this, unless you have to go towards explaining that. Ruby may have a tempting Hello World! proposition that makes it appeal to startup developers, but sooner or later down the road you'll run into this
Re: Please stand firm against Steve Yegge's yes language push
On Sun, Jul 3, 2011 at 3:34 PM, James Keats james.w.ke...@gmail.com wrote: For example I suggest you look at this video/transcript and pay attention in particular to the point of debate between Joe Armstrong of Erlang and Martin Odersky of Scala http://www.infoq.com/interviews/functional-langs , in particular around the point where Odersky says I’m not quite sure I buy that (also of additional relevance to those two points are http://erlang.org/pipermail/erlang-questions/2011-May/058769.html and also http://www.scala-lang.org/node/1637), and if you're further interested you may wish to read Eric Meyer's essay in the book Beautiful Architecture regarding a previous Simon Peter Jones Haskell- related publication, titled Software Architecture: Object-Oriented Versus Functional. I've read that book (a month or two ago) but I'll go back and re-read that essay in light of this thread. I've marked those four links for View Later (I love RockMelt!). I may come back to this topic after I've consumed all that information... -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I agree, that clojure will not gain java-like popularity in a forseeable future. IMO clojure is much more a Language for SystemProgrammers (high demands, thinking in concurrency) than a Language for ApplicationProgrammers (midsize demands, thinking singlethread) it does not have to target general purpose use. But Very well could clojure become a mainstream-language for SystemProgrammers. other promising perspectives for clojure: - as a base for true innovation (core.logic) - for programming android (compile to dex) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Please stand firm against Steve Yegge's yes language push
I find clojure suitable to pretty much every problem I've come across so far, since it allows me to write concise, low-ceremony code. The bottom-up approach helps raising the abstraction level, and soon the concepts of your domain will surface, so that the code starts reflecting the language you use in your problem domain. If you care to code that way of course... Las 2011/7/2 faenvie faen...@googlemail.com I agree, that clojure will not gain java-like popularity in a forseeable future. IMO clojure is much more a Language for SystemProgrammers (high demands, thinking in concurrency) than a Language for ApplicationProgrammers (midsize demands, thinking singlethread) it does not have to target general purpose use. But Very well could clojure become a mainstream-language for SystemProgrammers. other promising perspectives for clojure: - as a base for true innovation (core.logic) - for programming android (compile to dex) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- László Török Skype: laczoka2000 Twitter: @laczoka -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en