librelist archives

« back to archive

Just a random thought: in-browser Javascript as a modern ROM BASIC

Just a random thought: in-browser Javascript as a modern ROM BASIC

From:
Данил Хармсыч
Date:
2010-05-06 @ 23:08
Today, I was in need to implement simple algorithm (small analytic
grammar parser, in case you take an interest) having in my disposal
only almost-standard office workstation (Microsoft Office, AutoCAD
etc) with limited access to the 'Net (so downloading and installing
Ruby or Python was not an option). At first, I pondered the
possibility of writing it in Visual Basic for Application, but the
manual scared me off. And then I remembered about JS.

So, using nothing other than old *sarcasm* trusty Notepad, Google
Chrome (and I am sure I could pull this through even with only IE -
but Chrome was already installed) and my wits (and couple of web-based
manuals for those cases where said wits let some memories slip), I
wrote it.

And then I thought: this or similiar combination - simple yet
functional text editor, javascript-enabled browser, and, useful, but
not obligatory, at least rudimentary web acces - can be found on
almost every modern PC (excluding consoles, but including some
handhelds). So, almost every modern PC contain necessary software for
coding.

Sure, Javascript is somewhat quirky language, compared to our
favourite ^_^, but it has its power and elegance. Worse, in-browser
environment is necessarily restricted (so I cannot think of easy way
to port bloopsaphone into it), and, as _why pointed out when he
considered that language in Hackety Manifesto, you cannot program
solely in javascript: you should know also at least basics of html
(yet, for some applications, involvement of html can be truly minimal:
for instance, in my today's application, I used <html><head><script
src="p.js" type="text/javascript"></script></head><body><form><input
type="text" id="i"><input type="button" value="Run!"
onclick="process();"></form><div id="o"></div></body></html>, almost
verbatim).

