编程与软件工程evanmiller.org
我为何押注 Julia
Why I'm Betting On Julia
2014 — 2016,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
作者解释为什么押注 Julia 编程语言:它兼具 Python 式的易用性和接近 C 的性能,能直接查看生成的汇编代码,让科研人员不必在多种语言间来回切换。文章认为 Julia 有望成为连接不同背景程序员、尤其适合协作科学计算的通用语言。
为什么经久不衰:这是 2014 年对 Julia 的早期判断,多年后回看可以检验其预言,也能理解科学计算语言生态的演变。
HN 评论精选
Julia 让非编程背景的科研人员也能轻松上手,解决了跨领域协作的实际痛点
最近和朋友出去,其中一位提到 Julia 有多棒。我很惊讶听到有人谈起它,还是另一位科研工作者。她转过身来滔滔不绝地说 Julia 多么好用、社区多么友好,尽管她“算不上喜欢编程的人”。她喜欢到在酒吧里都向朋友安利!如果你能做出一门让不喜欢编程的人爱到在远离电脑时也口口相传、同时技术型用户也热爱的语言,那很像 OSX 终端加优雅 GUI 的结合。这很罕见,对协作科学也很重要。生物实验室里的人精通自己的领域,但花两年去学 C++ 是在解决错误的问题;而写计算库的人不得不翻译成 Matlab 或写封装,一旦编译出问题,对计算背景较弱的人来说非常痛苦。
kevinalexbrown查看英文原文
When out with friends recently, one of them mentioned how awesome Julia is. I was surprised to hear someone talk about it, even from another person in science. She turned and gushed about how awesome it was, how supportive the community was, even though she was "not really someone who likes programming." And she liked it so much she was telling her friends about it at a bar! If you make a programming language that people who don't like programming love enough to spread by word of mouth when not near a computer, which technically-oriented people also love, that's a lot like the OSX terminal + nice GUI blend. That's a pretty rare thing. And for collaborative science it's pretty important. Often, you'll have people in a bio lab who are very proficient in their area of biological expertise, but who would be solving the wrong problem by spending 2 years trying to become C++ hackers. On the other hand, there are a lot of people who write computational libraries, but know they have to translate them to matlab, or write a matlab wrapper and pray that their users can get it to compile which might sound simple to folks here, but is really frustrating for less computationally oriented people when something goes wrong.
作者贬低类型系统等语言特性是反智的,这些特性恰恰很重要
我很不喜欢文章开头的反智论调。“大多数编程语言的问题在于它们是由语言极客设计的,他们关心的是我不在乎的东西:安全性、类型系统、同像性等等”完全可以改写成:“大多数软件的问题在于它们是由计算机极客设计的,他们关心的是我不在乎的东西:信息安全、线程安全、模块化、硬件加速、系统设计等等。”
candybar查看英文原文
I really don't like the anti-intellectual tone of the beginning. "The problem with most programming languages is they're designed by language geeks, who tend to worry about things that I don't much care for. Safety, type systems, homoiconicity, and so forth." can be rewritten as: "The problem with most software is that they are designed by computer geeks, who tend to worry about things that I don't much care for. Information security, thread safety, modularity, hardware acceleration, system design, and so forth."
文章论证不够有力,且对 Node 流行原因的解读有误
我对 Julia 很期待,但我觉得这篇文章的推销做得不好。能导出生成的汇编很酷,但我更想看到一个强大的性能分析器的演示,好让我知道该先看哪个函数的汇编。我也不同意 Node 的流行源于“让不同群体用同一种语言编程”——据我观察,不是后端程序员热衷于在服务器上用 JS,而是前端程序员能把已有的 JS 知识用到后端。
kibwen查看英文原文
I'm excited by Julia, but I don't think this article makes a very good sell. It's neat that you can dump the generated assembly, but I'd rather see a demonstration of a robust profiler so that I know which functions I need to dump in the first place. I also disagree that the popularity of Node stems from "getting disparate groups of programmers to code in the same language". From what I've observed, it's not that back-end programmers are suddenly giddy at the prospect of getting to use Javascript on the server, it's that front-end programmers get to apply their existing knowledge of Javascript to back-end development.
Python 庞大的库生态是 Julia 最难逾越的壁垒
读到这里,我想到的是人们为让 Python 成为 Julia 目标市场的首选投入了巨量工时。正如作者所说,最大的短板是库,而这正是语言吸引力的重要来源。没人想在 C、Python、汇编之间切换来加速代码,但更少有人愿意为底层 C 代码写绑定。这恰恰违背了作者不想做的事——为了跑通代码而到处折腾。
phantom_oracle查看英文原文
When I read this, all I can think about is the enormous amount of man-hours people have put in to make Python the go-to for Julias target market. As the author says, the biggest drawback is libraries, and that is (1 of) the big attraction(s) towards languages. Nobody wants to have to switch between C, Python, Assembly, etc. to make their code faster, but even fewer people want to write bindings to underlying C code. This also goes exactly against what the author doesn't want to do, which is to yak-shave around the language to get things working.
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选