Finding a strong / explicitly typed language without GIL

Are there any languages ​​that have static type checking, like in C ++, with modern syntax like in Python, and don't have GIL?

I believe that Python 3 with the option of explicitly declaring the type of each variable will be "almost there," but the GIL upsets me.

Java is good, but I need something more “embedded” without a cumbersome JRE.

Update: Everything related to .NET or non-open source is non-go.

Update2: I need explicit + strong text input to write more secure code due to development speed. GIL is important because the code will be quite extensive and will run on multi-core servers, so it must use several processors efficiently.

Update3: Target platform - Linux (Debian) on x86

+4
source share
5 answers

Boo

Boo is an object-oriented, statically typed programming language that seeks to use a common language. Infrastructure support for Unicode, internationalization and Internet applications when using Python-inspired syntax, with particular emphasis on language and compiler extensibility. Some of the features of note include type inference, generators, multimethods, optional duck typing, macros, true closures, currying, and first-class functions. Bu has been actively developing since 2003.

cython

Cython is a language that writing C extensions for Python is as simple as Python itself. Cython is based on the well-known Pyrex, but supports a more cutting edge functionality and optimization.

Cython is very close to Python, but Cython additionally supports calling a C function and declaring C types on class variables and attributes. This allows the compiler to generate efficient C code from Cython code.

+4
source

Everything in the ML family can work for you. Ocaml is a great place to start, but it does have the perfect global GC that I watched. Haskell is known as the laboratory for innovative concurrency models. Understanding Python comes from Haskell, where they are convenient syntax for some very basic ideas. And Erlang is highly dynamically typed, interesting for writing, and makes concurrency better than anyone else.

+4
source

Ada is a strongly typed, compiled language with a modern, easy-to-read syntax and proven reliability for multi-core computing, Ada was designed for use in large, critical real-time systems where the software MUST work at all costs.

“Ada supports run-time checks to protect against access to unallocated memory, buffer overflow errors, individually errors, array access errors, and other detectable errors. These checks can be disabled in the interest of efficient execution, but can often be compiled efficiently and It also includes tools for checking the program, for which reason Ada is widely used in critical systems, where any anomaly can lead to very serious consequences, for example, accidental death or injury. Imeri systems that Ada used avionics, weapons systems (including thermonuclear weapons) and spacecraft. " (quote from Wikipedia article above).

Ada is freely available as part of GCC / GNAT and should be a simple "apt-get install" on Debian. You can also find modern compilers and libraries (community-supported GPL-licensed and commercially supported packages) at http://libre.adacore.com/libre/

Ada can be compiled into Java bytecode for use in the JVM, or compiled into a binary file for use as non-metal or inline use.

+3
source

I think GO meets your requirements.

This is my personal feeling, but the code looks very similar to python code.

This still has a classic compilation approach, but google will develop some kind of interpreter, of course.

From google site:

Go is a general purpose language developed with system programming in mind. It is strongly typed and has garbage collection and concurrent programming support. Programs are built from packages whose properties allow efficient dependency management. Existing implementations use the traditional compilation / linking model to generate executable binaries.

+2
source

After viewing the updated specification:

I need explicit + strong text input to write safe code due to development speed. GIL is important because the code will be quite widespread and will work on multi-core servers , so it must use several CPUs efficiently

What exactly does "computing the vast" mean? What is the problem area? What are others working in this problem area using? If you are serious with this specification , you cannot do much more than use C ++ in connection with proven libraries for multithreading and numerical calculations.

my $ 0.02

STB

+2
source

All Articles