Hacker News new | comments | ask | show | jobs | submit login
Repl.it raises $4.5M from A16Z, Paul Graham, and others (repl.it)
424 points by amasad 4 months ago | hide | past | web | favorite | 222 comments



Python, the "second best language for everything", has had a huge impact for teaching people programming. Beginners can do useful and interesting things and solve real problems after a few hours of learning.

And yet the number of times I've seen beginners completely discouraged or even give up programming forever because they have conda and pip and brew and pyenv installed and can't run a basic script after 4 hours of trying because environment mess-up is ridiculous.

The value in a programming environment that literally just works and can give you a functioning web app (the modern very basic I/O) in less than a minute is a huge value add for education.

I'm a complete convert. I've worked with Amasad to write tutorials[0] showing how easy repl is to use and these have become some of my most popular tutorials.

Absolutely incredible that repl.it has done so much in such a short time and with a very small team. All the best for the future!

[0] https://www.codementor.io/garethdwyer/posts


I've been using Python as my go-to language for a while.

It works well and I feel like I understand the basics, but pipenv, pyenv, pip etc. seem needlessly complex. Especially when I'm trying to create a serverless framework package, or upload a zip to AWS Lambda. Never know what tool to use to install packages, or how to specify the python version... or even change the python version on my Mac. Homebrew Python, system python, virtualenv?

Would love it if I could find one simple way to do all of this, but always seem to run into issues and have to use another method.

How do the professionals do it? Do you know if any good guides?


This doesn't answer your questions, but I firmly believe this is the major reason node took off in popularity.

Npm let you install packages minutes after being installed, and they went right into a folder right there, and they didn't conflict with any other packages on your system.

I was like you and played with python for years but never anything larger than small scripts, and every time I went to do "real" python I'd hit a wall where you were.

npm was just so easy, so simple, so fast that it won me over. And it was years before I ever setup a virtualenv, and even then I'm still at this point not entirely sure how it works and what it's doing despite having published a pip package.


On the other hand, as someone who knows a little js from the bad old days but has been doing python for over a decade, trying to get up and running with a modern js environment seems totally cray cray to me.

Usually, for me, I start by installing node. Ok, so I guess I need to install npm now. No problem, I guess that's like pip. Oh, I need yarn. It's better? Ok, I guess python had the same growing pains with easy_install. Oh, looks like when I installed npm I used sudo, so now I need to fix file permissions burried somewhere in my file system. Okay, I guess. At least when I get this running things will be a little better.

Oh, I need bundler? I guess that makes sense. Gotta configure a build system. Programing languages need build systems if you are creating distributable assets. Makes sense so far.

Oh, I guess I should have used webpack. Okay, lessons learned. I guess since I am using ES6 features I need something called babel too. Cute name for a transpiler, btw.

Oh no, I guess that 4 month old tutorial I followed that showed me how to set up babel with webpack used the old plug-in names. They are different now. Thats interesting. Gotta move fast, tho. I guess...

Huh, it still isn't working. The 6 different config files all look right. Oh, wow. Turns out that the behavior is different if I wrote the config files in json vs yaml vs pure js. Guess I gotta rewrite them in pure js to get at the real shit.

Okay, seems like I got all that mess sorted out. Let's add a few libraries to my packages manifest...

Huh, the docker containers are taking an awful long time to build suddenly, I wonder why that -- WHY THE FUCK IS node_modules 7.5GB and contains 82000 files, aghhhhgh?!?!

(I kid, I kid. But not really)

I guess a lot of that is just cultural differences between js and python communities, but as someone who considers themselves a reasonably competent programmer, trying to get onboard just seems like too much.

Contrast that with something like Rust, which I have also been trying to learn. Rust is positively delightful by comparison. I spent a cumulative total of 15 mins getting an environment set up. Which means I get more time to actually learn how to work with the language itself, instead of setting up tooling.

Maybe it will sort itself out a little as the node community matures and settles on what the right way to do things is, but for now, it's so much work to even get started.


Well sure if this is your first time installing programming environment it might seem much. Now compare the same to C++, Java, Python, Go etc. They all have their own set of problems. Rust, well Rust has a good package manager. But I wouldn't go beyond that suggesting it be "beginner-friendly". That's a high mountain to climb even for experienced programmer.

And npm is always installed alongside Node.js which I suggest installing by nvm. I guess this depends a lot on the level of assistance you can get with the installation process. Using sudo is almost always a dumb idea for installing anything.

I admit frontend development with JS/TS is tricky business that I myself also abhor at times. When everything works it's fine but when it doesn't well. I'll be pulling my hair for a while, then trying to Google the issue which often works btw. The one of the biggest perks of a big ecosystem (with many beginner programmers) is that there is plenty of help for almost any problem.

Once you get past your guttural "Node.js/JS sucks because of this and this" I find it to be (with TypeScript) a productive and fairly simple ecosystem. I haven't noticed big of a problem with newbie programmers starting to learn Node.js once you give them good enough tutoring. Webpack is not something you want to introduce them to for a long time (unless necessary) and yeah, it's a pain in the ass.


Seconded. I keep going back to the modern JS world every couple months, because either the job or a side project requires it. And I still can't get used to things.

I still remember my first attempt, years ago. I shopped around for front-end frameworks, and picked Ember, which was in vogue then. I proceeded to create a default "hello world" with ember-cli, only to discover the newly generated project had ~70k files in 150k folders. I bailed out immediately and went back to jQuery.

The situation in Node-land is much improved now, but I'm still uncomfortable with so many moving parts you have there, all constantly changing, which can - and do frequently - break at any moment. And just when I think I finally have things under control, my professional front-end developer friend comes out and says, "no no no, you're doing it wrong; throw out library X and use Y instead, add webpack, and while you're at it, use Yarn, and here you have this config which adds a newest linter...".


This is exactly how I feel every time I try and use some project using React or other project using "modern" JavaScript/Typescript. I have seen the impressive things people have done with this to solve real problems, but really I have found it to be super unapproachable, and I say this as someone that has picked up a fair amount of low and high level langauges. I want to like it, but I get turned away before I have written any code.


Node.JS is good enough to use as is without any compile to JS or frameworks in between. It is very nice to write a server or network tool in JavaScript. If you want to use it as front-end glue you can still stay lean, just use the built-in http module, or npm install SockJS or other websocket module to communicate with the web page, which you also can write without any frameworks or build tools.


The problem with your reasoning: none of this is actually necessary, short of npm, so this is absolute nonsense.

Like, I realize that these "you need so many things!!1!" narratives are popular ways to complain about JS, but if you're adding random junk to your project without a clear reason for it, that's really your responsibility and yours alone.


