Re: [racket-users] hackernews

2019-04-16 Thread Matthias Felleisen


Can you speak in general terms at RacketCon? 



> On Apr 16, 2019, at 3:02 PM, dexterla...@gmail.com wrote:
> 
>   I use Racket daily in production at Mercury Filmworks (Disney TVA, Amazon, 
> Netflix productions among others), and I wish I could talk more about how 
> Racket helps us where it counts. If there was to be an evangelist, I'd be a 
> candidate, however 1) I don't consider myself a good Racket programmer, and 
> 2) most of what I work on can't be published. That said, I'd love to write a 
> case study on our use in production, especially Racket's role in replacing 
> Python/Bash/Csh scripts with fast, self-contained binaries. I use it for 
> everything from video formats handling (+ffmpeg) to automation to animation 
> software plugins.
> 
> Dexter
> 
> On Wednesday, December 26, 2018 at 3:51:21 PM UTC+1, Neil Van Dyke wrote:
> Stephen De Gabrielle wrote on 12/26/18 7:40 AM: 
> > How did other languages grow their audience? e.g. Ruby-on-Rails, Perl, 
> > Python, PHP, C++, Rust ? 
> 
> All of those had merits, were right place and at right time, and (except 
> Rust) really spread when there was *a lot* less noise and sheer mass of 
> stuff.  Also, some of those had very long ramps to their ultimate 
> popularity (which could give some hope to Racketeers). 
> 
> Ruby with Rails was a decent language that pushed a good model and 
> automagical conveniences for Web developer productivity, and they seemed 
> to have a good community (e.g., when I was shopping around for my new 
> research platform language, and I don't think I'd even heard of Ruby at 
> that time, one of the nice Ruby people happened to hear about my quest, 
> and emailed me, suggesting Ruby). 
> 
> We talked about Perl growth spikes here recently. 
> 
> Python started out as some guy on Usenet with a reusable extension 
> language (Tcl was another, and some RnRS implementations were another) 
> -- all 3 of them had interesting innovations and merits. (Tcl got 
> popular because of Tk GUIs, and then it has some moments in the sun for 
> earlier database-backed Web servers (as opposed to manually-edited HTML) 
> while a lot more readable than Perl, and was pushed commercially by 
> Philip Greenspun, before Sun hired Tcl creator Ousterhout, and Tcl 
> disappeared, in favor of Java and then LiveScript/JS.) 
> 
> PHP was in the early Web gold rush, when template-ish approaches were 
> attractive alternative to CGI scripts that started as Perl (or, less 
> likely, other imperative language) code that spat out HTML strings.  You 
> could also do HTML templates various other ways, including in Perl, but 
> the Web was so new, and the tools so not figured out, and everyone was 
> racing to do neat stuff (or to get VC funding, then Herman Miller office 
> furniture and launch party, and then IPO), that there was a lot of 
> random going on, and we aren't in that kind of environment anymore.  
> Well, unless you were pitching a "blockchain" startup during the BTC:USD 
> run-up a year ago -- it didn't much matter what tools you grabbed, so 
> long as you told the VCs you were doing "blockchain" (you didn't even 
> have to madlibs pitch "Our startup is like _Uber_, for _cats_!  (Can you 
> handle the sheer force of our raw innovation, unleashed!)"). 
> 
> C++ had the funding and promotional/endorsement backing of the people 
> who brought us C and Unix, and (again) there was a lot less stuff, and a 
> lot fewer programmers.  The people using C were some of the most 
> technically-skilled programmers: OS-level systems programmers (who also 
> used assembler), Unix workstation technical application/research 
> programmers, PC shrinkwrap software developers, and EEs doing software 
> bits of embedded systems.  (The corporate MIS programmers were a 
> separate group -- they mostly did database forms and reports and 
> business logic, and there seemed to be subgroups for different 
> platforms.  Much of the MIS seemed to be analogous to today's Web 
> programmers, and I'm not sure how MIS platform adoption decisions were 
> made in various kinds of organizations then.) 
> 
> Anyway, besides the Bell Labs / AT backing, I recall one thing that 
> helped push C++ was the people doing GUI and hearing about OO (with 
> references to Smalltalk), at a time when people were just reasoning 
> low-level code and ad hoc formalisms, or using pre-OO analysis and 
> design methods (structured SA and SD, ERDs, etc.), and it was really 
> easy to sell generalization/polymorphism to those people.  Plus AT was 
> saying C++ would help with mission-critical and performance-critical 
> large and complex systems, and you had workstation developers like 
> Mentor Graphics endorsing it.  Also, again, the amount of stuff and the 
> number of programmers was a lot smaller then; one anecdote: by the time 
> there was a Usenix C++ conference, it was small enough that, while 
> Stroustrup was talking during a Q in the hotel conference room (maybe 
> around the scale of 

Re: [racket-users] make extensions or replacements

2019-04-16 Thread Greg Hendershott
I have a shallow understanding of GNU Make, which is only somewhat
less-shallow as a result of recently redesigning my blog to be
Makefile-driven.

In the process I learned to like using make variables. I learned that
a variable can be populated from make functions like $(wildcard)
$(patsubst) and the ultimate escape hatch $(shell).

So, if you have (say) 5 unique stanzas, it might be possible to
arrange this as 5 variables -- each of which is a list of that kind of
source or target files. Then you can state the build recipe once in a
single rule for each.

If the 5 kinds of things have distinct file extensions, or are in
distinct subdirs, this is fairly easy to do with $(wildcard) and/or
$(patsubt).  Otherwise (if you can't or prefer not to give them
distinct extensions or locations), then potentially you can use
$(shell) to run something that knows how to distinguish them. Maybe a
find or grep command. Maybe even a little .rkt program.

So my guess is that the means of abstraction you need, does exist in
GNU Make. But even so, it sounds like you might not enjoy using it.

On Tue, Apr 16, 2019 at 4:13 PM Hendrik Boom  wrote:
>
> On Tue, Apr 16, 2019 at 09:54:03PM +0200, da...@erl.nu wrote:
> > Hendrik,
> >
> > What is that you are trying to do, maybe you are misunderstanding some
> > concept about make?
> >
> > It seems to me that the whole point of make is to "run a program" whenever
> > some of the files have changed.
>
> Yes, that part of make is easy.
>
> The problem comes when you have many files that have to be made
> depending on many files and there is a repetitive nature to the
> dependencies.  The kind of similarity that is handled by abstraction in
> any normal programming language.
>
> And make itself has rules that can be used to do things like make *.out
> files from *.in files based on the file types, a long as the rules can
> be expanded by filling in the rest of the file names.  These are used
> when it provides, say, default rules to compile .c files to .o files
> and the like.
>
> This is, I guess, a kind of abstraction.  But abstraction that takes
> only one parameter is a poor kind of abstraction.
>
> There seems to be no mechanism to provide additional parameters to
> these rules, to accomodate slight variations in the stanzas.
>
> I've thought of using Racket to generate stanzas.  Or to avoid
> generating Makefiles altogether and directly implement make-like
> semantics in Racket using its profound flexibility and then to use
> Racket code to Make whatever I want.
>
> But maybe, just maybe, there are already better tools than GNU make.
>
> -- hendrik
>
>
> >
> > Regards,
> >
> > David
> >
> > On 2019-04-16 21:25, Hendrik Boom wrote:
> > > I'm sending this here, not because it's directly related to Racket,
> > > nor because i think you all are experts in make or GNU make, but
> > > because you are reasonable erudite in language appreciation.
> > >
> > > I, like many others, have been using a Makefile as a recipe to make a
> > > lot of files from other files.
> > >
> > > The trouble is that a lot of the stanzas are quite repetitive.  I want
> > > to refactor.
> > >
> > > If I were writing this in any other language then make,  i would just
> > > define a function with about three or four short parameters and call it
> > > many times, each time doing the equivalent of several of these stanzas.
> > >
> > > Roughly speaking, the abstraction tools of GNU Make are terrible.
> > >
> > > I'd like to ask you, what other tools might you actually recommend to
> > > used in addition to make, or instead of it, that make the build
> > > process more like normal programming?
> > >
> > > If I could get make to run a program to make another makefile and then
> > > execute that new makefile, I suppose I could write the program that
> > > makes all the repetitive (but not quite the same) stanzas.  But that
> > > would likely make the build process somewhat obscure.
> > >
> > > Sure, I could invent something.  But chances are, someone else already
> > > has invented something better than I'd improvise.
> > >
> > > -- 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://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.

-- 
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 

Re: [racket-users] make extensions or replacements

2019-04-16 Thread Hendrik Boom
On Tue, Apr 16, 2019 at 10:13:47PM +0200, Jens Axel Søgaard wrote:
> Hav you tried the make library?
> 
> https://docs.racket-lang.org/make/index.html?q=make

Yes.  That would work.  And that's the kind of answer I was hoping 
for.  I'd use the make/proc form after using some function calls (with 
as many arguments as I like) to build the lists it takes as arguments.

