pyret-lang VS paranoidscientist

Compare pyret-lang vs paranoidscientist and see what are their differences.

paranoidscientist

Runtime software verification and automated testing for scientific software in Python (by mwshinn)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
pyret-lang paranoidscientist
2 1
1,052 88
1.0% -
7.2 0.0
16 days ago over 2 years ago
JavaScript Python
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

pyret-lang

Posts with mentions or reviews of pyret-lang. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-08-22.

paranoidscientist

Posts with mentions or reviews of paranoidscientist. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-08-22.
  • Pyret Programming Language
    3 projects | news.ycombinator.com | 22 Aug 2021
    I love this. I think people often underestimate the value of dynamic runtime checks. For certain applications, e.g. many types of scientific/exploratory software, dynamic checks and static checkcs have nearly identical utility. But static checks can get really tricky to work with as a developer.

    I built a library for doing modular runtime verification in Python (https://github.com/mwshinn/paranoidscientist) and evaluated it for scientific software. In the end, it was pretty effective, but not perfect, and there are some major changes I would make if I were to do this again. One problem was that some of the most important cases to check were important because they were difficult to check. (E.g. some function arguments change the meaning other arguments - this is extremely common in major frameworks like numpy/scipy.) By contrast, the flashiest feature in my package was runtime checking of hyperproperties (i.e. checking properties like monotonicity or concavity that depend on relationships between multiple executions of the function), but this was rarely used in practice.

    The two most common criticisms I hear about runtime checking are (a) it is just an assert statement under the hood, and (b) the performance hit is unacceptable and the only solution is static checks. Regarding (a), sure, they may reduce to assert statements, but most idioms in programming also "reduce to something under the hood". The question is whether dynamically-checked (refinement) types/predicates are a useful abstraction, and in my experience, yes they are. Regarding (b), you probably don't want to use runtime checks on software intended to be run primarily by people other than the developers. But many classes of problems, software is written as a means of discovery rather than as a tool for someone else to accomplish a particular task. For these problems, runtime checks and static checks are approximately equally useful. Static checks are nice to avoid because they can get you into deep water really quickly, so their scope can be quite limited. Also, people tend to overestimate the performance penalty of dynamic checks. Even complex checks often incur no more than a 10% performance penalty.

What are some alternatives?

When comparing pyret-lang and paranoidscientist you can also consider the following projects:

BQN - An APL-like programming language. Self-hosted!

Functional-Light-JS - Pragmatic, balanced FP in JavaScript. @FLJSBook on twitter.

protea - An in-progress programming language inspired by JavaScript.

freeCodeCamp - freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.

atto - The new BASIC computer that runs in your browser!

oo-lang - The OO programming language

clio - Clio is a functional, parallel, distributed programming language.