I *totally* understand your (and pretty much every other responder's) frustration.
You're approaching it wrong. Most python/ruby programmers get this wrong, also. It's OK. I did this wrong for *years* in lots of different languages. (I blame my C++ background for how long it's taking this to sink in for me). One of the keys to "getting" lisp is to embrace the REPL. Start your environment up. And let it run. It isn't a living, breathing entity, but it's easy to forget that after a short while. Python's interactive shell covers the same idea. I think ruby has IRB to do the same sort of thing. But those are just kind-a sort-a "See? We can do the same thing lisp does" wannabes. I don't want to trash talk ruby or python. They're both great languages for what they do. But they're designed for solving different, easier problems. And they're built for coping with those problems in ways that are horribly more complicated. I came to clojure from a python/common lisp background (and I came to them from a C++ background). I spent years hating everything different about it, and I was totally wrong. Long startup time? Totally worth it. I go through it a few times when I get my basic system defined. (People have already recommended Stuart Sierra's Component architecture in this thread, haven't they?) And then my entire system is defined and works. I don't ever need to restart until I bring in a new dependency. When I work in python, I have to restart everything under the sun every time I screw up the arguments to a printf. Immutable data structures? This is the paydirt, darling. I thought that this was the most horrible part of clojure, and I wasted reams of imagination trying to figure out ways around it. And I was wrong. Unless you're writing an OS kernel, you should probably be using immutable data structures. Even if you're genius enough to track all the ways that your mutable data structure could possibly be mangled, the next person to come along and deal with it won't be as smart as you. That "next person" is usually you 6 months in the future. Don't screw yourself over. And then there's the JVM. I used to think I was safer from hackers because the JVM gets hacked 20,000 times a day and "my" platform *never* got hacked. Then someone pointed out that the JVM gets attacked 20 bazillion times a second, whereas "my" platform would never get attacked until/unless I actually created something successful on it. Just learn how to use lein and/or boot. It *is* annoying, but a good investment. On Thursday, June 9, 2016 at 11:08:39 AM UTC-5, Jiacai Liu wrote: > > I started learning clojure recently, and I am annoyed at the way to run > it (aka. lein run). why clojure script can't be run like python,ruby or > scala, like python <file>.py > -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.