-- hendrik

> 
> Den tir. 16. apr. 2019 kl. 21.54 skrev :
> 
> > Hendrik,
> >
> > What is that you are trying to do, maybe you are misunderstanding some
> > concept about make?
> >
> > It seems to me that the whole point of make is to "run a program"
> > whenever
> > some of the files have changed.
> >
> > Regards,
> >
> > David
> >
> > On 2019-04-16 21:25, Hendrik Boom wrote:
> > > I'm sending this here, not because it's directly related to Racket,
> > > nor because i think you all are experts in make or GNU make, but
> > > because you are reasonable erudite in language appreciation.
> > >
> > > I, like many others, have been using a Makefile as a recipe to make a
> > > lot of files from other files.
> > >
> > > The trouble is that a lot of the stanzas are quite repetitive.  I want
> > > to refactor.
> > >
> > > If I were writing this in any other language then make,  i would just
> > > define a function with about three or four short parameters and call it
> > > many times, each time doing the equivalent of several of these stanzas.
> > >
> > > Roughly speaking, the abstraction tools of GNU Make are terrible.
> > >
> > > I'd like to ask you, what other tools might you actually recommend to
> > > used in addition to make, or instead of it, that make the build
> > > process more like normal programming?
> > >
> > > If I could get make to run a program to make another makefile and then
> > > execute that new makefile, I suppose I could write the program that
> > > makes all the repetitive (but not quite the same) stanzas.  But that
> > > would likely make the build process somewhat obscure.
> > >
> > > Sure, I could invent something.  But chances are, someone else already
> > > has invented something better than I'd improvise.
> > >
> > > -- 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://groups.google.com/d/optout.
> >
> 
> 
> -- 
> -- 
> Jens Axel Søgaard
> 
> -- 
> 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] make extensions or replacements

