当前位置:网站首页>Dark网站的后端为什么选择F#? - darklang
Dark网站的后端为什么选择F#? - darklang
2020-11-09 00:38:00 【解道jdon】
Dark是一家提供构建无服务器后端的网站,使用该网站功能,只需编写您的后端代码,就不会发生基础架构,部署或部署方面的噩梦。如今支持这些功能的后端语言将从OCaml迁移到Dark。下面是他们的经验分享:
Dark的后端是37K行的OCaml,其中8K行是测试,而10K行是Dark标准库。因此,大约有2万行代码要移植。应该很有趣。
最初是希望选择Rust语言。Rust具有出色的工具,完善的库,令人愉悦的社区等。但是花了大约一个月的时间,我不能说我喜欢写Rust。特别是,我不喜欢在Rust中编写异步代码。我喜欢能有一种不错的高级语言,能够满足构建像Dark一样大的项目,但是Rust却不是那样的。接下来,我会发布“为什么Dark为什么不选择Rust”。或者我可以称其为“您永远不会相信垃圾收集器为您做了多少事情!”。
而F#与OCaml足够接近,具有强大的库支持,而到目前为止,工具都是强大而又糟糕的组合。90年代的Microsoft工具仍然存在,并且功能还不算太好,但总的来说,这比OCaml或Rust更好。
F#其实也是OCaml。由世界上最大、最有经验的编程语言创建者提供支持。OCaml很棒的地方F#也很棒!总和类型、静态类型、立即执行、管道、不可变值等等所有这些确实很棒。
当然,我选择.NET的主要原因还是因为它的库。具有用于所有内容的库,真是令人惊讶。虽然没有太多的F#第一方库,但是那里的每个供应商都有一个.NET SDK,您可以直接从F#中使用它。我期待最终对Honeycomb,Rollbar和Google Cloud提供第一方支持。
我真正喜欢的另一件事是文档和社区内容的质量。OCaml社区的很多内容都涉及该语言以及您可以使用该语言做什么。企业软件开发人员有数百万篇博客文章等,他们在讨论构建Web软件的最佳方法。
版权声明
本文为[解道jdon]所创,转载请带上原文链接,感谢
https://www.jdon.com/55262
边栏推荐
- 程序员都应该知道的URI,一文帮你全面了解
- leetcode之反转字符串中的元音字母
- App crashed inexplicably. At first, it thought it was the case of the name in the header. Finally, it was found that it was the fault of the container!
- Core knowledge of C + + 11-17 template (2) -- class template
- How to analyze Android anr problems
- What courses will AI programming learn?
- 平台商业化能力的另一种表现形式SAAS
- 大数据岗位基础要求有哪些?
- API部分的知识点复习
- Teacher Liang's small class
猜你喜欢
C++之异常捕获和处理
Bifrost 之 文件队列(一)
Flink's datasource Trilogy 3: customization
非阻塞的无界线程安全队列 —— ConcurrentLinkedQueue
Concurrent linked queue: a non blocking unbounded thread safe queue
Core knowledge of C + + 11-17 template (2) -- class template
Share API on the web
API生命周期的5个阶段
Using containers to store table data
C/C++编程笔记:指针篇!从内存理解指针,让你完全搞懂指针
随机推荐
Fiddler can't grab requests from browsers like Google_ Solution
android开发中提示:requires permission android.permission write_settings解决方法
基于链表的有界阻塞队列 —— LinkedBlockingQueue
Have you ever thought about why the transaction and refund have to be split into different tables
Decorator (1)
STS安装
Concurrent linked queue: a non blocking unbounded thread safe queue
Pipedrive如何在每天部署50+次的情况下支持质量发布?
How does semaphore, a thread synchronization tool that uses an up counter, look like?
How to reduce the resource consumption of istio agent through sidecar custom resource
APReLU:跨界应用,用于机器故障检测的自适应ReLU | IEEE TIE 2020
The vowels in the inverted string of leetcode
接口测试工具Eolinker进行post请求
Aprelu: cross border application, adaptive relu | IEEE tie 2020 for machine fault detection
Esockettimeout solution in request in nodejs
c++11-17 模板核心知识(二)—— 类模板
C / C + + Programming Notes: pointer! Understand pointer from memory, let you understand pointer completely
华为HCIA笔记
Linked list
如何让脚本同时兼容Python2和Python3?