zoukankan      html  css  js  c++  java
  • 编程语言评价标准

    编程语言评价标准

    编程语言需要提供足够简单和丰富的概念来表达我们要描述的世界;

    并且执行的效率要足够高

    Enough of the small talk, how do we go about comparing these two goliaths? In reality this can’t be a true comparison, as Angular is a framework and React a library; but we will be looking at some of the important aspects we look at when considering technologies for our projects:

    • Abstraction – Can we represent complex things in ways that are understandable?
    • Performance – Does it scale well, with fast response times? In my browser? In my code?
    • Integration – Can I use libraries/frameworks I’m already familiar with? Can I get help if I have a problem?
    • Simplicity - What is the learning curve? Does it follow relatable architectural principles? How quickly can a new developer become productive?
    • Testability - How easy is it to test?
    • Debugging – Problems occur, how easy is it to understand what happened?
    • State Management – Does it handle state correctly and efficiently?

    https://capgemini.github.io/react/reacting-to-change/

    Highly Expressive? That would help reading and writing. Does the language have:

    • Operators like A = B + C which adds whole arrays in Fortran 90?
    • Abstract data types (with encapsulation)?
    • Module and package structures to aid programming-in-the-large?
    • A rich operator set, as in languages like APL and Perl?
    • Rich type/object structures supporting inheritance, composition and aggregation?
    • Polymorphism, overloading, aliasing?
    • Higher order functions?
    • Pattern matching?
    • Built-in control flow (e.g. unification, backtracking)?
    • Facilities for symbolic computation?
    • Support for asynchronous, concurrent, and distributed programming?

    Understanding Evaluation Tradeoffs

    You can’t have everything, it seems:

    • The expressive power of dynamic typing, polymorphic type systems, functions as first-class values, higher-order functions, and closures can sometimes impact performance.
    • Automatic garbage collection saves billions of dollars in programmer time, but isn’t always a good idea in embedded, life-critical, real-time systems.
    • A language may be wonderful and amazing and increase developer productivity, but if no talented people are out there that know the language, how will you hire the best team?
    • Languages that are intentionally designed to be horrible (Brainfuck, Java2K, Malbolge, etc.) have some intellectual and educational value (and offer amusement).

    https://cs.lmu.edu/~ray/notes/evaluatingprogramminglanguages/

  • 相关阅读:
    轻量级数据库sqlite的使用
    Integer引发的思考
    css限制显示行数
    数据库 chapter 17 数据仓库与联机分析处理技术
    数据库 chapter 15 对象关系数据库系统
    数据库 chapter 16 XML数据库
    数据库 chapter 14 分布式数据库系统
    数据库 chapter 11 并发控制
    数据库 chapter 12 数据库管理系统
    数据库 chapter 13 数据库技术新发展
  • 原文地址:https://www.cnblogs.com/feng9exe/p/11084922.html
Copyright © 2011-2022 走看看