Nowadays there are usually better tools than the process you describe here. For example if you are making a React application you can start off with the `create-react-app` tool. If you're using Vue then `vue create <appname>` is similar. They will take care of the bundling and providing a modern language environment for you.


true, but if you are doing anything more complex you have to change some of the things or ad others, and you end up on the same path as OP, there is no way around learning all this if you intent to build something for production with JS.

i, as a person that writes backend for 3-4 months and then need to do frontend hate the constant changing.


This is not a criticism, I totally get why you feel that way and it's not your fault.

However, if you or someone else is reading this and thinking, "well, that's just what I'll have to deal with to get started in JS", heck with that crap. There is a huge portion of the community that pushes people in this direction, and you don't need to go in that direction. You should ignore them.

If you're running your code within the browser, then first take a step back and ask yourself if you even need npm or node. Remember, all Node does is give you the ability to run JS code with access to your filesystem/native processes. I hand-code sites all the time, because it's fast. You don't have a build step, you use the built in browser dev tools to debug, and you just hit F5 and see your changes instantly.

You can do TDD from a browser without installing Node. It's pretty easy actually, you don't even need a testing framework. Make a separate page that includes one script with all of your tests. The only big concern is importing headers into multiple files, but remember that you can always just fall back on the Linux commands that you already know:

  rm -r ./public && mkdir ./public && cp -a ./site/. ./public
  find ./public -type f -name '*.html' -exec sed -i '/<!--importheader-->/r ./templates/header.html' {} \;
Of course, this doesn't scale particularly well. But why the heck are you worried about scaling right now? You can add a build step later. You can download Mocha later. Nothing you're doing at this stage will prevent you from making that decision in the future when you're more informed. So why are you worrying about things that aren't problems yet?

Okay, so say you really want to do a build step. You're want to write SASS instead of CSS or something. First, there are command line compilers for SASS that don't require you to install Node or npm. Remember, all that Node does is it gives you the ability to run JS in your native environment. But let's say that really want to use Node for this, or let's say you're explicitly trying to build a Node application.

Install nvm[0]. This will handle setting up node and npm and all of the linking and whatever; especially on systems like Ubuntu, it's just better than using the package manager and linking everything yourself. Do not worry about yarn, it is not appreciably better unless you're working with a massive number of packages. Don't work with a massive number of packages.

If you're here because you just want to write a Node app and not because you're building a build tool, then don't install a build system. You don't need one. Most of the modern ES6 features are available in most modern versions of Node, and you can set a lower limit for what you support if you're planning on mass-distributing what you make. Remember, if this becomes a problem later, you can add Babel then. Transpilation won't require you to rewrite your entire codebase. You don't have to care about this until after it becomes a problem.

When testing or building your code, consider using a low level tool that shows you what's happening, or writing your own. It doesn't even need to be JS. I have, in the past, done bundling by literally just concatenating files together. I have also built HTML template systems in Node that were literally just a file read, a few regex expressions, and then a file write. Ask yourself, "what does this tool actually need to do?" Some of the biggest tools in JS are built on concepts that are actually not all that complicated to understand or replicate.

This seems like a very extreme perspective, but the modern JS ecosystem is based around, "We're going to build a bunch of high-level tools so that nobody has to think about the underlying mechanics of any of this." The problem with that mentality is that the high level tools change all the time, and when they do change, all of the experience you have with the old API is useless. So you end up with a bunch of opinion pieces being written about how everybody needs to switch to this tool or that tool, and new users who have no context to figure out which ones are important.

Tools are important, I like them. I use them. But I only add them when I have need. When I start a new node project, I don't install anything. At most, if I'm doing TDD, I install a very small, minimal testing framework that doesn't come with any special config files or anything. Then later on, I start looking at tools when I have a specific, well-defined problem that I need solved.

What you have to understand is that JS is very flexible, and because your build tools and IDEs and whatever are all written in JS, the temptation is always there to say, "I'm going to build some type of meta-system on top of this other meta-system because I don't like this specific thing." That's not necessarily bad, but it is very hard to avoid that mentality, and it means that large swaths of the online community think that an introduction to testing means, "here's how you install Mocha", and not, "let's learn how test runners actually work." So it's completely understandable why people feel overwhelmed, but the good news is that it's possible to ignore those people and actually just write Javascript, and in the long run doing so will make you a better developer because you'll spend less time trying to figure out what the flavor of the week tool is.

I love the JS community, but I dislike this aspect of it. I wish we spent more time questioning some of the tools we use.

[0]: https://github.com/creationix/nvm


Totally true. I didn't write this as a knock against node at all. I think there is a lot that is great there. I was just describing my experience trying to get a project from an experienced, but opinionated in the sense that they had a set of tools they felt would work best for our project, freelancer up and running so that I could make a few changes to integrate it into our development process. I was just trying to give a counterpoint to the idea that node is somehow easier to get up and running than python.

In fact, I would have a lot of the same opinions about getting a python project started as has been voiced in many of the comments here regarding node. I would say "Don't worry about things like conda, virtualenvwrapper, etc. You just need to create a new venv for each project, activate it, and use pip to install any packages you need"

But I'll acknowledge that sometimes you need to do something a little outside the norm and it starts to make sense to rope in some other tools.


I think that when people like me say, "Node is easy to get up and running", we're coming at it from the perspective of, "well, you don't need to do any of this crazy stuff with Babel or Webpack." It's easy to forget that for the average newcomer just getting started with JS, there is an enormous pressure to start out with something like React+Redux with a special transpilation step that runs through some kind of Grunt config with a niche linter that the tutorial writer decided they were going to promote one day.

So when I talk about Javascript being accessible, I'm talking about this perfect world where you don't have all these people constantly telling you that you're doing it wrong, and where you're coming at it from the perspective of, "a tool should just automate something that I already roughly know how to do and don't want to repeat over and over." I'm thinking about this almost fictional world of Javascript where you can clone a Github project and the ratio of config files to source code is relatively small.

Again, it's not a criticism of anyone who feels overwhelmed or wants to acknowledge that it's a problem, because it is a problem. I just want to take every opportunity I can to point at it and say, "you don't have to do this, the insane setup is a cultural thing, not a tech thing". And that's not to put anyone down who uses those libraries or to make them feel like they're doing it wrong -- it's just to push in the opposite direction of that cultural pressure.


I'll echo this statement as someone who has published packages both to npm as well as pypi. There's no contest, npm is so much simpler as a maintainer. For anyone wondering why, no one should go beyond the confusing requirements.txt and setup.py parity madness. Furthermore, try uploading non-python files to pypi and explain to me why it has to be this difficult? The answer coming swiftly from npm: it doesn't.


