在这之前,我是一名Java程序员,但最近我却已经好几个月没写Java代码了,因为我已经敲了好几个月的go,这是我连续最长的一段时间在写go。陆陆续续地算下来,也有快一年多的时间在与go打交道。期间写了不少的代码,也粗略地读过大神们写的书以及诸多乐于分享知识的大大们的博客,从中受益匪浅。感谢他们让计算机这个世界变得这么地美好!

  我常常在想,go的某些特性、设计甚至是语法,在其他语言中是怎么样的?当然这不仅仅局限于从Java语言的层面,从C/C++,Python,Javascript,Common Lisp。就像《七天七语言》一书那样,是否可以从中窥探语言设计者们的思想或者思维方式,尽管万变不离其宗,所有的高级语言的代码都会经汇编,然后变成计算机可以执行的机器码。

  有对比才有伤害,到目前为止,go 语言让我不爽的除了又臭又长的 error 处理方式、没有泛型、不能直接使用C++代码之外,似乎一切看起来都那么地美好。写多几遍之后,会不知不觉得感到屏幕带来的视觉与心理感受是那么地舒畅。

  我甚至都开始忍受不了Java满天飞的class以及难看地不得了的lamba表达式,忍不住在反思自己这些年到底是怎么走过来的,不住地反问为什么会有Java bean这个东西,要无聊地写那么多的 get/set(虽然后来有IDE或者其他工具可以自动生成get/set)。还有内部匿名类永远去不掉的final,千百回多么不情愿地使用只有一个元素的数组传参。但是你仍然不得不感叹Java生态的强大与完善,有那么解放生产力的工具、库包、系统可以使用,JDK也远比go做得更易于普通程序员使用。

  因而go有不少的轮子需要再造,区别只在于是官方出品还是众人出品。今天这是一个起点,我准备在这里写写自己在与 go 语言切磋的过程中的一些心得体会、感悟之类,当然也可能会讲一些基础知识。工作之余,努力更新。

不一样的go语言创世的更多相关文章

  1. C/C+ 感触

    1.       C/C++语言开发的首选利器- C++Test       以前在windows平台下的开发,使用的框架主要是MFC,以及console工程(基于win32SDK),属于纯C/C++ ...

  2. Go语言开发区块链只需180行代码

    区块链开发用什么语言?通过本文你将使用Go语言开发自己的区块链(或者说用go语言搭建区块链).理解哈希函数是如何保持区块链的完整性.掌握如何用Go语言编程创造并添加新的块.实现多个节点通过竞争生成块. ...

  3. [区块链\理解BTCD源码]GO语言实现一个区块链原型

    摘要 本文构建了一个使用工作量证明机制(POW)的类BTC的区块链.将区块链持久化到一个Bolt数据库中,然后会提供一个简单的命令行接口,用来完成一些与区块链的交互操作.这篇文章目的是希望帮助大家理解 ...

  4. 使用Go语言编写区块链P2P网络(译)(转)

    转自:https://mp.weixin.qq.com/s/2daFH9Ej5fVlWmpsN5HZzw 外文链接: https://medium.com/coinmonks/code-a-simpl ...

  5. 【区块链Go语言实现】Part 1:区块链基本原型

    0x00 介绍 区块链(Blockchain)是21世纪最具革命性的技术之一,目前它仍处于逐渐成熟阶段,且其发展潜力尚未被完全意识到.从本质上讲,区块链只是一种记录的分布式数据库.但它之所以独特,是因 ...

  6. 从Go语言编码角度解释实现简易区块链

    区块链技术 人们可以用许多不同的方式解释区块链技术,其中通过加密货币来看区块链一直是主流.大多数人接触区块链技术都是从比特币谈起,但比特币仅仅是众多加密货币的一种. 到底什么是区块链技术? 从金融学相 ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链]

    [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链] 项目实战 实战4:从零实现BTC区块链 我们今天来开发我们的BTC区块链系统. 简单来说,从数据结构的 ...

  8. ShoneSharp语言(S#)的设计和使用介绍系列(11)—“类”披炫服靓妆化成“表”

    ShoneSharp语言(S#)的设计和使用介绍 系列(11)—“类”披炫服靓妆化成“表” 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Sh ...

  9. C语言 · 高精度加法

    问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...

随机推荐

  1. HTML5中<template>标签的详细介绍

    HTML5中<template>标签的详细介绍(图文) 这篇文章主要介绍了HTML5中的template标签,是HTML5入门中的重要知识,需要的朋友可以参考 一.HTML5 templa ...

  2. 数据库操作之整合Mybaties和事务讲解 5节课

    1.SpringBoot2.x持久化数据方式介绍          简介:介绍近几年常用的访问数据库的方式和优缺点 1.原始java访问数据库             开发流程麻烦           ...

  3. Three.js基础探寻二——正交投影照相机

    本篇主要介绍照相机中的正交投影照相机. 第一篇传送门:Three.js基础探寻一 1.照相机 图形学中的照相机定义了三维空间到二维屏幕的投影方式. 针对投影方式照相机分为正交投影照相机和透视投影照相机 ...

  4. Bootstrap3.0学习第五轮(表格)

    详情请查看 http://aehyok.com/Blog/Detail/11.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:h ...

  5. Websphere MQ Cluster

    大纲: 1.什么是集群 2.建立一个基本的集群 3.DISPLAY命令 4.负载均衡 5.高级配置和管理 6.答疑 7.关于文章.红宝书等 一. 什么是集群       集群就是Websphere M ...

  6. spring mvc 返回类型

    spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void 小结:1.使用 String 作为请求处理方 ...

  7. jquery学习集合

    跳转网页:$(location).attr('href', '/index');

  8. vue系列之生命周期

    代码: <body> <div id="app"> {{message}} </div> <script type="text/ ...

  9. CSS Grid 布局

    CSS Grid 布局是 CSS 中最强大的布局系统.与 flexbox 的一维布局系统不同,CSS Grid 布局是一个二维布局系统,也就意味着它可以同时处理列和行.通过将 CSS 规则应用于 父元 ...

  10. java多线程快速入门(九)

    多线程安全问题(卖火车票案例) package com.cppdy; class MyThread5 implements Runnable{ private Integer ticketCount= ...