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

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

  •  
  •   thinker3 · 2015-06-26 08:35:44 +08:00 · 5701 次点击
    这是一个创建于 1628 天前的主题,其中的信息可能已经有所发展或是发生改变。
    所以你看好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
        1
    ybh37   2015-06-26 09:00:14 +08:00
    微硬表示很赞同
        2
    li24361   2015-06-26 09:09:05 +08:00
    本末倒置吧
        3
    cxh116   2015-06-26 09:11:58 +08:00 via Android
    用不需要ide的语言不就行了。这么多语言只需要编辑器
        4
    shuax   2015-06-26 09:16:01 +08:00
    除了IDE,我觉得还需要内嵌的注释处理,比如python,help一下很爽
        5
    wizardoz   2015-06-26 09:21:13 +08:00
    应该是动态语言的一种趋势吧,对于编译型语言来说,确实有点本末倒置
        6
    webflier   2015-06-26 09:26:42 +08:00
    好的IDE是钱堆出来的
        7
    tini21   2015-06-26 09:28:54 +08:00
    看题目就猜到了撸主是JB党,jetbrains家的IDE确实NB
        8
    gamexg   2015-06-26 09:31:32 +08:00
    .net 设计 LINQ 时就考虑了IDE自动补全功能,记得测试版是 select ? from ? in ? 格式的,后来为了能自动补全改成了 from ? in ? select ?格式。
        9
    garfeildma   2015-06-26 09:37:45 +08:00
    c#的linq,fsharp在设计的时候都考虑了ide的因素
        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。
        11
    s5s5   2015-06-26 10:03:56 +08:00
    从JAVA开始,之后好一点的语言就是这么设计的啊
        12
    aiqier   2015-06-26 10:11:09 +08:00
    c# 和vs在一起简直就是完美结合
        13
    ruchee   2015-06-26 10:21:57 +08:00
    Kotlin确实让人眼前一亮,再加上自家强大的IDE支持,很有前途。不过,我撸代码从不用什么IDE
        14
    oska874   2015-06-26 10:25:36 +08:00
    破电脑表示也就能跑个vim和gcc了,eclipse 开多了都卡
        15
    lilydjwg   2015-06-26 10:32:40 +08:00
    你觉得作家在写书时,需要考虑她手头的辞典吗?
        16
    losincasablanca   2015-06-26 10:39:11 +08:00
    如果单纯以学习为目的,IDE其实帮忙不是很大。实际项目开发IDE还是不错的, 如果source insight, vim plugins等等。
        17
    quix   2015-06-26 10:49:41 +08:00
    之前的一个 team leader 认为 coder中如果存在真的能称得上是码农的 也只有那些离开IDE就不能开发的. 个人表示赞同.
        18
    mengzhuo   2015-06-26 10:55:45 +08:00
    楼主反过来了吧……

    vim党感觉IDE的噪音太多,到处都是图标,提示来提示去的,都不觉得烦?
        19
    loolac   2015-06-26 11:01:10 +08:00
    你看vs 都把社区集成到里面了,设计程序语言的时候干脆把系统驱动也设计进去吧。如果可能最好考虑下裸机执行的情况?或者把邮件 聊天都集成进去
        20
    chaucerling   2015-06-26 11:07:53 +08:00
    @quix java离开ide基本就不会写了。。
        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难道不痛苦?
        22
    msg7086   2015-06-26 11:17:45 +08:00
    @loolac Visual Studio Retina 2015
        23
    Gem   2015-06-26 11:29:44 +08:00
    顺道问下, http://kotlinlang.org/#get-kotlin 首页上的视频中,IntelliJ IDEA中那些代码使用的字体是什么名字?
        24
    visonme   2015-06-26 11:33:26 +08:00
    其实我不是 赞成楼主的观点,对于一门程序 语言来说IDE是可有可无的 存在,IDE和语言是N-1的一种关系,如果语言要考虑到IDE势必某些东西会被局限
        25
    jiangpeng   2015-06-26 11:33:39 +08:00   ♥ 1
    @loolac Emacs 不就是这样吗
        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变静态类型了。鸡同鸭讲。
        27
    zonghua   2015-06-26 11:41:05 +08:00
    asp.net不碰代码都能完成工作,有谁比得过?
        28
    cvv   2015-06-26 11:44:27 +08:00
    其实我觉得楼主的痛点本质是想用图形化操作实现编程,所谓 IDE 支持本来就是为了把敲键盘写 script 变成鼠标点点点…
        29
    min   2015-06-26 12:00:06 +08:00
    某软表示大家努力抄我吧
        30
    kkurs   2015-06-26 12:14:30 +08:00
    松本行弘在《代码的未来》一书中说过类似的话:

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

    Ruby 的方案的问题是没有命名空间的区分,大家都往一个空间里加东西。不但往全局空间里加东西,还往已有的类上加方法。于是想知道某个类或者方法是从哪里来的就只有询问 Google 了。
        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
    ```
        39
    jjlovegrape   2015-06-26 14:36:07 +08:00
    如果你学的是计算机专业你专业课是不是体育老师教的。
    KISS,keep it simple,stupid.
        40
    refear99   2015-06-26 14:41:30 +08:00   ♥ 1
    不用代码提示的人就是矫情
        41
    asj   2015-06-26 15:14:20 +08:00
    比如Scala就是设计出来折磨编译器和IDE的
        42
    GeekGao   2015-06-26 16:39:18 +08:00
    E语言。。。呵呵
        43
    Bluecoda   2015-06-26 17:49:16 +08:00
    为啥呢?n年不用ide了,没觉得ide是必需品
        44
    jokester   2015-06-26 19:13:16 +08:00
    反了 先有語言特性才有ide跟上
        45
    AndersQ   2015-06-26 19:46:41 +08:00
    不能认同,语言设计需要考虑特性和实现问题,而IDE只是一个应用程序,虽然都是为了让语言更好用,但是两者不在一个维度。
        46
    Comdex   2015-06-26 20:18:06 +08:00
    golang正是这样设计的
        47
    bdbai   2015-06-26 20:34:07 +08:00 via iPhone
        48
    yangmafu   2015-06-27 07:21:19 +08:00 via iPhone
    又回到了vim和emacs之争了。
        49
    zartouch   2015-06-27 15:40:49 +08:00
    @asj 表示同意,目前用的intellij,但很多时候报错相当混乱,当然最惨的还是超长的编译时间。。。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1031 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 34ms · UTC 22:48 · PVG 06:48 · LAX 14:48 · JFK 17:48
    ♥ Do have faith in what you're doing.