I don't think many people here will agree with you but I do. I use Javascript for almost everything I do because "It just works." Assuming you are running Node 6.0+ and NPM 4+ you'll almost never run into an issue unless you are using something that needs some native packages installed.


Or update packages?

NPM land is the only place I really have to be wary about package versions, because otherwise, even when following 6-months old tutorials you'll end up with nothing working due to breaking changes between library versions. And there are just so many dependencies to keep track of...


But the native library issue is what makes it hard for Python as well. A large part of conda existing is to help data science people not have to worry about compiling native libraries for numpy or whatever ML library they happen to be using, since it bundles these libraries.


Along the same line, I think this is also a big part of why Perl was so popular back in the day. CPAN was to Perl what NPM is today. It made finding and installing modules in a local user project directory dead simple which made getting started on a project frictionless.

Though I have to say, CPAN was much better organized and documented...


You can get very far with any python on your system, and just the standard library. Don't bother with pipenv or pyenv. Once you have experience solving problems with the standard library, learn where pip puts things (probably /usr/local/lib/pythonX.Y/site-packages), use "pip freeze" to list current versions of stuff, and keep it tidy. Don't make a big mess, it won't be a mess.

One nifty trick is using the (built-in) subprocess modules to exec some other tool, like rsync or ssh. I recently had sufficient motivation to remove a dependency on the "awscli" package from my deploy system, and implemented an aws api request signing function in about 50 lines of python3.5 using only the standard library. (For bootstrap convenience, my deploy system depends only python3.5 and some standard cli utilities.)

For some non-trivial web services, I use tornado. Running under python3, it depends on nothing else, and can take you very far. (Running under python2.7 it has 4 small dependencies.)


Personally, I do it with docker. I don't bother with venvs, because python is just not designed to be self-contained (or maybe it's a failed implementation of such design). As to lambda - using serverless and this https://github.com/UnitedIncome/serverless-python-requiremen... may help you.


I use pipenv for this. I found it sometimes annoying but generally sufficient. Pyenv and pip both seemed too weak or complex. Pipenv was just simple. I would only write code within my pipenv environment, and then when I deployed the code pipenv would handle package management safely.

Never did anything huge with it though. Just small web apps hosted on pythonanywhere.


Specifying dependencies when you're writing a library is still a mess, because pipenv isn't recommended for libraries. npm works the same way for both apps and libraries.


I saw poetry mentioned a few days ago. Haven't tried it yet but it tries to fix this: https://github.com/sdispater/poetry


Yes, I've uses poetry and it's great. I think it and the pyproject.toml standard will become the solutions to all the problems stated above.


Thanks, I'll give it a try. That's still a mess compared to npm, which is a single tool you can use for app and libs, in constrast with easy_install/setup.py/pip/pipenv/poetry/...


The benefit of Poetry is that it is a single tool for apps and libs, like npm.


You are not alone, python has been one of my two main languages for 7 years and I still am in total accord with you on everything you just said.


I use pyenv - https://github.com/pyenv/pyenv. Allows me to manage multiple versions of python and switch between them. The only pain I have encountered is the pip cache.


I find fades awesome for simple scripting in Python.

https://fades.readthedocs.io/en/stable/


> And yet the number of times I've seen beginners completely discouraged or even give up programming forever because they have conda and pip and brew and pyenv installed and can't run a basic script after 4 hours of trying because environment mess-up is ridiculous.

Beginners? I've been in the industry for a decade and the same applies to me. The Python environment situation is a trainwreck.


I share this feeling. Going to python for the first time as someone that has developed software for 16+ years was incredibly more difficult and time consuming than I would have hoped. I still don't understand how it has become the default go to language for teaching new coders when it has quite unintuitive syntax / packages and setup steps.


> unintuitive syntax

I don't see this often. Could you point out some syntax or concepts that aren't clear, in Python?


> And yet the number of times I've seen beginners completely discouraged or even give up programming forever because they have conda and pip and brew and pyenv installed and can't run a basic script after 4 hours of trying because environment mess-up is ridiculous.

Definitely true. Getting Python to run correctly is not only one of the hardest parts of learning to code, but comes right at the beginning so before people have experienced any success. It's gotten less bad in the last year or so thanks to pipenv, but it's still not a great situation.


> Getting Python to run correctly is not only one of the hardest parts of learning to code, but comes right at the beginning so before people have experienced any success.

This is a surreal statement to read as someone who basically just writes and runs nearly pure Python in a text editor.


> This is a surreal statement to read as someone who basically just writes and runs nearly pure Python in a text editor.

Go help out at meetups for Python beginners and you'll see what I mean.


My company's python backend refuses to deploy on my work laptop, so I don't program in python professionally anymore.


So does pretty much everyone. The problem is with setting up virtual environments and managing packages.


So much more harm than good is done trying to get new users to use virtual environments. Just get them started with straight up python, tell them that the solution to “couldn’t find X” is always just to type pip install X in a terminal and leave them to it. They’ll figure out the rest long before it becomes relevant and they won’t have need for it until long after they figure it out.


This was one of the great things about the ol’ Commodore 64, decades ago: straight from the factory, power on, and a second later, you were in a fully set up BASIC developer environment/REPL. How did things get so complicated?


We think repl.it is the C64 of the cloud era:

>Cloud-computing is one of the most significant paradigm shifts in our industry, yet it remains commandable only by relatively few professionals. It's similar to when, prior to microcomputers, only big corporations and universities had mainframes. We want Repl.it to be the microcomputer to the cloud's mainframe.


I like the goal but find it weird that getting back to the great usability of a system over 30 years old now requires a cloud service and round trips to a server. Why can’t I buy a boot ROM for a PC that drops me to a python prompt after a sub-1-second boot up?


I mean, you can. The reason things are hard is because of external libraries (dependencies) that you might dynamically download and start using. If you don't have that restriction, things get vastly simpler.


That should exist too. Right now doing it in the cloud allows instant sharing and hosting but I hope we can get to a point where we can build something like what you suggest.


Dependency management is the big one, I think.

It’s still pretty easy to run default Python prompt in MacOS (as long as you know what the terminal is). But it gets complex really fast the moment you want to use a cool library. Which is probably a few minutes into your coding tutorial.


Agreed. It's also a tough problem. Before starting Repl.it, I worked on a JavaScript packager at Facebook (which became the Metro Packager).

With Repl.it we're working on what we're calling a "universal package manager", a common abstraction on top of the various language package managers. It also has a visual interface which generates a requirements.txt/package.json/etc for you.

https://repl.it/site/blog/packager


How is this so difficult? I haven't done much since the 2.X days, and I was on Windows, but I used to grab the PyGame installer and have sprites drawing on screen in 15 minutes 15 years ago.


