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

我觉得程序语言在设计的时候,要把 IDE 的支持考虑在内

  •  
  •   thinker3 · 2015-06-26 08:35:44 +08:00 · 6912 次点击
    这是一个创建于 3425 天前的主题,其中的信息可能已经有所发展或是发生改变。
    所以你看好IDEA设计的语言吗?Kotlin,我觉得还不错
    第 1 条附言  ·  2015-06-27 15:42:26 +08:00
    不觉得python的缩进设计好,事实上这个设计阻碍了我自学python一下下,几个月后才又开始学。

    因为学过一点C语言,对此不习惯;刚开始还要在TAB和Spaces之间纠结一下;没有自动缩进还不是要敲很多下。

    格式美化对于IDE来说就是一个快捷键的事情。
    缩进(也许是其它原因)使得python多行语句用 \ 来连接,我觉得很丑。

    缩进不是python的优点。
    举一个python的一个优点:简洁。比如,在声明变量时不需要let val var int string 之类的前辍。
    49 条回复    2015-06-27 15:40:49 +08:00
    ybh37
        1
    ybh37  
       2015-06-26 09:00:14 +08:00
    微硬表示很赞同
    li24361
        2
    li24361  
       2015-06-26 09:09:05 +08:00
    本末倒置吧
    cxh116
        3
    cxh116  
       2015-06-26 09:11:58 +08:00 via Android
    用不需要ide的语言不就行了。这么多语言只需要编辑器
    shuax
        4
    shuax  
       2015-06-26 09:16:01 +08:00
    除了IDE,我觉得还需要内嵌的注释处理,比如python,help一下很爽
    wizardoz
        5
    wizardoz  
       2015-06-26 09:21:13 +08:00
    应该是动态语言的一种趋势吧,对于编译型语言来说,确实有点本末倒置
    webflier
        6
    webflier  
       2015-06-26 09:26:42 +08:00
    好的IDE是钱堆出来的
    tini21
        7
    tini21  
       2015-06-26 09:28:54 +08:00
    看题目就猜到了撸主是JB党,jetbrains家的IDE确实NB
    gamexg
        8
    gamexg  
       2015-06-26 09:31:32 +08:00
    .net 设计 LINQ 时就考虑了IDE自动补全功能,记得测试版是 select ? from ? in ? 格式的,后来为了能自动补全改成了 from ? in ? select ?格式。
    garfeildma
        9
    garfeildma  
       2015-06-26 09:37:45 +08:00
    c#的linq,fsharp在设计的时候都考虑了ide的因素
    hooluupog
        10
    hooluupog  
       2015-06-26 09:50:11 +08:00
    只需要提供一些接口或者工具支持即可,这样第三方的IDE,编辑器将这些工具整合进来就成,或者直接在命令行下使用。比如clang现在做的事情,比如Go语言周边的工具链,其他编辑器和IDE可以很方便的集成进去。
    Kotlin是一个特例,因为jetbrains本身就擅长做ide,而且现成的ide已经有好多年了,所以kotlin得到IDE的很好的支持就不奇怪了。但这个还不够,还需要去支持其他编辑器甚至命令行,给开发者多一些选择,毕竟使用场景有很多。比如java的IDE支持很强,但java的弱点同时也是:和ide绑的太死,导致现在几乎只能用IDE去写java。
    s5s5
        11
    s5s5  
       2015-06-26 10:03:56 +08:00
    从JAVA开始,之后好一点的语言就是这么设计的啊
    aiqier
        12
    aiqier  
       2015-06-26 10:11:09 +08:00
    c# 和vs在一起简直就是完美结合
    ruchee
        13
    ruchee  
       2015-06-26 10:21:57 +08:00
    Kotlin确实让人眼前一亮,再加上自家强大的IDE支持,很有前途。不过,我撸代码从不用什么IDE
    oska874
        14
    oska874  
       2015-06-26 10:25:36 +08:00
    破电脑表示也就能跑个vim和gcc了,eclipse 开多了都卡
    lilydjwg
        15
    lilydjwg  
       2015-06-26 10:32:40 +08:00
    你觉得作家在写书时,需要考虑她手头的辞典吗?
    losincasablanca
        16
    losincasablanca  
       2015-06-26 10:39:11 +08:00
    如果单纯以学习为目的,IDE其实帮忙不是很大。实际项目开发IDE还是不错的, 如果source insight, vim plugins等等。
    quix
        17
    quix  
       2015-06-26 10:49:41 +08:00
    之前的一个 team leader 认为 coder中如果存在真的能称得上是码农的 也只有那些离开IDE就不能开发的. 个人表示赞同.
    mengzhuo
        18
    mengzhuo  
       2015-06-26 10:55:45 +08:00
    楼主反过来了吧……

    vim党感觉IDE的噪音太多,到处都是图标,提示来提示去的,都不觉得烦?
    loolac
        19
    loolac  
       2015-06-26 11:01:10 +08:00
    你看vs 都把社区集成到里面了,设计程序语言的时候干脆把系统驱动也设计进去吧。如果可能最好考虑下裸机执行的情况?或者把邮件 聊天都集成进去
    chaucerling
        20
    chaucerling  
       2015-06-26 11:07:53 +08:00
    @quix java离开ide基本就不会写了。。
    Jex
        21
    Jex  
       2015-06-26 11:13:16 +08:00   ❤️ 1
    @lilydjwg 如果Python的import语法改成 `import a,b,c from m`,确实不方便实现自动补全。Lisp的语法也存在这种问题:`(method object arg)`,问题这货的不少方言连命名空间都没有。作家的比方是不太恰当的,正确的比方是自然语言的设计者(假设现在人为创造一个新的自然语言)应当考虑下现有书写工具,假设现在只有钢笔且不方便画曲线细折线,我不知道藏文还能不能写;没有括号自动匹配和检查,写Lisp难道不痛苦?
    msg7086
        22
    msg7086  
       2015-06-26 11:17:45 +08:00
    @loolac Visual Studio Retina 2015
    Gem
        23
    Gem  
       2015-06-26 11:29:44 +08:00
    顺道问下, http://kotlinlang.org/#get-kotlin 首页上的视频中,IntelliJ IDEA中那些代码使用的字体是什么名字?
    visonme
        24
    visonme  
       2015-06-26 11:33:26 +08:00
    其实我不是 赞成楼主的观点,对于一门程序 语言来说IDE是可有可无的 存在,IDE和语言是N-1的一种关系,如果语言要考虑到IDE势必某些东西会被局限
    jiangpeng
        25
    jiangpeng  
       2015-06-26 11:33:39 +08:00   ❤️ 1
    @loolac Emacs 不就是这样吗
    Jex
        26
    Jex  
       2015-06-26 11:35:33 +08:00   ❤️ 5
    PS:
    我觉得在Generic技术社区里讨论程序语言通常不会得到什么有益的观点。大部分程序员从来没有对手头工具有过**反思**,而且总有护短心理。我常常感觉是在鸡同鸭讲。我曾说Ruby的require module其实只是功能非常弱的read and eval once,它需要向Python学习, OpenStruct的包名是ostruct,FileUtils的包名是fileutils,而Gems们又都习惯用下划线,搞得这么混乱,跟PHP有得一拼了;然而仍有不少人来教育我「有经验的不会乱」、「规范多了嫌束缚」,鸡同鸭讲。

    最搞笑的是竟然还有Node.js程序员鼓吹 Callback很好啊,然后ES6就加了async await。

    我以前在Python社区讲,文档中应当指出方法参数的类型(class),并且最好文档能像Java一样,显示出class继承得到的方法,不然我看到某对象一个方法,我找到这个对象所属类的文档,却找不到这个方法,需要人肉到父类中一层一层去找。然后他们就来教育我「Python是动态类型」、「Python的类型只有int、string这几个,不需要注释」、「Python不是Java,不要用Java的思维来看Python」…………然后 Python之父想要给Python加上Type Hint的时候,我有点想问他们现在脸疼不疼,连动态类型静态类型是什么意思都没搞懂,一加了Type Hint,他们竟然有人高呼Python变静态类型了。鸡同鸭讲。
    zonghua
        27
    zonghua  
       2015-06-26 11:41:05 +08:00
    asp.net不碰代码都能完成工作,有谁比得过?
    cvv
        28
    cvv  
       2015-06-26 11:44:27 +08:00
    其实我觉得楼主的痛点本质是想用图形化操作实现编程,所谓 IDE 支持本来就是为了把敲键盘写 script 变成鼠标点点点…
    min
        29
    min  
       2015-06-26 12:00:06 +08:00
    某软表示大家努力抄我吧
    kkurs
        30
    kkurs  
       2015-06-26 12:14:30 +08:00
    松本行弘在《代码的未来》一书中说过类似的话:

    未来的编程语言可能不会像过去的编程语言那样,让语言本身单独存在,而是和编辑器、调试器、性能分析器等开发工具相互配合,以达到提高整体生产效率的目的。话说,那不就是 Smalltalk 吗?
    zhujinliang
        31
    zhujinliang  
       2015-06-26 12:22:29 +08:00 via iPhone
    比如说 易语言?
    kzzhr
        32
    kzzhr  
       2015-06-26 12:26:13 +08:00 via Android
    你是想表达 应该跟现有工具链相结合吧。不同的ide配好工具链也就大同小异了。
    alsotang
        33
    alsotang  
       2015-06-26 12:27:22 +08:00
    @Jex 纠正一下。es7 加入了 async await,es6 是通过 generator 实现的类似功能。
    Jex
        34
    Jex  
       2015-06-26 12:35:23 +08:00   ❤️ 1
    @alsotang 版本号记不清了,现在又改成 ES2015了好像
    alsotang
        35
    alsotang  
       2015-06-26 12:36:15 +08:00
    @Jex es2015 === es6
    Jex
        36
    Jex  
       2015-06-26 12:47:56 +08:00   ❤️ 1
    @alsotang 还真记岔了,我还以为ES2015已经包含了这些特性了的呢
    lilydjwg
        37
    lilydjwg  
       2015-06-26 12:57:46 +08:00
    @Jex Python 的 import 也不过是在一个单独的命名空间里 read and eval once。没记错的话这点是从 Haskell 学来的。

    Ruby 的方案的问题是没有命名空间的区分,大家都往一个空间里加东西。不但往全局空间里加东西,还往已有的类上加方法。于是想知道某个类或者方法是从哪里来的就只有询问 Google 了。
    Jex
        38
    Jex  
       2015-06-26 13:56:49 +08:00   ❤️ 1
    @lilydjwg Java和CSharp尚且有package/namespace org.path.foo.bar 这样的语法,Ruby无法像Python那样自动根据文件路径确定命名空间也就算了,最无语的是,它竟然非要这样写:

    ```
    module A
    __module B
    ____module C

    ____end
    __end
    end
    ```

    除非B已经先被导入生成了module对象,不然下面写法会报错uninitialized constant `A::B`:

    ```
    module A::B::C
    end
    ```
    jjlovegrape
        39
    jjlovegrape  
       2015-06-26 14:36:07 +08:00
    如果你学的是计算机专业你专业课是不是体育老师教的。
    KISS,keep it simple,stupid.
    refear99
        40
    refear99  
       2015-06-26 14:41:30 +08:00   ❤️ 1
    不用代码提示的人就是矫情
    asj
        41
    asj  
       2015-06-26 15:14:20 +08:00
    比如Scala就是设计出来折磨编译器和IDE的
    GeekGao
        42
    GeekGao  
       2015-06-26 16:39:18 +08:00
    E语言。。。呵呵
    Bluecoda
        43
    Bluecoda  
       2015-06-26 17:49:16 +08:00
    为啥呢?n年不用ide了,没觉得ide是必需品
    jokester
        44
    jokester  
       2015-06-26 19:13:16 +08:00
    反了 先有語言特性才有ide跟上
    AndersQ
        45
    AndersQ  
       2015-06-26 19:46:41 +08:00
    不能认同,语言设计需要考虑特性和实现问题,而IDE只是一个应用程序,虽然都是为了让语言更好用,但是两者不在一个维度。
    Comdex
        46
    Comdex  
       2015-06-26 20:18:06 +08:00
    golang正是这样设计的
    bdbai
        47
    bdbai  
       2015-06-26 20:34:07 +08:00 via iPhone
    yangmafu
        48
    yangmafu  
       2015-06-27 07:21:19 +08:00 via iPhone
    又回到了vim和emacs之争了。
    zartouch
        49
    zartouch  
       2015-06-27 15:40:49 +08:00
    @asj 表示同意,目前用的intellij,但很多时候报错相当混乱,当然最惨的还是超长的编译时间。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2665 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 06:16 · PVG 14:16 · LAX 22:16 · JFK 01:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.