Live data from Hacker News

How to write Common Lisp in 2017 – an initiation manual

articulate-lisp.com

261–270 of 271 posts

Re: How to write Common Lisp in 2017 – an initiation manual

#261

Earlier quoted context omitted.

Yes, but racket is a terrible language to work with. I've mentioned for years that drracket needs a general sexpr mode and integrated terminal for something like geiser. They don't listen. I am working on a general purpose solution, but I'm just one person. And I don't leverage public dollars to write bad tools from the safety of university, so that slows it down a bit.

> racket is a terrible language to work with. > ... > I don't leverage public dollars to write bad tools That's, like, your opinion, man! Further, if your habit is to make feature requests in combination with this kind of subjective disparagement, I can see why the Racket community didn't jump to implement your request. Lighten up. Everyone here is on the same team.

Definitely not the same team. I never crawled to them and asked them. I've mentioned itd be a good feature, they decided to rewrite window management over and over again. Can't help that.

The racket community includes disgusting transvestites and a bunch of cucked out and Guy Steele wannabes.

Very little talent, lots of public dollars to spend rewriting things nobody ever had trouble with.

Now they want to reimplement all of racket in chez. They prove me right more consistently than any other project I criticize.

Re: How to write Common Lisp in 2017 – an initiation manual

#262
post #31

If emacs is an obstacle to Common Lisp in 2017, maybe what's needed is a Lisp-interaction plugin for vi(m) (or whatever it is that vim uses in lieu of emacs modes). I don't get the hype for modal editing but you can't argue with the data clearly showing emacs users are in the minority.

I've never used Emacs, so I can't really say how it compares to Slime, but I've thoroughly enjoyed using Vim-Slime[0] and Tmux[1] for development in lots of languages (CL, Racket, Clojure, Ruby, JS, SQL, Haskell, Bash, etc.).

- https://github.com/jpalardy/vim-slime

- https://tmux.github.io/

Re: How to write Common Lisp in 2017 – an initiation manual

#263

Earlier quoted context omitted.

>I make a point and people have to attack that that the language is pointless when it is the number one language in that domain, which just happened the last two years. That's not true though, R doesn't have anywhere near the ecosystem that Python does for Natural Language Processing, Web Frameworks, Machine Learning, Computer Algebra and Symbolic Reasoning, Systems Programming, Image Processing, Document Processing,…