This is where JS shines (we all have browsers). I think dedicating 10 minutes to ensure `docker run --rm -it -v $PWD:/srv python bash` should suffice, without digging into what it does.


As a beginner, I have no idea what docker is.

This is one of the most frustrating parts of learning ANY language. The assumed knowledge and supposed "here's a quick start guide" actually starts on step 8.

Don't assume the beginner knows what docker is.

Don't assume the beginner knows what a shell is.

I've tried to learn 3-4 languages or frameworks over the years, and I have only a vague idea of how to move between directories in the command prompt. Nevermind where I should download or extract files.

I've found people's attitude when I tell them this is dismissive. But I sold a business for 6 figures last year that was parimarily automation scripts in PHP. Figure that one out.


> But I sold a business for 6 figures last year that was parimarily automation scripts in PHP. Figure that one out.

This is something I've tried to tell my teams over the years... There is no direct correlation between technical complexity and business value!

Some problems require complex engineering to be solved, but value and even durability do not come from technical excellence for 99.99% of businesses... Of course as a software developer I prefer to walk pristine halls of cutting edge software with perfect tests but the businesses I've sold/run have numbed me to the idea that fancy code makes the big bucks...


Here's a counterpoint.

It's ok that you don't know what docker is.

It's ok that you don't know what a shell is.

What exactly is the nature of the dismissive attitude from others that has held you back from learning? Perhaps these are real opinions, but consider the source. If they are smarter than they are rude, and their opinions hold value, maybe suck it up and learn something. If it's not worth it to you, ignore them and walk away. Regardless, don't let other people's feelings hold you back from learning. And don't let other people's feelings about you dictate your feelings about yourself.

On the other hand, perhaps these attitudes are partly a projection of your own feelings. Use it as motivation to learn the things that you feel like you should know.


Yeah it's fine not to know what docker is in like a moral sense. But when it comes to wanting to write anything beyond hello world you start running into package and environment and container managers that everyone is arguing with everyone about. I mean hell this thread is like three different recommendations for python that all end with "fuck it use JavaScript".

That shit is discouraging and the annoying thing--coming from some who first wrote a Tetris clone a decade ago--is that it's recent. A decade ago you just downloaded a library and put it in the folder you were writing in. Now while that still probably works library how-tos have all either gotten complicated or assume you've already complicated that shit.


> A decade ago you just downloaded a library and put it in the folder you were writing in.

And you run software by downloading a .zip, unpacking it and executing the program in that folder.

I miss the times when both development and use was that simple. And it was what, like 10 years ago?


Valid point about projecting my own feelings.

I was more trying to make a point that if you're writing a guide or tutorial, actually start from the beginning.


I understand it can be frustrating, but keep in mind your beginning is different from other people's beginnings. It's similar to the problem of telling the story of an historical event. Where do you start? To analyze the root cause of e.g WW1, you'd end up going back to the beginning of recorded history.

Part of learning to learn is learning to keep going through things even when you don't fully understand.


But I sold a business for 6 figures last year that was parimarily automation scripts in PHP. Figure that one out.

I'd be keen to learn more, can I reach out? I'm not really looking for guidance or ideas to do the same, I just genuinely enjoy reading these kinds of stories-like a weird Reader's Digest sort of thing but for entrepreneurs.


I do not assume anything. I'm taking the beginner seat almost daily, in some context or another. But he who shell instruct his children to start with installing docker, rather with installing "python" (which is an ill-defined term) - will have much, much sooner, a class running predictable setup. And, speaking of assuming things - it will keep running even without network connectivity.


10 minutes installing and configuring docker is a good way for beginners to start programming?


No. It's a good way for a programming instructor to start a programming class. And there is nothing to "configure" in docker.


Last time i setup docker for some quick testing i had to:

1. Install docker using Apt or Yum 1a. So for CentOS i had to download and run a script on my machine to add the repository and install. 1b. Setup autostart of the service 1c. Configure my user so i can manage docker without sudo.

Then once its installed: 2a. Lookup the correct flags to use 2b. Find the correct image to run 2c. Learn how to map a local folder for persistence 2d. Learn how to open ports for the program to be accessible.

As a system administrator with 15+ years of experience, this is easy for me. But if I where to ask someone without any system experience to do this, I can for-see a lot of frustrating moments where they would give up.


What would you suggest as an alternative plan for shepherding 10 random dudes and their homegrown laptops into a consistent state of python + pip installed?


Thats the problem I guess, how to standardize something that's not standard and never will be.

Im sure that VMs have been tested and done as well, bringing their own different issues. We could add another layer of abstraction, like some type of orchestration tool, but then that needs to be supported and there will still be issues with the system underneath.

Maybe stat with something like lambda in AWS using their cloud9 instance as an IDE? It will cost a few $ but might help with the basics. However, this would only be good for very limited learning, so maybe add a small sysadmin crash course after that?

So maybe schedule it similar to this:

Basics: 10 days of coding in lambda using dynodb etc.

Systems: 2 days of devops using python to setup and control the environment

Rest of the course ....


They learn how to learn and get their feet wet with reading documentation. First docs to read, follow, and do: The python docs on installing pip and virtualenv


I use it in all my lessons (1st yr degree) coding made simple again.

Wish php was better, it only outputs to the console.

