当前位置:网站首页>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
边栏推荐
- When we talk about data quality, what are we talking about?
- Flink的DataSource三部曲之三:自定义
- 梁老师小课堂|谈谈模板方法模式
- API部分的知识点复习
- 云计算之路-出海记-小目标:Hello World from .NET 5.0 on AWS
- 非阻塞的无界线程安全队列 —— ConcurrentLinkedQueue
- VIM Introduction Manual, (vs Code)
- How does pipedrive support quality publishing with 50 + deployments per day?
- 计算机网络 应用层
- C / C + + Programming Notes: pointer! Understand pointer from memory, let you understand pointer completely
猜你喜欢
How does semaphore, a thread synchronization tool that uses an up counter, look like?
使用容器存储表格数据
服务器性能监控神器nmon使用介绍
android开发中提示:requires permission android.permission write_settings解决方法
Factory Pattern模式(简单工厂、工厂方法、抽象工厂模式)
How to get started with rabbitmq
作业2020.11.7-8
梁老师小课堂|谈谈模板方法模式
Python features and building environment
基于链表的有界阻塞队列 —— LinkedBlockingQueue
随机推荐
c++11-17 模板核心知识(二)—— 类模板
Leetcode-11: container with the most water
平台商业化能力的另一种表现形式SAAS
Linked blocking queue based on linked list
服务器性能监控神器nmon使用介绍
Travel notes of csp-s 2020
老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”
Web上的分享(Share)API
使用递增计数器的线程同步工具 —— 信号量,它的原理是什么样子的?
Are there many Python application scenarios?
How does pipedrive support quality publishing with 50 + deployments per day?
APReLU:跨界应用,用于机器故障检测的自适应ReLU | IEEE TIE 2020
理论与实践相结合彻底理解CORS
APP 莫名崩溃,开始以为是 Header 中 name 大小写的锅,最后发现原来是容器的错!
The vowels in the inverted string of leetcode
Test comparison of three domestic cloud databases
Teacher Liang's small class
A bunch of code forgot to indent? Shortcut teach you carefree!
How to deploy pytorch lightning model to production
数据库设计:范式与反范式