11 ms·
Racket Language
- mark_l_watson 2y agoI am happy to see Racket make it to the front page. After using mostly Common Lisp for research programming since 1982, I now more often turn to Racket. There are parts of Racket I don’t like, which is most everything *NOT* the compiler, package management system, GUI IDE, Emacs bindings, fun language to use. I don’t care for much of the programming language research parts of the ecosystem - that is the parts that the computer scientist professors who run the project probably care about the most. More power to them! So I feel like a freeloader on the Racket project, just enjoying the little parts I like and ignoring the rest, and not contributing anything (except maybe the little Racket book I wrote).
- spdegabrielle 2y agoWhat are the 'programming language research parts of the ecosystem'? The only part of the Racket distribution I can see that is specifically 'programming language research' is Redex. In the language itself there are the metaprogramming capabilities - but all modern languages have metaprogramming. My experience of the community is it is generally people talking about real problems. People do use Racket for PL and other research, so a number of PL research papers and conference talks do reference Racket, but it doesn't dominate any of the discussion. e.g. https://racket.discourse.group/t/levin-tree-search-with-context-models/1984?u=spdegabrielle https://racket.discourse.group/t/levin-tree-search-with-cont...
- MarceColl 2y agohow do you deal with the very bad Racket repl? Thats what turned me off the language edit: I dont reslly understand the downvotes, not trying to be rude or anything. Coming from CL the racket repl is very very barebones, it loses all state everytime you recompile. So I ask him how he deals with that coming from the very nice CL repl
- neilv 2y agoThe REPL in DrRacket is like that because it was made by professors, specifically targeting intro students who had never programmed before. They thought a big Run button with a clean slate each time would be less confusing. You don't have to use DrRacket to use Racket. People doing real work with Racket tend to have "workflow" setups that are closer to SLIME. I personally used a simpler Emacs setup ("https://www.neilvandyke.org/quack/ https://www.neilvandyke.org/quack/"), and ended up leaning more on modules and embedded unit tests ("https://www.neilvandyke.org/racket/overeasy/ https://www.neilvandyke.org/racket/overeasy/"), and less on very dynamic interactive evaluation like I'd done before. Though, if you want to monkeypatch heavily, CL is famously good at that.
- samth 2y agoVery few people I know doing real work in Racket have a SLIME-like workflow. In general, Racket discouraging this style is related to us being a bunch of professors, but not really in the way you say. Instead, it's because it's not possible to give a sensible semantics to the top-level, especially in the presence of macros. We care a lot about macros, and we also care a lot about sensible semantics, and thus the attitude towards the REPL. The slogan in the Racket community that "the top level is hopeless" expresses this sentiment.
- MarceColl 2y agoOh! okay, heavy misunderstanding by using DrRacket. Thanks for the clarification :)
- djtango 2y agoFor someone lazy - what is the set up for the "evil" amongst aka vim users
- neilv 2y agohttps://docs.racket-lang.org/guide/Vim.html https://docs.racket-lang.org/guide/Vim.html
- 2y ago
- lettergram 2y agoHaving used Racket in college for programing language ecosystem, I can say I don't enjoy that aspect either haha. Racket is easy to get started with and definitely great at what it does. If you're wading into Lisp IMO it's the way to go. That said, IMO Clojure has a larger and more robust community, that said it's a bit of a bigger pain to set up (uses JVM) & has some more nuance.
- pjmlp 2y agoUses the JVM is exactly why Clojure is the Lisp like language I mostly bother with. What matters are ecosystems and not languages on their own, so when switching between languages it is a great benefit that I can reuse my Java ecosystem knowledge, instead of adding yet another ecosystem to those I jump around between projects. However, I really like the almost Lisp Machine like experience from using Raket.
- lispm 2y agoIMHO, the Lisp Machine experience is completely different. Those have zero educational aspects, they were designed to write large, and stateful, applications, where the Lisp Machine OS is the big stateful object-oriented operating system (like Symbolics Genera). Interlisp-D is even more different.
- jnxx 2y agoOne feeling I have is that while Clojure is incredibly tasteful, well-designed and elegant, it is less focused on Correctness as Racket. And this gives me the feeling that if I make some mistake (say, erroneously swapping arguments of a complex function that e.g. computes on list as sets), I do not know what is going to happen.
- eru 2y agoClojure's biggest advantage, integration with the JVM ecosystem, is also its biggest drawback. JVM compatibility forces a lot of ugly compromises on Clojure.
- oumua_don17 2y agoI use CL on a day to day basis (and not in research/PL research domain), have never ventured into Racked yet. Can you please elaborate further on parts of Racket you don't like vis a vis CL? Thanks!
- shawn_w 2y agoNot Mark, but I use Racket a lot and sometimes play with Common Lisp. CLOS is way nicer than Racket's class/OO model and how generic functions are handled. Growable/resizable arrays are sometimes nice to have. I prefer Racket and Scheme for the most part though.
- hiAndrewQuinn 2y agohttps://leanpub.com/racket-ai/read https://leanpub.com/racket-ai/read I'd say this counts as a phenomenal contribution. :)
- darby_eight 2y agoOk, so to state the obvious, if you don't turn to racket for "programming language research" why do you use the language at all?
- djtango 2y agoAs a Clojure developer who did write some Racket, there is a satisfying purity to Scheme (at least to me).
- darby_eight 2y agoThis is a wonderful answer! I return to my main calling: figuring out why people use PLT scheme without an academic incentive. There must be an answer here somewhere....
- triyambakam 2y agoIs this a joke or why don't you think they answered the question?
- darby_eight 2y ago[flagged]
- runesoerensen 2y agoThis is just getting more confusing.
- darby_eight 2y agoamen
- runesoerensen 2y agoAlso (about HN and racket): https://news.ycombinator.com/item?id=9270478 https://news.ycombinator.com/item?id=9270478
- MrBuddyCasino 2y agoYou might be happy (or sad) to hear you‘ve just qualified for the HN humble-brag finals.
- rpdillon 2y agoThere is something edgy about calling oneself a community freeloader and then casually mentioning you wrote a book on the topic.
- BaculumMeumEst 2y agoI agree with every word of this. The packet management system, the GUI IDE (which includes a step debugger), the ability to write a cross platform IDE (which is maintained by the core Racket team themselves), and the ability to easily produce runnable binaries make Racket my favorite Lisp hands down. Those features are so incredibly useful and important, I really can't state it enough. I love Lisps, but at work, I will only use a language if it's the best tool for a job. Because of several of those features, Racket has been the only Lisp I've ever been able to justify using. Because of the community, tooling and learning resources available, Racket is such an easy language for me personally to recommend to people. There are things I really like about CL and Clojure too, both of which I have used quite a bit, but I would never recommend them to people because of some huge drawbacks that come with each. I also don't jive with the research parts of the language , nor do I care about the "lang" facilities, and I also kind of strongly dislike HtDP. But my perspective on all that is that they are projects I am uninterested in that happened to be made with a language I love, rather than knocks against the language itself, because I never bump up against them.
- temporarely 2y ago"Wall, chilern, whar dar is so much racket dar must be somethin' out o' kilter." (Thank you for the book - will be reading)
- doublepg23 2y agoI feel like when I dive into LISPs like Racket or SBCL I’m presented with a very academic purist view of programming that clashes with my desire for more tangible, material apps. I feel like I’d be able to comprehend deep computer science theorems in CL well but god forbid if I wanted to crank out a weekend web app.
- vitejose 2y agoEveryone loves Racket (Lisp) but no one uses Racket (Lisp). I’ve read Beating the Averages but I still don’t get it.
- evdubs 2y agoI use Racket.
- anonzzzies 2y agoI use racket and sbcl both. I prefer sbcl. We write a lot of software in cl; it is excellent. Cannot say anything else beats the debugging experience unless really low level, but for embedded we use c code gen from cl anyway.
- Insanity 2y agoYeah, different use-case really. Personally I enjoy the more “academic” languages, like the LISPs and Haskell. I play around with them for things like Advent of Code and small POCs, but _rarely_ anything approaching a useful/production-ready application.
- MarceColl 2y agoRacket is very academic, but Common Lisp (SBCL is an implementation of the CL standard) is not really academic in my opinion its mostly an industrial language. It is an incredibly practical language and its exactly what I reach to to crank a weekend webapp. Its fast and unopinionated and the repl is a godsend for the quick iteration required to do a weekend hack. I think it may just look like that from the outside due to preconceived notions of what lisps are. CL mostly allows you to do whatever you want, at its core it is a compiled, imperative, garbage collected language, with incredible interaction and introspection capabilities and the ability to modify the language in a very straightforward way (take code, modify code). It just has a weird syntax to be able to do macros and reason about macros
- captainkrtek 2y agoWhen I studied at the University of British Columbia, racket was taught in the intro to CS course. I thought it was a great language, and put everyone on an even playing field (eg: students with prior programming experience hadn’t worked with lisp). Also was impressed by the libraries which made it easy to produce simple games or visuals.
- czhu12 2y agoI also was at UBC for that class and left with a totally different impression. I thought it was awful and set up introductory students very poorly for subsequent CS classes, especially data structures and algorithms that were taught in imperative languages. When I TAed, a lot of incoming 2nd year students didn’t know how to do for loops yet, which really set them back for basic algorithms. I had a much deeper appreciation for functional languages after theory of computation classes in my senior / 4th year.
- IIsi50MHz 2y ago> When I TAed, a lot of incoming 2nd year students didn’t know how to do for loops yet, which really set them back for basic algorithms. I'm surprised anew on the rare occasions I come across statements like this. The first time was when I applied for my first programming elective class. The teacher actively tried to dissuade me from it, saying that by the end of term they'd be lucky if they even got to for-next or do-while loops. I was shocked, having first understood these from BASIC code listings in the back of magazines, with only one or two weeks per year having a few hours of access to an Apple II on which to actually run anything. I tend to fall into the trap of feeling that loop constructs should be so trivial, that understanding should come from a tiny fraction of one class session plus maybe a few minutes tracing the code by hand. So, I thank you for being my irregularly scheduled reminder that people's first exposures to such things can be very different.
- cess11 2y ago"When I TAed, a lot of incoming 2nd year students didn’t know how to do for loops yet, which really set them back for basic algorithms." They hadn't done simple recursive functions over lists? What had they been doing? Been a while since I had to read introductory material for Racket (or any similar language), but as I recall functions with a base case exit and recursion is usually among the first things they teach.
- brucenanner 2y agoMost disrespectful language to teach people who pay to be job ready.
- PhilipRoman 2y agoI think we really need to separate the two aspects of CS education. Universities should not be job training centers and vice versa. We already have bootcamps, etc. which provide very practical training. I'm pretty sure that CS is the only field with complaints about not being practical enough. Mathematics, physics, medicine, etc. all manage to get along fine.
- ashton314 2y agoBeing “job ready” (whatever that means) is a side-effect and a byproduct of a university education, not the end. The telos is to teach you how to learn and think well. In this regard Racket is almost as good as you can get. (I’d personally rank the Shplait language (new; implemented in Racket/Rhombus) as best for teaching.) Anyone who learns Racket will have learned ways of deconstructing problems that will make them far superior in problem solving to those who learn only e.g. Java and only know how to do things the OO™ way.
- deleted 2y ago[deleted]
- mrkeen 2y agoWhere else can merit find a home? When a Harvard dropout writes a small system in PHP, and needs to call in the big guns to try to unfuck the situation [1], who should he call? Someone who got really good at jQuery at university? Besides, aren't modern mainstream languages bragging about having nothing to learn? Learn go in just a couple of days, etc.? [1] https://engineering.fb.com/2014/03/20/developer-tools/hack-a-new-programming-language-for-hhvm/ https://engineering.fb.com/2014/03/20/developer-tools/hack-a...
- cafard 2y agoI will say that the credential was a big part of why I studied CS in my 30s. I learned a number of languages along the way. At this point, nearly all the code I write is in JScript, Pl/SQL, Python, and T-SQL. I learned none of these while in school: Javascript was not yet invented when I was getting the degree. I will say that SNOBOL, of all odd languages, was useful to me after school in learning Perl.
- cess11 2y agoRacket is a very practical language. If you have the impression that it's some academic quirk you should take a look at what Bogdan Popa is doing with it: https://defn.io/ https://defn.io/ When I personally want a binary with a native GUI I turn to Racket. It's also pretty nice for parsing stuff, like JSON, XML, some text-file formats. The companion book How to design programs, https://htdp.org/2023-8-14/Book/index.html https://htdp.org/2023-8-14/Book/index.html , is nice too, while it doesn't exactly teach Racket (it uses a couple of teaching languages implemented in Racket) it has some valuable ideas that are good to be reminded of every now and then. The macro system might seem weird if one comes from e.g. CL, but once I got used to it I found it relatively easy to stay sane while doing metaprogramming. A couple of more resources that are useful: https://www.greghendershott.com/fear-of-macros/ https://www.greghendershott.com/fear-of-macros/ https://beautifulracket.com/ https://beautifulracket.com/
- prlin 2y agoAny specific highlight from Bogdan? Nothing jumped out from a quick skim.
- cess11 2y agoHe posted a list elsewhere in the thread, showing off his web-shop and stuff for mobile phones. What I've used most over the years is his writing about GUI development. https://defn.io/2019/06/17/racket-gui-saves/ https://defn.io/2019/06/17/racket-gui-saves/ helped me figure out some patterns I had trouble with and got me stuck in using Racket for this purpose in personal projects. Later he added observables and threading logic, making it even nicer to build GUI, https://defn.io/2021/08/01/ann-gui-easy/ https://defn.io/2021/08/01/ann-gui-easy/ . The core web development tools in Racket aren't exactly trivial to get started with until one is rather fluent with continuations so I've gained a lot from http-easy and Koyo, https://www.youtube.com/watch?v=DS_0-lqiSVs https://www.youtube.com/watch?v=DS_0-lqiSVs.
- deleted 2y ago[deleted]
- sourcepluck 2y ago
- ReleaseCandidat 2y agoThe biggest problém of Racket isn't the language or it's ecosystem https://news.ycombinator.com/item?id=27531508 https://news.ycombinator.com/item?id=27531508
- rscho 2y agoThis is a very personal conflict between prominent community members. The larger racket community is very friendly, including the core team.
- cess11 2y agoFelleisen is an insufferable prick but also easy to avoid. More a symptom of an illness in academia than Racket specifically, I'd say. In the community there are some 'weird nerds' with strong opinions that are likely to be more annoying since their presence is more strongly felt, but that's just how it is in many social settings where money doesn't chain things down.
- kod 2y agoI was a student at the 2018 racket school mentioned in the link. All of the instructors, including Felleisen and Butterick, were nothing but helpful and friendly inside and outside of the classroom. Even taking that link completely at face value that Felleisen is a Torvalds-type asshole in certain personal interactions... his work including How To Design Programs had such a positive impact on my life and the lives of others that I wouldn't discourage people from taking advantage of it.
- Bogdanp 2y agoRacket is my favorite language. It's fast, practical, has solid foundations and an extremely nice concurrency story (based on concepts borrowed and extended from Concurrent ML). It has an excellent documentation system, with an integrated package ecosystem, which means that most packages have high quality documentation with cross-references. It has a great backwards-compatibility story -- a lot better than Python's, for example, which I use in my current dayjob. So, my impression of the commenters saying it's too academic or not practical is that they probably never dove deeply enough, or they are former students who were only exposed to the teaching languages in the past. It's definitely not perfect: the community is small, the runtime has a high memory baseline, parallelism requires spinning up a Racket VM per system thread, among others, but these are things that will improve over time. In the past several years, I've: * built & run an e-commerce site written in Racket[1] * built a native macOS and iOS reminders app, available on the App Store [2, 3, 4] * built a cross-platform desktop client for Apache Kafka [5, 6, 7] * built a `#lang` for Lua [8] Among[9] other[10] things[11]. I think that's all pretty practical stuff! [1]: https://defn.io/2019/08/20/racket-ecommerce/ https://defn.io/2019/08/20/racket-ecommerce/ [2]: https://defn.io/2020/01/02/ann-remember/ https://defn.io/2020/01/02/ann-remember/ [3]: https://defn.io/2024/04/09/ann-remember-for-ios/ https://defn.io/2024/04/09/ann-remember-for-ios/ [4]: https://github.com/bogdanp/remember https://github.com/bogdanp/remember [5]: https://defn.io/2022/11/20/ann-franz/ https://defn.io/2022/11/20/ann-franz/ [6]: https://defn.io/2023/10/15/ann-franz-for-windows/ https://defn.io/2023/10/15/ann-franz-for-windows/ [7]: https://defn.io/2023/08/10/ann-franz-source-available/ https://defn.io/2023/08/10/ann-franz-source-available/ [8]: https://defn.io/2022/11/12/ann-racket-lua/ https://defn.io/2022/11/12/ann-racket-lua/ [9]: https://docs.racket-lang.org/http-easy/index.html https://docs.racket-lang.org/http-easy/index.html [10]: https://docs.racket-lang.org/deta/index.html https://docs.racket-lang.org/deta/index.html [11]: https://docs.racket-lang.org/gui-easy/index.html https://docs.racket-lang.org/gui-easy/index.html
- BaculumMeumEst 2y agoI also just want to add that Bogdan is the author of gui-easy and http-easy, which are indispensable libraries in the Racket ecosystem. Bogdan also is extremely helpful and active on the community forums and gives EXTREMELY helpful answers on there. Definitely an unsung hero of the language - just wanted to give a shout-out - I can report that your libraries are powering code that is making some unsuspecting users lives much easier :) https://docs.racket-lang.org/http-easy/index.html https://docs.racket-lang.org/http-easy/index.html https://docs.racket-lang.org/gui-easy/index.html https://docs.racket-lang.org/gui-easy/index.html https://racket.discourse.group https://racket.discourse.group
- bjourne 2y agoI like Racket the language a lot, but can't get to terms with the workflow it imposes on you. When coding in Python I use my editor to write the code and I run it from my shell. Doesn't work with Racket because it takes too long to start. Instead you "should" interact with a long-running vm through a REPL. But that means the code you are working on doesn't start with a "clean slate" and instead starts with whatever state the vm is in at the moment. It's a great workflow for things like Jupyter notebooks but doesn't work well for larger programs imo.
- qwerty456127 2y agoTry Smalltalk :-))
- spdegabrielle 2y agoI *love* Smalltalk. EVERYONE should try Smalltalk !
- em-bee 2y agoagreed. current discussion about the latest pharo release here: https://news.ycombinator.com/item?id=40167742 https://news.ycombinator.com/item?id=40167742
- pjmlp 2y agoWelcome to the world of Smalltalk and Lisp Machines, which modern IDEs still don't fully support everything, like hot-reload, saving work states, control over the whole development stack in a single language.
- igouy 2y ago> doesn't start with a "clean slate" The docs seem to suggest that the user can explicitly decline to save backup files? https://docs.racket-lang.org/drracket/drracket-files.html#(part._drracket-autosave-files) https://docs.racket-lang.org/drracket/drracket-files.html#(p... Presumably offers can be declined? "When DrRacket first starts up, itlooks to see if there are any backup files still present and if so, offers to restore the backup files"
- joesb 2y agoI'm lost on how should I integrate all these "languages" of Racket into a single application. Like, I can see there are `typed/racket`, `racket/gui` and `scribble/base` languages. But how do I write a GUI application that create PDF while also having all the code be typed? I tried following Racket tutorial multiple times but I'm still lost on how to tied each unrelated "languages" together. IMO, each chapter of the tutorial just talk about unrelated "language" and then never once show how they all work together. One chapter will talk about web server but not class system, then another chapter will talk about another "language" that support class but then never write web server in it.
- jbclements 2y agoI think this is a fair question. In my opinion, if you're developing a larger application then nearly all of your code will either be in the "racket" language. If you're keen on types, substantial fractions of this may be in the "typed/racket" language. It is true that all of the languages share a common substrate, and they can more or less all interoperate, but it's definitely not the case that a programmer would be likely to break their program into five equal pieces and use a different language for each one. You'll probably write your docs with scribble. Using different languages allows you to have a fundamentally different programming model, and while having that as a backdrop made things like the development of Typed Racket feasible, it isn't something that should prevent you from starting. TL/DR: Just use Racket. If you find that you really wish that you had some other feature or style of programming, you can investigate whether there's a language that already provides that. All of this is my opinion, of course.
- zelphirkalt 2y agoYou are supposed to be able to choose for each module the language of the module, I think.
- cess11 2y agoYou can think of the #lang line as a kind of compiler instruction with that file as scope. There's much more to it but that's a good starting point. If you have an application and want to add types doing it one file at a time is a good strategy. Besides the #lang line you can also use 'require to bring in libraries, so a single file could contain GUI as well as web server code. #lang isn't constrained to one language at a time either, if they don't conflict you can just add more to that line.
- nikolayasdf123 2y agoyeah, Racket is cool. used it 12 years ago in BSc KAIST Programming Languages course. nothing but good memories about it!
- Decabytes 2y agoI like Racket because of these things 1. Package manager 2. Cross platform Gui 3. Easy to install on all platforms 4. Gradually typed language Typed-Racket that checks types at compile time 5.fast (has moved from middle of the pack to top 3 fastest Schemes) 6. Evolution under the hood as opposed to just syntax and features (chez scheme over C) 7. Simple IDE with Emacs built in which makes getting started if you are afraid of Emacs easier. 8. Documentation languages like Pollen and Scribble make writing documentation better than any other language I have used 9. Zuo, a Make replacement which works like a mini Racket 10. Large active community 11. Modern communication channels (Discord, Discourse Forum, subreddit) 12. Documentation geared towards beginners or experienced programmers (Racket Guide vs Racket Reference) 13. You can turn a Racket program into an executable (it’s far but better than Python’s options that’s for sure) There are Schemes that I like better for specific things (Gambit-C for C integration, Gerbil as a Racket Successor, Chez as the Fastest Scheme, Guile for its large GNU ecosystem) But no Scheme has come close to offering even half of what you get with Racket out of the box
- slekker 2y agoWhat do you think it is missing for Racket to be more widespread in the industry? Do you think being a lisp is the biggest factor or something else?
- cjk2 2y agoAs someone who tried it on a couple of things, no one I know has heard of it. So I suspect it’s marketing and hype that is missing.
- Decabytes 2y agoIn my opinion, the reason it and other languages aren't more popular is that they don't have a "halo" product that forces you to use it. For example look at Elisp. It might be the most successful lisp in the modern Era because of Emacs. Emacs alone is like over a million lines of Elisp, and the ecosystem of packages is gigantic. A lot of people do not like Elisp, and there have been many attempts to create Emacs + a better language (Guilemacs, First/Second Climacs). But it has all failed because Emacs proper has a lot of momentum, and you can't build Emacs + a better language. You need Emacs + a better language + a better/bigger ecosystem... Because while lots of people use ELisp in Emacs, more people are just calling use-package on what ever package someone else created. Take another example, JavaScript. You want to write a dynamic web application, you use JavaScript. There is no shortage of tweets of JavaScript trivia where the person shows JavaScript adding two non nonsensical objects together and getting an even more nonsensical answer. If you don't program in JavaScript (or even if you do) you look on in horror and go "Why would anyone use this awful language!". Then you go use your electron based desktop apps, and run millions of lines of JavaScript in the browser. Are there better languages for the web than JavaScript? Sure lots of languages clear that low bar. But is there any language with a comparable ecosystem that also works as seamlessly in the domains that JavaScript works in? I'd argue no. JavaScript has so much momentum that it even spills over into areas where it shouldn't be used (I.E the desktop and the backend) but it can go anywhere at this point (including custom ARM CPU instructions https://developer.arm.com/documentation/dui0801/h/A64-Floating-point-Instructions/FJCVTZS https://developer.arm.com/documentation/dui0801/h/A64-Floati...) I'd say the same thing about Python as I did about JavaScript (I am a Python dev). If the official OpenAI Api had been written in Racket there would be millions of Racket users right now and a bunch of new and awesome package, but it's written in Python. Another example is Zig. I actually think that Zig has a chance to compete in the programming language. I started using Zig not because of any particular feature of the syntax, or the libraries it had, but simply because trying to compile cross platform C/C++ applications using a combination of GCC, LLVM, MSVC, and building for Arm, X86_64, etc is so awful, that using Zig instead is a better solution. This will be the gateway for most people to Zig IMO, and then from there the ecosystem will follow. There is one edge case and that is Swift. I actually think Swift is a good language, and has a lot going for it. It definitely has the chops to be a good low level compiled language with good C/C++ integration. But a lot of its popularity is due to Apple having the power to make it the de facto language on iOS, just like Google can with Kotlin. But that will only help on the platforms they own (which are admittedly a lot more than most languages), but to gain the viral cross platform adoption, it will require an actual effort on Apple's part to make that happen, along with some dedicated fans of the language. Right now, using Swift without Xcode is hard, even with the VsCode plugin. I know Miguel de Icaza is at least one of those hardcore Swift fans, and is trying to get the Swift Godot project up. That could be the gateway to Swift for people outside of the Apple ecosystem but we will see.
- deleted 2y ago[deleted]
- fanf2 2y agoThis website, Hacker News, is written in Arc and runs on Racket https://en.wikipedia.org/wiki/Arc_(programming_language) https://en.wikipedia.org/wiki/Arc_(programming_language)
- alexott 2y ago~20 years ago I worked on commercial software for email security that was using MzScheme (before it became PLT Scheme) as the base language. Code was cross-platform (Solaris, Linux, HP-UX) - OS-specific code was in C, with about 1k lines. Filter rules were compiled into Scheme itself. The whole code was about 30k LoC, including web based UI, and only had 5-6 developers… Later I immigrated and joined company that had similar product with less features with code in C++, with hundred thousand LoC and more developers.
- alexott 2y agoArticle (in russian language) about the product and why Scheme was used: https://web.archive.org/web/20210506123442/http://fprog.ru/2009/issue2/alex-ott-using-scheme-in-dozor-jet/ https://web.archive.org/web/20210506123442/http://fprog.ru/2...
- Altern4tiveAcc 2y agoRacket and similar languages never clicked with me. The syntax barrier feels very high. I started programming at a young age, and I failed my Functional Programming class at college 3 times. Eventually, I gave up on getting a degree. Lots of respect to people who not only get it, but build complex programs with Racket, Common Lisp, Haskell and similar languages.
- jnxx 2y agoI am using Racket once in a while, and I like it. Though I have also learned that some Lisps, and especially Common Lisps (and, I suspect, Guile), are a bit under-hyped. But a question to people who know it better: What are features of Racket which at first might not seen practical, relevant, or useful, but are surprisingly useful for programming when one gives them a try?