No SQL. :(

No debugger.


PHP is getting better soon!


On Linux it is all quite easy.

On Windows, just install WinPython or Thonny and you are good to go.


Don’t install thonny, it’ll fail in horribly odd ways for a multitude of widely used simple to use libraries. Just go for winpython or anaconda, and use a text-editor or IDE that’s stable.

The last thing you want new users to run into are issues where odd interrelations between your “editor” and the runtime cause problems that google can only find issue descriptions about.


I'm sorry to hear you have had problems with Thonny. Which libraries you had problems with?


I think there is a lot of value in going through the pains of setting up a development environment, writing build scripts, debugging environment issues, etc.

> Beginners can do useful and interesting things and solve real problems after a few hours of learning.

What real problems are beginners actually solving? I literally cannot think of a single one.

Most introductory programming tutorials I've seen start off with very straightforward instructions to setting up a basic environment - and this is actually useful in the long run. vs programming in some special editor abstracted away from the real world.

That being said online repls are useful for writing quick code for e.g. testing something out.


>I think there is a lot of value in going through the pains of setting up a development environment, writing build scripts, debugging environment issues, etc.

There is but not as the first thing you do. Even I still get frustrated with setting up new dev envs for new (to me) languages. I'd much prefer to just try it out first and then figure out the plumbing later.

>What real problems are beginners actually solving? I literally cannot think of a single one.

That's a very elitist take. Firstly they are solving their own very real problem of not knowing how to code. Second they could have a very specific problem they want to solve that can only be solved by code.

>Most introductory programming tutorials I've seen start off with very straightforward instructions to setting up a basic environment - and this is actually useful in the long run.

It's true but what is also true is that there will almost always be version changes and OS specific changes that break the instructions in small but material ways. A beginner will not have the skills or knowledge on how to resolve that.

>That being said online repls are useful for writing quick code for e.g. testing something out.

Isn't that exactly the same problem they are solving for beginners?


> That's a very elitist take. Firstly they are solving their own very real problem of not knowing how to code. Second they could have a very specific problem they want to solve that can only be solved by code.

It's not elitist, it's realistic. You haven't actually mentioned a 'real' problem they are solving through code.

> Isn't that exactly the same problem they are solving for beginners?

Not according to the comment I was responding to.


Out of interest how do you qualify a 'real' problem?

It seems there are very few real problems in the world to solve if we are going to be stringent. Also solving non-real problems can lead to solving real problems (ad industry funding bleeding edge innovation is a good example of this).


> Out of interest how do you qualify a 'real' problem?

I assume it means a problem that needs solving, requires a computer to solve and is not just an exercise.

> Also solving non-real problems can lead to solving real problems

Yes, and there is nothing wrong or useless about solving problems that are not 'real', I was mostly just objecting to the usage of the term 'real problem'.


I really couldn't roll my eyes harder at this. Yes, they're not building a distributed system. But they can do things that make them feel like they're solving problems.


Solving real problems is not the same as doing things that make you feel that you are through your imagination.


Just a fun meta note: I initially authored this blogpost and collaborated on it with my colleagues using repl.it. It's also hosted under https://repl.vc and you can get to the source this way https://repl.vc/__repl

Moreover, lots of people are discovering our jobs (https://repl.it/jobs) page. It's worth noting that it's as part of an ongoing project we're calling repl.run: ship terminal apps as websites. We released it in beta last week and we're already seeing lots of fun apps built with it:

- Text-based rpg game: https://rpg.dtfps.repl.run/

- snake game: https://sssnake.ericqweinstein.repl.run/

- cool interactive terminal animation in ruby: https://key-press-2.theangryepicbanana.repl.run/

- Pure Python Bash Shell: https://ppbs.neocities.org/

- Chatroom: https://chatroom.pyelias.repl.run/

- Our jobs page standalone: https://jerbs.util.repl.run/

More on repl.run: https://repl.it/talk/announcements/BetaExplorers-Announcing-...


Awesome job on the terminal-app-as-webpage concept. I like how it also fits in with your meta "IDE to learn programming" concept.

It made slightly more sense to me when I saw it on context at this URL: https://repl.it/site/jobs


Yeah, the idea is that almost everyone's first computer program is a terminal program along the lines of:

  name = input('What is your name?\n')
  print('Hi, %s.' % name)
(https://name.amasad.repl.run/)

Every programmer has experienced an intense sense of accomplishment when someone uses their program. The problem is that, until today, there was no easy way to share text and terminal-based programs.

The bar to sharing apps shouldn't be GUI as it remains really really hard.


It's really awesome. The first time I saw a web interface like this was on the Mr Robot website (www.whoismrrobot.com). Ironically, it looks like they've updated the site since then with a GUI. But originally it included a DOS-like terminal. It was such a fun page. Really good UX in the sense that it's playful and instantly recognizable with a nostalgic feel to anyone who's ever tried to hack software. I ended up creating my own JS-based console-based interface for a side project, not released yet. It's kind of genius that you guys have an even simpler way for people to launch these.


Thank you!

On Mr. Robot we have a few references to it on the website including this very post. See the last video on the page, zoom in on the top-left corner ;)


the jobs link is interesting. Takes you to a functioning command line but has no other hints or instructions. An interesting gating function: those who don't know how to proceed further (or can't problem-solve sufficiently to find out) aren't likely to succeed in the role and can safely be excluded.

Might also have the added bonus of being safe from headhunter bot scrapers.


I see a shell, I type `ls`. It's how life works.


`pwd` -- "where am i...?"


You are likely to be eaten by a grue.


That's hands down the best job posting ever made by humans, for humans.

But alas

  $ fgrep -r remote open-positions
  open-positions/community-manager.txt:SF (remote OK)


For me, it seems to be stuck at 'Connecting'. If I mash buttons I can get a glimpse of the command line, even see flashes of messages if I enter two-letter commands quick enough. Is this a bug or part of the test?


Do you have any browser extensions running? It's possible one of them is causing some problems with their IDE.


Hmm, weird. What browser/OS? Also any errors in the JS console?


ublock origin causes it to timeout with 2 caught scripts, disabling it makes it work FYI.


Same issue. iOS w/ Safari & Chrome


xD

link: https://repl.it/site/jobs

it's built with repl.it too: https://repl.it/@util/jerbs


I tried

  rm -rf --no-preserve-root /
It didn't work :(


Homestar Runner reference?


Or South Park. "They're taking our jerbs!"


thats the most fun I've had with a jobs page ever!


Interesting indeed. Definitely weeds out applicants who are not familiar with the command line.


I know it's a brave new world, but there isn't a single working developer that isn't at least aware of the command line, right?


There are lots of developers that have a build system with ide etc set up for them and never touch the CLI for years. Think iOS and .net


I'd say "aware" and "familiar with" are two totally different groups. And while I'd agree that "aware" seems like it'd approach 100% of the general programmer pop., from my experience "familiar with" is a surprisingly and saddeningly lower than 100% percentage.


It also weeds out people who don't have time for "cute" little games like that.


Sounds like it might also be their way of weeding out people who aren't going to be a culture fit.


It takes literally 10 seconds to run `ls -la` and `cat` some files to get the information. If that's a problem for an applicant, it's a good exclusion to the funnel.


Like sibling says, on mobile it's a pain. In general, when I look at a job posting, I just want to skim it. I don't want to interact with the webpage in any other way than "reading".

I get it, this is clever. It supposedly weeds out poor applicants. But speaking for myself it just strikes me as annoying.


Do people really apply for jobs on mobile? If I came across it on mobile, I'd just go, oh okay, and read it later on my laptop or desktop.

I'm an admitted anti-mobile person though. I am exceptionally skeptical that the mobile revolution will adequately replace the keyboard/mouse combination for high productivity tasks, and don't wish to see design move entirely in that direction.


No, but I do a lot of reading on mobile.

If I came across it on mobile, how would I even know if I wanted to read it later?


I tried opening this on mobile and it was a horrible experience.

We don't use clis during every day life for a reason.


> We don't use clis during every day life for a reason.

Most developers do?


Actually, grepping necessary information from the files is more efficient than reading a bloated web page from job site with infinite scrolling where your Ctrl + F is not working.


To be honest it didn't really take more than a few seconds to get the relevant information. So time really isn't the limiting factor here..


It's not supposed to be. It's like proving you can write a hello world. program.


But it's literally

`cat open-positions/devtools-frontend-engineer.txt`

I also hate games, but this is literally obvious. I spent 3 seconds tab autocompleting the file.


It's not really a game..


The jobs link is fun but seems very slow/laggy on my end.


A lot of the text is overlapping for me on mobile.


I'm disappointed that now you need to sign up on www.repl.it rather than just spinning up a test environment, definitely cuts down on usage. I've found a workaround with www.http://repl.it/languages/python3 for example, but I'm not sure how long this will still be active given their plans to become a full-fledged IDE.


We have no plans and I see no reason to make you have to sign up. (Although to cut down on abuse some things aren't available for anonymous users like long-term web hosting).

You can also go to repl.it/languages and see all the langauges.

As for our plans to become an IDE: we've given ourselves the hard task of being a REPL-first IDE and to always load in under 2 seconds. More here: https://repl.it/blog/platform

For the landing page: we've found that most people coming through there go through the signup/login flow anyways so we've emphasized that. You can still get to the languages in the footer.


> we've found that most people coming through there go through the signup/login flow anyways

This baffles me. Why? Don't people just want to mash something into a REPL quickly (step in between: write the first one or two letters of the language you want to use and press enter)? That's certainly how I use it ...


Oh most people will google "repl.it ruby" and get to that directly.

We also just discussed this and we're adding a language selector on the homepage.


Congrats on the fundraising and the momentum Amjad!


Thank you!


You can always use Repl.it as anon, we found out that many people lose their work and forget to create accounts. If you create an account you'll always be logged in and it won't cut down on usage IMO. Happy to hear your thoughts.


I think it has always been like that, if you scroll to the bottom you can click on what environment you want to load. Been like that awhile I think.


Before you got the drop down on the front page that you now see on repl.it/languages. I admit I didn't look too hard at the list of languages that are there now, but just that one change to sign up instead of dive into the repl was a little annoying.


Reminds me of the IMHO under-appreciated https://glitch.com, but for more languages.


Indeed. Online coding is a fun space to be in right now (although we've been around for a while so it's cool to see it start to take off). However, a few things that make Repl.it unique:

1. A REPL-first environment. We believe when hackers start coding they generally start sketching things out and a fast iteration loop makes it easy to make progress. That's why Repl.it starts out as a REPL. This also makes it less intimidating and more useful for newbies. Everyone's first program is a text-based program as GUI is really hard to get started with.

2. We're building a generic toolchain that could be decomposed and used in different ways. We built a highly dynamic IDE[0], and a super fast container orchestration system that works as both a development environment and a hosting platform[1]. We're starting to explore what that means by building plugins to other editors and making it available on the cli[2].

3. Repl.it's has an awesome community of hackers collaborating, helping, and building stuff for each other. We have a Hackernews-like forum where people can share their creations, ask questions, or teach others and, it's creating an awesome positive-feedback loop in the community[3].

[0]: https://repl.it/blog/ide

[1]: https://repl.it/blog/deploy

[2]: https://github.com/replit/repl.sh

[3]: https://repl.it/talk



Where will this succeed where countless others failed? Just timing of the market? Were the others too early?

This is Koding.com with a new interface.

They also gave away a lot of free resources, then tried to monetize, failed. What will this company do different?


I'm so excited for the team at Repl.it! A million users in the last month is phenomenal, and evidence of a great product. Congratulations!

Ps. I love your /jobs.


Thanks, we wanted to make sure our /jobs presented our key values, as some would say ;) ;)


