# Julia with respect to reliability, sustainability, critical application, dynamic/static typing, big data, HPC?

**URL:** https://discourse.julialang.org/t/julia-with-respect-to-reliability-sustainability-critical-application-dynamic-static-typing-big-data-hpc/23135
**Category:** Performance
**Created:** [April 14, 2019, 11:44am UTC](https://discourse.julialang.org/t/julia-with-respect-to-reliability-sustainability-critical-application-dynamic-static-typing-big-data-hpc/23135 "2019-04-14T11:44:03Z")
**Posts on this page:** 1
**Showing post:** 44

<div class="post-metadata">

### Author: ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)
#### Post date: [May 2, 2019, 3:37am UTC](https://discourse.julialang.org/t/julia-with-respect-to-reliability-sustainability-critical-application-dynamic-static-typing-big-data-hpc/23135/44 "2019-05-02T03:37:54Z")

</div>

> [@StefanKarpinski](#):
>
> Julia falls into a relatively new category of language: typed dynamic languages. TypeScript and Dart are also in this category.

> [@StefanKarpinski](#):
>
> It is also safer than most dynamic languages, which are duck-typed, whereas Julia can and does have explicit type annotations on function arguments.

Some dynamic languages can have type annotations without changing the runtime semantics. Python is in this category and, IIUC, TypeScript is also in this category. Julia is completely the opposite in this aspect because the multiple dispatch is one of the biggest ingredients in the language.

I remember that “type checking/linting” is listed in the [Compiler work priorities](https://discourse.julialang.org/t/compiler-work-priorities/17623) post. So, I suppose adding something like [mypy](http://mypy-lang.org) (a static type checker for Python) is in a long-term plan? If so, it makes me wonder if adding type annotations (assertions) in Julia code base for static type-checking is more challenging.

For example, [Yet Another Style Guide For Julia](https://github.com/jrevels/YASGuide) says that:

> Dispatch type constraints should be used chiefly for dispatch, not for artificially restricting method signatures to “known” types, or merely for documentation.

It makes sense in Julia but I fond it interesting compared to how the type annotations are discussed in other dynamic languages (“it’s also good for documentations”). Likewise, I imagine that people would not use type constraints just for improving static type checking because it can break others’ code.

---

_[View the full topic](https://discourse.julialang.org/t/julia-with-respect-to-reliability-sustainability-critical-application-dynamic-static-typing-big-data-hpc/23135)._