> That's not true though, R doesn't have ... Your comparing a general purpose language and a domain specific language. Domain specific just talking in statistics and data science. I don't need a webframe work I need to make my report and have the charts work. I also push out my reports in Word and PowerPoint and I can't do that in Python but I can in R with ReportR library (The whole reason why I left Python and Pand…

>Domain specific just talking in statistics and data science. I don't need a webframe work I need to make my report and have the charts work. I also push out my reports in Word and PowerPoint and I can't do that in Python but I can in R with ReportR library (The whole reason why I left Python and Pandas and came to R)

If you are literally only doing that then you are a Data Analyst not a Data Scientist. A Data Analyst takes structured data and writes reports for business people. A Data Scientist structures unstructured data for Data Analysts. So if you are processing large amounts of untabled data (ex. images, text, video, etc) and categorizing or measuring it and storing those categorizations or measurements for future use, then you are a data scientist. But if you are taking these categorizations and measurements and making reports out of them then you are a data analyst.

>I don't need a webframe work I need to make my report and have the charts work.

Data Scientists write algorithms and so to make these algorithms available to other people you need some sort of way for them to use it, the simplest being to through an API endpoint in front of it where people can send their input and a data scientist responds with their output.

Also the article you cited from datasciencecentral reinforces exactly what I was saying.

And for the kdnuggets article I am disputing their only claim why they think R is better, that R makes it easier to zoom through 1000 variations of linear regression for your reports. If you write a report where every graph has a different variation of linear regression then your partners are not going to have any confidence in your results or that you know what you're doing. So say you are a good data analyst that knows which linear regression you are actually using, then you're not getting any of the benefits from R but still have all its limitations.

Re: How to write Common Lisp in 2017 – an initiation manual

#264
post #260

Earlier quoted context omitted.

This talks about GC settings that worked for them in SBCL for production, not sure if you already tried the same kind of stuff but may be an interesting read http://tech.grammarly.com/blog/posts/Running-Lisp-in-Product... . If you can make an easy to run example of the garbage collector not working correctly, the folks in #sbcl on freenode are very responsive and have commit access to fix it.

Good to hear someone had good interactions in #sbcl Still have a bitter taste from attempting to report the issue there.

Yeah, i've had good and bad interactions.

They seem to be cranky due to getting a lot of idiots (including sometimes me) coming in thinking something is sbcl when it was actually the programmer's fault.

Generally if I think something is sbcl now I put together example code that clearly shows the issue and that seems to work well.

Re: How to write Common Lisp in 2017 – an initiation manual

#265
post #220

Earlier quoted context omitted.

The JVM indeed quickly got me disinterested in Clojure. However, I have similar issues with other (free) Lisps, with probably only Emacs Lisp being the exception. As a Smalltalker ("the other heroin of the programming world") I'm used to a highly integrated and responsive development environment; from what I heard from other Lispers, the quick feedback and gradual building up of your program is a shared aspect, but t…

> also that your program and your IDE are basically indistinguishable Lisp provides that,too. But you can also deliver programs with the IDE and much of the development tools removed. Examples for integrated IDEs: Allegro CL on Windows/Unix+Gtk, Clozure CL (free) on Macs, LispWorks on Windows/Macs/Unix+GTK/Unix+Motif. There the IDE and the user code runs in one Lisp. Other examples: Lisp Machines, CMUCL on X11, ... t…

Hi,

I read this article on your site:

http://lispm.de/why-lisp-is-different

Quote from it:

[ When in doubt design software to be introspective.

when in doubt design software to be reflective. ]

What is the difference between introspective and reflective? I've used introspection in Python and know about and used (a bit) reflection in Java earlier, but thought they were roughly the same sort of thing. Please explain the difference if possible.

Re: How to write Common Lisp in 2017 – an initiation manual

#266
post #265
post #220

Earlier quoted context omitted.

> also that your program and your IDE are basically indistinguishable Lisp provides that,too. But you can also deliver programs with the IDE and much of the development tools removed. Examples for integrated IDEs: Allegro CL on Windows/Unix+Gtk, Clozure CL (free) on Macs, LispWorks on Windows/Macs/Unix+GTK/Unix+Motif. There the IDE and the user code runs in one Lisp. Other examples: Lisp Machines, CMUCL on X11, ... t…

Hi, I read this article on your site: http://lispm.de/why-lisp-is-different Quote from it: [ When in doubt design software to be introspective. when in doubt design software to be reflective. ] What is the difference between introspective and reflective? I've used introspection in Python and know about and used (a bit) reflection in Java earlier, but thought they were roughly the same sort of thing. Please explain th…

Introspection means that the program's structures and procedures are discoverable and we can query about them. Typical questions we might want to have answers for:

* find me the class, typically by name or by some relationship

* what are the fields of that class?

* find me a function

* what are the arguments of the function? does it have documentation? Who wrote it? Where is its source? What values does it return?

* where is the function used? what functions does it call?

* what are the values of a field of some object? What class does it have?

This and more for example enables you to inspect a program at runtime and find out what it does, how it does it and what its state currently is.

Reflection means that elements of the programming language are itself exposed and we can change/extend them.

Two examples of the Lisp world. Very unusual is the reflective tower, where a Lisp program is run by some kind of machine, which for example is a Lisp interpreter. This Lisp interpreter is itself a Lisp program. Thus you can not only write the program, but you can change/extend the interpreter running the program. A certain Lisp dialect allowed also to look at the interpreter running the interpreter running the interpreter running the interpreter ...

In Common Lisp a typical form of reflection is the Meta-Object Protocol of CLOS. It allows you to program the object system to implement new variants: persistent objects, transactions over objects, different inheritance mechanisms, classes which record their instances, ... Thus the MOP exposes classes, methods, generic functions, slot descriptors, ... as CLOS classes and methods - and protocols about them. Thus CLOS can be programmed in itself. Even at runtime.

More primitive reflection would allow you to create/change/remove things like user classes and user methods. Task: create a new subclass of an existing class at runtime.

Re: How to write Common Lisp in 2017 – an initiation manual

#267

Earlier quoted context omitted.

> racket is a terrible language to work with. > ... > I don't leverage public dollars to write bad tools That's, like, your opinion, man! Further, if your habit is to make feature requests in combination with this kind of subjective disparagement, I can see why the Racket community didn't jump to implement your request. Lighten up. Everyone here is on the same team.

Definitely not the same team. I never crawled to them and asked them. I've mentioned itd be a good feature, they decided to rewrite window management over and over again. Can't help that. The racket community includes disgusting transvestites and a bunch of cucked out and Guy Steele wannabes. Very little talent, lots of public dollars to spend rewriting things nobody ever had trouble with. Now they want to reimplemen…

This comment seriously violates the guidelines around civility and name calling, and is just nasty besides. If you'd like to continue to post on Hacker News you can't do this again.

Re: How to write Common Lisp in 2017 – an initiation manual

#268
post #266
post #265

Earlier quoted context omitted.

Hi, I read this article on your site: http://lispm.de/why-lisp-is-different Quote from it: [ When in doubt design software to be introspective. when in doubt design software to be reflective. ] What is the difference between introspective and reflective? I've used introspection in Python and know about and used (a bit) reflection in Java earlier, but thought they were roughly the same sort of thing. Please explain th…

Introspection means that the program's structures and procedures are discoverable and we can query about them. Typical questions we might want to have answers for: * find me the class, typically by name or by some relationship * what are the fields of that class? * find me a function * what are the arguments of the function? does it have documentation? Who wrote it? Where is its source? What values does it return? *…

Interesting, and thanks for the answer. It's a while ago, but when I used reflection in Java (in v1.4, IIRC), what it did seemed like some of the capabilities you describe under introspection above. Maybe they just used a different term for it than you do. Example: Finding the methods of a class and calling them dynamically at runtime, finding the number and types of the arguments of a method, etc. These capabilities were part of the java.reflect* package, IIRC.

Re: How to write Common Lisp in 2017 – an initiation manual

#269
post #268
post #266

Earlier quoted context omitted.

Introspection means that the program's structures and procedures are discoverable and we can query about them. Typical questions we might want to have answers for: * find me the class, typically by name or by some relationship * what are the fields of that class? * find me a function * what are the arguments of the function? does it have documentation? Who wrote it? Where is its source? What values does it return? *…

Interesting, and thanks for the answer. It's a while ago, but when I used reflection in Java (in v1.4, IIRC), what it did seemed like some of the capabilities you describe under introspection above. Maybe they just used a different term for it than you do. Example: Finding the methods of a class and calling them dynamically at runtime, finding the number and types of the arguments of a method, etc. These capabilities…

https://en.wikipedia.org/wiki/Type_introspection

> Introspection should not be confused with reflection, which goes a step further and is the ability for a program to manipulate the values, meta-data, properties and/or functions of an object at runtime.

Re: How to write Common Lisp in 2017 – an initiation manual

#270
post #267

Earlier quoted context omitted.

Definitely not the same team. I never crawled to them and asked them. I've mentioned itd be a good feature, they decided to rewrite window management over and over again. Can't help that. The racket community includes disgusting transvestites and a bunch of cucked out and Guy Steele wannabes. Very little talent, lots of public dollars to spend rewriting things nobody ever had trouble with. Now they want to reimplemen…

This comment seriously violates the guidelines around civility and name calling, and is just nasty besides. If you'd like to continue to post on Hacker News you can't do this again.

I prefer to be ruthlessly censored and have my narrative controlled by dang. Is he available?
Post reply on HN