2019-04-16 Thread david

I think the tool to use depends on what you want to achieve =)

Do you have an example of what you think is missing?

I like the idea that maybe you want to make use racket to
generate some Makefile's to your liking.
Maybe using #lang scribble/text

Best Regards,

David

On 2019-04-16 22:13, Hendrik Boom wrote:

On Tue, Apr 16, 2019 at 09:54:03PM +0200, da...@erl.nu wrote:

Hendrik,

What is that you are trying to do, maybe you are misunderstanding some
concept about make?

It seems to me that the whole point of make is to "run a program" 
whenever

some of the files have changed.


Yes, that part of make is easy.

The problem comes when you have many files that have to be made
depending on many files and there is a repetitive nature to the
dependencies.  The kind of similarity that is handled by abstraction in
any normal programming language.

And make itself has rules that can be used to do things like make *.out
files from *.in files based on the file types, a long as the rules can
be expanded by filling in the rest of the file names.  These are used
when it provides, say, default rules to compile .c files to .o files
and the like.

This is, I guess, a kind of abstraction.  But abstraction that takes
only one parameter is a poor kind of abstraction.

There seems to be no mechanism to provide additional parameters to
these rules, to accomodate slight variations in the stanzas.

I've thought of using Racket to generate stanzas.  Or to avoid
generating Makefiles altogether and directly implement make-like
semantics in Racket using its profound flexibility and then to use
Racket code to Make whatever I want.

But maybe, just maybe, there are already better tools than GNU make.

-- hendrik




Regards,

David

