程序员又在意淫:开发一个类似 replit.com 的在线编程平台 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
constructor
V2EX    程序员

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

  •  
  •   constructor 2021-12-11 11:35:37 +08:00 5306 次点击
    这是一个创建于 1400 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    编码

    19 条回复    2021-12-24 18:48:25 +08:00
    4ark
        1
    4ark  
       2021-12-11 12:04:05 +08:00 via iPhone
    不是,真就什么东西都要搞个国内特供版吗?
    makelove
        2
    makelove  
       2021-12-11 12:28:58 +08:00
    话说国内没有 codepen.io jsfiddle.net 类网站吗?那二个需要很快但国内打开有点慢
    Buges
        3
    Buges  
       2021-12-11 12:49:12 +08:00 via Android
    @makelove 合规问题。不需要实名认证就可以发布内容,在国内是不合规的。
    kidonng
        4
    kidonng  
       2021-12-11 13:02:35 +08:00 via Android
    烧钱烧得过人家吗
    yohole
        5
    yohole  
       2021-12-11 13:09:03 +08:00 via iPhone
    当你以为是技术问题,只需要程序员的时候这一步就已经错了
    sudoy
        6
    sudoy  
       2021-12-11 13:28:33 +08:00
    @Buges 说到点子上了,确实是合规问题,不是技术问题
        7
    bug123  
       2021-12-11 14:18:32 +08:00
    国内有很多面试平台都有这个功能啊
    constructor
        8
    constructor  
    OP
       2021-12-11 15:09:57 +08:00
    我已经醒了
    wzy44944
        9
    wzy44944  
       2021-12-11 15:11:47 +08:00
    @Buges 应该不是合规问题,是成本和收益的问题
    renmu123
        10
    renmu123  
       2021-12-11 21:31:18 +08:00 via Android
    很难变现,技术上感觉也是有难点的
    constructor
        11
    constructor  
    OP
       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
        12
    israinbow  
       2021-12-12 03:30:52 +08:00 via Android
    vscode 网页版下个 code runner 插件迫真实现。
    learningman
        13
    learningman  
       2021-12-12 12:14:03 +08:00
    现在可以 llvm 转 wasm 了,更快兼容性更好
    我以前写过 stdio 在 Javascript 上的 glue ,显示用 xterm 跑在网页里,效果还行
    constructor
        14
    constructor  
    OP
       2021-12-12 22:09:57 +08:00
    Go 、Rust 都有 playground ,是否可以参考它们的思路,在服务端编译运行再把结果返回?
    constructor
        15
    constructor  
    OP
       2021-12-14 16:41:14 +08:00
    研究了下 replit 代码执行过程:
    1. 点击“执行”则发送 websocket 消息,然后返回执行结果
    2. 代码执行是在服务端而不是浏览器
    constructor
        16
    constructor  
    OP
       2021-12-24 09:31:33 +08:00
    3. replit 使用 docker 运行
    如果#11 属实的话,好奇 replit 为什么放弃 LLVM 转 Javascript 方式,不知#13 提到的 LLVM 转 wasm 效果如何。
    @learningman 比如对于 nodejs ,wasm 能实现服务端 js 所有功能吗?
    learningman
        17
    learningman  
       2021-12-24 10:00:24 +08:00 via Android
    @constructor wasm 可以和 js 互操作,但是我记得是不能直接操作 dom
    learningman
        18
    learningman  
       2021-12-24 10:56:52 +08:00
    @constructor #16 哦你说的是服务端,wasm 有 wasi 这样的 runtime ,但是具体能实现多少我还不太清楚
    constructor
        19
    constructor  
    OP
       2021-12-24 18:48:25 +08:00
    谢谢,我再仔细看看
    关于    帮助文档     自助推广系统     博客     API     FAQ     Solana     2191 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 00:49 PVG 08:49 LAX 17:49 JFK 20:49
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86