Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming

Client-side Web REPL For 15+ Languages 38

In his first accepted submission, MaxShaw writes "repl.it is an online REPL that supports running code in 15+ languages, from Ruby to Scheme to QBasic, in the browser. It is intended as a tool for learning new languages and experimenting with code on the go. All the code is open sourced under the MIT license and available from GitHub." A few of the languages are supported by reusing existing "Foolang in Javascript" interpreters, but a number of them are built using Emscripten (previously used to build Doom for the browser). All evaluation occurs client side, but saved sessions are stored on their server.
This discussion has been archived. No new comments can be posted.

Client-side Web REPL For 15+ Languages

Comments Filter:
  • Now we just need someone to code a browser in that thing, and we're ready for web 3.0

  • RELP (Score:5, Informative)

    by JonySuede ( 1908576 ) on Tuesday September 20, 2011 @05:34PM (#37461596) Journal

    for those who don't remember their lisp class : (define REPL 'Read-Eval-Print Loop')

  • Total fail.

    Balks on something as simple as:

    DIM Foo AS INTEGER

    Further, requires all commands to be in all caps, while real qbasic doesn't give a squat.

    Attempted a builtin graphics function, but the interpreter has no idea about how to do the LINE operation.

    Kids would be MUCH better off with real qbasic in dosbox.

  • Seems like REPLs have gotten more popular recently. I guess I don't really get it, I found a good interactive debugger more useful as a learning tool. Particularly with rich abilities to inspect variables and variable hierarchies. A REPL-like tool as one feature of such an environment is nice to have, sure. But just the REPL on its own seems really limiting.

    • You might like this: http://lemonodor.com/archives/2002_05.html#000103 [lemonodor.com]

    • by Anonymous Coward

      It depends a lot on the language.

      Having a REPL doesn't mean you throw out everything else you already use. What the REPL does is it lets you also do a lot of small, incremental tests/experiments as you're coding, without having to have a program that's fully ready to compile. Once you get used to having that ability, it can really help. I've used it a bit when playing around with various lisps and python, and though I haven't written any really big projects in those, I found it useful to be able to throw a

  • ... it seems that installing stuff on one's pc is taboo, and that happens now, when A. storage is not a problem B. installation can be done by easy to use app/package repositories C. money is not a problem because tons of free software are around.

    Of course the idea makes sense because most people go with the instant gratification of a prompt in a web page and don't really care if their mostly idle cpu has to work more for their hello world.

  • Is everyone here is using it now?
  • ...try IdeOne [ideone.com]. Code doesn't run in the browser -- it's compiled and runs server-side -- but it supports dozens of languages, including esoteric ones like intercal and whitespace, and allows you to optionally publish your code snippets, a la pastebin.

    -a.d.-
  • I'll lay out my specific use case, but basically the question is this: who's going to come up with a decent browser-based environment for people to use in order to learn how to program?

    My use case: I teach physics for a living, and I teach my students to do simple numerical simulations as an alternative to limiting them to the kinds of problems that can be solved in closed form using paper and pencil. These folks are not sophisticated about computer programming, and my goal is not to teach them to program;

    • by lxs ( 131946 )

      Have you tried using spreadsheets to run numerical simulations?
      Advantages are built-in graphing capability and no need for the kids to do any programming.
      Excel is found on most PCs and if it isn't then Libreoffice is free.

      Just because people use them to make shopping lists doesn't mean that they are limited to trivial tasks.

      • Have you tried using spreadsheets to run numerical simulations?

        Some people do use spreadsheets for that. This disadvantages IMO are: (1) Spreadsheets can't be easily read by another person. That means I can't present them to the students, and they can't turn in their work to me in a form that I can read. (2) Spreadsheet languages are basically all proprietary. Life is too short to learn proprietary languages. (It's true that, e.g., Excel and OOo are quite similar, but that's not the same as having a real, open standard.)

  • This is one of the coolest things I have seen for a long time! I'm really impressed. Congratulations, guys!

  • So we have gone from compiling code to machine language to compiling code to a scripting language so it can be compiled to machine language? That is a neat project; but, I'd be much more impressed if someone came out with a browser vm that actually understood and converted 15+ languages to machine code instead of just javascript. Anyone know of a multi-language vm? Maybe I can write a browser based on it.

    • parrot, CLR, and jvm, that's yours mainstream choices

      • Yeah. CLR and JVM are single language unless you use something like XMLVM. Parrot is changing the code for embedding it into an application. So, I guess that future project is on hold.

        • non CLR, means common language run-time, you have C#, managed C++, F#, IronPython, IronRuby and quite a few other, it is backed by a common type system so the interop is remarkable.

          And since jvm 7 with the invokedynamic op-code, dynamic language are supported with decent performance, you should read about jython, jruby and groovy on the dynamic side and to scala on the functional one. The inter op from dynamic to statics hard to do but the reverse is easy.

Life is a whim of several billion cells to be you for a while.

Working...