On 2019-04-16 21:25, Hendrik Boom wrote:
> I'm sending this here, not because it's directly related to Racket,
> nor because i think you all are experts in make or GNU make, but
> because you are reasonable erudite in language appreciation.
>
> I, like many others, have been using a Makefile as a recipe to make a
> lot of files from other files.
>
> The trouble is that a lot of the stanzas are quite repetitive.  I want
> to refactor.
>
> If I were writing this in any other language then make,  i would just
> define a function with about three or four short parameters and call it
> many times, each time doing the equivalent of several of these stanzas.
>
> Roughly speaking, the abstraction tools of GNU Make are terrible.
>
> I'd like to ask you, what other tools might you actually recommend to
> used in addition to make, or instead of it, that make the build
> process more like normal programming?
>
> If I could get make to run a program to make another makefile and then
> execute that new makefile, I suppose I could write the program that
> makes all the repetitive (but not quite the same) stanzas.  But that
> would likely make the build process somewhat obscure.
>
> Sure, I could invent something.  But chances are, someone else already
> has invented something better than I'd improvise.
>
> -- 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://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] make extensions or replacements

2019-04-16 Thread Jens Axel Søgaard
Hav you tried the make library?

https://docs.racket-lang.org/make/index.html?q=make

Den tir. 16. apr. 2019 kl. 21.54 skrev :

> Hendrik,
>
> What is that you are trying to do, maybe you are misunderstanding some
> concept about make?
>
> It seems to me that the whole point of make is to "run a program"
> whenever
> some of the files have changed.
>
> Regards,
>
> David
>
> On 2019-04-16 21:25, Hendrik Boom wrote:
> > I'm sending this here, not because it's directly related to Racket,
> > nor because i think you all are experts in make or GNU make, but
> > because you are reasonable erudite in language appreciation.
> >
> > I, like many others, have been using a Makefile as a recipe to make a
> > lot of files from other files.
> >
> > The trouble is that a lot of the stanzas are quite repetitive.  I want
> > to refactor.
> >
> > If I were writing this in any other language then make,  i would just
> > define a function with about three or four short parameters and call it
> > many times, each time doing the equivalent of several of these stanzas.
> >
> > Roughly speaking, the abstraction tools of GNU Make are terrible.
> >
> > I'd like to ask you, what other tools might you actually recommend to
> > used in addition to make, or instead of it, that make the build
> > process more like normal programming?
> >
> > If I could get make to run a program to make another makefile and then
> > execute that new makefile, I suppose I could write the program that
> > makes all the repetitive (but not quite the same) stanzas.  But that
> > would likely make the build process somewhat obscure.
> >
> > Sure, I could invent something.  But chances are, someone else already
> > has invented something better than I'd improvise.
> >
> > -- 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://groups.google.com/d/optout.
>


-- 
-- 
Jens Axel Søgaard

-- 
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] make extensions or replacements

2019-04-16 Thread Hendrik Boom
On Tue, Apr 16, 2019 at 09:54:03PM +0200, da...@erl.nu wrote:
> Hendrik,
> 
> What is that you are trying to do, maybe you are misunderstanding some
> concept about make?
> 
> It seems to me that the whole point of make is to "run a program" whenever
> some of the files have changed.

Yes, that part of make is easy.

The problem comes when you have many files that have to be made 
depending on many files and there is a repetitive nature to the 
dependencies.  The kind of similarity that is handled by abstraction in 
any normal programming language.

And make itself has rules that can be used to do things like make *.out 
files from *.in files based on the file types, a long as the rules can 
be expanded by filling in the rest of the file names.  These are used 
when it provides, say, default rules to compile .c files to .o files 
and the like.

This is, I guess, a kind of abstraction.  But abstraction that takes 
only one parameter is a poor kind of abstraction.

There seems to be no mechanism to provide additional parameters to 
these rules, to accomodate slight variations in the stanzas.

I've thought of using Racket to generate stanzas.  Or to avoid 
generating Makefiles altogether and directly implement make-like 
semantics in Racket using its profound flexibility and then to use 
Racket code to Make whatever I want.

But maybe, just maybe, there are already better tools than GNU make.

