Hacker News new | ask | show | jobs
by capocannoniere 2235 days ago
PG tweet for context: https://twitter.com/paulg/status/1256526589300441093

> I wrote this yesterday as an example for my kids.

> A lot of people learned how to make web pages using view->source. Replit is view->source for code, plus a server you can run a copy on. A generation of kids will learn to program from it.

3 comments

> A generation of kids will learn to program from it.

Undergraduates at mid-tier schools are already using it nearly exclusively for their lower-level coursework. And mainly by word-of-mouth. While I've seen all the students using it to essentially do code reviews, I haven't seen any professors mention it to their classes.

That's awesome -- how did you find that out?
Not an exhaustive survey by any means, but I'm currently getting my second bachelors, in computer science from a city university. We have some Discord servers with CS students from a variety of schools, and repl.it seems to be a primary resource for everyone. You may be able to get more reliable statistics by determining location of users with repl's named "HW", "Assignment", "Lecture", "Exam", or common course prefixes like COSC, CSE, etc. ('CS', and 'Quiz' might not be as reliable for isolating academics).

It would be useful to have private repl's for students, as it's a technically a looming academic integrity issue to have most student's repl's public[0]. I understand this is potentially a breaking change for your freemium model, but there's a bit of a time bomb waiting there. Whether it's a tempest in a teapot or a "real" problem, and for whom, is debatable.

For my coursework, all C++ code must be complied with a .replit file containing:

> run = "g++ main.cpp -Wall -Wextra -std=c++11 -o a.out && ./a.out"

> language = "c++"

This is because everything is "turned in" on ZyBooks, which uses these options.

It's very, very cool that you let us change the compiler+options using either a .replit file or directly compile and run from the repl.run command line. However, most of my peers never discovered that the repl.run command line was interactive -- and certainly didn't find the .replit file feature. As a result, some moved away from repl.it mid-semester (generally migrating permanently to CLion) because clang "fixes" too many errors for them and things would "work" on repl.it but not on ZyBooks where it matters. For this reason I think there's potentially some use in putting a compiler/compile option inside each repl's side navbar's setting button menu. If this doesn't seem appropriate (for example because repl's in many language don't need to change compiler/options), then I'd recommend at least putting a link there to an explanation on .replit files for better discoverability.

Speaking of ZyBooks, I think the Repl.it company could compete well in the educational space. In particular, I think OpenStax would be a good organization to get in touch with, depending on how it fits your financial model / philosophy. Most broadly though I find there is an incredible lack of rigorous application of the _science of teaching_ in online learning solutions, dating back to Khan Academy and affecting every online learning platform since. Here's an example of what I'm talking about [1]. The linked video is somewhat long/boring and very low production quality --- but I hope the concepts in the content stick with anyone who works in edu-tech. I'm often very surprised that given the budgets of companies like Khan Academy, Udacity, etc that I don't see strong evidence they used a small portion of the money to consult with an expert who specializes in techniques and science of teaching.

Lastly, (at least as of 8 weeks ago) when the repl.run console is broken out into a separate window (great for multi-monitor displays!), it did not display segfault error messages in the break-out console. This happens with any red-colored text in the repl.run window - it displays in the primary editing window's console, but does not display in the broken out standalone repl.run console window. It was very difficult to determine why my code wasn't outputting anything after a certain point, but also was not throwing any errors :)

For example:

int main(void)

{

    main();

    return 0;
}

Case A: Using g++ via .replit in main window (same .replit file as shown above in this post) ('exit status 139' is printed in red):

> g++ main.cpp -Wall -Wextra -std=c++11 -o a.out && ./a.out

Segmentation fault (core dumped)

exit status 139

>

Case B: Same setup as Case A, but reviewing output shown in the repl.run break-out tab/window: (there is no red 'exit status 139' output)

> Segmentation fault (core dumped)

Case C: Using g++ directly in repl.run console in main window (also no 'exit status 139'):

> g++ main.cpp -Wall -Wextra -std=c++11 -o a.out && ./a.out

Segmentation fault (core dumped)

>

Case D: Using clang in main window ('exited, segmentation fault' appears in red text):

> clang++-7 -pthread -std=c++17 -o main main.cpp

> ./main

exited, segmentation fault

>

Case E: Using clang in repl.run breakout tab/window ('exited, segmentation fault' does not appear at all, in fact nothing appears):

>

Lastly, I'm sure this is asking for the moon, but eventually it would be incredible to have debugging tools in the development environment (step through, current values of variables, and maybe memory inspection) - this applies to nearly every language you currently support. More specifically to C++, some people may also enjoy having features similar to those found at https://godbolt.org/ although I'd imagine that's a very niche group of people at the moment. You're serving a very wide audience as it is.

My classmates are extremely impressed with the quality of repl.it - the deep feature set does not seem to have compromised usability at all. My classmates are also very impressed with your 'careers' page, I would keep that up for engineering roles as you grow, if not necessarily also for non-technical administrative roles.

0: https://www.google.com/search?q=site%3Arepl.it+COSC

1: https://www.youtube.com/watch?time_continue=15&v=hC0MV843_Ng...

I prefer https://glitch.com for this type of thing, because it works so well for kids. I love how people on it can ask each other for help in real time. Its a great site and community
Replit sounds awesome, especially once you put it this way ("view-> source for code, plus a server"). Kudos to the team.