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

独立开发 iOS App,后端用什么语言写合适?

  •  
  •   qtoq126 · 2021-01-20 23:43:14 +08:00 · 13976 次点击
    这是一个创建于 1163 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人 IT 萌新,目前工作是做 AutoCAD 的二次开发,基本就用的就是.NET Framework 那一套,写 C#。
    自己对 iOS App 很感兴趣,自学了 Swift,目前在看 SwiftUI,想以后自己做几个小 App 练练手。
    考虑到后期搭建服务器,自己写 CRUD,或者做做 WebAPI,不知道用哪个语言合适,之前没搞过 Web 开发。

    目前备选:
    1. C#(.NET Core):考虑是在 Mac 上开发,感觉.NET Core 的使用应该没有在 Win 上方便。而且我不太喜欢 cshtml 里面那种 html+C#混编的方式,看着好别扭。

    2. Python:需要重新学习,另外看到之前的帖子有人说 Django 用来做 App 后端比较重,不知道是不是这样。

    3. Go:需要重新学习,但是代表了后端未来的趋势?搜了下 Go 貌似最适用的场景是微服务和分布式,处理高并发,用来做 App 后端是不是有点大炮打蚊子的感觉?

    4. Ruby:很早之前想接触的一门语言,但是一直没有尝试过,ROR 是不是快过气了?

    这是我目前内心的一些想法,想大佬们帮我分析和权衡下,究竟哪种更合适一点?
    感谢大家,语言不分好坏,我个人都很喜欢。
    第 1 条附言  ·  2021-01-22 13:42:34 +08:00
    真的很感谢大家的热心回复,留言我一个个都看了

    综合下大家的意见还有自己的权衡,决定就用 .NET Core 做。纯后端也不用跟 razor 界面打交道,挺好。
    C#写的也挺舒服的,打算在 Mac 下面用 VS Code 开发。

    相信语言都是相通的。先把前后端调通,原理弄透才是我现在最应该着手行动的。

    再次感谢大家!平时基本不发帖,这次收获满满,希望以后自己也能帮助他人,给予意见。
    130 条回复    2021-01-26 00:47:52 +08:00
    1  2  
    chinvo
        1
    chinvo  
       2021-01-20 23:44:44 +08:00 via iPhone
    asp.net 你也可以不用 razor,用 api + fe 模式(官方模板有 ng 和 react
    334132462
        2
    334132462  
       2021-01-21 00:20:08 +08:00   ❤️ 2
    ROR 习惯了写 api 特别快 至少增删改查你一行命令就搞定了 至于其他的逻辑也特别容易实现
    caotian
        3
    caotian  
       2021-01-21 00:24:15 +08:00
    个人见解,会.net 就学.net core 为主,选修 go,python 和 ruby 忘了吧
    如果你不拿.net core 来开发 WPF,那在 Mac 上没有不方便的地方
    pytth
        4
    pytth  
       2021-01-21 00:25:35 +08:00 via iPhone
    java 吧,如果处理性能要求不高,php 也是合适的。
    uptonking
        5
    uptonking  
       2021-01-21 00:41:00 +08:00 via iPhone
    python 的 flask 框架简单轻量,fastapi 开发 rest api 特别快,python 现在很火爆,推荐选 python 系的方案
    icy37785
        6
    icy37785  
       2021-01-21 01:20:22 +08:00 via iPhone
    熟悉.net 就 c#呀,性能也不错,开发也不慢。实在想用其他的就 go 呗,上手也很快,之后如果业务上去了,性能也不错。
    yunye
        7
    yunye  
       2021-01-21 01:24:50 +08:00
    腾讯云开发
    holulu
        8
    holulu  
       2021-01-21 07:18:34 +08:00
    serverless
    yekern
        9
    yekern  
       2021-01-21 07:48:35 +08:00
    中小型 App 当然是 PHP 啊.上手速度 1 天,搞个框架 1 天 就可以开发了啊
    shenfu1991
        10
    shenfu1991  
       2021-01-21 08:07:46 +08:00 via iPhone
    直接 swift,vapor 框架
    zachlhb
        11
    zachlhb  
       2021-01-21 08:13:07 +08:00 via Android
    会 net 就用 core 呗,找个框架就可以开撸,推荐 furion,前端可以不用它的啊,用 vue,react 什么的都行
    shellic
        12
    shellic  
       2021-01-21 08:17:07 +08:00 via Android
    没有高并发的需求当然 PHP 啊,简单写起来爽
    varzy
        13
    varzy  
       2021-01-21 08:21:44 +08:00 via iPhone
    可以试试 laravel
    kekxv
        14
    kekxv  
       2021-01-21 08:24:05 +08:00 via iPhone
    建议了解一下苹果开发者费用,以及相关要求
    bzshow1
        15
    bzshow1  
       2021-01-21 08:25:10 +08:00 via Android
    直接 c#
    kekxv
        16
    kekxv  
       2021-01-21 08:26:03 +08:00 via iPhone
    发完发现看错了,用 c#吧,现在也能跨平台了
    httplife
        17
    httplife  
       2021-01-21 08:28:02 +08:00
    如果是独立的话 选 ruby, 一个人开发真的很方便
    如果是团队, python
    如果是公司, go
    idragonet
        18
    idragonet  
       2021-01-21 08:40:14 +08:00
    .NET Core 不一定要 cshtml 里面那种 html+C#混编的方式。
    ForeverYoung123
        19
    ForeverYoung123  
       2021-01-21 08:42:04 +08:00
    什么简单用什么
    gumang1988
        20
    gumang1988  
       2021-01-21 08:43:36 +08:00
    这个人还停留在 asp.net 。。。
    qtoq126
        21
    qtoq126  
    OP
       2021-01-21 08:50:31 +08:00
    @idragonet 我怎么看微软官方的 .NET Core 教程里面的 MVC 模式和 Razor 模式全部建的项目里面都有 cshtml 文件啊,就是类似这样的格式(@{})

    @{
    ViewData["Title"] = "Home Page";
    }
    <div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
    </div>

    @httplife 其实很想尝试下 Ruby,不知道学习成本高不高
    Leonard
        22
    Leonard  
       2021-01-21 08:52:44 +08:00
    直接用 swift 写吧
    Removable
        23
    Removable  
       2021-01-21 08:53:18 +08:00
    @qtoq126 #20 可以用 webapi 啊,然后前端自己弄
    pigzzz
        24
    pigzzz  
       2021-01-21 08:55:03 +08:00
    php
    itfanr
        25
    itfanr  
       2021-01-21 09:04:00 +08:00
    go 吧
    httplife
        26
    httplife  
       2021-01-21 09:09:26 +08:00
    @qtoq126 个人认为学习成本不高, 我是从 ruby 基本语法 > ruby koans > Rails > Sinatra, CURD api 都很好用...另外, ruby 可以用多种方法做同样的事, 所以需要了解一下这方面, 还有最好有阅读别人代码的习惯
    hyqCrystal
        27
    hyqCrystal  
       2021-01-21 09:10:46 +08:00
    当然是 java 啊 springboot 效率高
    MakHoCheung
        28
    MakHoCheung  
       2021-01-21 09:11:00 +08:00   ❤️ 1
    swift vapor
    CodeCodeStudy
        29
    CodeCodeStudy  
       2021-01-21 09:18:53 +08:00
    既然是独立开发,那么肯定要选容易入门的语言,首选 PHP,次选 Node.js 。
    waltcow
        30
    waltcow  
       2021-01-21 09:20:12 +08:00
    java jhipster
    wxw752
        31
    wxw752  
       2021-01-21 09:20:55 +08:00
    自己玩你看看什么好学学什么,如果说微服务和分布式 java 肯定目前最完善。
    ghouleztt
        32
    ghouleztt  
       2021-01-21 09:23:08 +08:00
    Ruby 没落了
    kop1989
        33
    kop1989  
       2021-01-21 09:23:32 +08:00
    直接 C#(.net )就可以了。
    web 容器用 IIS 。
    IOS app 用 http 接口链接 .net 的一般处理程序(.ashx)》业务层》数据链路层》数据库。
    bbsabc2
        34
    bbsabc2  
       2021-01-21 09:31:48 +08:00
    @qtoq126

    你看的 MVC 模式和 Razor 模式 都是 b-s 模式的开发方式,你要开发是的 app,只需要用到 mvc 里面的 m 和 c,也就是 c#里面的 webapi,不需要了解 cshtml 这种语法。
    XIVN1987
        35
    XIVN1987  
       2021-01-21 09:39:41 +08:00
    楼主是不是忘了说 JS 了,,没有 JS 怎么搞 Web 开发啊??

    C#、Swift 、JS,,楼主确定还想再学一门?

    不如把现有的先学熟练点儿、深入点儿,,免得各个都蜻蜓点水,,毕竟后端什么语言都能搞,没有任何限制
    lostpupil
        36
    lostpupil  
       2021-01-21 09:40:21 +08:00
    用 NodeJs 吧,指不定以后你要用电别的混合编程写 App 。Js 就顺便学了吧。
    App 上架要 弄个官网也方便。
    其他几个基本上都没有很适合你的。
    Ruby Orm 好用。其他几个 Orm 一般般。
    kiracyan
        37
    kiracyan  
       2021-01-21 09:43:48 +08:00
    @qtoq126 自带有 react 还可以安装 vue 这些模板的 而且你直接用 WebApi 都不用管前端
    Inozo
        38
    Inozo  
       2021-01-21 09:43:54 +08:00
    node 或者 go 很香
    shenjinpeng
        39
    shenjinpeng  
       2021-01-21 09:48:42 +08:00
    php
    nash
        40
    nash  
       2021-01-21 10:06:23 +08:00
    我 PHP 没有被提的资格?
    qzhai
        41
    qzhai  
       2021-01-21 10:09:18 +08:00
    php 没落了吗 (狗头)
    shanghai1998
        42
    shanghai1998  
       2021-01-21 10:12:45 +08:00
    php + fastadmin,后台、接口都基本写好了,你直接照葫芦画瓢就行了
    Junjunya
        43
    Junjunya  
       2021-01-21 10:15:40 +08:00
    个人独立 当然推荐用 PHP 了, 学习简单,开发效率高, 改起来快。

    如果非在备选里面选的话,那就推荐 GO 一步到位
    jonsnow93
        44
    jonsnow93  
       2021-01-21 10:16:55 +08:00
    如果是需要快速出结果且不用学习新语言的话,直接上 serverless,国内好像 leancloud 做的还行
    FlexGap
        45
    FlexGap  
       2021-01-21 10:19:16 +08:00
    建议 GO,一步到胃。
    nutting
        46
    nutting  
       2021-01-21 10:32:50 +08:00
    你都没学过,那还是 java 吧,springboot,资料多,找一个改改就行了,成熟,虽然 java 写起来有点繁琐
    dog82
        47
    dog82  
       2021-01-21 10:33:14 +08:00
    老实就用 java + spring,用 Go 也不错
    stach
        48
    stach  
       2021-01-21 10:47:59 +08:00
    Ruby 国内用的少, 不考虑;
    C# 是 Windows 家的, 你用 mac 开发就不考虑了;
    Go 和 Python 完全符合你的需求;
    Python 比 Go 更合适.


    Go 比较适合做分布式项目, 高并发的项目, 基础架构等
    Python 适合快速迭代的项目, 快速验证想法, 对于 Web api 这种 io 密集型业务, 性能影响不大.
    一个人开发, 还是 Python 更舒服, 包袱最少.
    如果选择 Python, 推荐使用 Flask 框架, 部署采用 Gunicorn gevent 部署.
    如果选择 Go, 推荐使用 Gin 框架, 部署无需其他工具.


    建议你可以写一个 hello world, 再考虑自己真的想用哪种语言, 以上只是建议.
    mercurylanded
        49
    mercurylanded  
       2021-01-21 10:51:46 +08:00
    建议你后端直接上个 baas leancloud 或者 apicloud 这种
    x940727
        50
    x940727  
       2021-01-21 10:57:37 +08:00
    @waltcow 墙裂不推荐。太过重量级了,自己研究一下差不多..
    linxb
        51
    linxb  
       2021-01-21 10:57:55 +08:00
    用 PHP 毫无疑问
    crist
        52
    crist  
       2021-01-21 11:05:39 +08:00
    PHP 已经彻底被 LZ 无视,看来 PHP 彻底慌了,PHPer 都回家洗洗睡吧(逃~~
    kkzxak47
        53
    kkzxak47  
       2021-01-21 11:09:35 +08:00
    Python flask 和 Go gin-gonic/gin 上手应该都比较快,而 Python 可能更合适,省时省力。
    debuggerx
        54
    debuggerx  
       2021-01-21 11:10:50 +08:00
    我站 py 。作为前端转全栈,用过各种后端语言,推荐入门后端的上手的顺位为 python>node>go>java>C#>ruby>php>swift,但是考虑市场和实际找工作,值得长期投入深钻的肯定就不是这个顺序了
    yuancoder
        55
    yuancoder  
       2021-01-21 11:29:11 +08:00
    5. php

    看你需求 php 比较合适,学习成本低,主流,python 也是一个不错的选择,python 对比 php 学习成本会稍微高点,但是能做的事情更多。
    janxin
        56
    janxin  
       2021-01-21 11:41:14 +08:00
    你不是会 C#吗...NetCore 5.0 直接撸? html+C#混编是你的错觉,你也可以搭配 SPA 开发

    Swift 也可以做后端开发,看你对语言有没有需求
    lifetimeporn
        57
    lifetimeporn  
       2021-01-21 11:56:08 +08:00 via iPhone
    你单纯后端提供 api 的话可以 python 的 fastapi 框架
    tydl
        58
    tydl  
       2021-01-21 12:07:42 +08:00
    强烈推荐 PHP,一周上手。
    Marszm
        59
    Marszm  
       2021-01-21 12:13:07 +08:00
    从上看到下....就没人推荐 nodejs...express,koa 么...我觉得熟悉 js 的话写起来还是挺方便的.重点是要会 ES6 语法.
    Marszm
        60
    Marszm  
       2021-01-21 12:15:45 +08:00
    我最近也在学习相关开发知识...老哥共勉.
    ben1024
        61
    ben1024  
       2021-01-21 12:16:13 +08:00
    要不试试 PHP ?

    备选就 ROR
    Rekkles
        62
    Rekkles  
       2021-01-21 12:27:05 +08:00
    个人用除了 PHP or ROR 其他没得选
    miv
        63
    miv  
       2021-01-21 12:44:19 +08:00 via iPhone
    PHP:爱你的女孩
    推荐 php,不管别人怎么说,php 是最有性价比的
    mmdsun
        64
    mmdsun  
       2021-01-21 12:44:26 +08:00 via Android
    C# 够了。解决方案比较成熟。

    例如:Xamrin

    还有 MAUI,Uno platform
    mmdsun
        65
    mmdsun  
       2021-01-21 12:45:29 +08:00 via Android
    @mmdsun 不好意思看错了。后端推荐 spring boot
    chloerei
        66
    chloerei  
       2021-01-21 12:45:47 +08:00 via iPhone
    Ruby on Rails 依然是开发效率最高的 Web 框架。

    Web 开发一大优势是可以用任意自己喜欢的语言不用考虑别人看法。
    nicevar
        67
    nicevar  
       2021-01-21 12:52:40 +08:00
    多年独立开发,java/php/go/python 都用过,个人觉得还是 php 最方便
    i4oolish
        68
    i4oolish  
       2021-01-21 12:53:57 +08:00
    nodejs
    Bazingal
        69
    Bazingal  
       2021-01-21 12:57:30 +08:00 via Android
    看了楼主的回复,应该还是初级水平吧,这种就什么技术熟悉用什么吧,visual studio for mac 或者 vscode,用.net core 开发 webapi 提供接口,如果后端还需要管理界面,就用 jquery 或者三大前端框架选一个写,同样是调用 webapi
    Bruin
        70
    Bruin  
       2021-01-21 12:58:59 +08:00
    自己会的语言
    pipasese
        71
    pipasese  
       2021-01-21 12:59:32 +08:00
    Java,虽然啰嗦,但是生态成熟,搞不下去了也适合找工作- -
    djyde
        72
    djyde  
       2021-01-21 13:02:52 +08:00
    头像违规了
    meathill
        73
    meathill  
       2021-01-21 13:08:01 +08:00
    用 serverless 方案,推荐 leancloud.cn 。如果非要自己写,我推荐 PHP 。
    beyondex
        74
    beyondex  
       2021-01-21 13:13:06 +08:00
    .NET Core 写起来飞快,IDE 可以用 Rider 做 .NET 开发堪比 VS,不过付费的可以试用 30 天。
    只要 API 不用 Razor 就不涉及到 cshtml 了。
    viaNull
        75
    viaNull  
       2021-01-21 13:33:35 +08:00
    一个人的话,Ruby 吧。ROR 是真的舒服
    Removable
        76
    Removable  
       2021-01-21 13:45:15 +08:00
    @stach #45 老哥,C#用 mac 开发不考虑这种想法,应该抛弃了,.NET 5 都出来了!更别说.net core 都多久了
    back0893
        77
    back0893  
       2021-01-21 13:49:25 +08:00
    php 也行啊
    imgbed
        78
    imgbed  
       2021-01-21 14:08:28 +08:00
    serverless
    lancelock
        79
    lancelock  
       2021-01-21 14:10:49 +08:00
    1. mac 平台开发.net core 非常完美,不存在没有 win 方便
    2. razor 之类的是用来后端渲染页面的,你已经有 ios 的前端了,怎么会还需要 razor 之类的呢?直接写 api 就行了,不需要任何 html 相关的内容
    3. 无论是语法、性能、开发体验,.net core 都是非常优秀的,再额外去学 python 、ruby 、go 之流来开发 web,那叫买椟还珠
    liian2019
        80
    liian2019  
       2021-01-21 14:12:36 +08:00
    @holulu 你这。。。
    liian2019
        81
    liian2019  
       2021-01-21 14:14:36 +08:00
    @holulu 抱歉抱歉看错了 睡了一觉不清醒 看成了 service mesh
    vultr
        82
    vultr  
       2021-01-21 14:25:15 +08:00
    用 go 吧, 可以参考这个项目: https://github.com/webpkg/api

    代码很简单,没有过多的外部引用,看一下,基本就可以开工了。
    zhennann
        83
    zhennann  
       2021-01-21 14:30:41 +08:00
    后端除了学习语言,还要学习基础框架,在学了基础框架之后,还要考虑一堆业务系统如何开发,比如:用户注册与登录、权限系统、数据管理、工作流、等等。
    所以,强烈建议用 CabloyJS 全栈框架。虽然是全栈,但前后端分离,后端完整的业务系统开箱即用,可以完美配合任何前端 app 的开发
    bsg1992
        84
    bsg1992  
       2021-01-21 14:32:31 +08:00
    当然首选 c#
    Python 不用考虑
    go 只适合写中间件 不适应来写业务逻辑
    ruby 就算了吧
    BurnThem
        85
    BurnThem  
       2021-01-21 14:34:48 +08:00
    it 萌新就选装逼的语言写就行了,反正效率和性能,都不是咱该考虑的。
    BernieDu
        86
    BernieDu  
       2021-01-21 14:36:06 +08:00
    Parse 、CloudKit 、Filrebase 。 CloudKit 是 apple 自家的。楼主开发 ios 可以直接调用 api 。而且用户少免费调用,用户多也可能免费调用
    Thiece
        87
    Thiece  
       2021-01-21 14:40:13 +08:00
    项目怎么快上线怎么来,还是那句话 业务进度 > 代码质量
    RRRoger
        88
    RRRoger  
       2021-01-21 15:29:06 +08:00
    Flask or Django
    lonelymarried
        89
    lonelymarried  
       2021-01-21 16:56:08 +08:00
    node 写 api 快
    ETO
        90
    ETO  
       2021-01-21 17:22:55 +08:00
    @yunye 腾讯的云开发,好像只能用小程序吧?
    henryhu
        91
    henryhu  
       2021-01-21 17:26:52 +08:00
    AutoCAD 二次开发我也在做,遇到同行了。后端用 node,会 js,上手快
    DanielYao
        92
    DanielYao  
       2021-01-21 17:33:25 +08:00   ❤️ 2
    不明白楼主为什么要换其他语言写后端?
    .net core 不香吗?还是 C# 语法不优雅? webApi 开发出来性能不好?
    我司.net core 后端 几十万用户,跑的稳稳的,docker +k8s
    ArJun
        93
    ArJun  
       2021-01-21 17:37:05 +08:00
    看需求,简单的 crud 区别都不大的
    hslx111
        94
    hslx111  
       2021-01-21 17:38:53 +08:00
    比较简单的后端,可以试试 Node 或者 Swift
    rayliao
        95
    rayliao  
       2021-01-21 17:39:01 +08:00
    @ETO 都可以用,有 http 请求访问。
    rayliao
        96
    rayliao  
       2021-01-21 17:39:25 +08:00
    独立开发,只是 iOS 的,是不是 core data 就可以
    keien
        97
    keien  
       2021-01-21 17:54:42 +08:00
    deno
    fidetro
        98
    fidetro  
       2021-01-21 17:58:53 +08:00
    作为 iOS 从业者表示,swift 也可以做后端语言,但是不建议,(半利益相关)入坑过 Perfect,参与过一些文档维护汉化,用过一下 go,我也只会写写接口,还挺方便的,感觉还不错
    ligiggy
        99
    ligiggy  
       2021-01-21 18:35:53 +08:00
    @djyde 一页评论看下来,就关注到了你
    360511404
        100
    360511404  
       2021-01-21 18:39:16 +08:00
    Apple 平台,当然是 CloudKit 了
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5552 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 06:37 · PVG 14:37 · LAX 23:37 · JFK 02:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.