-- hendrik

 
> 
> Regards,
> 
> David
> 
> On 2019-04-16 21:25, Hendrik Boom wrote:
> > I'm sending this here, not because it's directly related to Racket,
> > nor because i think you all are experts in make or GNU make, but
> > because you are reasonable erudite in language appreciation.
> > 
> > I, like many others, have been using a Makefile as a recipe to make a
> > lot of files from other files.
> > 
> > The trouble is that a lot of the stanzas are quite repetitive.  I want
> > to refactor.
> > 
> > If I were writing this in any other language then make,  i would just
> > define a function with about three or four short parameters and call it
> > many times, each time doing the equivalent of several of these stanzas.
> > 
> > Roughly speaking, the abstraction tools of GNU Make are terrible.
> > 
> > I'd like to ask you, what other tools might you actually recommend to
> > used in addition to make, or instead of it, that make the build
> > process more like normal programming?
> > 
> > If I could get make to run a program to make another makefile and then
> > execute that new makefile, I suppose I could write the program that
> > makes all the repetitive (but not quite the same) stanzas.  But that
> > would likely make the build process somewhat obscure.
> > 
> > Sure, I could invent something.  But chances are, someone else already
> > has invented something better than I'd improvise.
> > 
> > -- 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://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] make extensions or replacements

2019-04-16 Thread david

Hendrik,

What is that you are trying to do, maybe you are misunderstanding some
concept about make?

It seems to me that the whole point of make is to "run a program" 
whenever

some of the files have changed.

Regards,

David

On 2019-04-16 21:25, Hendrik Boom wrote:

I'm sending this here, not because it's directly related to Racket,
nor because i think you all are experts in make or GNU make, but
because you are reasonable erudite in language appreciation.

I, like many others, have been using a Makefile as a recipe to make a
lot of files from other files.

The trouble is that a lot of the stanzas are quite repetitive.  I want
to refactor.

If I were writing this in any other language then make,  i would just
define a function with about three or four short parameters and call it
many times, each time doing the equivalent of several of these stanzas.

Roughly speaking, the abstraction tools of GNU Make are terrible.

I'd like to ask you, what other tools might you actually recommend to
used in addition to make, or instead of it, that make the build
process more like normal programming?

If I could get make to run a program to make another makefile and then
execute that new makefile, I suppose I could write the program that
makes all the repetitive (but not quite the same) stanzas.  But that
would likely make the build process somewhat obscure.

Sure, I could invent something.  But chances are, someone else already
has invented something better than I'd improvise.

-- 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://groups.google.com/d/optout.


[racket-users] make extensions or replacements

2019-04-16 Thread Hendrik Boom
I'm sending this here, not because it's directly related to Racket,
nor because i think you all are experts in make or GNU make, but 
because you are reasonable erudite in language appreciation.

I, like many others, have been using a Makefile as a recipe to make a 
lot of files from other files.

The trouble is that a lot of the stanzas are quite repetitive.  I want 
to refactor.

If I were writing this in any other language then make,  i would just 
define a function with about three or four short parameters and call it 
many times, each time doing the equivalent of several of these stanzas.

Roughly speaking, the abstraction tools of GNU Make are terrible.

I'd like to ask you, what other tools might you actually recommend to 
used in addition to make, or instead of it, that make the build 
process more like normal programming?

If I could get make to run a program to make another makefile and then 
execute that new makefile, I suppose I could write the program that 
makes all the repetitive (but not quite the same) stanzas.  But that 
would likely make the build process somewhat obscure.

Sure, I could invent something.  But chances are, someone else already 
has invented something better than I'd improvise.

-- 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://groups.google.com/d/optout.


Re: [racket-users] hackernews

2019-04-16 Thread dexterlagan
  I use Racket daily in production at Mercury Filmworks (Disney TVA, 
Amazon, Netflix productions among others), and I wish I could talk more 
about how Racket helps us where it counts. If there was to be an 
evangelist, I'd be a candidate, however 1) I don't consider myself a good 
Racket programmer, and 2) most of what I work on can't be published. That 
said, I'd love to write a case study on our use in production, especially 
Racket's role in replacing Python/Bash/Csh scripts with fast, 
self-contained binaries. I use it for everything from video formats 
handling (+ffmpeg) to automation to animation software plugins.

Dexter

