V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
constructor
V2EX  ›  程序员

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

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

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

    编码

    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 说到点子上了,确实是合规问题,不是技术问题
    bug123
        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   ·   我们的愿景   ·   实用小工具   ·   3055 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:00 · PVG 19:00 · LAX 04:00 · JFK 07:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.