I am a long time user of repl.it and I think it's great but I do wonder what the expected ROI is here? Call me short sighted, but It's still just a repl. Perhaps it could be sold to GitHub to integrate with Gist?


Towards the end of the post there's a bit about our business.

As we've noticed that more people want to use repl.it for more things: from building websites and apps (250,000 in 6 months) to data science[0] and education, with a growing community of hackers[1] it's becoming a generic computing platform. The fact that the REPL is the main interface is besides the point. We're going to productize our infrastructure that runs all this.

After all, Microsoft started as a Basic interpreter for the Altair[2] ;)

[0]: https://towardsdatascience.com/build-deploy-data-science-pro...

[1]: https://repl.it/talk

[2]: http://www.paulgraham.com/altair.html


Since you've been using this for a while, maybe you can educate me on the benefit of this over a shell or IDE on my local system? I don't quite get it.


We've occasionally used it when discussing Python X vs Python Y behaviours across separate machines (I don't have 3.6 installed but 3.7, a coworker has 3.6 but no 3.7) and are the kind of questions you just want to quickly check, not create a new virtual environment (under Homebrew on Mac, good luck having 3.6 _and_ 3.7 if you regularly `brew cleanup`...) or spin a docker instance. The coworker also regularly tries Scala stuff there (he's had to code review some simple things to start getting familiar with the language), he seems to like it more than the normal Scala repl (which I use).

It's also handy for funny little languages you may not have (the APL version it has is decent enough, for instance, although I prefer GNU, as the free one)


pyenv is a good solution for managing multiple Python version installations.


Yes, but this is better for quickly trying something.


Definitely agreed on that.


Thanks, I had assumed it would have issues with 3.6 binary not svailable. Will try sgain (although my plan is get everybody using 3.7...)


Also, on an ordinary local repl, I'm never going to have to suffer through watching ads... which is where I see this sort of thing headed.


I can quickly run some code on my daughter's Chrome book. I like having that option.


I use it whenever I don't have a local shell available.

For example, when using an iPhone or iPad, or if I need to test something real quick in language X and I don't have X installed on the machine.


they will evolve/pivot to a "big data notebook" and monetize on this.


I have been using repl.it as my go-to playground to write small scripts to check how a particular implementation would look like. However, IMHO the new Repl.it concept looks astonishingly similar to cloud 9! Is it also going to be bought off by some giant corporation and then start asking money for playground ?! :(


This seems like a solid product and I will definitely keep it in mind. One thing that I really like is the number of languages you support (https://repl.it/languages). I would recommend adding support for Elixir and Phoenix down the road. While the community is small (compared to other languages/frameworks), it is growing, and the community is great.

Congrats on securing your funding and all the best!


Definitely on the roadmap. We're working on making it easy to add languages by creating common abstractions. As a start we just open-sourced Prybar: "a universal interpreter front-end" https://github.com/replit/prybar


congrats amjad! I think I was one of your first interviewing candidates (didn't get the job) but I'm missing my favorite programming languages (Julia, Elixir) on repl.it!! Hope they show up soon.


Thanks for your support, we're growing the community slowly, just like we grew our languages on Repl.it. Support for more and more languages is on our roadmap and we are building the technology for it.


Hey, please add FreePascal and Lazbuild (command line Lazarus compilation).


Congratulations Amjad! It's inspiring to see repl.it grow, very happy to see them investing in growth


Thanks, Max! Likewise on Spectrum, I'm seeing it everywhere these days.


    jobs@repl.it:~$ cat tech
    #!/usr/bin/env bash

    echo -e "$(cat pages/our-tech.txt)"jobs@repl.it:~$ ./tech
    ...
    As for our infrastructure, we're building a new kind
    of computing platform: it's Serverless in that users
    don't have to care about the underlying resources,
    but it's not Serverless in that it's stateful.
    ...
So... hosted smalltalk/pharo/squeak? =P


I'm sold -- hadn't seen it before but I was able to run python and install a bunch of packages quickly without issue. I can see this being big.


Happy to have you with us! we share the same dream and imagination


awesome!


In light of the recent post https://news.ycombinator.com/item?id=18269007 about LP funding sources, is there any insight into the sources of where the money from this round is coming from?


Funny to see PG listed as "Paul Graham, founder of Viaweb" and not "Paul Graham, founder of Y Combinator" :-)


Tongue-in-cheek :-P but I do think that Viaweb is relevant here: their original business model (it was called Webgen) was to let people host their sites with them. They were also the first to figure out "cloud" where they ran their customers generated code on their infrastructure.

I believe after building Viaweb, PG had a similar idea of an IDE + language + infrastructure to allow people to build and ship applications from the browser.


So, they basically invented Software As A Service? Relevant indeed.


Here is a (recent) very interesting interview with PG, among others, talking about Viaweb. Bonus points: very funny.

https://www.youtube.com/watch?v=4WO5kJChg3w


I believe the example he gave about "doing a naughty thing" was referencing our idea of terminal-apps-as-webpages: https://repl.it/jobs for an example


Real happy for the them, I've using them for so long, probably since they started. Amazing service.


Thanks! and we're happy to be there for everyone who has been using repl.it <3 Do you have a repl.it shirt?


Nope.


if you're interested in having one I can send you a repl tee, my email is haya@repl.it


As a trainer (among other roles) I have an interest in such online browser-based programming sites and have tracked some over time, and blogged about them, including repl.it. In no particular order:

Codingbat, Progress Graphs and Michael Jordan:

https://jugad2.blogspot.com/2013/02/codingbat-progress-graph...

Online Python Tutor looks quite interesting:

https://jugad2.blogspot.com/2013/03/online-python-tutor-look...

Online turtle graphics in Python from Runestone Interactive:

https://jugad2.blogspot.com/2013/02/online-turtle-graphics-i...

glot.io, an open source pastebin with runnable snippets:

https://jugad2.blogspot.com/2017/04/glotio-open-source-paste...

repl.it, online REPL for many languages, and empythoned:

https://jugad2.blogspot.com/2013/03/replit-online-repl-for-m...

And while I'm at it, a plug for my Python and other training courses (page updated recently):

https://jugad2.blogspot.com/p/training.html


You should check out https://coder.com as well


Thanks for the tip, I will.


Someone really needs to figure a reasonable way of writing code on mobile/touchscreen. I would love a lisp drag and drop repl, I feel like its syntax could be well suited for this


Yes! We're happy to fund some of that work if someone is interested in working on it email me amjad@repl.it


How does it differ from sites like https://stackblitz.com/ other than supported languages?



I guess it's memories week...

Once upon a time C++ was the newest, shinyist thing to be seen. A lot of companies jumped in with libraries and spiffy tools. Then they discovered users wanted support and while that was easy at first, then they had to deal with new clueless users and experienced, sophisticated users, and there was no money in supporting everyone.

Rational was, I think, the last one standing.


Great tool, my 11 year old's class is using it to learn programming.

Might want to spell check the announcement, e.g. "oppurtinity"


oops, thanks!


> What's in progress: Multiplayer REPLs: text collaboration is easy but imagine collaborating with others on the same container, same filesystem, same interpreter process!

Heh, that's what I did when I built https://cocalc.com...


I gave this a look but the version of Rust is 1.9 from May 2016... There's been 20 releases (excluding patch releases) since then. For a language with such great backwards compatibility seems like it should be kept more up to date.


Why did you raise money? How will you make money?

Is there a similar service that’s not involved with VC?


I'm a technical trainer and repl.it has been a godsend. Just this past summer I was running a Python course and due to company policy, I couldn't get my students to download some libs.

Spun up repl.it, did our pip commands, and off we were.


Awesome! I'm not sure if you saw but we now have a visual package manager that automatically generates requirements.txt for you: https://repl.it/talk/announcements/Announcing-Universal-Pack...


What are the pros/come versus using a mature online editor such as Cloud9, that supports direct terminal access to the backend instance and FTP/SFTP support? Though I will admit I was disappointed when AWS acquired Cloud9.


Good question. Repl.it is all about instantness, you should be able to get a REPL really fast[0]. If you want to host a webserver you should be able to do it quickly from the same interface[1], if you want to share your work then that should also be possible[2]. You could code and ship a small webserver on Repl.it faster than you can sign up for Cloud9.

Repl.it is also what's no called "Serverless" in that it's logically always available and you don't have to worry about the underlying resources. We're not doing because we wanted to ride a fad, we've always done it this way, we think that's the future of computing.

When we build Repl.it we always think what's a "web native" way to do online coding. We think it's a) instant! b) social c) simple yet powerful.