On Wednesday, December 26, 2018 at 3:51:21 PM UTC+1, Neil Van Dyke wrote:
>
> Stephen De Gabrielle wrote on 12/26/18 7:40 AM: 
> > How did other languages grow their audience? e.g. Ruby-on-Rails, Perl, 
> > Python, PHP, C++, Rust ? 
>
> All of those had merits, were right place and at right time, and (except 
> Rust) really spread when there was *a lot* less noise and sheer mass of 
> stuff.  Also, some of those had very long ramps to their ultimate 
> popularity (which could give some hope to Racketeers). 
>
> Ruby with Rails was a decent language that pushed a good model and 
> automagical conveniences for Web developer productivity, and they seemed 
> to have a good community (e.g., when I was shopping around for my new 
> research platform language, and I don't think I'd even heard of Ruby at 
> that time, one of the nice Ruby people happened to hear about my quest, 
> and emailed me, suggesting Ruby). 
>
> We talked about Perl growth spikes here recently. 
>
> Python started out as some guy on Usenet with a reusable extension 
> language (Tcl was another, and some RnRS implementations were another) 
> -- all 3 of them had interesting innovations and merits. (Tcl got 
> popular because of Tk GUIs, and then it has some moments in the sun for 
> earlier database-backed Web servers (as opposed to manually-edited HTML) 
> while a lot more readable than Perl, and was pushed commercially by 
> Philip Greenspun, before Sun hired Tcl creator Ousterhout, and Tcl 
> disappeared, in favor of Java and then LiveScript/JS.) 
>
> PHP was in the early Web gold rush, when template-ish approaches were 
> attractive alternative to CGI scripts that started as Perl (or, less 
> likely, other imperative language) code that spat out HTML strings.  You 
> could also do HTML templates various other ways, including in Perl, but 
> the Web was so new, and the tools so not figured out, and everyone was 
> racing to do neat stuff (or to get VC funding, then Herman Miller office 
> furniture and launch party, and then IPO), that there was a lot of 
> random going on, and we aren't in that kind of environment anymore.  
> Well, unless you were pitching a "blockchain" startup during the BTC:USD 
> run-up a year ago -- it didn't much matter what tools you grabbed, so 
> long as you told the VCs you were doing "blockchain" (you didn't even 
> have to madlibs pitch "Our startup is like _Uber_, for _cats_!  (Can you 
> handle the sheer force of our raw innovation, unleashed!)"). 
>
> C++ had the funding and promotional/endorsement backing of the people 
> who brought us C and Unix, and (again) there was a lot less stuff, and a 
> lot fewer programmers.  The people using C were some of the most 
> technically-skilled programmers: OS-level systems programmers (who also 
> used assembler), Unix workstation technical application/research 
> programmers, PC shrinkwrap software developers, and EEs doing software 
> bits of embedded systems.  (The corporate MIS programmers were a 
> separate group -- they mostly did database forms and reports and 
> business logic, and there seemed to be subgroups for different 
> platforms.  Much of the MIS seemed to be analogous to today's Web 
> programmers, and I'm not sure how MIS platform adoption decisions were 
> made in various kinds of organizations then.) 
>
> Anyway, besides the Bell Labs / AT backing, I recall one thing that 
> helped push C++ was the people doing GUI and hearing about OO (with 
> references to Smalltalk), at a time when people were just reasoning 
> low-level code and ad hoc formalisms, or using pre-OO analysis and 
> design methods (structured SA and SD, ERDs, etc.), and it was really 
> easy to sell generalization/polymorphism to those people.  Plus AT was 
> saying C++ would help with mission-critical and performance-critical 
> large and complex systems, and you had workstation developers like 
> Mentor Graphics endorsing it.  Also, again, the amount of stuff and the 
> number of programmers was a lot smaller then; one anecdote: by the time 
> there was a Usenix C++ conference, it was small enough that, while 
> Stroustrup was talking during a Q in the hotel conference room (maybe 
> around the scale of current RacketCon), some toddler goes running up the 
> aisle from the back of the room, saying something like "daddy!", and 
> everyone laughs. 
>

Re: [racket-users] Is there a way to find where some feature is implemented in racket?

2019-04-16 Thread Greg Hendershott
DrRacket: In addition to the open defining file feature that Matthias
mentioned, you might like the File | Open Require Path command.

racket-mode: M-. aka racket-visit-definition and C-c C-x C-f aka
racket-open-require-path are the respective equivalents. [Also C-M-.
aka racket-visit-module when you have point on a relative or absolute
path inside a `require` form. (Although this doesn't yet know how to
handle `multi-in` forms.)]

For general spelunking I've found the interactive search from "open
require path" to be pretty great.


