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/

  • 相关阅读:
    "Principles of Reactive Programming" 之<Actors are Distributed> (3)
    Clojure语法学习-循环
    建立Clojure开发环境-使用IDEA和Leiningen
    速查笔记(Linux Shell编程<上>)
    Exception thrown in catch and finally clause
    linux fork的缺点
    redhat6.4 install 163 source
    linux /etc/hosts 配置问题
    linux sed
    STL 源码分析 (SGI版本, 侯捷著)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/11084922.html
Copyright © 2011-2022 走看看