12 ms·
Roswell: a Lisp installer and launcher for major environment that just works
- baldfat 11y agoThis is a neat system, but I have to say Racket has been dead on easy and just works on Linux and Windows. I feel like I am starting to be the Racket Evangelist but it is such a great experience after javascript, Python, Haskell and old school Assembly and Pascal.
- hellofunk 11y agoDoes Racket offer types or C interop? I love lisp but am missing those in Clojure.
- baldfat 11y agohttp://docs.racket-lang.org/inside/ http://docs.racket-lang.org/inside/ > This manual describes the C interface of Racket’s run-time system. The C interface is relevant primarily when interacting with foreign libraries as described in The Racket Foreign Interface; even though interactions with foreign code are constructed in pure Racket using the ffi/unsafe module, many details of representations, memory management, and concurrency are described here. This manual also describes embedding the Racket run-time system in larger programs and extending Racket directly with C-implemented libraries.
- mbrock 11y agoYep. https://docs.racket-lang.org/ts-guide/ https://docs.racket-lang.org/ts-guide/ http://docs.racket-lang.org/foreign/ http://docs.racket-lang.org/foreign/
- hellofunk 11y agoI'm curious how much Typed Racket is actually used in the wild. I wonder if it is as esoteric as, for example, Typed Clojure, which is falling a bit out of favor for lots of folks. Would I be likely to find a lot of people who use Racket in this way, or is it a niche part of the community?
- deleted 11y ago[deleted]
- Quasimoto3000 11y agoTypes for clojure are a thing and are helping to clojures adoption by industry. http://typedclojure.org/ http://typedclojure.org/
- hellofunk 11y agoIt is not really the thing you think it is. A lot of high-profile teams have given up on typedclojure in favor of run-time checks like the Prismatic tools.
- gammafactor 11y agoRacket is not Common Lisp which is what Roswell is built for, so why bring it up here? I've used Racket ever since it was called PLT Scheme but I've moved on to Common Lisp for the past 5 years, once I realized that there is basically nothing that Racket does better than CL, and a lot that it does worse, interactive development being the most important. SBCL being 2-4x faster without declarations or special optimization passes (in my own code I could get 10x the speed of Racket by doing declaration passes) is also immensely useful. Not to mention, the thriving ecosystem around Common Lisp. Quicklisp has helped with the explosion of popularity and there are well-maintained good libraries for the vast majority of tasks one would like to do. Most of these libraries are also portable across CL implementations which is something one doesn't see in Scheme-land (besides the lack of libraries to begin with).
- baldfat 11y agoWell bringing it up here since it is in the Lisp Family. Also I would disagree about Nothing Racket does better but that is opinion. Clearly my whole point is that Racket does inter-operability very well in Linux and Windows, which this link was about bring that to Common Lisp.
- lispm 11y agoThat's a category error. Racket is a single language/system/implementation. Common Lisp is a family of very different implementations. > Racket does inter-operability very well in Linux and Windows Various Common Lisp implementations do inter-operability very well, too. Some even quite a bit better than Racket.
- baldfat 11y agoBut the reason I brought up Racket has to do with the Title: "A Lisp interpreter ..." The title wasn't a Common Lisp ... and I just said I found Racket to be flawless in that regard since TECHNICALLY Racket is a Lisp which I find to be better for my personal programming especially with FP, though CL has great OOP.
- omegant 11y agoI'm learning to code, and switched from "Learning Python the hard way", to "learn Python programming games" (much much better IMHO for raw beginners) to follow "How to design Programs" and passing to racket. The environment is so much easier to start with, installation, tools (DrRacket is awesome!), deployment of programs (easy to wrap in an exe), very good documentation.. I see the usefulness of Python and I like it, but for my needs, Racket is just perfect. I'm not learning to get a job as a programmer or create heavy production code, just develope some small side projects for fun. I find that Racket helps me with this out of the box easily. Edit: some mistakes and punctuation.
- fsloth 11y agoI also like what I see every time I visit Racket but the fact that I'm not aware of any other project except Racket itself which uses the language and tools gives me the odd "why is this not more appealing - what's the hidden catch" tingling. Even OCaml has several fairly well known programs people use.
- mbrock 11y agoDoesn't Arc run on top of Racket... so that Hacker News itself could count as such a project?
- baldfat 11y agoIts because of two misconceptions 1) People's perceptions that Racket is an educational program 2) It's hard to communicate the unique qualities of Racket. "Racket is a full-spectrum programming language. It goes beyond Lisp and Scheme with dialects that support objects, types, laziness, and more. Racket enables programmers to link components written in different dialects, and it empowers programmers to create new, project-specific dialects. Racket's libraries support applications from web servers and databases to GUIs and charts." A programming language for programming languages isn't an "Oh I get it right away.".
- junke 11y ago1. This perception comes from the fact that it is heavily used as an educational program. That there of course nothing bad about this. 2. The text you quote precisely communicate what Racket is: a language marketed like a programming-language research toolbox and not like a day-to-day programming environment. I don't really think that Racket developers really try to sell the language in the same way Scala or Clojure ones do. Also, a lot of people actually "get it", and choose not to use the language.
- zeveb 11y agoAs gammafactor notes, Racket is not Common Lisp. Nor does it have any other implementations, free or proprietary. That's one of the great advantages of Common Lisp: a single standard, implemented multiple times by multiple people, running on many platforms. Racket is definitely neat. I don't know for certain, but I hope it learns from some of the same lessons that CL learned from. Still, why not use the standardised, industrial-strength Lisp?
- baldfat 11y agoBut the title of the post wasn't a Common Lisp ... it was a Lisp interpreter which technically Racket is a Lisp.
- wtbob 11y ago> But the title of the post wasn't a Common Lisp ... it was a Lisp interpreter which technically Racket is a Lisp. Common Lisp is Lisp: it's a standard which specifies the minimum required functionality of a Lisp implementation. Anything which doesn't meet that standard isn't Lisp. Scheme, Racket, Hylang, Clojure may each be a Lisp, but none is Lisp (unless one of them has bothered to implement the Common Lisp standard).
- EuAndreh 11y agoOne of the coolest parts is how Roswell with scripts: you can run a local file, or in a custom directory just for scripts, and even better: you can install scripts from libraries. This way, if a library needs to expose some functionality to the terminal, just add a Roswell script =]
- mmaul 11y agoRoswell, is a "killer app", as far as using Common Lisps with Continuous Integration and Coverage services (TravisCI, CircleCI, Coveralls et al) is concerned. It is not an interface to CI systems it is an Lisp Implementation manager and makes using CI services dead easy event multiple lisp implementations. Roswell also provides a handy hash bang scripting for Lisp.
- freebasedgirl 11y agoIf you live in the unix image this is great. The moment you want to do your work exclusively inside the Lisp image it ceases to be useful.
- hardwaresofton 11y agoSo I found this README hard to understand, as someone who doesn't work with CL on a daily basis (but is familiar with lisps like clojure, and having used SBCL before). I'm worried about how bad fragmentation is, and why a tool like this is even needed. This is a "full stack environment" for CL web development? I don't even know what that means... not all lisp dialects are similar so why are they stuffed under one tool that treats them like they are? There's so much about this tool I don't understand, but maybe that's fine, since I don't use SBCL or any lisp dialect(other than clojure) very often on any real projects
- zodmaner 11y agoYeah, that paragraph is a bit misleading (and the whole readme could use some more love). Roswell is basically a tool that help you quickly setup a Lisp development environment. You can think of it as Ruby Version Manager (RVM) for Common Lisp. It can be used to install the latest version of the Lisp implementation of your choice (which is really a great feature if you use Debian stable or Ubuntu LTS), easily switch between various implementations, and even switch between different versions of each implementation. This makes testing your Lisp code across multiple implementations a breeze, especially when you use Roswell with CI tools. That the majority of Roswell developers are web developers and use it to develop, test and deploy web apps are merely a coincidence. Roswell can be used to develop all kinds of applications. Regarding the fragmentation issue, on Linux there are basically two major open source implementations that most people use nowadays: SBCL and Clozure Common Lisp (CCL). So it's hardly an issue at all.
- hardwaresofton 11y agoThanks for the clarification -- I might suggest that the word "web developer" not be used, because it obscures the meaning -- when you say "web developer" and "lisp", I instantly think Clojurescript (maybe it's just me). Now that I understand it I get how useful it is -- I've always found it difficult to wrangle the different implementations of common lisp. If I'm understanding correctly, what you mean is people who develop web application servers, or the "backend" part of websites/apps. Also it would be wonderful if the first thing in the readme was just how to set up with a specific language. A "getting started" section might be just the trick, to show that you can install roswell, and then install your desired implementation of common lisp super quickly and easily. Also thanks for sharing on the fragmentation front -- I thought SBCL still had a bunch of competitors.. Though I know racket has quite it's share of proponents.