So, it is not the best language for absolute beginners, and most
probably other limitations arose from these. It is surely not *the*
language - the language of choice, little everyday utilites, free
experimentation, and favourite projects - for most programmers. But I
feel that omnipresence of js is very apt to goals of Hackety Project.
And it will most probably not fade, at least in support if not in
popularity, until infrastructure of the 'Net change dramatically. So,
I propose to think about how it can be used. Should it be teached as a
second/third language? (I feel that being omniglot is very useful when
you're a programmer :)

Re: [hacketyhack] Just a random thought: in-browser Javascript as a modern ROM BASIC

From:
Steve Klabnik
Date:
2010-05-06 @ 23:15
>
> (I feel that being omniglot is very useful when
> you're a programmer :)
>

Absolutely.

 you cannot program solely in javascript:


This is the biggest problem I have with teaching javascript as an early
programming language.

I think that you can certainly do worse, but I think this limitation makes
it incredibly more difficult to teach early on. When you're starting out,
everything is new, complicated, and unwieldy. Throwing the concept of markup
in at the same time as learning javascript isn't the optimal situation...

However, just running Javascript scripts themselves would be kind of cool. A
REPL or other environment where you can get rid of the HTML component would
make it great.

Basically, an environment just like Hackety.

Re: [hacketyhack] Just a random thought: in-browser Javascript as a modern ROM BASIC

From:
Данил Хармсыч
Date:
2010-05-07 @ 01:26
On Fri, May 7, 2010 at 3:15 AM, Steve Klabnik <steve@steveklabnik.com> wrote:
> However, just running Javascript scripts themselves would be kind of cool. A
> REPL or other environment where you can get rid of the HTML component would
> make it great.
> Basically, an environment just like Hackety.

Yes!!! That's it. And various web-developer tools — Firebug and its
analogues in other browsers — already do that. Maybe they're too
complicated for beginners?

And what (hh) do beyond being neat, minimalistic, no-clutter IDE? It
has great library.

P.S. Code attached here
<http://code.google.com/p/chromium/issues/detail?id=39713> radically
changed my mind about feasibility of pure-js in-browser
Bloopsaphone-analogue :D

Re: [hacketyhack] Just a random thought: in-browser Javascript as a modern ROM BASIC

From:
Devyn Cairns
Date:
2010-05-07 @ 23:33
Something really minimalist that runs in the browser would be great for
learning from. Like HH, but online. Use another language though (implement
one if you have to): JavaScript is too quirky for beginners, I think. It's
the type of language that would scare them off.

On Thu, May 6, 2010 at 6:26 PM, Данил Хармсыч <mantycore@gmail.com> wrote:

> On Fri, May 7, 2010 at 3:15 AM, Steve Klabnik <steve@steveklabnik.com>
> wrote:
> > However, just running Javascript scripts themselves would be kind of
> cool. A
> > REPL or other environment where you can get rid of the HTML component
> would
> > make it great.
> > Basically, an environment just like Hackety.
>
> Yes!!! That's it. And various web-developer tools — Firebug and its
> analogues in other browsers — already do that. Maybe they're too
> complicated for beginners?
>
> And what (hh) do beyond being neat, minimalistic, no-clutter IDE? It
> has great library.
>
> P.S. Code attached here
> <http://code.google.com/p/chromium/issues/detail?id=39713> radically
> changed my mind about feasibility of pure-js in-browser
> Bloopsaphone-analogue :D
>



-- 
   ~devyn

Re: [hacketyhack] Just a random thought: in-browser Javascript as a modern ROM BASIC

From:
Данил Хармсыч
Date:
2010-05-08 @ 00:16
Well, we can "just" run HacketyHack online... edit code in browser
form, execute on server (in a cloud?), send results back to browser
asynchronously. Alternatively, write Ruby interpreter in JS/as browser
plugin :)

But online-ness is not my focus in this thread. What faschinates me
about javascript right now is what you can code in it today, out of
the box, on most PCs and some other popular devices. That's useful
when you cannot setup environment to your liking: working of friend's
computer, at internet cafe, etc. Of course, such floodability is not
the first priority for absolute beginner, but I think what it fits
well to the theme of exploratory, experimental programming.

Anyhow, right now I am not sure what that means on practice. Maybe
someday javascript should be added to the languages you can tinker
with in HacketyHack, but that's just one option.

On Sat, May 8, 2010 at 3:33 AM, Devyn Cairns <devyn.cairns@gmail.com> wrote:
> Something really minimalist that runs in the browser would be great for
> learning from. Like HH, but online. Use another language though (implement
> one if you have to): JavaScript is too quirky for beginners, I think. It's
> the type of language that would scare them off.
>
> On Thu, May 6, 2010 at 6:26 PM, Данил Хармсыч <mantycore@gmail.com> wrote:
>>
>> On Fri, May 7, 2010 at 3:15 AM, Steve Klabnik <steve@steveklabnik.com>
>> wrote:
>> > However, just running Javascript scripts themselves would be kind of
>> > cool. A
>> > REPL or other environment where you can get rid of the HTML component
>> > would
>> > make it great.
>> > Basically, an environment just like Hackety.
>>
>> Yes!!! That's it. And various web-developer tools — Firebug and its
>> analogues in other browsers — already do that. Maybe they're too
>> complicated for beginners?
>>
>> And what (hh) do beyond being neat, minimalistic, no-clutter IDE? It
>> has great library.
>>
>> P.S. Code attached here
>> <http://code.google.com/p/chromium/issues/detail?id=39713> radically
>> changed my mind about feasibility of pure-js in-browser
>> Bloopsaphone-analogue :D
>
>
>
> --
>    ~devyn
>

Re: [hacketyhack] Just a random thought: in-browser Javascript as a modern ROM BASIC

From:
Steve Klabnik
Date:
2010-05-08 @ 00:18
You mean tryruby.org?

On May 7, 2010 8:16 PM, "Данил Хармсыч" <mantycore@gmail.com> wrote:

Well, we can "just" run HacketyHack online... edit code in browser
form, execute on server (in a cloud?), send results back to browser
asynchronously. Alternatively, write Ruby interpreter in JS/as browser
plugin :)

But online-ness is not my focus in this thread. What faschinates me
about javascript right now is what you can code in it today, out of
the box, on most PCs and some other popular devices. That's useful
when you cannot setup environment to your liking: working of friend's
computer, at internet cafe, etc. Of course, such floodability is not
the first priority for absolute beginner, but I think what it fits
well to the theme of exploratory, experimental programming.

