|
aerique posted:It's been on my mind for a while to write a Common Lisp implementation for haXe since haXe can target so many platforms. I found a vaguely Lisp-like language implemented in haXe called Orbit, but I know nothing about it. It's evidently pretty far from Common Lisp, though, and it doesn't look very well-supported.
|
# ? Jul 22, 2013 23:01 |
|
|
# ? Apr 26, 2024 03:44 |
|
Bongo Bill posted:I found a vaguely Lisp-like language implemented in haXe called Orbit, but I know nothing about it. It's evidently pretty far from Common Lisp, though, and it doesn't look very well-supported. It's worth a look, although I always wonder why people don't just implement CL[1] or at least Scheme instead of creating their own little Lisp. Creating your own Lisp has worked for Clojure, QI and what else? [1] I can understand not implementing CL since it's such a huge beast.
|
# ? Jul 23, 2013 10:35 |
|
aerique posted:It's worth a look, although I always wonder why people don't just implement CL[1] or at least Scheme instead of creating their own little Lisp. Creating your own Lisp has worked for Clojure, QI and what else? It's probably more fun to spin your own version with your own little quirks than just implement something that has already been done. It's completely another question if it makes any sense though.
|
# ? Jul 24, 2013 05:36 |
|
aerique posted:It's been on my mind for a while to write a Common Lisp implementation for haXe since haXe can target so many platforms.
|
# ? Jul 24, 2013 05:46 |
|
PrBacterio posted:Keep in mind though that Common Lisp is a freaking huge language. Writing a full implementation of it would be a major project even for a fairly large team of programmers, no matter the platform. Yes, that's true. Going against what I said earlier about people making their own Lisps, I'd make it for myself first building what I need and making sure SICL works. Then I would make sure packages I need (Slime, sockets) are supported, but this is already a huge step. There's a reason I never started on this project ;-)
|
# ? Jul 24, 2013 08:20 |
|
Can anyone recommend an easily embeddable scheme interpreter for C/C++?
|
# ? Jul 24, 2013 13:26 |
|
Chicken Scheme is relatively easy to embed and is a high-quality implementation.
|
# ? Jul 24, 2013 15:20 |
|
Plorkyeran posted:Chicken Scheme is relatively easy to embed and is a high-quality implementation. I can vouch for Chicken too. If that doesn't work, Guile's been pretty nice since 2.0.
|
# ? Jul 24, 2013 15:32 |
|
Just in case you meant embeddable as in 'embedded hardware', check out Armpit scheme: http://armpit.sourceforge.net We have been using it for educational purposes for a few years now, using ARM7 micro-controllers. It's about 20k lines of handwritten assembly, a tiny footprint and fast enough for most purposes. We also added some native functions to drive a LCD screen ourselves. Otherwise, I also heard from good sources that Chicken Scheme and the new Guile versions are great. Bigloo is also an option, especially if you also want to embed it in Javascript.
|
# ? Jul 24, 2013 17:19 |
|
PragProg just announced a new book about Clojure and web development, both things I do a lot of every day. Looks like it'd be a darn good intro for those of you who don't know where to start otherwise: http://pragprog.com/book/dswdcloj/web-development-with-clojure
|
# ? Aug 29, 2013 00:36 |
|
Just FYI O'Reilly has 50% off all ebooks and videos right now through Sep. 10. Clojure Programming is arguably the best clojure book out right now and Clojure Inside Out is a 6 hour video series that looks pretty quality.
|
# ? Aug 29, 2013 15:11 |
|
Anyone have any experience getting a full clojure/emacs/slime/swank/lein stack up and running on Windows? Is there a good guide out there? Am I in for hell? Would it be easier to install an Ubuntu VM than go down this road? I know years ago when I tried it was a bit of a nuisance.
|
# ? Aug 29, 2013 19:46 |
|
I don't have Windows experience, but swank-clojure has been deprecated in favor of nrepl and nrepl.el. (Sorry no link, I'm on my phone.) I imagine that makes things a lot easier....
|
# ? Aug 29, 2013 20:32 |
|
Good to know. Another couple questions: I have Programming Clojure 2nd Edition, which covers Clojure 1.3. I see that 1.5 is the latest version though. Is it worth it to seek out a more up-to-date reference? Took a quick look through the change logs for both 1.4 and 1.5 and it seems like I should be safe. Anyone have recommendations for a persistent data store with good Clojure integration? What's Clojure's support for MongoDB like? CouchDB? It's just for a toy project, so my requirements aren't particularly demanding.
|
# ? Aug 29, 2013 21:06 |
|
rrrrrrrrrrrt posted:Anyone have any experience getting a full clojure/emacs/slime/swank/lein stack up and running on Windows? Is there a good guide out there? Am I in for hell? Would it be easier to install an Ubuntu VM than go down this road? I know years ago when I tried it was a bit of a nuisance. First, install the JDK version 1.7. Second, get the Leiningen batch file and make sure it is available on your path. Run "lein self-install" at the command prompt. (Apparently Leiningen now offers a Windows installer; I have no experience using it.) Third, obtain Emacs, preferably at least version 24. Fourth, make sure your Emacs can contact the Marmalade repo. Instructions are available at that link. Finally, M-x package-refresh-contents, and then M-x package-install the following packages: clojure-mode, nrepl, paredit, rainbow-delimiters.
|
# ? Aug 30, 2013 04:16 |
|
Tequila Bob posted:First, install the JDK version 1.7. Then turn off paredit. ac-nrepl is also nice-ish if you use the auto-complete package. It doesn't seem to find things that I should think are in scope, but ah well. Great list of things to tweak in the Configuration section of the nrepl.el README. e: Is there seriously not a Clojure thread? Wow.
|
# ? Aug 30, 2013 04:39 |
|
rrrrrrrrrrrt posted:Good to know. Another couple questions: If you're in the market for a SQL driver then clojure.jdbc is very solid, we use it quite comfortably in production.
|
# ? Aug 30, 2013 08:15 |
|
I've been using Korma for a few small tools at work and been very happy with it.
|
# ? Aug 30, 2013 16:49 |
|
Blargh. For whatever reason when I set up Emacs24W with Marmalade it doesn't list or show any of the actual packages from the repo, even though I've done M-x package-refresh or whatever. Anyone know what could be going wrong there? M-x package-list doesn't show any of the packages I would expect, like nREPL or SLIME. I'm getting close to just booting into Ubuntu to do Clojure stuff, but I really don't like Ubuntu that much. Also, is it worth using SLIME these days for Clojure, or is nREPL enough?
|
# ? Aug 30, 2013 21:00 |
|
rrrrrrrrrrrt posted:Blargh. For whatever reason when I set up Emacs24W with Marmalade it doesn't list or show any of the actual packages from the repo, even though I've done M-x package-refresh or whatever. Anyone know what could be going wrong there? M-x package-list doesn't show any of the packages I would expect, like nREPL or SLIME. I'm getting close to just booting into Ubuntu to do Clojure stuff, but I really don't like Ubuntu that much. Make sure you're putting the Marmalade settings in a file that your Emacs is actually loading. ~/.emacs.d/init.el is a good default for Windows. Also, check your proxy settings. rrrrrrrrrrrt posted:Also, is it worth using SLIME these days for Clojure, or is nREPL enough? nREPL is enough. SLIME is still good for other Lisps.
|
# ? Aug 30, 2013 21:35 |
|
Civil Twilight posted:I've been using Korma for a few small tools at work and been very happy with it. I've been using clojureql but Korma seems way more active/up to date. I'm probably going to do the ol' switcheroo.
|
# ? Aug 30, 2013 22:02 |
|
SavageMessiah posted:Joy of Clojure 2nd edition is arguably the best clojure book out right now Fixed that for you.
|
# ? Sep 2, 2013 13:24 |
|
Meiwaku posted:Fixed that for you. Joy of clojure 2nd edition is OUT yet, so THERE. Seriously though that one is really good too but it lacks all the stuff on how to handle the java ecosystem and build stuff and all the other ancillary stuff the JoC just glosses over.
|
# ? Sep 2, 2013 18:27 |
|
trex eaterofcadrs posted:I've been using clojureql but Korma seems way more active/up to date. I'm probably going to do the ol' switcheroo. Korma's neat and seems to be the way to go if you need to procedurally generate queries, but I've run into a couple of issues with it as far as using Postgres-specific datastructures was concerned, more specifically arrays. Clojure JDBC handles those ok. I also like JDBC's option to pass in row and column transformers, which are really handy if you need to cast certain columns to the correct data type (joda time for timestamps, for example) or if you need to standardize map keys. As in, idiomatic Postgres uses snake_case, Clojure keys should be in lisp-case. It might handle those fine now, but when I looked a while ago it didn't, and you had to either hack it yourself or use someone else's (gfrederick's?) fork, which supported it.
|
# ? Sep 3, 2013 07:02 |
|
Anyone using ac-nrepl for Emacs? I find it very, very slow. Useful, but super slow.
|
# ? Sep 3, 2013 18:13 |
|
rrrrrrrrrrrt posted:Anyone using ac-nrepl for Emacs? I find it very, very slow. Useful, but super slow. Yeah, I noticed this yesterday. It's slow enough that I'd usually disable it, but it's actually useful given the sheer volume of APIs in Java, so I'm torn. I haven't tried it, but ac-nrepl-compliment might be faster.
|
# ? Sep 4, 2013 14:20 |
|
pgroce posted:Yeah, I noticed this yesterday. It's slow enough that I'd usually disable it, but it's actually useful given the sheer volume of APIs in Java, so I'm torn. Gave that a whirl and it's much, much faster. Just FYI though, you'll need to include the linked library compliment in your project.clj for it to work. The author's instructions don't make that explicit.
|
# ? Sep 4, 2013 17:23 |
|
So core.typed is out, has anybody tried using it yet? I was thinking about going back and trying to do something in clojure again since the lack of typing was one of my big complaints with it (and also because writing java for a living is slowly sapping my will to live).
|
# ? Sep 7, 2013 03:54 |
|
Is there a specific scenario where dynamic typing doesn't work for you, or is this mostly a matter of personal preference? I don't want to start a holy war of any sorts, but I've worked with very large C# projects for years (200+ engineers), and several years in much smaller Ruby/JS/Clojure and have done just fine without typing. I often hear counter-arguments to dynamic typing though (most notably latest QuakeCon's keynote), so I'm concerned that I'm simply not working with projects of sufficient complexity to understand the value of these arguments. As I mentioned, I haven't used something like Ruby at massive scale, although I know it's been done before. I think ESPN is Rails or something like that. I genuinely want to understand if perhaps I'm missing out and if I'm seriously going to be bitten in the rear end as size increases. DreadCthulhu fucked around with this message at 04:21 on Sep 7, 2013 |
# ? Sep 7, 2013 04:17 |
|
I haven't been able to work on a large project with a strong static type system, but on smaller projects with, e.g., Haskell, it's been nice to know that certain things just can't happen (and therefore don't need to be tested). Thinking about how the type system should work also helps to "first solve the problem," in the words of John Johnson; by the time you've worked it out, you understand the components of the solution and their necessary operations, and wiring together is often much clearer. It can go the other way too, of course. It's definitely easier to write some kinds of code with dynamic types. But that restriction buys you guarantees, and that can come in handy, too. Horses for courses. Are there any strongly and/or statically typed lisps? Clojure is the only lisp I've worked with that even charitably meets that description. I suppose Chicken must, right?
|
# ? Sep 7, 2013 04:52 |
|
pgroce posted:I haven't been able to work on a large project with a strong static type system, but on smaller projects with, e.g., Haskell, it's been nice to know that certain things just can't happen (and therefore don't need to be tested). Thinking about how the type system should work also helps to "first solve the problem," in the words of John Johnson; by the time you've worked it out, you understand the components of the solution and their necessary operations, and wiring together is often much clearer. How does that impact your testing habits? Are you mostly referring to not having to test types at the application boundaries because if the types are wrong you immediately error out rather than potentially letting the app get pretty deep before it blows up? I'm thinking a web app api scenario here.
|
# ? Sep 7, 2013 05:03 |
|
DreadCthulhu posted:How does that impact your testing habits? Are you mostly referring to not having to test types at the application boundaries because if the types are wrong you immediately error out rather than potentially letting the app get pretty deep before it blows up? I'm thinking a web app api scenario here. Again, I haven't worked on large projects with static types, but in smaller ones I did find I had to write a lot less defensive code and tests in the style of "What if you get this type of bad input?" User input still needs validation and (type-unsafe) conversion that needs to be aggressively tested, but at least that risk is isolated. Testing the rest of the code can focus more on correct behavior with valid inputs. Web apps probably wouldn't get much leverage from types directly, except inasmuch as the validation could exist in one layer. (Which you could do in a dynamic language.) Indirectly, though, it would be nice to know that all the components that are wired together to make the app are known to get along, and to know it at compile time, before they serve any requests. I hope I'm addressing your question.
|
# ? Sep 7, 2013 05:49 |
|
Yep, I appreciate the opinion!! Also, defensive programming is a weird concept and I don't think anybody actually knows how it's different from offensive programming. See this. DreadCthulhu fucked around with this message at 07:10 on Sep 7, 2013 |
# ? Sep 7, 2013 07:03 |
|
It would be interesting to hear the opinions of the people working at ITA Software or those having worked on http://www.piano.aero/ (initially made by one guy) wrt to issues they have run into with typing. It is hard to ignore Carmack, but on the other hand he doesn't have much experience with languages outside C / C++, although he is definitely working on that and large, complex systems have been built in at least Common Lisp so it would be good to hear the other side of the story.
|
# ? Sep 7, 2013 10:15 |
|
pgroce posted:Are there any strongly and/or statically typed lisps? Clojure is the only lisp I've worked with that even charitably meets that description. I suppose Chicken must, right? Racket has a statically-typed variant that's compatible with the basic dynamic language. This was the biggest inspiration for Clojure's optional typing library.
|
# ? Sep 7, 2013 15:30 |
|
loving monads. If someone has a good tutorial or path to truly grokking them in Clojure, please share it.
|
# ? Sep 17, 2013 22:18 |
|
Learn Haskell if you want monads to actually make sense.
|
# ? Sep 17, 2013 22:55 |
|
Plorkyeran posted:Learn Haskell if you want monads to actually make sense. I think Crockford compares that statement to saying "You need to learn Spanish to appreciate a burrito".
|
# ? Sep 17, 2013 23:07 |
|
Except burritos make sense outside Mexico and monads mostly don't make sense outside Haskell.
|
# ? Sep 17, 2013 23:12 |
|
|
# ? Apr 26, 2024 03:44 |
|
DreadCthulhu posted:I think Crockford compares that statement to saying "You need to learn Spanish to appreciate a burrito". Yet another reason not to listen to Crockford! Trying to grok monads without using Haskell is like trying to grok OOP by implementing your own object system from scratch in R5RS without ever having used a language with built in support for OO. It's certainly not impossible, but it's not the route anyone would recommend.
|
# ? Sep 17, 2013 23:58 |