转语言真的这么容易吗?

2023-11-03 13:40:21 +08:00
 ThinkStu

在 v2 里面泡的久了,经常能在许多帖子下面看到有人说“转语言非常容易”,Go 语言能半天入门 、Java 太简单了之类的回复。

但是在我看来事情却没那么容易,换一门语言就意味着框架、最佳实践、对接第三方开发等都要重来一遍。自从 4 个月之前从 Java 转到 go ,过程中经历了许多“痛苦”,慢慢的我发现转一门语言没有那么容易,学了四个月都不敢说自己已经掌握 go 开发,越学到后面发现自己不会的也越多,同时 Java 的语法也忘了一些。

作为一名对编程有着较大兴趣的爱好者,想知道大家对此事的看法。

1. 转语言是否是一件容易的事?

2. 真的有人同时擅长多门语言,并且写的都不赖?

7001 次点击
所在节点    程序员
75 条回复
dreamingclj
2023-11-03 14:13:15 +08:00
我一个安卓开发,半个月时间转到 react native ,一个月后做完一个项目,又被转到 react,转到 react 只给三天时间学习,然后直接上手项目
yousabuk
2023-11-03 14:18:11 +08:00
要是学 C 而且学好了,个人觉得转其他语言比较快。
就像学会了九阳神功学其他什么武功都快。

目前常用 C, Java, LabVIEW, Vue ,混合开发,感觉也还写的不赖。

C:主要写底层
Java:主要写和数据处理的,TCP/IP ,数据库等
LavVIEW:主要用来工控方面的
Vue:就是 web 前端了(嵌入式设备或服务配置页面)
yousabuk
2023-11-03 14:20:16 +08:00
多语言混合开发,定位 OK 符合自身工作需求,还是比较轻松的。
tangtang369
2023-11-03 14:39:11 +08:00
工作中日常实用 c++ python Go
了解一定规则后其实无所谓语言的,会一种则会 n 种
yazinnnn0
2023-11-03 14:41:57 +08:00
从 java 糊业务变成 go 糊业务有啥难的

如果换赛道的话那当然难了
NoNewWorld
2023-11-03 14:43:01 +08:00
转语言不难,难的是转风格,我工作 java ,但是日常会写 c++等其他的,现在写其他也一股 Java 味
dilu
2023-11-03 14:57:06 +08:00
写业务代码不觉得有多难,我转 Go 一周左右简单业务 curd 一点问题都没有了。别的语言不太确定。
henix
2023-11-03 15:01:03 +08:00
我觉得编程语言之间还是有很多共性的,如果你见得多了,多思考,我认为转语言不难。

例如 Java, Python, js 都有迭代器( iterator )概念,Python 和 js 都有生成器( Generator )概念。Java 和 Python 都是面向对象,但 js 就不是,而是基于原型( Prototype-based )的,另一个基于原型的语言是 Lua 。而 Go 就更不面向对象,Go 的抽象方法是 interface ,是基于胖指针( fat pointer )的,另一个与之类似的是 Rust 的 trait 。

有些语言是静态类型,还有些语言是动态类型。你会发现静态类型语言有一些相似的处理方法,比如 Go 中 json 转换是声明一个类型然后用 tag 标注字段名,而 Java 的 gson 也可以用注解来标注字段名。而动态语言的 json 转换就完全不同。

推荐在你现在的基础之上再学习一门动态语言,例如 js 或 Python ,有了更多实际经验就能思考语言之间的共性和个性。
tairan2006
2023-11-03 15:12:12 +08:00
我学过的,大部分很容易,除了 Haskell 和 Rust
dacapoday
2023-11-03 15:12:28 +08:00
学精一门,一通百通,而且市面上的工程语言几乎都是 C 家族的,学好 C 语言,最好是 C/C++,那 Golang ,Java, 这些有如简化了的 C/C++ 手到擒来。Python 更是无师自通。js 如果掌握了原型链和历史包袱相关的怪癖,也不难。
但如果是转非 C (比如 lisp 家族),clojure 和 prolog 这些比较难了。
alfa
2023-11-03 15:15:34 +08:00
有实际业务,挺容易转的,我 3 年前 iOS 转 Java ,没什么压力。就是现在再看自己写的第一个 Java 项目有点不忍直视。
houshuu
2023-11-03 15:16:18 +08:00
平常工作中由于前后端和数据模型都有涉及到, C++, Go, Java, Kotlin, React, Python 这些都是日常使用. Rust, Lua, C#自己做副业会用. 应该算比较多语言的程序员.

学生时代随波逐流各种学, 为了刷题学 C++, 觉得前端很酷炫学了 Vue, 想做 App 学了 Swift, 研究后来去了机器学习方向就用了 Python 和 R, 倒是工作后其实没怎么学新的语言了. 个人体会就是语言学的越多, 新语言就学的越快. 原因很简单, 大部分语言都是互相抄, 缝合的比例不大一样罢了.

楼上有说九阳神功类的语言, 一通百通, 我这里重推 C++, Haskell, React.

写的不赖其实很多人都可以, 但是某个语言精通其实还是很困难的. 因为我们大部分情况对于一个人精通某个语言的感觉往往代表的不是对敲代码的掌握, 而是对这个语言相关工具链和设计上的了解. 比如看报错快速定位, 大概扫一眼代码直接就能感觉到 Bug 在哪里. 或者哪些坑是非常常见的, 哪些写法是容易产生 bug 的. 有时候这个水平甚至还和这个语言生态中用的多的框架强关联, 比如 Java 和 Spring. 就和打游戏一样的, 可以玩一堆 fps 游戏, 都打的挺准, 但是守望先锋玩的好和 cs, pubg 打得好肯定有挺多游戏理解上的不同的.
dearmymy
2023-11-03 15:23:06 +08:00
@cdwyd 是的,我理解的转语言也是熟悉相关工具链,和语言特点。
iyaozhen
2023-11-03 15:36:42 +08:00
语法很容易

但很多最佳实践需要费点功夫。当然你要写啥都 java 味,也简单
pkoukk
2023-11-03 15:39:36 +08:00
语言虽多,但其实也就几个 “族”
c,c++,go 写起来非常像
java,c#,TypeScript ,写起来也很像
python 就不说了,究极融合怪,你用的语言的特性,或多或少它都有
Leonard
2023-11-03 15:42:24 +08:00
比新手入门容易,但肯定不是说换就换,语法换起来简单,特性、生态都要重新适应
ChoateYao
2023-11-03 15:45:58 +08:00
1 个月能上手,1 个月改造成自己的编程习惯框架,最重要的是先写起来,这样才有解决问题场景,才能进步
clue
2023-11-03 15:47:28 +08:00
有的语言间的差异非常大,比如 clojure 这种纯函数式的语言,我是不信能随便转过来的
不过同类语言转起来还是挺快的

但能写和写好差距可就大了,同样是 js ,有的人整天写屎山,有的人写出了 vscode 、typescript
dongdong12345
2023-11-03 15:48:21 +08:00
可能每个人理解难和简单的程度不一样,如果能写出一些小 demo 就算掌握了一门语言,那这也太好掌握了,谁上谁都行啊。
getzhujie123
2023-11-03 15:50:12 +08:00
入门都不难,要做到精通就有点难了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/988250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX