I think this is too premature to make this call. Javascript is a language
with no type system and it is relying a lot on runtime behavior. Yet, it
was a "language of the future" when it was created and I don't think it was
envisioned to become as big as it got. Attempts are replacing it are going
slowly because a language has momentum.

Go is an extremely innovative language. The designers made a choice: keep
the language rather simple and conservative, but innovate in other areas of
language design: fast compilation speeds, fast linking, tooling, loose
coupling, and so on. Every language feature runs the danger of becoming a
long term liability, so adding those requires a lot of careful thought.
Keeping a language small also requires innovation and lots of hard
cost/benefit trade-offs.

I think Go was right in requiring a garbage collector, rather than going
the C/C++ way of manually managing memory, the Swift way of using ARC, or
the Rust way of using ownership, borrowing and lifetimes. Concurrency
demands a sacrifice---in this case that you have to free yourself from
thinking about freeing of memory.

Haskell is a language which is far smaller than Go. But it allows so many
combinations of its feature set that the learning curve is rather steep. It
is not a priori clear that such a language is more destined to be one for
the future, save for perhaps a fact that functional programs tend to be
easier to formally verify.

A language such as Idris has dependent types, which essentially means that
the world of types and the world of terms (programs) get merged into one
and you program both at the same time. Yet, there are some real hard
problems which are only being overcome now for these kinds of languages.
Many of the ideas toy with restricting turing completeness in different
ways, often by limiting oneself to programs which are provably terminating.
Perhaps they are the languages of the future?

Coq is a proof assistant. Not only can you write mathematics in such a
system, but you can write programs which you can then prove have certain
desirable properties. A good example is that you can prove the invariants
of a Red-Black search tree are maintained for your operations. The machine
is able to help you with your proof as you work through it (therein
"assistant"). But once the program is written, Coq can *extract* that
program to OCaml, Haskell, and so on. This has been used in a
tour-de-force, the CompCert project: Take the C specification. Formalize a
CPU. Now write a compiler, in Coq, from C to that CPU (backends are x86-64,
PPC, etc). This compiler is formally verified: the assembly is proven to
run with the same semantics as the input C code. If on the receiving end of
medical equipment, I know what compiler I would prefer were used!

My intuition is that politics and social structure is likely to guide what
becomes the language of the future. Self-driving cars could spike political
interest in software liability. IoT (which I often jokingly call the
Internet of Terror) and the lack of security could drive stricter rules for
what we are allowed to connect to the internet. If we start demanding more
correctness in our programs, systems more amenable to formal methods are
likely to win. But if the current trend continues, such change is unlikely.
There is a monster in the closet called Machine Learning. The program
doesn't have to be perfect. It simply has to beat the average human. If
that can be done with a set of very large matrices and a simple piecewise
linear "simulation" of a neuron, then the language of the future isn't
symbolic at all, perhaps.


On Thu, Mar 16, 2017 at 11:05 PM <prades.m...@gmail.com> wrote:

> A language with such a "simple" type system, which rely that much on
> runtime behavior is hardly a language of the future. But Go might be a blue
> print for what language of the futures will have to provide in terms of
> developer experience. Go is too divisive to get widely adopted or to
> replace any "enterprise" language.
>
>
> Le jeudi 16 mars 2017 20:27:24 UTC+1, mhh...@gmail.com a écrit :
>
> Did not need such analysis to claim such assertion,
> A language that does not bloat its users with semi colon (one for you
> https://groups.google.com/forum/#!topic/golang-nuts/rzLzp_Z74ik%5B1-25%5D),
>
> parenthesis where useless,
> with automatic formatting,
> tries to solve "les querelles de clocher",
> is cross compiling by default
> ect ect ect ect (we could add 100 more like this)
>
> definitely is a language of the future.
>
> I feel so bad returning to older languages.
>
> Simply said, GO ROCKS
>
> On Thursday, March 16, 2017 at 3:14:15 PM UTC+1, Art Mellor wrote:
>
> Interesting/fun article where Erik Bernhardsson analyzes data about
> moving from one programming language to another
>
> https://erikbern.com/2017/03/15/the-eigenvector-of-why-we-moved-from-language-x-to-language-y.html
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to