终于有空看看go的tutorial. 粗鲁看下,开始并没觉得有什么新意. 很中规中矩的语法. 当然,少不了带有python的一点风格. 或者也不能完全说是python的风格,而是类动态语言的风格: 运行时类型绑定. 在基本数据类型方面,算是正式把c/c++里的一些潜规则内置为语言基本属性了. 比如uint,int32等. 既然需要明确数据类型大小,那就直接上升为语言特性好了. 注意到它们之间是不能直接转换的. 这个也许是出于安全考虑? 尤其是32和64以及有符号和无符号之间,隐式转换应该确定为一个怎样的效果呢? 不能确定,于是就限制为只能显式手工转换了. 在众多常见的数据类型里,还有一个是string. 这个应该算是必不可少的一个类型吧. 跟其他语言稍微有点不同的是,string是不可写的. 也就是说,对于实际上string底层所指向的内存区域是不可写的. 至少在语法上是如此. 按照文档上的说法,其实就是const的语义. 值得注意一下的是map这个类型. 在所知的大多数语言里都提供有map功能,但是作为一个内置数据类型,go应该算是比较特殊的一个. 但是想想.go的创造者和推动者是google,想想google搜索下面的mapreduce就明白了. 很好奇go底层会如何实现这个map,让他便捷快速轻量而又泛型. 不过泛型map应该归功于语言本身的动态属性吧. 很好奇一个据说有gc功能的编译型语言,在没有虚拟机的基础上,是如何做到gc的? 是在每个runtime上构建一个轻量gc么? 同时存在的还有称为channel的东西. 一个类似线程安全的队列或者pool. 有着erlang的风格. 尤其是配合go特色的函数定义--多返回值. 某种程度上,一眼看上去跟erlang是何其相似. 不同的是erlang是functional programming language,没有所谓的变量.一切都是可推导计算的. 有一点比较有意思的是go对于interface的定义. 通常的oo编程,都会有比较严格的类层次关系. 也就是说子类和父类之间会有比较明显的is关系. 从语言角度上,通常这种is约束或多或少地会在语法上有所约束. 比如java里的extends,implements. 如果设计之初没有考虑到这种类层次关系,而后期需要让其重构符合的话,势必会对源代码产生影响. 即使当初比较有远见地采用了统一接口. 但是,不能保证接口的继承关系能覆盖特定特征的集合. 而go的作法很巧妙,也很天才. 既然这种is的关系是抽象出来的,那么,并不需要过多地把它变成语言上面的一种强约束. 因为毕竟,这种抽象依据角度和站立的层面不同. 于是,go选择了很松散的is关系定义: type Sample interface { sampleFunction( parameter Type1 , ... )(return_item Return_Type1 ...); } 只需要对以及由的类进行统一抽象,那么即便是在后期,也可以做出不同的is关系. 更多的时候,这是一种组合式的is构建方式. 对于一些敏捷开发方式来说,这个对于迭代式建模开发其实是一件利器. 虽然,某种程度上说,需要这种方式的设计,本身也并不能算是一种非常良好的架构. 但是,却能产生一个良好的架构. 毕竟,从开始,需要限制的条件就不多了,于是后期系统少了更多的限制,也就多了更多的自由. 这就是所谓架构的伸缩性. 过多的假设是制约的是未来发展的弹性空间. 且不说这个interface的风格,至少个人是比较喜欢的. 至少觉得描述能力比较强. 尤其是做一些REST风格的,或者需要自我描述性比较强的场合. 一个或许能动态解析,甚至动态层次化的结构的特性,多少算带给人新的思路. 如同当初erlang带来的绕道的思路一样. 不过,话说回来. go也许很适合google,但是google能不能把它发展起来,还持观望态度. 虽然据一些测试,go对于高并发时候的性能还是很稳定的. 但不出色. 而且如interface的概念能让人眼前一亮,但似乎并不能找到很好的工程化的模式. 也许,这需要时间吧. 毕竟,在go之前,google也尝试了一个类java的noop. 后来似乎没什么动静了. 也许是感觉跟jdk7的某些特性冲突了吧.
2009-12-05
go杂记
订阅:
博文评论 (Atom)
爽文
去看了好东西. 坦白说,多少是带着点挑刺的味道去的. 毕竟打着爱情神话和女性题材的气质,多多少少是热度为先了. 看完之后倒是有些新的想法. 某种程度上来说,现在的年轻人或者说声音就像小叶. 只要说点贴心的话就能哄好. 也是那种可以不用很努力了. 留在自己的舒适区避难所小圈子抱团就...
-
最近尝试了下海淘. 当然,方向上来说是从国内到新加坡. 先是买了个iPhone,算上运费和双重征税,到手比官方还是便宜个一两百新的. 换算回来也不多事10%的纯粹价格因素差异. 当然,之类有电商促销的因素. 也有比较基准是新加坡Apple Store售价的原因. 但如果同样比较A...
-
这两天看完了Netflix版的三体. 某种程度上来说,完成度还是不错的. 尽管开始的时候对于第一集片头有些争论,但整体如果带入当下去看的话,还是有些梗的. 比如三体对于地球科技的发展速率的担忧,由此衍生的智子. 以及现有力量对比上的压倒性优势. 如果带入中美关系以及各自的历史阶段...
-
前几天Sora出来后才仔细看了下diffusion,发觉确实算挺取巧的. 按照naive的intuition或者说不那么现代的方式的话,可能需要segmentaion为基础的composite的方式去生成图片,即使扯点deep learning/network的,可能也是类似一些...
没有评论:
发表评论