Hacker News new | ask | show | jobs
by amasad 2234 days ago
That's awesome -- how did you find that out?
1 comments

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...