Author Topic: LISP, who are you?  (Read 2151 times)

0 Members and 1 Guest are viewing this topic.

Offline lucid

  • #Underground
  • Titan
  • **
  • Posts: 2683
  • Cookies: 243
  • psychonaut
    • View Profile
LISP, who are you?
« on: December 15, 2013, 04:49:04 am »
Now that I'm finally done with school it's time for me to get back into doing what I want. One of those things I want to do is learn programming languages. Lots of them. Unfortunately for me it's only plausible to learn one or two at a time. So my ever potent ADD has directed me towards Lisp. That's right. Lisp. I'm sure there aren't many of you here but I know there's one or two people who have at least some experience with this particular language, so I wanted to start a discussion about it.

You see, I'm also interested in coding malware. I've read up a little on Lisp and if memory serves it seems that the general consensus is that Lisp is a good language to learn if you want to become a more well-rounded programmer, but that it's not a particularly practical language. I've also read that Lisp is good for AI programming, but I haven't seen much else.

I'm not asking if Lisp is a good programming language for writing malware, I'm mainly asking what kind of practical uses does Lisp have in general. Oh, and if you are overcome with the urge to vomit the popular phrase C/++ and ASM! all over this thread then please, see yourself to a toilet or the nearest garbage can. I'm well aware that those are good languages for coding malware as well as many other things. I can read too.

So, what practical uses does Lisp have? What kind of language is it in your opinions? Discuss.
« Last Edit: December 15, 2013, 10:46:35 pm by lucid »
"Hacking is at least as much about ideas as about computers and technology. We use our skills to open doors that should never have been shut. We open these doors not only for our own benefit but for the benefit of others, too." - Brian the Hacker

Quote
15:04  @Phage : I'm bored of Python

Offline karsa

  • Peasant
  • *
  • Posts: 117
  • Cookies: 44
    • View Profile
Re: LISP, who are you?
« Reply #1 on: December 15, 2013, 03:53:22 pm »
This has also crossed my mind a few times, but haven't given it much thought. This was posted today on HN, I think it will answer some of your questions: Lisp Hackers.
« Last Edit: December 15, 2013, 05:10:07 pm by karsa »

Offline vezzy

  • Royal Highness
  • ****
  • Posts: 771
  • Cookies: 172
    • View Profile
Re: LISP, who are you?
« Reply #2 on: December 15, 2013, 05:14:43 pm »
First of all, it's Lisp. Lower case.

Why the fuck would you want to code malware in it?

Lisp is the high-level language. It's homoiconic. This means it treats code and data as identical, allowing for flexibility unlike any other language. Its syntax is very simple and based on a simple pattern known as S-expressions, the same S-expressions it uses to build its abstract syntax tree during interpretation.

Every single language feature you can name: Lisp has it. That's because Lisp pioneered it. Lisp was the first language to have garbage collection, conditional expressions, dynamic typing, recursion and many other things we now take for granted.

The homoiconicity of Lisp makes it a programmable programming language. You can manipulate and alter language constructs with ease to create what are known as macros (see example here: http://stackoverflow.com/questions/267862/what-makes-lisp-macros-so-special), and even create your own little domain-specific languages to use in projects.

Lisp is powerful like no single other language. Yet, unlike C++, it manages to retain so much elegance and beauty. C++ is a horrific, ugly and arcane behemoth. Lisp is the light, the way, the hope.

A programmer who does not know Lisp is doomed to ignorance and stagnation. That's the harsh reality. Keep writing your Python scripts.

Now, Lisp has many dialects. The two most popular are Common Lisp and Scheme. Common Lisp basically tries to unify a lot of Lisp dialects, and as such has a huge library and larger learning curve. Scheme is small, elegant and originated in academics. I recommend you start with Scheme first. Use an interpreter like Chicken Scheme which has lots of third-party libraries written for it.

Lisp (particularly Scheme) has also been the forefront language in one some of the greatest computer science books of all time, such as Structure and Interpretation of Computer Languages (if you haven't read this book yet, DO IT NOW YOU MORON. This is one of the single greatest books you will read in your life, it will instill you with such a profound sense of enlightenment in so many areas of theoretical CS and practical programming. You will never be the same foolish code monkey again. It's a heavily renowned classic for a reason. STOP READING MY POST AND PICK IT UP.)

Then there's also The Little Schemer, a concise tutorial on Scheme that immerses you deep into the language immediately and it also has a good sense of humor.

What practical uses does Lisp have? Everything. You may have heard of Clojure? It's a Lisp dialect built on top of the JVM that is currently all the rage with web developers. You could learn that, too, if you'd like. Especially if you're already familiar with the Java API.

Lisp can be used to program anything at all. In fact, there were even special purpose computers developed by the MIT back in the '70s  and '80s which had their hardware designed to run software (from the operating system to the application level) written in Lisp. They were called Lisp Machines and emulators exist for them. These machines pioneered laser printing, window managers, mice and bitmapped graphics. Look them up.

OS written in Lisp: https://en.wikipedia.org/wiki/Genera_%28operating_system%29

Lisp is widely considered by great computer scientists and programmers to be the single greatest programming language ever conceived by man. This is not an exaggeration. See http://lispers.org/.

tl;dr Learn Lisp, you idiot.
Quote from: Dippy hippy
Just brushing though. I will be semi active mainly came to find a HQ botnet, like THOR or just any p2p botnet

Offline lucid

  • #Underground
  • Titan
  • **
  • Posts: 2683
  • Cookies: 243
  • psychonaut
    • View Profile
Re: LISP, who are you?
« Reply #3 on: December 15, 2013, 07:55:08 pm »
Why the fuck would you want to code malware in it?
No idea, that's why I was asking.

Quote
tl;dr Learn Lisp, you idiot.
Lol alright already. I suppose I should have known not to make a post like this anyway. Off to learn some Lisp. Probably CL
« Last Edit: December 15, 2013, 10:39:39 pm by lucid »
"Hacking is at least as much about ideas as about computers and technology. We use our skills to open doors that should never have been shut. We open these doors not only for our own benefit but for the benefit of others, too." - Brian the Hacker

Quote
15:04  @Phage : I'm bored of Python

Offline bluechill

  • Cybermancer
  • Royal Highness
  • ****
  • Posts: 682
  • Cookies: 344
  • I am the existence in these walls
    • View Profile
Re: LISP, who are you?
« Reply #4 on: December 16, 2013, 06:05:06 am »
Now that I'm finally done with school it's time for me to get back into doing what I want. One of those things I want to do is learn programming languages. Lots of them. Unfortunately for me it's only plausible to learn one or two at a time. So my ever potent ADD has directed me towards Lisp. That's right. Lisp. I'm sure there aren't many of you here but I know there's one or two people who have at least some experience with this particular language, so I wanted to start a discussion about it.

You see, I'm also interested in coding malware. I've read up a little on Lisp and if memory serves it seems that the general consensus is that Lisp is a good language to learn if you want to become a more well-rounded programmer, but that it's not a particularly practical language. I've also read that Lisp is good for AI programming, but I haven't seen much else.

I'm not asking if Lisp is a good programming language for writing malware, I'm mainly asking what kind of practical uses does Lisp have in general. Oh, and if you are overcome with the urge to vomit the popular phrase C/++ and ASM! all over this thread then please, see yourself to a toilet or the nearest garbage can. I'm well aware that those are good languages for coding malware as well as many other things. I can read too.

So, what practical uses does Lisp have? What kind of language is it in your opinions? Discuss.


LISP is a unique language.... I mean, see vezzy's post for the avid fan's perspective.  From my perspective lisp is a good language for the following reasons:

1) It forces you to think differently from programming in something like C++ (same is true of other languages like MatLab)
2) It forces you to see things from a different perspective