Anyhow, right now I am not sure what that means on practice. Maybe
someday javascript should be added to the languages you can tinker
with in HacketyHack, but that's just one option.


On Sat, May 8, 2010 at 3:33 AM, Devyn Cairns <devyn.cairns@gmail.com> wrote:
> Something really min...

Re: [hacketyhack] Just a random thought: in-browser Javascript as a modern ROM BASIC

From:
Данил Хармсыч
Date:
2010-05-08 @ 00:29
That too. But tryruby sandbox is (one can argue: necessarily) very
restrictive, and, as opposed to the HacketyHack, it lacks ability to
persistently save and restore session/programs/code snippets and data.

The goal of tryruby, in my opinion, is to allow newcomer to taste the
language, and provide very basic tutorial. It is unsuitable for any
real experimentation.

On Sat, May 8, 2010 at 4:18 AM, Steve Klabnik <steve@steveklabnik.com> wrote:
> You mean tryruby.org?
>
> On May 7, 2010 8:16 PM, "Данил Хармсыч" <mantycore@gmail.com> wrote:
>
> Well, we can "just" run HacketyHack online... edit code in browser
> form, execute on server (in a cloud?), send results back to browser
> asynchronously. Alternatively, write Ruby interpreter in JS/as browser
> plugin :)
>
> But online-ness is not my focus in this thread. What faschinates me
> about javascript right now is what you can code in it today, out of
> the box, on most PCs and some other popular devices. That's useful
> when you cannot setup environment to your liking: working of friend's
> computer, at internet cafe, etc. Of course, such floodability is not
> the first priority for absolute beginner, but I think what it fits
> well to the theme of exploratory, experimental programming.
>
> Anyhow, right now I am not sure what that means on practice. Maybe
> someday javascript should be added to the languages you can tinker
> with in HacketyHack, but that's just one option.
>
> On Sat, May 8, 2010 at 3:33 AM, Devyn Cairns <devyn.cairns@gmail.com> wrote:
>> Something really min...

Re: [hacketyhack] Just a random thought: in-browser Javascript as a modern ROM BASIC

From:
Devyn Cairns
Date:
2010-05-08 @ 00:35
Well, we couldn't lift the IO restrictions, but what we could do is create
temporary chroots for each session. And have accounts and all that, so you
can check out your friends' scripts, save your own, etc.

Perhaps, even provide a GUI interface with <canvas> so you could make little
GUI browser scripts with it, in Ruby.

On Fri, May 7, 2010 at 5:29 PM, Данил Хармсыч <mantycore@gmail.com> wrote:

> That too. But tryruby sandbox is (one can argue: necessarily) very
> restrictive, and, as opposed to the HacketyHack, it lacks ability to
> persistently save and restore session/programs/code snippets and data.
>
> The goal of tryruby, in my opinion, is to allow newcomer to taste the
> language, and provide very basic tutorial. It is unsuitable for any
> real experimentation.
>
> On Sat, May 8, 2010 at 4:18 AM, Steve Klabnik <steve@steveklabnik.com>
> wrote:
> > You mean tryruby.org?
> >
> > On May 7, 2010 8:16 PM, "Данил Хармсыч" <mantycore@gmail.com> wrote:
> >
> > Well, we can "just" run HacketyHack online... edit code in browser
> > form, execute on server (in a cloud?), send results back to browser
> > asynchronously. Alternatively, write Ruby interpreter in JS/as browser
> > plugin :)
> >
> > But online-ness is not my focus in this thread. What faschinates me
> > about javascript right now is what you can code in it today, out of
> > the box, on most PCs and some other popular devices. That's useful
> > when you cannot setup environment to your liking: working of friend's
> > computer, at internet cafe, etc. Of course, such floodability is not
> > the first priority for absolute beginner, but I think what it fits
> > well to the theme of exploratory, experimental programming.
> >
> > Anyhow, right now I am not sure what that means on practice. Maybe
> > someday javascript should be added to the languages you can tinker
> > with in HacketyHack, but that's just one option.
> >
> > On Sat, May 8, 2010 at 3:33 AM, Devyn Cairns <devyn.cairns@gmail.com>
> wrote:
> >> Something really min...
>



-- 
   ~devyn