开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《搞个大演讲 awesome-speaking》
今日推荐英文原文:《What is the most underestimated programming language?》
2019年1月27日:开源日报第325期
今日推荐开源项目:《搞个大演讲 awesome-speaking》传送门:GitHub链接
推荐理由:顾名思义,这个项目里收集了很多在公共演讲时会用得上的知识。即使我们大部分时间都是对着电脑的,但是在公共场合演讲依然是个相当重要的技能,毕竟没准什么时候就能在开源年会上表达自己的一些观点呢。
今日推荐英文原文:《What is the most underestimated programming language?》作者:Doug Ross
原文链接:https://medium.com/skills-matter/what-is-the-most-underrated-programming-language-fafe164a8cd1
推荐理由:兴许有些语言比想象中的要强,比如 F#

What is the most underestimated programming language?

Everyone outside of tech has heard of JavaScript, Java, Python, Ruby and even .Net, but few if any have heard of F#. However, F# may be one of the world’s most underestimated (and underrepresented) languages today, if developer surveys and web chatter are anything to go by.

StackOverflow’s 2018 developer survey revealed the startling fact that F# is the world’s most highly paid language, and the 8th highest paid language in the US. Is this because F# is the most sought-after language? Not exactly.

Some have suggested that its high price tag comes from the possibility that those earning higher incomes while using F# were already in the higher earning bracket before incorporating F# into their systems, hence a carryover of F#’s high salary bracket. StackOverflow also shows that those using F# sit outside the bulk of languages in terms of average years of experience (9.5 years rather than 5–7 years), which may support this theory that F# practitioners have simply been working longer and now earn higher incomes.

In the same survey, however, F# does not even appear in the top 25 most popular languages, nor does it appear in the 2018 State of JavaScript survey as any of the 16 alternative languages used by JS developers — it is still (despite its age) a significantly fringe language, despite a highly active and productive community.

Why developers love F

As a multi-paradigm language (incorporating functional, imperative and OOP methods), F# may be the most underrated language out there today for one main reason: concise syntax and all that this promises developers. In essence, the brevity of the code required in F# frees up developers from getting bogged down by debugging, as they are fixed during compilation, thanks to it being a statically typed language. On top of this, being a strongly typed language, incorrect states are easily avoided. Russian developer Roman Liman wrote a great piece on the other benefits of F#.

Created and maintained by Don Syme, the language is also seen as having been relatively resistant to some of the perceived overcomplications that similar FP languages have adopted (i.e. Scala), and that this resistance maintains accessibility for outside developers who may be interested in dabbling with functional programming.

F# has been lauded as both a great language for domain-driven development and data-driven development, and thanks to Fable, built by Alfonso Garcia-Caro, it can now be compiled into JavaScript, linking it with one of the world’s most popular programming languages as well as JavaScript’s widely installed base of devices and extensive libraries.

But F# may not necessarily need JS to grow in popularity. F# has also been marked as highly suited for AI and Machine Learning and associated data analysis. In fact, this was what it was initially designed for when created by Microsoft. Due to the sheer scale and expected influence that AI development will have on language ecosystems and tech in general, having a language so well-suited to this field of development places it in a strong position to dramatically grow in popularity and even challenge languages like JavaScript for their dominance.

What is keeping F# back?

In a roundtable discussion (including the previously mentioned developer, Roman Liman), Pavel Smirnov noted that Microsoft has maintained and restricted the language’s popularity, shooting themselves in the foot by placing F# as subordinate to C#, promoting it as a tool to play with in preparation for features within C#.

This attitude towards the language by its very progenitor is one reason why F# has not yet become highly recognised for its suitability, beyond just data science, for both front end and back end development, while the barrier to its adoption continues to be cyclical: there are few jobs advertising for F# developers because there are few F# developers out there, and there are few F# developers out there because there are a limited number of jobs out there requiring the language. But this is changing.


One prominent company that adopted F# early on was Jet.com, an online retailer, who have maintained the language, recently utilising it in the company’s adoption of microservices architecture for its ordering system. Other companies include Kaggle (a Google-owned platform for data scientists) and a suite of financial and insurance services companies.

The main challenge the F# community faces is finding ways to promote the language’s use within companies, especially as a multi-paradigm language and one that can be applied to AI. The best way to do this, perhaps, is in promoting the core benefit of the language’s laconic syntax: shorter runtimes, less bugs and higher productivity. From this the community can begin to break the cycle of underrepresentation in both the job market and in the developer ecosystem, and position F# as a potential game changer in AI development.
下载开源日报APP:https://openingsource.org/2579/
加入我们:https://openingsource.org/about/join/
关注我们:https://openingsource.org/about/love/