程序员又在意淫:开发一个类似 replit.com 的在线编程平台 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
constructor

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

  •  
  •   constructor Dec 11, 2021 5712 views
    This topic created in 1601 days ago, the information mentioned may be changed or developed.

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

    编码

    19 replies    2021-12-24 18:48:25 +08:00
    4ark
        1
    4ark  
       Dec 11, 2021 via iPhone
    不是,真就什么东西都要搞个国内特供版吗?
    makelove
        2
    makelove  
       Dec 11, 2021
    话说国内没有 codepen.io jsfiddle.net 类网站吗?那二个需要很快但国内打开有点慢
    Buges
        3
    Buges  
       Dec 11, 2021 via Android
    @makelove 合规问题。不需要实名认证就可以发布内容,在国内是不合规的。
    kidonng
        4
    kidonng  
       Dec 11, 2021 via Android
    烧钱烧得过人家吗
    yohole
        5
    yohole  
       Dec 11, 2021 via iPhone
    当你以为是技术问题,只需要程序员的时候这一步就已经错了
    sudoy
        6
    sudoy  
       Dec 11, 2021
    @Buges 说到点子上了,确实是合规问题,不是技术问题
    bug123
        7
    bug123  
       Dec 11, 2021
    国内有很多面试平台都有这个功能啊
    constructor
        8
    constructor  
    OP
       Dec 11, 2021
    我已经醒了
    wzy44944
        9
    wzy44944  
       Dec 11, 2021
    @Buges 应该不是合规问题,是成本和收益的问题
    renmu123
        10
    renmu123  
       Dec 11, 2021 via Android
    很难变现,技术上感觉也是有难点的
    constructor
        11
    constructor  
    OP
       Dec 11, 2021
    知乎一个回答说用到 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  
       Dec 12, 2021 via Android
    vscode 网页版下个 code runner 插件迫真实现。
    learningman
        13
    learningman  
       Dec 12, 2021
    现在可以 llvm 转 wasm 了,更快兼容性更好
    我以前写过 stdio 在 Javascript 上的 glue ,显示用 xterm 跑在网页里,效果还行
    constructor
        14
    constructor  
    OP
       Dec 12, 2021
    Go 、Rust 都有 playground ,是否可以参考它们的思路,在服务端编译运行再把结果返回?
    constructor
        15
    constructor  
    OP
       Dec 14, 2021
    研究了下 replit 代码执行过程:
    1. 点击“执行”则发送 websocket 消息,然后返回执行结果
    2. 代码执行是在服务端而不是浏览器
    constructor
        16
    constructor  
    OP
       Dec 24, 2021
    3. replit 使用 docker 运行
    如果#11 属实的话,好奇 replit 为什么放弃 LLVM 转 Javascript 方式,不知#13 提到的 LLVM 转 wasm 效果如何。
    @learningman 比如对于 nodejs ,wasm 能实现服务端 js 所有功能吗?
    learningman
        17
    learningman  
       Dec 24, 2021 via Android
    @constructor wasm 可以和 js 互操作,但是我记得是不能直接操作 dom
    learningman
        18
    learningman  
       Dec 24, 2021
    @constructor #16 哦你说的是服务端,wasm 有 wasi 这样的 runtime ,但是具体能实现多少我还不太清楚
    constructor
        19
    constructor  
    OP
       Dec 24, 2021
    谢谢,我再仔细看看
    About     Help     Advertise     Blog     API     FAQ     Solana     839 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 104ms UTC 20:03 PVG 04:03 LAX 13:03 JFK 16:03
    Do have faith in what you're doing.
    ubao msn 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