開源日報 每天推薦一個 GitHub 優質開源項目和一篇精選英文科技或編程文章原文,堅持閱讀《開源日報》,保持每日學習的好習慣。
今日推薦開源項目:《搞個大演講 awesome-speaking》
今日推薦英文原文:《What is the most underestimated programming language?》

今日推薦開源項目:《搞個大演講 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/