The previous generation of online IDEs -- C9, Nitrous, Koding -- were awesome, yet most pivoted or shutdown. It's good to ask why that is? We think it might be that they were not "web native."


> The previous generation of online IDEs -- C9, Nitrous, Koding -- were awesome, yet most pivoted or shutdown. It's good to ask why that is? We think it might be that they were not "web native."

Maybe it's because giving away cloud services for free is not a sustainable business model.


All of those companies charged for their product and had enterprise plans ;)


Sure, but no one used them -- just like Repl.it, pretty much all of their monthly active users were only there for the free plan, and they left as soon as the companies tried to monetize.

Koding, in particular, went through pretty much exactly the same cycle as Repl.it a few years ago. They started out getting tons of users by giving cloud servers away for free, targeted mainly at children/education market. Then they started selling premium plans for beefier servers, but no one bought them. Then, they tried to become a cloud infrastructure company[1] and created a distributed filesystem product[2], which seems to be exactly your plan as well!

As it turns out, the educational users were only there because going on a free website is easier than installing Python on your computer, so when Koding started trying to charge for stuff, no one bought it.

[1]: https://blog.koding.com/koding-is-not-an-online-ide-e2693f74... [2]: https://www.koding.com/docs/kd


1. We've been arond longer than most in this space (since 2011)