On Tue, Apr 16, 2019 at 8:44 AM Matthias Felleisen
 wrote:
>
>
>
> On Apr 16, 2019, at 8:31 AM, zeRusski  wrote:
>
> I suspect I'm not the first to ask, but my search-fu has failed me here. 
> Apologies if the question has already been answered on that list.
>
> When I read Racket docs I sometimes wonder how a particular feature is 
> implemented. Looking at the source sometimes shed light or simply teaches you 
> things. However I find myself grepping Racket source and very often failing. 
> Is there a better way? Latest such encounter was s-exp meta language. I 
> assume its implemented somewhere, but grep mostly just shows scribblings or 
> its use sites. What "algo" should I employ to find relevant source of a 
> thing? Would be grand to have links from docs,  but its probably quite 
> involved.
>
>
>
> Open DrRacket.
> Use the feature in a syntactically correct way.
> Click (depending on your OS) on the identifier to open defining file.
>
> Like so.
>
> #lang racktet/base
> (provide)
>
> Right-click on provide.
> See
>
> (module reqprov '#%kernel
>   (#%require "define.rkt"
>  (for-syntax '#%kernel
>  "stx.rkt" "stxcase-scheme.rkt" "small-scheme.rkt"
>  "stxloc.rkt" "qqstx.rkt" "more-scheme.rkt"
>  "member.rkt"
>  "../require-transform.rkt"
>  "../provide-transform.rkt"
>  "struct-info.rkt"))
>
>   (#%provide lib file planet submod
>  for-syntax for-template for-label for-meta
>  require
>  only-in rename-in prefix-in except-in combine-in only-meta-in
>  relative-in
>  provide
>  all-defined-out all-from-out
>  rename-out except-out prefix-out struct-out combine-out
>  protect-out
>  local-require)
>   .. .. ..
>
> --
> 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] Is there a way to find where some feature is implemented in racket?

2019-04-16 Thread Matthias Felleisen


> On Apr 16, 2019, at 8:31 AM, zeRusski  wrote:
> 
> I suspect I'm not the first to ask, but my search-fu has failed me here. 
> Apologies if the question has already been answered on that list.
> 
> When I read Racket docs I sometimes wonder how a particular feature is 
> implemented. Looking at the source sometimes shed light or simply teaches you 
> things. However I find myself grepping Racket source and very often failing. 
> Is there a better way? Latest such encounter was s-exp meta language. I 
> assume its implemented somewhere, but grep mostly just shows scribblings or 
> its use sites. What "algo" should I employ to find relevant source of a 
> thing? Would be grand to have links from docs,  but its probably quite 
> involved.
> 


Open DrRacket. 
Use the feature in a syntactically correct way. 
Click (depending on your OS) on the identifier to open defining file. 

Like so. 

#lang racktet/base 
(provide)

Right-click on provide. 
See 

(module reqprov '#%kernel
  (#%require "define.rkt"
 (for-syntax '#%kernel
 "stx.rkt" "stxcase-scheme.rkt" "small-scheme.rkt" 
 "stxloc.rkt" "qqstx.rkt" "more-scheme.rkt"
 "member.rkt"
 "../require-transform.rkt"
 "../provide-transform.rkt"
 "struct-info.rkt"))
  
  (#%provide lib file planet submod
 for-syntax for-template for-label for-meta
 require
 only-in rename-in prefix-in except-in combine-in only-meta-in
 relative-in
 provide
 all-defined-out all-from-out
 rename-out except-out prefix-out struct-out combine-out
 protect-out
 local-require)
  .. .. ..

-- 
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] Is there a way to find where some feature is implemented in racket?

2019-04-16 Thread zeRusski
I suspect I'm not the first to ask, but my search-fu has failed me here. 
Apologies if the question has already been answered on that list.

When I read Racket docs I sometimes wonder how a particular feature is 
implemented. Looking at the source sometimes shed light or simply teaches 
you things. However I find myself grepping Racket source and very often 
failing. Is there a better way? Latest such encounter was s-exp meta 
language. I assume its implemented somewhere, but grep mostly just shows 
scribblings or its use sites. What "algo" should I employ to find relevant 
source of a thing? Would be grand to have links from docs,  but its 
probably quite involved.

Thanks

-- 
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.