十年前上大学想学 rails,打魔兽和英雄联盟耽误了 毕业后想学 rails,工作太忙学不进去
2014-2019 在金融公司干了五年信贷审核后 找了一家培训公司包装了下在招商系做数仓工程师
现在业余做海外网络营销方面的东西 现在主要用 wordpress 配合一些插件
现在想学个语言能够自由去根据自己业务做定制开发 考虑 ruby 和 go 要求上手快、优雅、开发快
自己技能背景 sql/plsql、oracle、hive、hadoop
平时工作比较忙 基本属于 995 一般晚上才有时间来打理自己的东西
恳请各位大佬给一点意见
楼上老哥这么一提,我倒是想起那个赌博老哥了,连载好多年,中途也是培训上岸,最后好像忍不住又亏回去了,大风大浪的故事。
成年人全都要,先搞 rails 后搞 go
推荐一个 vlang,新语言,广告词:易读易写,一个小时入门。
基于 go 语言改进的,可以看看。https://vlang.io
vlang 可以说是静态的 python 语言,python 今年已经成为排行榜第一语言了。
Aha,十几年前我也碰到过类似的选择 Ruby vs Python。2009 年那会儿 Rails 如日中天,我那会儿纠结 Ruby vs Python。后来把 Ruby 和 Python 的 Tutorial 都过了一遍,从个人 coding 体验来讲依然选择了 Ruby。 之后十年的工作虽然在工作中使用的机会不多,不过哟一直用 Ruby 作为脚本语言给自己写工具,自己的 side project 也会用 Ruby。整体体验是:Coding 体验非常好,开发效率奇高。
对于 Ruby & Rails 最大的收益是社区,Ruby 社区非常活跃(比如这里)。Ruby 社区(Ruby-China)算是给我带来了 Life Change 级别的机会,8 年前从这里联系上了 ThoughtWorks,后来加入了 ThoughtWorks。
如今人在墨尔本,最近刚刚又结缘 Ruby 加入了一家非常优秀的产品公司。
个人建议,选一个立即开始就好了,10 年后再回顾当时的选择吧。
果断学 GO。1 天上手。就学 菜鸟教程中的内容,贼简单。 而且 Gin, Gorm 用起来跟 Rails 无缝衔接。
语法比 Rust 简单很多
v 与 go 语法类似,不过错误处理改进了,没有 rust 那般复杂。我玩了几天,感觉很好。我感觉就是我想要的语言。
介绍里说追求简单和最少的抽象,只有几个基本概念结构、枚举、接口、函数、范型等等。我感觉作者是很用心地在简化。
另外作者是通过 patreon 在募捐开发,我觉得这个是很好的方式,可以支持一些有才华的作者。我在 b 站听的 OneVoice 儿童乐团也是 patreon。这方面国内听说有类似网站,似乎还不行,没听说很有名的项目。
当然目前还不是正式版本,适合于自娱自乐。
我发一个例子 TCP echo server 供参考,与 go 非常相似,错误处理简洁:
import io
import net
// This file shows how a basic TCP echo server can be implemented using
// the net module. You can connect to the server by using netcat or telnet,
// in separate shells, for example:
// nc 127.0.0.1 12345
// or
// telnet 127.0.0.1 12345
fn main() {
mut server := net.listen_tcp(.ip6, ':12345') ?
laddr := server.addr() ?
eprintln('Listen on $laddr ...')
for {
mut socket := server.accept() ?
go handle_client(mut socket)
}
}
fn handle_client(mut socket net.TcpConn) {
defer {
socket.close() or { panic(err) }
}
client_addr := socket.peer_addr() or { return }
eprintln('> new client: $client_addr')
mut reader := io.new_buffered_reader(reader: socket)
defer {
reader.free()
}
socket.write_string('server: hello\n') or { return }
for {
received_line := reader.read_line() or { return }
if received_line == '' {
return
}
println('client $client_addr: $received_line')
socket.write_string('server: $received_line\n') or { return }
}
}
如果你是 Scratch 少儿编程,学什么都可以,重要的是逻辑思维训练和熟悉各种数据结构。
如果你是成年人,很不巧又在一家 35 岁劝退的公司,你的时间窗口很短,很可能你天天 practice 感觉 perfect 正要橹起袖子写代码的时侯,被莫名其妙劝退了。
所以理性的成年人要选择坑少 (低学习成本),高生产力 (高效在自由竞争市场上意味着更多的 money),表达能力强 (意味着应用范围广,不象够烂码农一个红头文件就把最主要应用场景堵死了然后就失业了),够烂是第一个是应该被 pass 的,c++/ java/nodejs调试成本太高, python 性能垫底,还有恶心人的强制 tab/数空格 , 剩下的就是 php 和 ruby 这俩都差不多,丢硬币随便选一个就行了
都是为够烂量身定做的
v=golang + rust 但是 vlang 注定流行不起来。因为码农迷信大厂,哪怕大厂端上一盘翔,用控制的媒体狂轰乱炸洗脑说这就是山珍海味,快吃吧吃吧,码农也吃得津津有味,哪怕是前面有码农吃翔吃到瘁死了,后面的码农依然前赴后继。但是个人或者社区出一个语言,只能慢慢积累,等到差不多成熟了,风口已经过了,最终蜕化成小众语言。
除了新闻这些,go 语言还是有很多项目的。
你有做什么 v 语言项目吗?我选择了一个 vex web 框架项目,另外打算学习下 v 编译器项目。
选框架不仅仅是从语言和技术层面来做取舍,要想自由的实现自己的业务,框架一定要提供大量丰富的基建,比如工作流引擎总是需要的吧。没有工作流引擎,光是实现 CRUD,哪个框架都可以。 强烈建议了解一下 CabloyJS 全栈框架,就知道我说的具体是什么概念了: