lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi szbnwer,
I really appreciate you made some questions!,
 but I know that answers can diverge from the points of view
 of most people and are dependent of my own experiences,
 so, for all that don´t feel comfortable with my POV, please stop
 reading now ;-)

>so ive thought that you wanna solve something here with a different
>mindset than what fits the best here, but ive got it, that u wanna
>extend ur platform. but im not 100% sure about this,

Smalltalk was defined in the 80's (1983) in a series of books that
 would be good reading to know the concepts that produced
 the emergence of computing support for (virtual) Object Technology

 (the books do NOT help to understand what happened after the '80s,

 nor the effects of Object ORIENTED alternatives).

There has been decades from those days and during all the time
 people with different interests used smalltalk to learn, and
 more conventional bussiness (e.g. writing applications).

In the 80's smalltalk required a custom execution machinery
 to boot and host the "active" contents. The execution environment
 was defined as a VM, that is an opaque component that can´t
 change semantics while running. It defined a small API
 required to run objects that change anywhere at anytime.

Today, (from 2008) a lot has changed, but NOT to converging
 to a standard (the convergence happened in the 90's)
 because each "smalltalk instance" is owned by a person (or
 small group of people) to drive particular needs... promoting
 diversity and emergent semantics that appeared from '80s
 (e.g. it was a nice example in the '90s of diverse contents
 an object based prolog & cobol frameworks injected in smalltalk
 system, to share the VM but have multiple compilers in the
 system, while running; from that years we can have multiple
 compilers to generate methods from languages/syntaxes that are
 dependent of the user that is adding/changing behavior to/of
 the system)

The S8 Smalltalk is a modern smalltalk, in this decade we do
 not need a custom VM to run Smalltalk.
In the last years it has been published some VMs where we
 can run our smalltalk systems.
In S8 Smalltalk, we have a simple compiler that build methods
 from standard smalltalk syntax to produce native source (e.g.
 _javascript_, now lua) to be compiled&bound dynamically
 in the system.

So, my work now is to write support to host our systems
 running on top of Lua VM.

> maybe u wanna make a similar tool here as well, but i
> believe this is not the case... this is cuz ive got no much idea
> how u will connect a smalltalk app with lua, but most likely
> possible anyhow, just my mental base for st is kinda
> weak, ive only read about it...

We do not communicate systems, we run on top of modern
 OO machinery.
A Smalltalk system is a different beast than "an application".
An application/program has been designed with an intention
 in mind, it can update and is subject to a planned change.

An object system exists (with a lot of contents and HISTORY)
 from the first time you put your fingers on it.
The object system can change contents and semantics while
 persons interacts with the system (the product is experience,
 not programs).
The porpouse of an open system is to support a sustainable
 activity, called cycles of experience.
The construction/learning activity is always driven by interest
 of person(s) that can share (copies of) their systems to other
 people at any time...

Implementing this kind of systems on top of modern OO virtual
 machines is not too much difficult; it is something that anyone
 can do if she has done the same two ot three times following
 someone else doing the same procedures.
The "beauty" and "features" one can implement depends on
 the power and dynamics of the hosting execution environment.
In case of Lua, I have not had yet, hard limitations on my work.

>btw how st works? i mean is it open source and you save
> the text from a live session; or apps written in it having an
> image that can be modified during using them but can be
> read with a base engine; or what else?

It depends on what you need.
Most of the times is good to have source code as a part
 of the methods you generate dynamically; so if you can
 save the methods... the source goes with them.
In other systems, the methods only have a reference to
 be given to another object to get the source... etc
In other sytems the source is irrelevant, because can be
 obtained from methods by reverse engeneering.
And I must say that a method is only one kind of resource
 to execute when a message is received; but can be other
 objects in the system that can do the task imposed by
 the understanding of a message.

>its an interesting stuff, when ive met with it ive found only
>gnu talk (i am totally a linux only guy) and that seemed to be like
>one of abandonware or just a finalized product, so ive read a bit
>about it on forums and ive found stuffs like its very slow and had no
>popularity and whatever, so i didnt move farer with it...

If you need to work on something than change while you
 are learning (any domain), you need a Smalltalk.
Smalltalk let you write a system while you use the system;
 you are part of the system, during the time that activity
 is realized.
Most of the times the activity happens during decades
 and people learn how to use systems to face "alien"
 domains.
Smalltalk is the medium to get experience in a domain.
So, the best part is you.
And the speed is your speed becoming an expert ;-)