2. We've been profitable and bootstrapping for a long time. We have paying users like Facebook, Google, and Stripe, Hackreactor, HCT (biggest college in the UAE) and so many more: https://repl.it/pricing

3. We're probably like 5-10x Koding users base.

4. You keep creating accounts to spread misinformation. Go find something better to do.


1. Koding was launched in January 2012.

2. https://news.ycombinator.com/item?id=18278979 seems to say you aren't profitable at the moment

3. In other words, you're giving away like 5-10x the amount of free servers Koding did. If burning money didn't work for them then how would burning it five times faster help you? Are you trying to make it up in volume or something?

4. Alright, just for you I'll stop using throwaway usernames. i don't post on HN super often and I usually forget my password, so I usually just make a new account whenever I want to post something. (fyi this is only my fourth post in this thread)

Look I like Repl.it and have used it in the past. You did a good job making the interface work well. I just don't see how free cloud computers can be sustainable as a business in the long term.


> 3. In other words, you're giving away like 5-10x the amount of free servers Koding did. If burning money didn't work for them, then how would burning it five times faster help you? Are you trying to make it up in volume or something?

In Sep we spent $15k for all of our infrastructure cost and we made all of it back and then some with subscriptions. It's serverless, we only spend resources when people actually execute code (most of the time they're just typing the code) or when servers are responding to traffic (most of the time they're idle). Unlike C9/Koding/etc which were all VMs :-)


Thanks for the reply and transparency. I am actually a little surprised and refreshed that you were able to post infrastructure costs ($15k in Sept). I'm assuming this is on AWS Lambda?

> Then they started selling premium plans for beefier servers, but no one bought them..

I still think this has validity, especially with high-tech products that have a free plan. How do you know how big the business can grow in terms of revenue when the vast majority of your users are free? In my experience developers are a VERY hard crowd to get to pay for things while being enthusiastic early adopters.


> I'm assuming this is on AWS Lambda?

No we built our own. I started working on it in 2015 before much of the seeverless hype.

> How do you know how big the business can grow in terms of revenue when the vast majority of your users are free?

You don't. You have some plan and some people back you knowing that you're probably wrong about part or all of it. If you're careful and don't balloon the company (we're 6 people and hire very very slow) and get to default alive then you can have a near infinite runway to figure it out.

One rule of thumb is that if your developers are making money using your tools then they're more likely to pay. We all know devtools is a tough space but we're very driven, ambitious, yet conservative at the same time. Take every opportunity to cut burn and make revenue.


while I agree with your analysis, why the throwaway accounts? It seems a bit suspicious.


I personally see repl.it less as a replacement for a development environment (c9's aim) and more as a quick way to deploy, run, and illustrate a piece of code. It is perfect for school assignments, running quick trials, and general explatory-esque learning.


It sure would be neat if they supported Common Lisp & TCL too …


out of curiosity, how is this different from meteorjs https://www.meteor.com/ ?


Meteor is a framework for building web applications on top of Node. repl.it is more like an editor/IDE.


This is a great product with several business possibilities:

- IDE to Production -> all in cloud, always reproducible everywhere

- Pre-in-person-interview testing

- B2B IDE supplier to GitHub, GitLab etc

- Online interviews

- Collaborative developments

- Hackathons

- MOOCs


Congrats to the team!


Neat idea. You guys should look at ceph for the backend file store.


Oh cool -- I'll take a look. Storage is definitely our biggest challenge going forward.


Great news! It's an awesome product. Congrats Repl.it!


Is the jobs site working? Mine says connecting (loading)


Seems to be having trouble with adblock. Try it in incognito or something. We're looking into it now


Does it support Scala? Or I didn't see it?


I love how a seed round today is $4.5M...


Honestly, we think of it as an A. We're planning to get (back) to profitability on it ;)


WoW, such products can raise money.


any plans to bring back the code execution as an API?


Repl.it's current business model appears to be giving cloud services away for free, attracting lots of users, and using their high user counts to get more venture capital funding to spend on giving away cloud services for free.

Am I missing something, or is this basically the programming equivalent to MoviePass? Surely as soon as they start trying to be profitable, people will find some other startup to give them cloud services for free.

See, e.g., Koding, who went through this exact cycle a few years ago: they started out getting tons of users by giving away cloud servers for free so people could learn programming, then they tried to monetize by building out IDE features and cloud filesystems and orchestration, and pretty much no one bought them.


I see you keep creating throwaways to spread misinformation. I answered you elsewhere but here we go again: we've been bootstrapped and profitable for a while before we got funding and we still make lots of money. We grow our MRR from classroom and hacker plan more than 5% monthly: https://repl.it/pricing

Go find something better to do.


I agree with you, but suggest you lose the personal attacks. Not a good look


If you check the timestamps, I actually posted this before writing my reply to you elsewhere in this thread, but the post was killed immediately. Maybe HN has a naughty word filter banning people from mentioning MoviePass in threads about YCombinator startups.

Dunno why it came back, guess some other users thought it was informative enough to vouch for.


Why are you constantly creating new throwaway accounts? Just... don't do that.


This is awesome I hope they invest some of that into rebranding as I do believe Repl.it is probably the worst name for anything. It almost sounds like a nefarious file format or like some software company for the early 90s; maybe that’s the vibe they’re going for. Even the word Replit looks like “reptile”. I guess it’s very developer-y it’s just grammatically grating on the nerves.


For what it's worth, I found them by googling "online c# repl", so having repl in the name is pretty strong for people with my use case.


I think it's perfect. Obviously the customer base is never going to expand beyond programmers who already know what REPL stands for, and the full name is a homonym for "replete" which is aspirational for a tool that aims to grow into a more fully-featured service.


Good one. Also, like "repleat". As in, refactor your code - online :)


Oh that's a cool thought thank you!


You’re quite welcome. Best of luck with the startup.


On the other hand, the name creates a pretty clear picture of the service to its audience.

If you start looking at demographics outside the audience to qualify the name, then you'll probably end up with an abstract-but-brandable name that communicates less which seems like a regression.


The 90's were great for independent software vendors and we'd want to bring that aspect of it back so it works out perfectly ;)


I do dig that 90s vibe, Dropbox’s current marketing campaign kinda doing something similar


Their name is honestly fine - it's memorable, has a good domain, and is super, super search-friendly.

Also, personally, it reminds me of "replete" more than "reptile", but that's neither here nor there.


I think it's a good name. Reminds me of Reddit, which is not a bad thing.


I know people who prefer reptiles to icky furred animals. Just cuz you are reptilist doesn't mean everyone is.




Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: