The Future of Computing and Programming Languages

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

The Future of Computing and Programming Languages

LunaticCoder
Hi

See YouTube:    https://youtu.be/nWTvXbQHwWs or just MP3 [0]
Found on HackerNews, which hasn't added much about the content. 
https://news.ycombinator.com/item?id=24823384 [1]

I enjoyed this, it may be a bit basic for many here, but I got a lot from the first 1h45mins - up to the COVID19 stuff.

There are several points where I concluded that the Lua team had made good decisions and avoided pitfalls,
however my previously debated point about encouraging high quality compiled libraries (batteries[2])
does come back to haunt us.

Kind Regards Gavin Holt

[0] https://media.blubrry.com/takeituneasy/s/content.blubrry.com/takeituneasy/lex_ai_chris_lattner_2.mp3
[1] https://news.ycombinator.com/item?id=24823384
[2] http://lua-users.org/lists/lua-l/2019-12/msg00042.html
Reply | Threaded
Open this post in threaded view
|

Re: The Future of Computing and Programming Languages

Luiz Henrique de Figueiredo
> See YouTube:    https://youtu.be/nWTvXbQHwWs or just MP3 [0]
>
> There are several points where I concluded that the Lua team had made good decisions and avoided pitfalls,

Could you be more specific? Is Lua mentioned at all?
Reply | Threaded
Open this post in threaded view
|

Re: The Future of Computing and Programming Languages

LunaticCoder
Hi,

Sorry, Lua is not specifically mentioned. I was considering the
comments through the lens of my experience with Lua.

Once you get through the intro and the "giants of software", we get to
"Why do programming languages matter" (@7.55).

From the discussion I concluded that Lua is a good example (quotes are
mine for emphasis - not extracts of the tapes).

- The sweet spot in the level of abstraction.
- Portability over many architectures.
- Highly polished syntax and technical implementation.
- Just the right amount of sugar.
- No weird breaking of conventions.
- No attempt to be too clever with syntax. ++i i++
- Define away entire classes of bugs.
- Keep it small and clean.
- Pure Lua libraries/modules are easy to implement.
- Good error messaging with backtracking.
- Care and information over the selection of the correct default behaviour.
- Progressive disclosure of complexity.
- GC nurtures beginners - "fewer feet are shot".
- Provide mechanisms not implementations.
- Combined paradimes allow good solutions to more problems - "it's not
about which tribe wins".
- Libraries are treated as natural extensions of the language.
- Metatables for operator overloading.
- Coroutines sound good - I haven't used this part of Lua.
- Ways to compartmentalize and therefore fit more abstractions in the
7-8 slots in your head: functions or classes dealers choice.
- No real ceiling to possible complexity.
- A book to guide us.

There are a number of comments about leadership of software projects
and I see these good behaviours in our community.
- Small core leadership team, willing to make and revisit decisions.
- Consideration given to the "wisdom of the group".
- A good base of support to avoid "one man" taking all the flak.
- Shared understanding of the general future, with experience of
decision making from the very beginning.
- Implementing features in a sensible order.
- Good momentum, lots of introspection and visible true forward development.
- Acceptance of breaking change.
- Tollerating dumb questions (close to my heart).

I learned about "immutability" vs "value semantics", and the
application to parallelization, hardware vs software for future
improvements, instruction sets as a moving target, custom chips with
everything, single thread processing won't speed up, application of
machine learning to generating code, ecosystems are key to adoption.

Hope this helps - please remember I do hip replacements for a living
and may be easily misguided.

Kind Regards Gavin Holt
Reply | Threaded
Open this post in threaded view
|

Re: The Future of Computing and Programming Languages

Alejandro Reimondo
Hi all,

Talking in terms of "computing" and "programming languages" is walking
in the fields of the past;

  the times when noone was talking about informatics and most people
work for computers...

Today, we can have another point of view. Informatics happens in the
mind of people

  and the pourpose is NOT to compute.

The experiences made using Smalltalk in the last +30 years sustain
advances in the direction of informatics; where the activity on virtual
systems is not related with bussiness nor computation

  and with the development of a person doing activities in a virtual
environment.

The virtual environment support the growing of a mature person that
interacts in/with open systems.

It is a support for self-development and the success of the environment
is not related with the amount of people doing the activity (each
instance count as evidence).

Lua execution machinery can be used for this porpouse, but the limits of
the users of Lua (considering the "dynamic language" called Lua) impose
a barrier to surpass the limitations of traditional computing and forces
people to continuously define packages and modules ad infinitum,
reaching th elimits of harware but ony repeating the loop of producing
the same (libraries but nothing "new" on the human side).

All said with the intention to promote entering the path of modern
informatics, on open systems

best,

Ale


El 20/10/2020 a las 15:01, Gavin Holt escribió:

> Hi,
>
> Sorry, Lua is not specifically mentioned. I was considering the
> comments through the lens of my experience with Lua.
>
> Once you get through the intro and the "giants of software", we get to
> "Why do programming languages matter" (@7.55).
>
> >From the discussion I concluded that Lua is a good example (quotes are
> mine for emphasis - not extracts of the tapes).
>
> - The sweet spot in the level of abstraction.
> - Portability over many architectures.
> - Highly polished syntax and technical implementation.
> - Just the right amount of sugar.
> - No weird breaking of conventions.
> - No attempt to be too clever with syntax. ++i i++
> - Define away entire classes of bugs.
> - Keep it small and clean.
> - Pure Lua libraries/modules are easy to implement.
> - Good error messaging with backtracking.
> - Care and information over the selection of the correct default behaviour.
> - Progressive disclosure of complexity.
> - GC nurtures beginners - "fewer feet are shot".
> - Provide mechanisms not implementations.
> - Combined paradimes allow good solutions to more problems - "it's not
> about which tribe wins".
> - Libraries are treated as natural extensions of the language.
> - Metatables for operator overloading.
> - Coroutines sound good - I haven't used this part of Lua.
> - Ways to compartmentalize and therefore fit more abstractions in the
> 7-8 slots in your head: functions or classes dealers choice.
> - No real ceiling to possible complexity.
> - A book to guide us.
>
> There are a number of comments about leadership of software projects
> and I see these good behaviours in our community.
> - Small core leadership team, willing to make and revisit decisions.
> - Consideration given to the "wisdom of the group".
> - A good base of support to avoid "one man" taking all the flak.
> - Shared understanding of the general future, with experience of
> decision making from the very beginning.
> - Implementing features in a sensible order.
> - Good momentum, lots of introspection and visible true forward development.
> - Acceptance of breaking change.
> - Tollerating dumb questions (close to my heart).
>
> I learned about "immutability" vs "value semantics", and the
> application to parallelization, hardware vs software for future
> improvements, instruction sets as a moving target, custom chips with
> everything, single thread processing won't speed up, application of
> machine learning to generating code, ecosystems are key to adoption.
>
> Hope this helps - please remember I do hip replacements for a living
> and may be easily misguided.
>
> Kind Regards Gavin Holt
Reply | Threaded
Open this post in threaded view
|

Re: The Future of Computing and Programming Languages

Jasper Klein
In reply to this post by LunaticCoder
Op Tue, 20 Oct 2020 01:13:42 +0200 schreef Gavin Holt <[hidden email]>:

> Hi
>

Purely for information, not to start a discussion about the future direction of Lua.

Uncle Bob has made an entertaining video about 'The Last Programming Language'. [1]
Lua is not mentioned in the video but it may be of interest for the reader on this list.

Some of the points that he wants to see in the last programming language are;
* A simple syntax.
* Fast.
* No goto statement.
* Polymorphism (and encapsulation).
* Garbage collection.
* Abstract/not tied to hardware.
* Must run in a virtual machine.
* Access to all frameworks and work with other languages.


-- Jasper
Reply | Threaded
Open this post in threaded view
|

Re: The Future of Computing and Programming Languages

Jasper Klein
Op Sat, 24 Oct 2020 16:41:21 +0200 schreef Jasper Klein <[hidden email]>:

> Op Tue, 20 Oct 2020 01:13:42 +0200 schreef Gavin Holt <[hidden email]>:
>
>> Hi
>>
>
> Purely for information, not to start a discussion about the future direction of Lua.
>
> Uncle Bob has made an entertaining video about 'The Last Programming Language'. [1]
> Lua is not mentioned in the video but it may be of interest for the reader on this list.
>
> Some of the points that he wants to see in the last programming language are;
> * A simple syntax.
> * Fast.
> * No goto statement.
> * Polymorphism (and encapsulation).
> * Garbage collection.
> * Abstract/not tied to hardware.
> * Must run in a virtual machine.
> * Access to all frameworks and work with other languages.
>
>
> -- Jasper
>

Classic mistake, forgot the link:
https://www.youtube.com/watch?v=P2yr-3F6PQo
Reply | Threaded
Open this post in threaded view
|

Re: The Future of Computing and Programming Languages

Roberto Ierusalimschy
In reply to this post by Jasper Klein
> Purely for information, not to start a discussion about the future direction of Lua.
>
> Uncle Bob has made an entertaining video about 'The Last Programming Language'. [1]

I think at least since PL/I people are doing "the last programming
language" :-)  Ada in particular was supposed to be "the last
programming language" of the DoD.

-- Roberto
Reply | Threaded
Open this post in threaded view
|

Re: The Future of Computing and Programming Languages

Philippe Verdy-2
An many companies are now turning from C/C++ to Rust for some of the reasons above, but more importantly because of serious security problems and the very huge difficulty to assess it correctly in C/C++ code, despite of massive efforts. And Rust is recognized to be very solid, and very performant and very well written. It is now a serious competitor to C/C++.
However it does not use garbage collection (but this makes it suitable for many embedded devices) which can still be implemented as an add-on library which is already there (allowing to implement Javascript, Python, Java, PHP or Lua without necessarily using their own integrated garbage collector, or allowing to implement an hypervisor capable of supporting guest OSes in VMs).

And now it has gained serious supporters, including Microsoft to build it in Windows (including for the kernel and kernel-level or user-level drivers) and make it the best language for UWP apps, or applications servers (also supported by Google), and with string support also by Mozilla (notably in Firefox). It has proven to be very well ported

(even if there was an unprecendented bug regression in Rust 1.46 about nested closures causing exponential compilation time, this did not affect the already compiled apps, but could affect the software updates for apps written for it if Rust was updated; such bug is very exceptional, as regressions are very rare; it mostly affects some programs using framework libraries based on generic datatypes with an unbound/unckecked level of nesting, i.e. bad softwares using too many levels of abstraction and not implemening a sandboxing type to expose a limited but tested useful subset so that the implementation can be more easily replaced without lot of dependencies and lot of recompilations needed for each minor patch or evolution in apps).

I would hope Lua to have the same level of testing that Rust has, and as much support from major organizations with various focus including in the opensource area.


Le sam. 24 oct. 2020 à 17:12, Roberto Ierusalimschy <[hidden email]> a écrit :
> Purely for information, not to start a discussion about the future direction of Lua.
>
> Uncle Bob has made an entertaining video about 'The Last Programming Language'. [1]

I think at least since PL/I people are doing "the last programming
language" :-)  Ada in particular was supposed to be "the last
programming language" of the DoD.

-- Roberto