If you want to write applications "from the outside"
 you will not find something valuable in smalltalk.
 (e.g. writing in a text editor, using cards,
 or drawing graphics... it is the same, you
 end writing an anApp of set of programs
 the traditional input-program-output paradigm)

In open systems, anything can be changed at any time
 so it is not defined by its contents, nor what it is
 "doing" at a point in time.
It is not defined by it's source.
It includes what has happened to the system.
Time is included in the system, so the best way to define
 a modern smalltalk is to call it an activity (that happen
 in minds, not in the computer).
It is related with informatics and not with computing.

The virtual objects you need to get satisfaction while you
 do your work each day depends on which smalltalk
 resources you peek from others (people, not source
 repositories, including their time, as the time I give
 you here writing this lines) and how much energy
 you put in YOUR smalltalk.
Once you change one method in a smalltallk system,
 it becomes your system (your sole instance).
After days/months/years of work you can give some time,
 sources, tools to others to start doing their experience
 from that resources/objects.

>have u seen luna? https://www.luna-lang.org/ its a bit
> similar to my aims just like your stuff, so it can
> be interesting for you...

Thank you for the links.
I am simply making my objects run somewhere else.
Need a small set of semantics to do that.
If it is valuable for others, I will give them a fresh
 copy and small time to spend together to learn how
 to start changing what is given. That's all.

>...
>- it is 100% open source, a bash script is used for collecting
>lua/luajit and some modules, then installing some sys deps like git
>...
[sorry to cut some paragraphs, the original is following my response]

Appreciate the details on your works! thank you.
It sounds that it produced satisfaction, the most valuable
 product of informatics.
Most of the features you described where always
 present in smalltalk systems; and what was not present
 is because was not needed (or not present at that times,
 so no pressure to be implemented).

>- i wanna make better modularization in it, and im on the way to
>modify my installer to a setup manager that can make and manage
>various setups like compile options, lua engines, installed stuffs and
>versions.

Modularization is a subproduct of framework development.
It is only matter of time.
In an evolving system, organic relations produce the emergence
 of frameworks...
The first interaction with an unknown domain produce prototypical
 understanding (e.g. a set of drawings and messages relating ghosts).
Using the prototypes produce classes, as part of first modeling experiences.
The classes mature through the learning of the domain and are arranged in an hierarchy...
The real value of the classes are inverselly proportional to the degree of abstraction.
The composing of objects to build machines, makes frameworks emerge with time.

You can´t avoid to have a modular system if you work with
 the monster during enough time.
So, IMHO, dont care about modularizing a system if you have not
 spent too much time/energy using the system in the domain of application.

>- i wanna get coworking.

I want to. But personal experience do not help others to love
 our produced objects/tools/code...
It takes too much time/energy to adpot something if the receiver
 do not have similar experiences.
It is innocent to reduce times or say that it will be cheap/free.

>- i wanna make a better ide with very fancy tools to bring down the
>art of programming to the mortals :D
>... and a lot more, ive got at least 4-5k lines of notes for planning
>stuffs with more or less details, these are just the present and for
>the near future
>so i can truly feel your words! :D

I know, doing with others is good; but it do not require to be
 1000's of people...
Enough satisfaction comes from doing activities "in family".

hope you will appreciate the words written in my
 default S8 image, after the (MIT) license terms
 at http://u8.smalltalking.net/u8/profile/aleReimondo/s8/s8.image.js

cheers,
Ale



