程序员又在意淫:开发一个类似 replit.com 的在线编程平台

2021-12-11 11:35:37 +08:00
 constructor

国内有类似产品吗? 为国内用户开发一个怎样? 请大家骂醒我!!!

4385 次点击
所在节点    程序员
19 条回复
4ark
2021-12-11 12:04:05 +08:00
不是,真就什么东西都要搞个国内特供版吗?
makelove
2021-12-11 12:28:58 +08:00
话说国内没有 codepen.io jsfiddle.net 类网站吗?那二个需要很快但国内打开有点慢
Buges
2021-12-11 12:49:12 +08:00
@makelove 合规问题。不需要实名认证就可以发布内容,在国内是不合规的。
kidonng
2021-12-11 13:02:35 +08:00
烧钱烧得过人家吗🐶
yohole
2021-12-11 13:09:03 +08:00
当你以为是技术问题,只需要程序员的时候这一步就已经错了
sudoy
2021-12-11 13:28:33 +08:00
@Buges 说到点子上了,确实是合规问题,不是技术问题
bug123
2021-12-11 14:18:32 +08:00
国内有很多面试平台都有这个功能啊
constructor
2021-12-11 15:09:57 +08:00
我已经醒了
wzy44944
2021-12-11 15:11:47 +08:00
@Buges 应该不是合规问题,是成本和收益的问题
renmu123
2021-12-11 21:31:18 +08:00
很难变现,技术上感觉也是有难点的
constructor
2021-12-11 21:57:46 +08:00
知乎一个回答说用到 LLVM
https://www.zhihu.com/question/20686820/answer/15891597


```
网页中运行代码是如何实现的?
楼主可以看看一个更强大的网站:repl.it

你会发现网页不仅仅可以运行 js ,还有 Python 、Ruby 、Basic 、Lua 、Scheme 等超过 15 种程序语言。其主要的机理是用到神器:LLVM 。 将目标语言转为 LLVM 的实现,再由 LLVM 转为 JavaScript 由浏览器执行。

LLVM (formerly Low Level Virtual Machine) is a compiler infrastructure written in C++; it is designed for compile-time, link-time, run-time, and "idle-time" optimization of programs written in arbitrary programming languages. Originally implemented for C and C++, the language-agnostic design (and the success) of LLVM has since spawned a wide variety of front ends: languages with compilers which use LLVM include Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL, D, and Rust.

直接摘录英文了,中文翻译没办法看。

LLVM 维基: http://en.wikipedia.org/wiki/LLVM

LLVM 官网: http://llvm.org/

Repl.it 中各语言的实现源码: https://github.com/replit
```
israinbow
2021-12-12 03:30:52 +08:00
vscode 网页版下个 code runner 插件迫真实现。
learningman
2021-12-12 12:14:03 +08:00
现在可以 llvm 转 wasm 了,更快兼容性更好
我以前写过 stdio 在 javascript 上的 glue ,显示用 xterm 跑在网页里,效果还行
constructor
2021-12-12 22:09:57 +08:00
Go 、Rust 都有 playground ,是否可以参考它们的思路,在服务端编译运行再把结果返回?
constructor
2021-12-14 16:41:14 +08:00
研究了下 replit 代码执行过程:
1. 点击“执行”则发送 websocket 消息,然后返回执行结果
2. 代码执行是在服务端而不是浏览器
constructor
2021-12-24 09:31:33 +08:00
3. replit 使用 docker 运行
如果#11 属实的话,好奇 replit 为什么放弃 LLVM 转 JavaScript 方式,不知#13 提到的 LLVM 转 wasm 效果如何。
@learningman 比如对于 nodejs ,wasm 能实现服务端 js 所有功能吗?
learningman
2021-12-24 10:00:24 +08:00
@constructor wasm 可以和 js 互操作,但是我记得是不能直接操作 dom
learningman
2021-12-24 10:56:52 +08:00
@constructor #16 哦你说的是服务端,wasm 有 wasi 这样的 runtime ,但是具体能实现多少我还不太清楚
constructor
2021-12-24 18:48:25 +08:00
谢谢,我再仔细看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/821487

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX