開源日報 每天推薦一個 GitHub 優質開源項目和一篇精選英文科技或編程文章原文,堅持閱讀《開源日報》,保持每日學習的好習慣。
今日推薦開源項目:《讀萬卷書 free-books》
今日推薦英文原文:《How to Choose A Programming Language for a Project》

今日推薦開源項目:《讀萬卷書 free-books》傳送門:GitHub鏈接
推薦理由:新的一個月自然要學點新的技能,這個項目就收集了學習新技能用得上的免費書籍。列表裡包括了 Web,資料庫和各種編程語言等等,從中學習一些技能相當適合;再往上的話還有一些包括密碼學和數學在內的理論書籍,可以作為了解概念的好機會,保持學習新的技能,了解新的知識,才不會在逆流中緩緩後退。
今日推薦英文原文:《How to Choose A Programming Language for a Project》作者:
原文鏈接:https://medium.com/better-programming/how-to-choose-a-programming-language-for-a-project-7c7a3e5a4de6
推薦理由:為糾結於選擇工具的人提供的一些建議

How to Choose A Programming Language for a Project

Questions to ask when you』re choosing which language to use for your project

Choosing a programming language for a project is different than choosing one to learn. Often, people will tell you that there』s no choice. Certain languages are chosen as the industry standard, and you just have to adapt. With as little freedom as you have, there are still some considerations to be made when choosing a programming language. After all, it will impact the main constraints on your project, such as time, budget, resources, and maintainability, and etc.

Image from https://insights.stackoverflow.com/survey/2019#technology

In Corporate IT departments, this is often one of the issues technology managers struggle with at the beginning of many in-house software projects. Sometimes, the decision will stare you in the face when you』re trying to scale up legacy systems and bring them up-to-date.

When I was working in Corporate IT, our developers had to maintain high-performance applications that were time-critical. These applications were mostly written in Java and C++. However, as projects progressed, the need to scale up for performance was increasingly apparent.

Java』s handling of concurrency became such a problem that the team ultimately decided to try a different programming language, even when no one on the development team knew how to program in that language. The investment in time and budget ultimately meant the team had to take a huge risk. But, in the end, just rewriting one component allowed huge improvements in performance. It also allowed for more stability within a critical part of the application.

The lesson here is that often, the problems that we encounter in our IT projects will propel us to re-examine our programming language choices. This is an accepted part of the evolution of any IT project.

As a product manager, program manager, and technical manager, knowing all the moving pieces in a project is important. This is why it』s important to know how all the components of your project might lead you to choose specific programming languages. Knowing this will allow for a better view of the future of the project.

Any time you choose a new language, it』s a game-changing amount of overhead (resources, time, and effort) added onto your project. Having a good view at the beginning of the project and making a sensible programming language choice will lead to less time spent in maintaining the project, scaling up the project, and securing the project later on.

Ultimately, you want your software project to stay for the long haul, serving the business needs of your customers even through the business changes that may occur.

What Are the Questions to Ask When Choosing a Programming Language?

This is by no means a comprehensive list of questions. But it』s a list that can serve as a starting point to choose the programming language that you』ll need.
  • Does the language have proper ecosystem support? Will the language survive for the long haul? Is there vendor support provided for the language?
  • What』s the environment that the project will run on — web, mobile, etc.?
  • Are there infrastructure considerations to using the programming language, such as new hardware required? What are the deployment considerations?
  • Does the client prefer a certain programming language to be used?
  • Are there specific libraries, features, and tools for a programming language that are the industry standard for this type of project?
  • Can our developer program in this language? Do we need to hire new developers? Can our developers learn the new programming language quickly?
  • What are the constraints of your project that are non-negotiable — time, budget, resources?
  • What are the performance considerations of the project? Will the language accommodate the benchmarks and the performance?
  • Are there any legacy codebase considerations for the project?
  • Are there any interface issues with upstream and downstream systems or external systems?
  • Does it need to integrate with third-party tools?
  • Are there any security considerations?

How Are Programming Languages Being Used Today?

  • Web Applications : JavaScript, PHP, Ruby, HTML/CSS, TypeScript
  • Mobile Applications: Swift, Java, JavaScript, Object-C
  • Operating Systems: C, C++
  • Distributed Systems: Go
  • Enterprise Applications: Java, C#, C+, ErLang
  • Analytics & Machine Learning: Python, R, Clojure, Julia
  • Math & Scientific Computing: Matlab, FORTRAN, ALGOL, APL, Julia, R
  • Data Visualization: Python, R, Java, C#
  • Big Data: Java, Python, R, Scala, Clojure
  • Data Storage: SQL, C#, Java, Python

Final Thoughts

With a list of questions to ask and a list of programming language conventions, no matter what type of project you』re working on, you can make a sensible decision regarding the language that you use.

Asking the right questions will allow you to back up the usage with evidence supported by industry standards and conventions. In the end, making the right programming language choice will enable you to develop systems that will weather the changes in business needs.

What are you waiting for?
下載開源日報APP:https://openingsource.org/2579/
加入我們:https://openingsource.org/about/join/
關注我們:https://openingsource.org/about/love/