Lisp has some advantages yes, but it's not really good at *one* thing but okay at a lot of things just like C++.  It's more "specialized" in areas because of certain qualities of the language but so is a language like C++.  C++ trades Lisp's "beauty" (beauty is in the eye of the beholder) for raw power, flexibility, and ability to do basically whatever, it may just be complex to achieve that.  With regards to AI, Lisp isn't really *that* good for AI by itself BUT many AI specific languages are at least loosely based off it because there are a few concepts from Lisp that are pretty good for AI.
I have dreamed a dream, but now that dream has gone from me.  In its place now exists my own reality, a reality which I have created for myself by myself.

Offline Teddy

  • /dev/null
  • *
  • Posts: 12
  • Cookies: 8
    • View Profile
Re: LISP, who are you?
« Reply #5 on: December 21, 2013, 03:10:21 pm »

Quote
Lisp is widely considered by great computer scientists and programmers to be the single greatest programming language ever conceived by man

In case you want to read another article of a LISP fan I could recommand that one:


http://www.paulgraham.com/avg.html
« Last Edit: December 21, 2013, 03:13:00 pm by Teddy »

Offline detective6

  • /dev/null
  • *
  • Posts: 8
  • Cookies: 13
  • Step back. Evaluate. Recognize.
    • View Profile
Re: LISP, who are you?
« Reply #6 on: January 01, 2014, 03:55:55 am »
I was required to learn Scheme in one of my CS classes sophomore year. It was the most unique type of programming I've ever done. The class was called "Discrete Mathematics for Computer Science". So we naturally did a lot of set theory, proofs, etc.


However, I had never programmed in such a way before. Almost everything we did was in some way based on recursion. It was really difficult for me to wrap my head around, but once everything clicked it seemed like the coolest programming style in the world! And I would also highly suggest The Little Schemer. That book helped me SO much in the course. It starts off very simple and quickly builds upon each principle with tiny steps.


That being said, I would definitely recommend learning Scheme first before trying to do any larger projects in Clojure or common Lisp. In my class, our final lab / project was to implement RSA encryption and decryption, which was an awesome way to cement my learning.


From my experience, I definitely couldn't see anyone effectively writing any malware in Lisp or Scheme, but hey it's a creative idea. Good luck man.
I know this looks like science fiction; it's not.

Offline Heisenburg

  • Serf
  • *
  • Posts: 32
  • Cookies: 4
    • View Profile
Re: LISP, who are you?
« Reply #7 on: January 01, 2014, 04:42:05 am »
LISP is a unique language.... I mean, see vezzy's post for the avid fan's perspective.  From my perspective lisp is a good language for the following reasons:

1) It forces you to think differently from programming in something like C++ (same is true of other languages like MatLab)
2) It forces you to see things from a different perspective


Agreed, since Lisp are held together by structures called cons cells. It force you to think from a different perspective, from structure tree to tail recursive....


By my personal point of view, I think that Lisp language is hailed as the most powerful programming language, is because of it's academic reputation, in AI, especially. Oh yes, If you want to implement AI in malware... But the hardest part of programming malwares in Lisp is not that it's cryptic syntax, but....

  • You may found that there is no way to *build* executable file in lisp. You need to dump the core file outta the Lisp environment ( runtime environment or compiler )
    EDITED: and if you dumped the core file from SBCL, it should be extremely big.

  • If not, you need to make a MAKEFILE-like config file and compile the Lisp malware in victim side. Of course, you need a Lisp environment too.

PS. I got your idea before, that Lisp malware. But mastering lisp need a lot of time and practise :-[
« Last Edit: January 01, 2014, 04:48:20 am by Heisenburg »