文章列表
-
wxMEdit 3.2 发布了!新增法文翻译、RISC-V 打包
刚刚发布了 wxMEdit 3.2,并开启了版本更新检测。 wxMEdit 是对编码和十六进制编辑支持很好的文本编辑器,尤其是在十六进制模式下也能支持各种编码。 wxMEdit 是 MadEdit 的后继,并对其做了很多改进。下载地址为: https://wxmedit.github.io/zh_CN/downloads.html 欢迎大家下载使用,有问题可以在 GitHub 上反馈或者通过其他方式联系我。 ……
-
【灰蓝 Java 训练】如何处理空值
这个系列以练习为主,可能不会有多少讲述(当然本篇例外),可以作为初学者的自学验收之用。 Java 中有非受限的空值,并且不知哪时会引发 NPE(即 NullPointerException),解决这个问题对于 Android 开发来说很简单——用 Kotlin 就好了。 其实不仅限于 Android,对于服务端开发来说终极方案也应该是迁移到 Kotlin。 因为只要用 Java,空值问题就没办法彻底解决(之前在《现代编程语言系列2:安全表达可选值》中也提到过这点),而 JVM 平台主流工业级语言中只有 Kotlin 很好地解决了这一问题。 但是对于服务端开发来说,常有各种非技术原因不能在项目中以 Kotlin 取代 Java,对于这些项目来说显然没办法彻底解决空值问题。 那么有没有一些方法与工具可以让空值问题处理起来尽可能规范、简易些呢?这里有几点经验分享。 ……
-
追随 Kotlin/Scala,看 Java 12-15 的现代语言特性
Java 14 发布已经过去了三个月,Java 15 目前也已经到了“Rampdown Phase One ”阶段,其新特性均已敲定。 由于 12-15 都是短期版本,无需考虑也不应该将其用于生产环境。但可以提前了解新特性,以免在下一个 LTS(Java17)正式发布时毫无心理准备。 Java 12-15 引入了一系列改进,本文只讨论语言层面的新特性,它们看起来似曾相识——没错,这些特性让人感觉 Java 在沿 Kotlin/Scala 走过的路线前行。 ……
-
在 Kotlin 中“实现”trait/类型类
trait 与类型类都是什么 trait 与类型类(type class)分别是 Rust 与 Haskell 语言中的概念,用于特设多态(ad-hoc polymorphism)、函数式编程等方面。 ……
-
现代编程语言系列2:安全表达可选值
这里的可选值(optional value)是指可能无值也可能有一个值的情况,在一些编程语言中称为可空值(nullable value)。 问题与解决方案 传统编程语言中往往使用空值(null 或者 None、nil 等)来表达可选值,可谓简单粗暴。 ……
-
【怀旧】在 64 位 Windows 中运行 16 位 Windows/DOS 程序
相信好多人都知道,在基于 NT 的 32 位 Windows 中,可以通过 NTVDM 运行 DOS 程序,进而还可以通过 WOW 运行 16 位 Windows(Windows 1.x~3.x)程序。 但是在 64 位 Windows 中没有 NTVDM 与 WOW。 ……
-
【译】【图文】标准化中的 WASI:在 web 之外运行 WebAssembly 的系统接口
本文已获得翻译授权,译自 Standardizing WASI: A system interface to run WebAssembly outside the web,由作者 Lin Clark 于当地时间 2019-03-27 发布。 今天(当地时间 2019-03-27),我们宣布开始进行一项新的标准化工作——WASI,WebAssembly 系统接口(WebAssembly System Interface)。 ……
-
庆祝 Ktor 1.0 发布,分享 JetBrains 日讲稿及代码
非常值得庆祝的是,Ktor 1.0 正式发布了,Ktor 中文站也已更新。 Ktor 是 JetBrains 官方出品的互联应用框架。 使用该框架非常易于开发异步的服务器与客户端,并且能够充分利用 Kotlin 以及协程的优势。 ……
-
体验 Java 9(2):更新与非重大改动
本篇介绍 Java 9 更新以及一些非重大改动。 更新 Java 9 已经正式发布半年多了。这期间不仅 Java 9 发布了更新,就连 Java 10 也已正式发布。上一篇中提到的工具也都有更新。其中 IDEA 新版改进了不少 Java 9 支持,Eclipse 新版内置了 Java 9 支持(不再需要 Beta 版插件,但可能需要重装,不能直接从旧版升级)。最值得一提的是 lombok 1.16.20 发布。 ……
-
体验 Java 9(1):从 Hello World 到 Lombok
Java 9 正式版已于当地时间的 9 月 21 日(北京时间大约是今天凌晨)如期发布。可在 Oracle 官网下载。 ……
-
关于 Kotlin REPL 的两条小贴士
Kotlin 自带了交互式编程命令行,即 REPL(Read-Eval-Print Loop 的简写,直译为 “读取-求值-输出”循环),尤其适合快速实验一些东西。 本文只讲关于 Kotlin REPL 的两条 tips: 如何运行 REPL; 如何在 REPL 中查看推断出的类型。 ……
-
Kotlin 版图解 Functor、Applicative 与 Monad
本文是从 Haskell 版 Functors, Applicatives, And Monads In Pictures 翻译而来的 Kotlin 版。 我同时翻译了中英文两个版本,英文版在这里。 与从 Swift 版翻译而来的 Kotlin 版不同的是,本文是直接从 Haskell 版原文翻译而来的。 ……
-
Kotlin Functors, Applicatives, And Monads In Picture
This is a translation of Functors, Applicatives, And Monads In Pictures from Haskell into Kotlin. I have also translated this into Chinese: Kotlin 版图解 Functor、Applicative 与 Monad. Different from the Kotlin translation from Swift, this is translated directly from the original article. ……
-
现代编程语言系列1:静态类型趋势
静态类型是现代语言的发展趋势之一。近年来,不仅有很多静态类型的现代语言兴起,还有不少动态类型语言也在引入静态类型支持。 ……
-
开源文档翻译的质量保障实践
五月份,我宣布了 Kotlin 官方参考文档翻译完毕的消息,其中有提到这也是唯一一份完整且最新的官方参考文档翻译。不仅如此,其中值得一提的还有翻译质量。 ……
-
【译】当 Kotlin 遇见 Gradle
本文是 Gradle 官网文章 Kotlin Meets Gradle 的译文。 原文发布于 2016-05-18,所以文中的时间都要再往前算一年。 如今 Kotlin 已经发布了 1.1,Gradle 已经发布了 3.5,Gradle Script Kotlin 也已经发布了 0.9.1,相对当时都更完善了很多。 ……
-
重温“千万字母表问题”看多范式编程语言改进
去年 11 月写了一篇《由“千万字母表问题”看多范式编程语言》,能够看到这些现代多范式语言的一些优势以及小的不足。而这些语言也在不断演进,时隔半年多我们再重温下相同问题,看看它们的改进成果。 ……
-
扔掉 OpenSSL,拥抱 LibreSSL——远离心脏出血与溺亡
缘起 早就想写这篇推荐大家用 LibreSSL 取代 OpenSSL 的文章,总算能够如愿。 2016 年 3 月初 OpenSSL 再次爆出与 2014 年的心脏出血(Heartbleed)同样严重的新漏洞——溺亡(DROWN)! ……
-
【译】Spring Framework 5.0 中引入 Kotlin 支持
【译注】本文是 Spring 官网博文的译文,英文原版在:https://spring.io/blog/2017/01/04/introducing-kotlin-support-in-spring-framework-5-0。 我们在几个月前介绍了 start.spring.io 对 Kotlin 的支持 ……
-
Kotlin 概览——如何看待 Google 将 Kotlin 选为 Android 官方语言?
Kotlin 作为 Android 开发语言是大势所趋。 在此之前很早,Kotlin 就有“Android 世界的 Swift ”的称号。当然在这之前大家这样说难免有些底气不足 ……