El 02/09/2018 a las 17:03, szbnwer@gmail.com escribió:
Il giorno dom 2 set 2018 alle ore 15:55 Alejandro Reimondo
<aleReimondo@smalltalking.net> ha scritto:
[...]

nice words, i liked to read them! :)

so ive thought that you wanna solve something here with a different
mindset than what fits the best here, but ive got it, that u wanna
extend ur platform. but im not 100% sure about this, maybe u wanna
make a similar tool here as well, but i believe this is not the
case... this is cuz ive got no much idea how u will connect a
smalltalk app with lua, but most likely possible anyhow, just my
mental base for st is kinda weak, ive only read about it...

maybe __call metamethod on tables can be something that u wish for :)
https://stackoverflow.com/questions/6048118/how-does-the-call-metamethod-in-lua-5-1-actually-work

off:

btw how st works? i mean is it open source and you save the text from
a live session; or apps written in it having an image that can be
modified during using them but can be read with a base engine; or what
else? its an interesting stuff, when ive met with it ive found only
gnu talk (i am totally a linux only guy) and that seemed to be like
one of abandonware or just a finalized product, so ive read a bit
about it on forums and ive found stuffs like its very slow and had no
popularity and whatever, so i didnt move farer with it...

have u seen luna? https://www.luna-lang.org/ its a bit similar to my
aims just like your stuff, so it can be interesting for you...
templeos is just as well something very interesting :D http://www.templeos.org
the original next-step was just as well a piece of art (i have to say
this even if i hate apple :D )
these all came from true visions, but theyve kinda lost their power
during their realization, or mayb im using the wrong words now, but i
can still feel these are poisoned gems...


my stuff is already kinda complex, its still not public and gotta be
linux only (but i keep an eye on baremetal possibilities as well). its
better to keep it safe before it really can born, cuz there are sharks
out there and ive got much plans for making a better world, but others
with different aims can poison all the strengths of it and can reverse
its powers and turn it against humanity... even then if i look like as
an ordinary madman i dare 2 strongly believe this! :D
some of its features that can be interesting for you (btw some of
these are still more or less under development):
- it is 100% open source, a bash script is used for collecting
lua/luajit and some modules, then installing some sys deps like git
gcc and whatever needed for building them; and the rest is the app
that is written in pure lua and there is an another bash supervisor
for different ways of init and for the ability of restart it.
- it is portable, everything happens in its base directory; on the
same arch but a different machine it runs out of the box without
install. (at least on a fresh installation of debian and its
derivatives)
- it have (semi-)live coding. semi, cuz it requires ctrl+r against
nasty side effects like making an infinite loop.
- its written from itself, so i can modify on the fly whatever i just
want to do so, and if its satisfying then i make new stuffs permanent.
- the language and the gui (tekui:
http://tekui.neoscientists.org/screenshots.html ) let me do whatever i
just want during live coding.
- i can run c and bash from it just as well.
- it have no data loss, and its kinda hard to crash it. its
self-testing its core to not let save with errors but it keeps the
modifications even if i dont resolve any mess that ive made there. it
shows errors with the related source lines +- a few extra lines.
- it "remembers" most of its past development. no young "childhood" is
included, but it have the last 100 modifications and much milestones
as well.
- i can run modified instances from itself.
- im currently about to make its whole state saved like its opening
just at the point ive closed it previously.
- i wanna include a libcurl binding (i think the 1 from luapower will
be that, but im not sure), turbo server
(https://github.com/kernelsauce/turbo) and luakit (via webkit remote
debug; https://github.com/luakit/luakit) for anything related to
networking.
- i wanna make better modularization in it, and im on the way to
modify my installer to a setup manager that can make and manage
various setups like compile options, lua engines, installed stuffs and
versions.
- i wanna get coworking.
- i wanna make a better ide with very fancy tools to bring down the
art of programming to the mortals :D
... and a lot more, ive got at least 4-5k lines of notes for planning
stuffs with more or less details, these are just the present and for
the near future :)

so i can truly feel your words! :D