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

大家是怎么熟练的在两门以上语言之间切换的?

  •  1
     
  •   eyp82 · 2016-12-31 11:41:32 +08:00 · 9172 次点击
    这是一个创建于 2665 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我感觉每门语言都有很多细节 /使用习惯 /设计理念需要去掌握, 适应. 切换语言而且要求切换过去之后整个的思路写法什么的全部符合该语言的习惯有点困难啊. 不知道大家怎么搞定的?

    PS, 那种临时抓本书操练几个小时就直接开撸程序的不在我的讨论范围, 我觉得那种写出来的代码大部分是垃圾, 对, 就是垃圾.

    第 1 条附言  ·  2016-12-31 22:11:45 +08:00
    又看了一下我的主帖, 最下面一段说是垃圾有些过分了, 虽然这么写出来代码质量确实很大可能不高. 大家忽略最后一段,抱歉.
    84 条回复    2017-01-03 01:37:23 +08:00
    zxgngl
        1
    zxgngl  
       2016-12-31 11:46:10 +08:00
    把相似的点列在一张纸上或者文档里,用得多了就记住了。
    xingo
        2
    xingo  
       2016-12-31 11:47:21 +08:00 via Android
    前端:我每天在至少 3 门语言中切换
    ragnaroks
        3
    ragnaroks  
       2016-12-31 11:50:24 +08:00   ❤️ 1
    https://devdocs.io/

    PS, 代码垃不垃圾由市场决定.
    murmur
        4
    murmur  
       2016-12-31 11:53:20 +08:00
    你选类 c 的语言就好了。。
    eyp82
        5
    eyp82  
    OP
       2016-12-31 11:56:55 +08:00
    @ragnaroks 说的貌似好有道理, 但市场谁管你代码烂不烂, 反正出问题让开发人员没日没夜的填坑罢了.
    eyp82
        6
    eyp82  
    OP
       2016-12-31 11:57:21 +08:00
    @xingo 好奇是哪三门?
    murmur
        7
    murmur  
       2016-12-31 11:58:34 +08:00   ❤️ 6
    个人经验
    1 、不要听所谓高人指引,保持思路的流畅性是最重要的,因为你一天能写多少代码啊,一半时间在思考 1/4 时间在发呆吧,拉姆达表达式、函数式编程固然好,但是你都按 c 的套路写也没问题,只要按编码规范,定期代码审查,现在又不是说谁写的代码短谁就效率高,也没人无聊去考究 forEach 和 for 循环哪个效率高
    2 、造轮子之前查一下别人做过没有,很多时候你写出垃圾代码是因为你做的东西可能就是库函数一句话,或者有那种炒鸡成熟的实现,这种就不要做了,别人的代码身经百战了,什么项目没用过?比如我要实现 array 里元素的 swap ,这是大学 c 语言里最基础的编程了,不,但是这样写不 js ,于是我搜 npm array swap 果真别人已经封装好了,有兴趣可以看看那些奇技淫巧都是怎么做的,学不来你还引不来么
    3 、个人感觉,不是太牛逼的选语言还是围绕类 c 语言来选,函数式语言不是那么好理解的
    hweining
        8
    hweining  
       2016-12-31 12:02:46 +08:00
    前端: node.js 从入门再入门 对了 iOS Dev 还有 swift
    xwartz
        9
    xwartz  
       2016-12-31 12:02:51 +08:00
    @xingo 该不会是 HTML / CSS / JS 吧...
    msg7086
        10
    msg7086  
       2016-12-31 12:04:22 +08:00   ❤️ 1
    比如我写 Python 的时候得强迫自己写出 Java 风,写 Ruby 的时候则要写出 Lisp 风。

    有时候感觉挺难的。
    liqingcan
        11
    liqingcan  
       2016-12-31 12:54:50 +08:00
    把搜索引擎的窗口备好,哪里忘了查哪里。
    jackisnotspirate
        12
    jackisnotspirate  
       2016-12-31 13:03:05 +08:00
    打开自己的代码库,照着风格写。
    t6attack
        13
    t6attack  
       2016-12-31 13:03:25 +08:00
    每门都学的浅,或者每门都学的深。都没这个问题。
    学的浅的你已经 BS 了,解决办法当然是往深了学了。
    lcc4376
        14
    lcc4376  
       2016-12-31 13:06:01 +08:00
    多語言(Python, C#, Javascript)+多系統之間切換(Windows, Mac, Linux Server), 久了就習慣了
    onlyhot
        15
    onlyhot  
       2016-12-31 13:12:08 +08:00 via iPhone
    php js 常常搞错
    RqPS6rhmP3Nyn3Tm
        16
    RqPS6rhmP3Nyn3Tm  
       2016-12-31 13:12:12 +08:00
    @murmur 我咋感觉函数比类简单呢,一般上手也是先学函数再学类啊
    RqPS6rhmP3Nyn3Tm
        17
    RqPS6rhmP3Nyn3Tm  
       2016-12-31 13:13:11 +08:00
    我反正写 Python 的时候总能写出一股 C 风,写 C 的时候一股 Python 风……
    billlee
        18
    billlee  
       2016-12-31 13:13:26 +08:00
    学 C++, 然后各种设计理念就都懂了
    bdbai
        19
    bdbai  
       2016-12-31 13:21:16 +08:00 via Android
    @BXIA 函数式语言😂不是函数
    sammo
        20
    sammo  
       2016-12-31 13:23:25 +08:00
    降低对于语言风格的敏感度
    RqPS6rhmP3Nyn3Tm
        21
    RqPS6rhmP3Nyn3Tm  
       2016-12-31 13:35:48 +08:00
    @bdbai oops ,想到了 Scheme ……
    stillsilly
        22
    stillsilly  
       2016-12-31 13:42:42 +08:00
    @xingo 23333
    exoticknight
        23
    exoticknight  
       2016-12-31 13:50:35 +08:00
    1. 用比较强的规范约束自己的代码风格
    2. 用 IDE
    eminemcola
        24
    eminemcola  
       2016-12-31 14:02:20 +08:00
    xml 算语言么 如果算的话大部分人每天都在至少两门语言中切换吧
    SingeeKing
        25
    SingeeKing  
       2016-12-31 14:05:13 +08:00
    做网站的:
    html css javascript
    php sql json xml
    嗯。。几门了。。。
    siloong
        26
    siloong  
       2016-12-31 14:22:06 +08:00
    同时在 N 多语言中切换。。刚切过去的时候比较混乱会忘记自己在写什么,写两行熟悉下就好了
    feng32
        27
    feng32  
       2016-12-31 14:32:05 +08:00 via Android
    平时工作用 c, bash, awk, python, html, javascript, ecma script
    自己的业余项目用 c++, c#, python

    切换起来没太大困难,多用用就熟了
    TheCure
        28
    TheCure  
       2016-12-31 14:42:39 +08:00
    IDE
    MrBearin
        29
    MrBearin  
       2016-12-31 15:10:06 +08:00
    @ragnaroks 这个网站赞啊
    deanguqiang
        30
    deanguqiang  
       2016-12-31 15:21:43 +08:00 via iPhone
    每天在 c python matlab verilog vhdl 间切换,有时需要看自己的老代码来回忆一下正确的语法
    yellowV2ex
        31
    yellowV2ex  
       2016-12-31 15:22:18 +08:00
    我以为是普通话和粤语
    cuebyte
        32
    cuebyte  
       2016-12-31 15:28:34 +08:00
    前端工程师笑而不语
    iyaozhen
        33
    iyaozhen  
       2016-12-31 15:29:40 +08:00 via Android
    IDE 的重要性
    然后还有代码规范

    感觉还好吧
    GtDzx
        34
    GtDzx  
       2016-12-31 15:33:06 +08:00
    不太严格的讲,一个编程语言有数组、 if 、 for 或函数调用就是图灵完全的。用这些啥都能写出来了。
    murmur
        35
    murmur  
       2016-12-31 15:33:26 +08:00
    @BXIA 函数式编程。。。可能我打错了?
    lain0
        36
    lain0  
       2016-12-31 15:36:23 +08:00
    多语言之间切换
    多编辑器之间切换
    多浏览器之间切换
    多操作系统之间切换
    #神级操作
    jy01264313
        37
    jy01264313  
       2016-12-31 17:00:50 +08:00
    用 google 就好了
    imbahom
        38
    imbahom  
       2016-12-31 17:07:15 +08:00 via Android
    每天要用到: 接 sdk , Java,Objective-C , php,lua ,c++ ,打包工具 Python,JavaScript 。
    现实就是,经常会间歇性地对正在用的语法产生怀疑
    Xrong
        39
    Xrong  
       2016-12-31 17:22:58 +08:00
    js, python, php 经常搞混。。。
    dtw5t
        40
    dtw5t  
       2016-12-31 17:41:12 +08:00
    前端: HTML 、 CSS 、 JavaScript 、 node.js 、 Vue.js
    maomaomao001
        41
    maomaomao001  
       2016-12-31 17:59:51 +08:00 via Android
    @eyp82 HTML , css JavaScript 呗~~~ 又或者 react , sass , typescript ,各种
    Allianzcortex
        42
    Allianzcortex  
       2016-12-31 18:07:31 +08:00
    Java Python Scala 混用,表示还好.......

    Python 不建议用 map/reduce ,建议用 list-comprehension 来解决问题。但 Scala 虽然有 for-yield ,却一直要用 map/reduce 一系列的函数式操作来处理 Immutable Object ...

    Java 语法是 verbose yet obvious , JavaBean 风格的代码写着好变态,但 Java 的 GC 和应用场景都不用说,不用都不好意思
    tairan2006
        43
    tairan2006  
       2016-12-31 21:16:38 +08:00
    唯手熟尔
    ihuguowei
        44
    ihuguowei  
       2016-12-31 21:51:52 +08:00 via Android
    好多前端强行几种语言,能够算得上的只有 JS 吧,还有框架跟语言分不清的~~
    dusong7
        45
    dusong7  
       2016-12-31 21:54:15 +08:00
    python C C#。。。。
    indooorsman
        46
    indooorsman  
       2016-12-31 22:04:30 +08:00 via Android
    html css js 算 3 种语言么😂
    indooorsman
        47
    indooorsman  
       2016-12-31 22:07:43 +08:00 via Android
    原来有段时间同时写 Python JS Java ,写出来都是 JS 风格…
    kingcos
        48
    kingcos  
       2016-12-31 22:23:51 +08:00
    前段时间写数据结构,在 C C++ Java Objective-C Swift 之间切换。。。
    之前看 iOS 的视频,看 OC 直接翻译成 Swift 。。。
    fox0001
        49
    fox0001  
       2016-12-31 22:26:51 +08:00 via Android
    多写代码
    Immortal
        50
    Immortal  
       2016-12-31 22:29:17 +08:00
    经常接触
    wudanyang
        51
    wudanyang  
       2016-12-31 22:53:41 +08:00
    搞定一门语言,然后在这个基础上延伸
    yunshansimon
        52
    yunshansimon  
       2016-12-31 23:09:20 +08:00 via iPad
    写网页可以快速在 html , css , js 里切换。因为它们完全不同。一个阶段只能写一种主语言,写 swift 的时候换到调试 java 会疯的。写之前先要进入状态,先设想一下可能使用的伪代码,然后写实现。上层逻辑是差不多的,比如都是 mvc 模型。后端都是路由加 api , php 和 nodejs 是完全一样的。数据库访问 sql 和 nosql 完全不一样,建议别混写。我在同时写后台 nodejs 加 mongodb 和前台 android 加 sqllite ,尽量把数据访问包装成相同对象,相同方法和属性,只在真正实现方法上再写不同。以前从来不在 java 里用 callback 的,现在上来先写 interface …所以,用多种语言习惯了也没那么可怕,但过程确实痛苦。
    blueset
        53
    blueset  
       2016-12-31 23:45:21 +08:00 via Android
    在 Python 3, PHP, JS, C/C++, HTML/CSS, zh-CN, en-US, ja-JP 之间切换过,感觉基本上忘了的话就去查文档吧。
    至于习惯思路之类的基本上有一种跟语法一体的感觉。
    zonghua
        54
    zonghua  
       2016-12-31 23:51:15 +08:00
    我精通的一门编程语言叫做 BUG
    kmyzzy
        55
    kmyzzy  
       2017-01-01 00:29:22 +08:00 via Android
    @lain0 还有多性别之间切换
    konakona
        56
    konakona  
       2017-01-01 04:19:14 +08:00
    各自的 IDE 一定要有。
    haoc
        57
    haoc  
       2017-01-01 05:49:23 +08:00
    @Allianzcortex python 为什么不建议 map/reduce?
    wweir
        58
    wweir  
       2017-01-01 07:58:27 +08:00 via Android
    @lain0 这几个具体都做到了,特别是操作系统。现在 3 个主流操作系统都在用
    linux40
        59
    linux40  
       2017-01-01 08:30:08 +08:00 via Android
    熟能生巧
    y1shan
        60
    y1shan  
       2017-01-01 09:02:21 +08:00
    肌肉反应
    Allianzcortex
        61
    Allianzcortex  
       2017-01-01 09:21:11 +08:00 via iPhone
    @haoc 因为可读性差。 3 里面已经把 reduce 放到 functools 目录下了,必须引用才能用
    libook
        62
    libook  
       2017-01-01 09:59:20 +08:00   ❤️ 1
    其实楼主应该是想问如何在特性不同但可用在同一领域的语言中切换;比如同样是服务端开发,有时候会因为追求不同特性而在一个项目的不同子项目使用不同语言,举个例子,基础业务使用 JS ,部分旧业务不重写继续用 Java 、 PHP 、 Ruby ,认证授权使用 C++,在一个迭代中可能需要在这些语言中来回切换。。。

    不同语言对面向对象、同步异步思想等等支持是不一样的,设计程序和架构的时候也要区分考虑。

    这也是我比较困惑的问题,有的时候甚至是同一门语言用在不同地方也是不一样的,比如 JS 用在服务端有 require 很方便,但用在前端通常都是在 babel 下用 import ,然后在旧版 MongoDB 中只能用 ES5 。

    可能搜索引擎做速查是个比较靠谱的方法。
    eyp82
        63
    eyp82  
    OP
       2017-01-01 10:18:50 +08:00
    @libook [handshake][handshake]
    yuchting
        64
    yuchting  
       2017-01-01 10:41:42 +08:00 via Android
    一般写游戏程序前端用 c#,后端用 java ,切换难度小,有时候会写 js ,这个时候难度较大,需要自己以前的学习笔记和 google
    kaneg
        65
    kaneg  
       2017-01-01 10:51:51 +08:00 via iPhone
    我平时的工作就是在 Java 和 Python (严格来说是 Jython )之间切换,偶尔在语法上会出现一些交错,但都是小问题。编程主要还是一个思路问题,两种语言让我思路更开阔,不会被一种语言的缺点束缚,在一种语言有瓶颈的时候也许另一种可以轻松解决。
    iLluSioN
        66
    iLluSioN  
       2017-01-01 11:26:44 +08:00
    写 Python 的时候总想加分号……
    mingyun
        67
    mingyun  
       2017-01-01 12:01:02 +08:00
    @iLluSioN 加分号也没错吧
    singer
        68
    singer  
       2017-01-01 12:11:39 +08:00 via iPhone
    C++ PHP 作用自如
    结尾都要;
    不慌
    Senevan
        69
    Senevan  
       2017-01-01 12:11:47 +08:00 via Android
    JS PY C VHDL Matlab 这一个学期同时用简直痛不欲生
    Senevan
        70
    Senevan  
       2017-01-01 12:14:49 +08:00 via Android
    只要别碰硬件描述语言,什么都好说,硬件描述语言无论之前用什么熟都会感到别扭
    svenFeng
        71
    svenFeng  
       2017-01-01 13:26:18 +08:00 via Android
    C++/Python 切换的时候,写 Python 常写 if/while 带括号、语句带分号,不过 pep8 提示一下写写就换过来了
    jydeng
        72
    jydeng  
       2017-01-01 14:30:22 +08:00
    没什么问题好像, js 、 C#、 sql 无缝切换
    moliliang
        73
    moliliang  
       2017-01-01 14:48:25 +08:00
    多写
    geralt0725
        74
    geralt0725  
       2017-01-01 15:50:24 +08:00
    问这类问题的时候,脑子里是不是只有代码实现本身?

    在代码实现之外,技术还有很多东西
    在技术本身之外,依然还有很多东西

    代码垃圾不垃圾就那么重要吗?
    everettjf
        75
    everettjf  
       2017-01-01 17:17:37 +08:00
    边百度边写
    iLluSioN
        76
    iLluSioN  
       2017-01-01 18:47:11 +08:00
    @mingyun 加了倒是也能用 但是一般都不加……
    z742364692
        77
    z742364692  
       2017-01-01 22:28:48 +08:00 via Android
    Java+JS 是少不了的
    z742364692
        78
    z742364692  
       2017-01-01 22:29:26 +08:00 via Android
    还有个 SQL 也跑不掉
    Tokin
        79
    Tokin  
       2017-01-01 22:53:35 +08:00
    脑子里第一个想到的就是 IDE 里,不同的语言不同的高亮规则。。。
    colewp
        80
    colewp  
       2017-01-02 02:04:29 +08:00 via Android
    Java/Python/JS/Node.js/PHP/HTML/CSS ,目前就这些,我觉得还好,不会混乱
    itkdqwzero
        81
    itkdqwzero  
       2017-01-02 10:48:29 +08:00 via Android
    项目间切换会慢一点
    特别是工作与个人项目的切换,架构与底层技术都不一样
    做技术不能怕麻烦
    cleveryun
        82
    cleveryun  
       2017-01-02 10:53:36 +08:00
    切换语言?很多时候可能是因为切换了项目,讲真,老切换项目容易心情烦躁。
    Flygoat
        83
    Flygoat  
       2017-01-02 19:22:16 +08:00
    你会看到我在 PHP 里莫名其妙调用 Python 解析器。
    zxgngl
        84
    zxgngl  
       2017-01-03 01:37:23 +08:00
    我的经验是,当你使用两门语言都很熟练的时候,切换起来就容易了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5513 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 06:58 · PVG 14:58 · LAX 23:58 · JFK 02:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.