Homelisp two years later
Exactly two years have passed since the publication of an article about HomeLisp on Habré. That article, which my son posted, provoked quite heated discussion and furious attacks of a certain part of the audience.
What happened during these two years with the project?
I hasten to “please” the ill-wishers: the project is not abandoned and is slowly developing. 02/09/2012 the developer posted on the website homelisp.ru the latest version of the package 1.13.4. It will be further described how it differs from the previous one (the one that the Khabrovsk residents “pecked” two years ago).
The most important difference is that the variables have become lexical (imagine, the developer knows what a lexical variable, closure, generator, etc.) are. There are also dynamic variables that are created by a special function.
The function body can now consist of several S-expressions (as is accepted in modern versions of Lisp);
Common Lisp features for setting key and optional function parameters have been implemented. The ability to create functions with an indefinite number of arguments is supported.
A lot of Common Lisp functions are implemented (LET, DO, DOTIMES, DOLIST, LOOP, IF, WHEN, UNLESS, etc.) Hash
arrays and the necessary set of functions for working with them are implemented.
Implemented the ability to save the state of the Lisp machine in a disk file. Everything is recorded - down to the graphics in the windows. Information can be restored from the file.
Implemented a simple dialog debugger.
The package of graphic functions added the ability to draw Bezier curves and control the transparency of the window.
Added CONTEXT and VARLIST functions showing the state of the current context.
Interval timer implemented.
Implemented reverse locking in macros.
The script part of the Web component has been rewritten in JavaScript, so now you can use FireFox or Oper (checked!) To work with the web component.
And, in addition, a decent amount of small (and not so) errors have been fixed.
In general, HomeLisp became closer to Common Lisp (and almost did not increase in volume).
Now a few words about the use of HomeLisp. According to the author’s information, the package was downloaded by a couple of thousand users. It (the package) began to be slowly used for teaching Lisp (in Novosibirsk, for example, where the author made a 20-minute message). Links to HomeLisp in various forums began to come across.
Links are mostly positive, with the exception of the malicious attack of the linkoids. In a word, everything is as usual.
In the summer of 2011, the author participated in the work of the famous Siberian summer school for young programmers - LSHUP-2011, where he taught 6-8 graders in Lisp using HomeLisp.
And in September - December 2011, the author read a short course in functional programming at the Saratov Technical University, again based on HomeLisp.
Thus, it can be stated that the author fully realized the initial intentions. And the project will develop further.
In conclusion, the author wants to say that he will be grateful for any constructive criticism and wishes.
What happened during these two years with the project?
I hasten to “please” the ill-wishers: the project is not abandoned and is slowly developing. 02/09/2012 the developer posted on the website homelisp.ru the latest version of the package 1.13.4. It will be further described how it differs from the previous one (the one that the Khabrovsk residents “pecked” two years ago).
The most important difference is that the variables have become lexical (imagine, the developer knows what a lexical variable, closure, generator, etc.) are. There are also dynamic variables that are created by a special function.
The function body can now consist of several S-expressions (as is accepted in modern versions of Lisp);
Common Lisp features for setting key and optional function parameters have been implemented. The ability to create functions with an indefinite number of arguments is supported.
A lot of Common Lisp functions are implemented (LET, DO, DOTIMES, DOLIST, LOOP, IF, WHEN, UNLESS, etc.) Hash
arrays and the necessary set of functions for working with them are implemented.
Implemented the ability to save the state of the Lisp machine in a disk file. Everything is recorded - down to the graphics in the windows. Information can be restored from the file.
Implemented a simple dialog debugger.
The package of graphic functions added the ability to draw Bezier curves and control the transparency of the window.
Added CONTEXT and VARLIST functions showing the state of the current context.
Interval timer implemented.
Implemented reverse locking in macros.
The script part of the Web component has been rewritten in JavaScript, so now you can use FireFox or Oper (checked!) To work with the web component.
And, in addition, a decent amount of small (and not so) errors have been fixed.
In general, HomeLisp became closer to Common Lisp (and almost did not increase in volume).
Now a few words about the use of HomeLisp. According to the author’s information, the package was downloaded by a couple of thousand users. It (the package) began to be slowly used for teaching Lisp (in Novosibirsk, for example, where the author made a 20-minute message). Links to HomeLisp in various forums began to come across.
Links are mostly positive, with the exception of the malicious attack of the linkoids. In a word, everything is as usual.
In the summer of 2011, the author participated in the work of the famous Siberian summer school for young programmers - LSHUP-2011, where he taught 6-8 graders in Lisp using HomeLisp.
And in September - December 2011, the author read a short course in functional programming at the Saratov Technical University, again based on HomeLisp.
Thus, it can be stated that the author fully realized the initial intentions. And the project will develop further.
In conclusion, the author wants to say that he will be grateful for any constructive criticism and wishes.