Re: [racket-users] What limits would you put on racket?
On Fri, Jul 24, 2015 at 4:31 PM, Hendrik Boom hend...@topoi.pooq.com wrote: You might be interested in the language Styx, the language that goes with the Inferno operating system. I believe it uses reference counting up front, with full garbage collection as a backstop. The language is called Limbo. Styx is Inferno (and Plan 9) network protocol. Inferno can be run on the bare metal, but also as a user process on Linux (and some other OS's, I believe). At least on Windows too. Nowadays is completely dead, though. And, IMHO the interesting ideas in Plan 9/Inferno were NOT in the programming languages created for them. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Fwd: Re: [racket-users] What limits would you put on racket?
I also forgot to reply to the list. -- Forwarded message -- From: Doug Williams m.douglas.willi...@gmail.com Date: Jul 23, 2015 9:21 AM Subject: Re: [racket-users] What limits would you put on racket? To: Sayth Renshaw flebber.c...@gmail.com Cc: If you're strictly comparing Racket to other Lisp dialects, I would say there is never any reason to go to a different Lisp dialect. The main exception would be if there is some specific, existing capability in a different language that you require. But, that is not a dialect issue. I regularly use Racket for complex analysis tasks. The mathematic and plotting capabilities available are superior (in my opinion) to other dialects. Your mileage may vary. Doug Williams On Jul 22, 2015 11:51 PM, Sayth Renshaw flebber.c...@gmail.com wrote: Hi Just getting reacquainted with Racket going back through HTDP 2nd edition and the edx intro course. Is there a point where you would say yeah Racket shouldn't go there, it's best at A B or C you should go to Chez, Sbcl, CCL etc. Sayth -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] What limits would you put on racket?
* Browser-side AJAX-y apps, both underlying browser stuff and layered frameworks/libraries. Developing for this is largely about cursing frequently -- every time you're reminded that people who have little idea what they're doing have now determined the platforms that everyone must build upon. Not only are the platforms bad, but way in which most developers now think about software development is a step backwards from what it was before: institutionalizing a mixture of clerical bureaucracy and cargo-cult kludging methodology. I think this is basically the main advantage that Clojure has, besides the unwillingness of pointy-haired bosses to part with the JVM. The Clojure library ecosystem has a number of very powerful and theoretically easy to use libraries for web development, and you can stick to one language on front to back. The downside of this comes in the fact that all this power tends to come in the form of that most evil of combinations: heavy abstraction, plus virtually nil documentation. No one seems to document anything in the world of Clojure. You will frequently find yourself having to divine functions from source code and test examples, and nothing will ever be explained. Mostly you have to guess a lot. In that respect, I actually found just doing an old-school back-end-only app in Racket somewhat more pleasant, save for the advantages of live-reloading you get with ClojureScript's Figwheel. On the whole though, I feel your pain about web dev in general. The whole thing feels like a tower-block built on gaffer tape. I feel like the pain is largely unavoidable no matter what direction you go. On Fri, Jul 24, 2015 at 3:57 AM, Neil Van Dyke n...@neilvandyke.org wrote: Hendrik Boom wrote on 07/23/2015 08:15 PM: I've heard that half-life waswritten in a versino of Lisp. But the battles in half-life tend to be short, so they explicitly called the garbage collector between battles. And now HL3 is merely delayed by a *really* long deferred GC cycle? :) But seriously, I'm idly toying with a game idea that needs uninterrupted smooth fast action (physics, graphics, world model, networking, controlling) for up to 5 minutes. A multiplayer game session is longer than 5 minutes, but is split into parts of up to 5 minutes, with brief GC-friendly gameplay pauses between the parts, and afterwards you return to the GC-friendly multiplayer lobby. An issue with this sort of thing in GC'd languages is that you know you're going to have to deal with GC somehow, and you'll have to prove viability empirically, after considerable investment; but if you were using C/C++, what you have to prove empirically after considerable investment is that you can do it without memory bugs. Neil V. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] What limits would you put on racket?
2015-07-24 2:48 GMT+03:00 Neil Van Dyke n...@neilvandyke.org: On Racket, CL, limits, programmers... I've found that most stuff can be done in Racket, and, though I have used CL when required by two consulting clients' prior implementation choices, I'm not aware that CL has any key advantages over Racket. (Not bashing CL; it's a nice platform, with an unusually smart developer community. And, earlier in Racket's development, CL was noticeably more proven and mature for industrial use. I just have few complaints about being married Racket today, and there's no temptation to philander with CL.) As for me, the most noticeable difference between Common Lisp and Racket that the most popular implementations of former provides facilities for multiple /hardware/ threads of execution. And this is one of the primary reasons why I use Common Lisp as well. -- // Dmitry. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] What limits would you put on racket?
On Thu, Jul 23, 2015 at 08:57:29PM -0400, Neil Van Dyke wrote: Hendrik Boom wrote on 07/23/2015 08:15 PM: I've heard that half-life waswritten in a versino of Lisp. But the battles in half-life tend to be short, so they explicitly called the garbage collector between battles. And now HL3 is merely delayed by a *really* long deferred GC cycle? :) Exactly! -- for the original half-life. I don't know about the current ones. But seriously, I'm idly toying with a game idea that needs uninterrupted smooth fast action (physics, graphics, world model, networking, controlling) for up to 5 minutes. A multiplayer game session is longer than 5 minutes, but is split into parts of up to 5 minutes, with brief GC-friendly gameplay pauses between the parts, and afterwards you return to the GC-friendly multiplayer lobby. An issue with this sort of thing in GC'd languages is that you know you're going to have to deal with GC somehow, and you'll have to prove viability empirically, after considerable investment; but if you were using C/C++, what you have to prove empirically after considerable investment is that you can do it without memory bugs. You might be interested in the language Styx, the language that goes with the Inferno operating system. I believe it uses reference counting up front, with full garbage collection as a backstop. Inferno can be run on the bare metal, but also as a user process on Linux (and some other OS's, I believe). -- hendrik Neil V. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] What limits would you put on racket?
Just in case, you might want to check out Racket's places and futures constructs. On Friday, July 24, 2015, Dmitry Igrishin dmit...@gmail.com wrote: 2015-07-24 2:48 GMT+03:00 Neil Van Dyke n...@neilvandyke.org javascript:_e(%7B%7D,'cvml','n...@neilvandyke.org');: On Racket, CL, limits, programmers... I've found that most stuff can be done in Racket, and, though I have used CL when required by two consulting clients' prior implementation choices, I'm not aware that CL has any key advantages over Racket. (Not bashing CL; it's a nice platform, with an unusually smart developer community. And, earlier in Racket's development, CL was noticeably more proven and mature for industrial use. I just have few complaints about being married Racket today, and there's no temptation to philander with CL.) As for me, the most noticeable difference between Common Lisp and Racket that the most popular implementations of former provides facilities for multiple /hardware/ threads of execution. And this is one of the primary reasons why I use Common Lisp as well. -- // Dmitry. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com javascript:_e(%7B%7D,'cvml','racket-users%2bunsubscr...@googlegroups.com'); . For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
RE: [racket-users] What limits would you put on racket?
Half-life was written in C on my Quake 1 codebase. -Original Message- From: racket-users@googlegroups.com [mailto:racket-users@googlegroups.com] On Behalf Of Hendrik Boom Sent: Thursday, July 23, 2015 7:15 PM To: Racket Users Subject: Re: [racket-users] What limits would you put on racket? On Thu, Jul 23, 2015 at 07:48:38PM -0400, Neil Van Dyke wrote: * 3D action games. I haven't yet tried this one yet with Racket, and it *might* be doable even with the current stock VM, but I anticipate GC pauses being an issue to get past. I'm not going to write a 3D game engine in CL, neither, and, realistically, I'd probably end up doing the performance/realtime-sensitive parts in C or C++ (or something that compiles to C/C++, or to LLVM), plus whatever is appropriate to offload to the GPU. I've heard that half-life waswritten in a versino of Lisp. But the battles in half-life tend to be short, so they explicitly called the garbage collector between battles. -- hendrik -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://urldefense.proofpoint.com/v1/url?u=https://groups.google.com/d/optoutk=ZVNjlDMF0FElm4dQtryO4A%3D%3D%0Ar=Kjg6LltY9QjkipKooaVldA%3D%3D%0Am=77tyOJbc%2BjZ2ASCooTvHV0Qeswwty9IwC%2B8aP9XX%2B6U%3D%0As=2c6a633611ab51194051c3be6053626c69f05d4a7dd534c78dd5f3a565f5806a. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] What limits would you put on racket?
First of all, the first field I am interested in Computer Science can reasonably marked as Programming Language itself. Before I chose Racket, I used C and Java/ActionScript at work. now Racket is the major one (among all languages not only lisp dialects) in my life. Many people choose Clojure for the season of taking advantages of Java Platform. I do not judge their choices, but for me, I prefer working with c shared libraries. Actually this is the common sense for Racketers who are working on real life applications. and this is also the most part that less productivity. To be honest and to tell the truth, if Racket can be marked as a full stack language, lots of the facilities are just at the beginning stage, the so called out of box with just basic equipments. But you might have to implement you own frameworks when you want to build a more complex system (GUI, Web, Testing, Visualizing and so on), the good news is that the community is very kind and always ready to help you in a professional way. To my poor knowledge of functional language communities. Lots of people are drinking in exploring the potential abilities of the languages, and as simple but too powerful as lisp families are, you can always find lots of solutions to solve one problem (just like mainstream languages). For me, this is the most thing that makes me headache, I don't like choosing, especially to choose among lots of buggy implementations. That might be the curse of lisp families as well as haskell. But Racket makes me feel comfortable, you know I do not even use the old package system. On Fri, Jul 24, 2015 at 5:11 AM, Sayth Renshaw flebber.c...@gmail.com wrote: I received a direct reply from Doug. If you're strictly comparing Racket to other Lisp dialects, I would say there is never any reason to go to a different Lisp dialect. The main exception would be if there is some specific, existing capability in a different language that you require. But, that is not a dialect issue. I regularly use Racket for complex analysis tasks. The mathematic and plotting capabilities available are superior (in my opinion) to other dialects. Your mileage may vary. Doug Williams Along those lines though but not necessarily limited to lisp dialects, where would racket become less productive. That is you would switch to another language to complete? Sayth -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] What limits would you put on racket?
On Racket, CL, limits, programmers... I've found that most stuff can be done in Racket, and, though I have used CL when required by two consulting clients' prior implementation choices, I'm not aware that CL has any key advantages over Racket. (Not bashing CL; it's a nice platform, with an unusually smart developer community. And, earlier in Racket's development, CL was noticeably more proven and mature for industrial use. I just have few complaints about being married Racket today, and there's no temptation to philander with CL.) Regarding using Racket primarily, with backup options... A long time ago, I noted a few other Lisp/Scheme variants (Gambit-C, Kawa, Chicken) to keep ready as backup options, for particular technical properties that I might need, as well as making sure I could fall back to C if I needed to. So far, I haven't had to use any of my backup options. Main situations in which Racket sometimes isn't suitable, I think usually a CL implementation wouldn't work either: * Browser-side AJAX-y apps, both underlying browser stuff and layered frameworks/libraries. Developing for this is largely about cursing frequently -- every time you're reminded that people who have little idea what they're doing have now determined the platforms that everyone must build upon. Not only are the platforms bad, but way in which most developers now think about software development is a step backwards from what it was before: institutionalizing a mixture of clerical bureaucracy and cargo-cult kludging methodology. * iOS and Android phone/tablet apps. No Lispy platform for this I've yet seen is satisfactory, but I see no technical barrier to a good such platform, unlike for browser apps. And one promising note for the future is that you *could* bypass most of the layered browser platform dumbness. (At the same time, business-wise and politics-wise, doing apps other than HTML5 Offline usually pushes you into using the proprietary app stores for most non-intranet purposes, and the app stores tend to be abused in practice. The monopoly abuse isn't entirely cyclical in computing industry history, there is some variation in form and dynamics, but there are recurring patterns you can see coming a mile away each time, and a lot of them are now standard practice/aspirations for companies.) * 3D action games. I haven't yet tried this one yet with Racket, and it *might* be doable even with the current stock VM, but I anticipate GC pauses being an issue to get past. I'm not going to write a 3D game engine in CL, neither, and, realistically, I'd probably end up doing the performance/realtime-sensitive parts in C or C++ (or something that compiles to C/C++, or to LLVM), plus whatever is appropriate to offload to the GPU. * Some embedded systems, and some embedded application extension languages. I'm conflating these two related but distinct things, just to quickly acknowledge them. John Carmack recently reported putting a small Scheme on an embedded system, while keeping Racket on the workstation. I recently found that Racket for some apps will actually work on particular home OpenWrt devices. Much older versions of Racket (older PLT Scheme) were more suitable for embedding (linking into a C/C++ app, to be called by the C/C++ code) as an extension language, though today I would put Racket in a separate process with some kind of simple IPC channel, or start with a Racket process and have Racket FFI the C/C++ bits. I'd say the Racket suitability question on these is case-by-case. * The rare long-running heavy number-crunching. Racket has been improving in this regard, such as with the Typed Racket optimizing and the unchecked native integer/float operations. But sometimes you'll still just need heavily-optimized C, hand-tuned assembler, GPU/FPGA/ASIC, cluster/supercomputer. Or old Fortran 77 routines written by ancient aliens, that everyone is afraid to modify. (Some CL implementations have optimization hint affordances, but not enough to make me go from Racket to CL, rather than from Racket to the previously-listed.) * Seamless threads to multiple host cores/processors. You have to think a lot harder to work around this. That said, most of the performance problems I see in apps using languages/platforms of any kind are not due to the language/platform, but failures of the programmers. Offhand, I'll group these programmer failures into three kinds: poor algorithmic time and space complexity, poor understanding of the language execution model, poor understanding of systems/resources external to the language execution model. No developer is ever perfect and omniscient, but we all keep learning and growing over time (perhaps stunted, if we go to the kind of dotcom where developers are sometimes called rock stars, including the connotation of management expecting developers to be drug-fueled). I'm comfortable asserting that
Re: [racket-users] What limits would you put on racket?
Hendrik Boom wrote on 07/23/2015 08:15 PM: I've heard that half-life waswritten in a versino of Lisp. But the battles in half-life tend to be short, so they explicitly called the garbage collector between battles. And now HL3 is merely delayed by a *really* long deferred GC cycle? :) But seriously, I'm idly toying with a game idea that needs uninterrupted smooth fast action (physics, graphics, world model, networking, controlling) for up to 5 minutes. A multiplayer game session is longer than 5 minutes, but is split into parts of up to 5 minutes, with brief GC-friendly gameplay pauses between the parts, and afterwards you return to the GC-friendly multiplayer lobby. An issue with this sort of thing in GC'd languages is that you know you're going to have to deal with GC somehow, and you'll have to prove viability empirically, after considerable investment; but if you were using C/C++, what you have to prove empirically after considerable investment is that you can do it without memory bugs. Neil V. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] What limits would you put on racket?
I received a direct reply from Doug. If you're strictly comparing Racket to other Lisp dialects, I would say there is never any reason to go to a different Lisp dialect. The main exception would be if there is some specific, existing capability in a different language that you require. But, that is not a dialect issue. I regularly use Racket for complex analysis tasks. The mathematic and plotting capabilities available are superior (in my opinion) to other dialects. Your mileage may vary. Doug Williams Along those lines though but not necessarily limited to lisp dialects, where would racket become less productive. That is you would switch to another language to complete? Sayth -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] What limits would you put on racket?
I think he's asking, when would you *not* use racket for something? What problems is it particularly suited towards, and what areas is it weak in? I'd also like to know how the list would answer this. PS sorry for forgetting to cc the list on my last msg Matthais. On Thu, Jul 23, 2015 at 9:59 AM, Matthias Felleisen matth...@ccs.neu.edu wrote: On Jul 23, 2015, at 12:51 AM, Sayth Renshaw flebber.c...@gmail.com wrote: Hi Just getting reacquainted with Racket going back through HTDP 2nd edition and the edx intro course. Is there a point where you would say yeah Racket shouldn't go there, it's best at A B or C you should go to Chez, Sbcl, CCL etc. What do you mean? -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] What limits would you put on racket?
On Jul 23, 2015, at 12:51 AM, Sayth Renshaw flebber.c...@gmail.com wrote: Hi Just getting reacquainted with Racket going back through HTDP 2nd edition and the edx intro course. Is there a point where you would say yeah Racket shouldn't go there, it's best at A B or C you should go to Chez, Sbcl, CCL etc. What do you mean? -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[racket-users] What limits would you put on racket?
Hi Just getting reacquainted with Racket going back through HTDP 2nd edition and the edx intro course. Is there a point where you would say yeah Racket shouldn't go there, it's best at A B or C you should go to Chez, Sbcl, CCL etc. Sayth -- You received this message because you are subscribed to the Google Groups Racket Users group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.