Tue, Aug 22, 2017Two Stories from Our Community
Like any other startup, we go through ups and downs. However, we try to keep a positive energy, and you, my friends, contribute to that by sending your love, support, and thanks everyday. Above all, you inspire us with stories of how our product helped you learn, teach, and even develop a new skill to land a better job. Today I’d like to share with you two stories from two Replers: Ruslan a software developer from Scotland, and Mark a math teacher from Houston. Landing a self-driving job Ruslan (@kuddai), a Physics Major, wanted to land a job in doing software engineering. So he spent a lot of time practicing coding using Repl.it and eventually was able to land a new job software engineering job in the cutting edge field of self-driving! Here is him telling the story: While I was doing my M.S. in Informatics at University of Edinburgh, I realized that I lacked practice in coding interviews because my first major is in Physics. During my preparation (“Cracking coding interview”, “Algorithms by Robert Sedgewick”, hackerrank, etc.) I needed some general place to store my solutions for coding exercises. Eventually, I have chosen repl.it because:
Tue, Jul 4, 2017Your Repl.it Profile
We're constantly surprised and delighted by the creativity of people in our community. Whether it be games, animations, utilities, or simply snippets to answer Stackoverflow questions -- it's always fascinating to see! However, we haven't done a good job giving credits to authors for their creations. We're changing this in two ways: We're giving you, dear Repl.it user, your own user profile. Your repls will have your picture and name on the top left hand section above the editor. User profiles Right now, you can go to your account and start crafting your user profile. You can change your profile picture (it defaults to your Gravatar if you have one), add a bio (complete with links to your website or social media accounts), and if you want, even add a school, company, organization or whatever institution you belong to.
Thu, Jun 1, 2017One more console
Debugging web projects on Repl.it can be frustrating. Until today, there was no easy way to view your errors and console logs (unless you open your browsers' developer tools). But that's changing because we're introducing our new tabbed console view for environments that has graphics output (like Web and Python Turtle). See it in action:
Mon, May 29, 2017Check out my Repl!
The label "sessions" is very near and dear to my heart. I vividly remember how Amjad came up with the name and why. After we learned that people would like to create accounts on Repl.it, we were trying to figure out what was the main value proposition for creating an account. Of course, it was saving code! But what do you call a list of code projects saved on your account? In a brainstorming session in the New York City subway (incidentally, on our way to an improv class so naturally we were yes-anding each-other) Amjad suggested the name "sessions"! He continued "this will be a feed of sesssions that you create and manage". But let's be honest "sessions" is kind of boring and somewhat bland. So if Repl-it is about Repl-ing, what is the thing that you save? It's of course a Repl! In fact, some of our users already call it that: "I made a repl". So going forward we're going to use "Repl" instead of "Session". When you log in you'll see that the "sessions" list is now a "Repls" list. And an individual "session" is a "Repl". Not much else will change. But you'll be happy to know that we're designing a place where you can showcase your Repls and share them with the rest of our community. Happy Repling!!
Wed, May 17, 2017Introducing Kotlin REPL
On the heels of Google announcing native Kotlin support on Android yesterday, we thought it'd be cool to get a Kotlin REPL up so that people can try it. Give it a spin here. It's still in beta so let us know if you hit any bugs.
Tue, Mar 28, 2017Require any npm package
Last year we introduced support for importing any Python package from PyPi and -- although we don't have perfect support for all packages -- it turned out to be a very popular feature. That's why today we're excited to continue the roll-out for the rest of our platform starting with web-based languages. [](preview end) Whether you're using plain old JavaScript REPL, HTML/CSS/JS, or ES2016, you'll be able to import any package from npm (that can run in the browser). How it works is that we parse out the requires from your code, fetch the bundle from npm via wzrd.in, and evaluate the bundle in the same context as your code. Note that ES6 imports is not currently supported but we're hoping to get it in soon.
Mon, Mar 27, 2017Building Towards a Holistic Development Service
Software development is one of the first -- if not the first -- examples of what J. C. Licklider called the Man-Computer Symbiosis. A "cooperative interaction" between people and computers where the person is concerned in what may be classified as the creative aspect of the work such as setting the goals, formulating the hypothesis and evaluating the results while the computer does all the "routinizable work". This symbiotic partnership is especially effective for work that puts to the test our intellectual capacity like keeping all the moving parts of a large software system in our head. Or as Dijkstra warns us "the competent programmer is fully aware of the strictly limited size of his own skull". This begins to explain why software engineers are so passionate about their tools. From the good old editor wars to JavaScript fatigue, we're continuously adding and improving on our arsenal because this is the best way we know how to become better engineers. From a business point-of-view, it might also explain the seemingly sudden rise and growth of the developer tools market: hosted version control, infrastructure, devops and automation etc. Despite all this success I think we've fallen victim to the onetime useful Unix dictum Do One Thing and Do it Well. Roughly speaking, we separate our tools by development life-cycle stages: authoring, executing, testing, building, and deployment. Which limits how much information each tool has at its disposal and therefore how much utility it can provide. Sharing the work isn't easy. The text stream as the "universal interface" means that, for example, tools need to re-parse code at every stage of the life-cycle to extract whatever meaningful information it needs. In practice it means I can't upgrade to the latest release of my favorite programming language because I need to wait on all my tools to upgrade their parsers. And this is not a theoretic problem, consider the fact that the website that you're probably reading this on was authored in ES2016 JavaScript, parsed and compiled to ES5 and then parsed again and minified and then parsed yet again to finally run in your browser which most likely runs ES2016 (back full-circle). However, we'd like to take a stab at the problem from an angle that we, at Replit, are uniquely situated to do. Our mission is to make programming more accessible, so when we design we focus on the hobbyist and the learner (although a lot of engineers also get a lot of value from our service). This relieves us from the pressure of having to build tools that needs to compete and achieve parity with existing development tools. Our users are open to things that makes it easier for them to learn, play, and share.
Thu, Mar 2, 2017Start Coding with Clojure on Replit
Earlier this week we introduced Haskell support. And now, as promised, we're continuing to add more functional languages. So today we're excited to introduce Clojure. A Lisp dialect that runs on top of the Java Virtual Machine with a focus on immutability. [](preview end) You can give it a try right now at repl.it/languages/clojure. And as always here's a gif of what you can expect: This is built on top of the Clojure's NRepl server so you should be able to get the native behavior you expect from a Clojure REPL. Please let us know if we can make it better.
Mon, Feb 27, 2017Start Coding with Haskell on Replit
We heard your requests for Haskell and today we're excited to finally announce Haskell as yet another language we support. We've decided to put our focus on adding more functional languages, starting with Haskell, so you can expect more very soon.[](preview end) Right now, the Haskell repl has few limitations. In the repl, stdout won't be echoed until your program completes execution, and stdin is completely ignored. So if you want to use something like getLine, it's probably best to put that in the editor. Aside from that, it should behave eactly like ghci. You can give it a try right now at repl.it/languages/haskell. Let us know what you think. And as always here's a gif of what you can expect:
Fri, Jan 27, 2017Enable Assignment Dependencies with Teams for Education
Fundementally, learning is about completing basic material before moving on to more advanced stuff. -- a teacher giving us feedback. At Repl.it we're always open to feedback; and supporting the teachers and students that are using our platform is our top priority. We know that teaching is hard but it's easliy one of the most impactful jobs when done correctly. As mentioned in my post about assignment reordering -- we're making it possible for teachers to enable assignment dependencies which will require students to complete an assignment before moving on to the next one. This is optional but it makes sense to enable if you designed your material to be expereinced in a certain order. Finally, we're always thinking about the best way students learn, that’s why we decided to make locked assignments accessible as read only on the student end. This means: students will be able to read the assignment but won't be able edit or submit. We think by allowing this, students can prepare themselves for upcoming assignments and it would help them to form an idea of what’s coming next.
Mon, Jan 23, 2017Infinite Loops
At Repl.it we aim to make the full power of programming easily accessible for everyone. That's why when we designed our code execution service we decided that we would not timebox users' programs or sessions. [](preview end) This was a great design decision because it allowed people to build complex programs, things like infinite looping animations, and games -- like this fun text-based game: But this also meant you could hit infinite loops. And in most cases this was okay because you can hit stop and we'd kill the program for you. Except this failed in two cases: If the program was sending so much output data to your browser that it was causing it lock up.
Thu, Jan 19, 2017Reorder Assignments with Teams for Education
At Repl.it our mission is to make programming more accessible, and the best way we found to achieve this is to support, you, the teachers on the ground doing working with students. That's why we want to make sure you control the student experience and today we're making it possible to control the assignments order from your classroom dashboard.[](preview end) We're giving you seven different sorting options: Alphabetic (both a-z and z-a), Publish date (both old-new and new-old), Due date (both sooner-later and later-sooner) and finally, Manual where you'll be able to drag and drop assignments in any order. Additionally, we're unifying the teacher’s and the student’s classroom dashboard by allowing you to choose any reordering option. That means both sides will see the same assignments order on their classroom dashboard which avoids any kind of confusion between the teacher and the students. To remove any friction at the students' end we're removing the sorting options in the student dashboard. Students will receive the order that their teacher chose for them; and soon this will allow teachers to add assignment dependencies which will require students to complete their assignment before moving to the next one. And as always, here is a gif of how it looks like:
Fri, Dec 23, 2016Live File Updates
Today we're excited to release a feature which shows any files your program creates directly inside the REPL. And any time that file changes it will be updated live in the editor. This can be anything from a text file to a gif. We also added support for matplotlib in python3 so you can make pretty graphs and watch them update live. Like this: And we don't stop you from rewriting your own source file so you can write a program which modifies itself, like this counting quine.
Fri, Dec 2, 2016Python Package Search
We recently made it possible to import any package from PyPi. However, people who missed the announcement didn't know this was possible. There was also no good way to search and explore packages. That's why today we're excited to introduce a package search widget. You'll be able to search for any python package without leaving the programming environment.
Mon, Nov 28, 2016Introducing Step Debugging for Python
Debug your Python3 programs from your browser At Repl.it, our goal is to make programming more accessible, and as part of this we aim to provide the full power of popular programming environments with no setup time. And I don't think it's an understatement to say that debugging is the majority of what we, as programmers, do. [](preview end) That's why today we're making it possible to step-debug through your Python 3 code right from the browser. We've built a new debug pane that makes it easy step in, out, over, and resume your code. All the common operations a typical debugger would do. To get started:

