Re: [racket-users] What limits would you put on racket?

2015-07-27 Thread Pierpaolo Bernardi
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?

2015-07-26 Thread Doug Williams
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?

2015-07-24 Thread J Arcane


 * 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 Thread Dmitry Igrishin
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?

2015-07-24 Thread Hendrik Boom
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?

2015-07-24 Thread Robby Findler
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?

2015-07-24 Thread John Carmack
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?

2015-07-23 Thread WarGrey Gyoudmon Ju
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?

2015-07-23 Thread Neil Van Dyke

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?

2015-07-23 Thread Neil Van Dyke

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?

2015-07-23 Thread Sayth Renshaw
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?

2015-07-23 Thread Joel McCracken
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?

2015-07-23 Thread Matthias Felleisen

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?

2015-07-22 Thread Sayth Renshaw
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.