Advertisement

Lisp is King

Started by March 06, 2003 04:28 PM
325 comments, last by bishop_pass 21 years ago
quote:
What makes you think that isn''t a good idea?


The link you posted

quote:
It''s only circumstance that has resulted in C being the lingua franca for building OSs.


Sure, but it''s more than circumstance that has prevented Lisp from being a consideration in this area.

Quite frankly, the link you posted showed nothing interesting being done with Lisp in OS development. One of the OSes was featured as not having a kernel, process manager, or file system.



----
Bart
----Bart
quote: Original post by trzy
One of the complaints about Lisp is that it isn''t a practical language for large projects

There are lots of complaints made about lots of technologies. Must you uphold each and every complaint you hear? Perhaps you should shun your Microsoft OS because someone complained about it. Here''s another complaint: C++ isn''t a practical language for large projects. How do you evaluate such complaints?
quote:
Lisp and C are for different things, that''s the point I made, and what you said as well.

The point is that if C and C++ were used only for the things that they were good at, they would not be anywhere near as popular as they are now. For almost every use I''ve seen of C and C++, Lisp would have offered a better solution, with only a few exceptions.
quote:
Perhaps a better request would have been: Write a high-performance real-time 3D engine in Lisp.

Presumably, the implication here is that you can''t?
quote:
Lisp doesn''t seem too interesting for the things I''m playing with now: 3D graphics and compilers.

Why not?
quote:
Arguably, Lisp could be handy for programs which need to process data such as BSP trees, etc. For sophisticated compilers, I''m not sure Lisp would be helpful.

Which version of "not sure" is that? Is it "I don''t know how to do it in Lisp, so I''m not sure" or is it "I''m not sure that it would be helpful, so I''ve decided it wouldn''t be"?
quote:
By chance, I''ve been looking at ML, and supposedly it''s pretty good for programs which rely on complex data structures. What I would really find handy for writing programs to manipulate lots of complex data structures is a language that makes creating, manipulating, and managing data structures very easy.

What sort of data structure? Lisp excels at building and manipulating data structures using cons cells, from graphs on down.
quote:
I don''t see Lisp as being too practical for this in itself

Why is your attitude towards Lisp "hey, I don''t know about Lisp, but I''m not letting that stop me from concluding it can''t be much practical use"?
Advertisement
quote: Original post by trzy
None of the Lisp code I've seen seems appreciably smaller than C code trying to do the same thing.

It wouldn't be if you've only seen toy examples. The benefits of languages become more apparent on a larger-scale.
quote:
No, because it's compiled into syntax trees, thus freeing the programmer from burden of having to think in terms of that sort of structure.

Ah, but it doesn't free the programmer of that burden. There are many occasions when we want access to the internal representation of a C++ program, and we end up having to build complicated simulations of Lisp's facilities. For example, when you serialise, you are reconstructing an equivalent of the internal representation. When you perform template metaprogramming, you are pretending to manipulate the internal representation. Every time you make a remote procedure call, you need to hook into the internal representation. The list goes on. What you really mean is that, in C++, we try to free ourselves from the burden of having to think in terms of the internal representation, because it's so damn painful to do so. In Lisp, it is trivial to deal with the AST, so it happens all the time.
quote:
C is suitable for a lot more than driver code. It's been used for a lot things, you know, with spectacular results.

We shouldn't conclude too much about that other than certain people are willing to concentrate effort on getting results by whatever means. It certainly doesn't tell us that C was the better solution.
quote:
I'm not arguing it's the be-all end-all of languages, because it certainly isn't and it is slowly fading away, but it's functionality is nothing to be scoffed at.

Maybe not, but it's expressivity is. We could scoff at the functionality of C if you consider that, without the Standard Libraries, it is not Turing-complete.
quote:
Then why isn't Lisp more popular in compiler development?

Please go back and read the Naggum quote about Lisp's lack of popularity. Now, repeat after me "popular does not imply good".
quote:
I can't imagine something like GCC or ORC done in Lisp. Neither are pretty as it is, but I don't think Lisp would cut down the code complexity and size significantly. The code would probably be a lot harder to follow and maintain.

Woah! And you don't know Lisp? What hubris leads you to decide you know exactly how Lisp would be on such a task?

[edited by - SabreMan on March 8, 2003 5:02:38 AM]
quote: Original post by trzy
Sure, but it''s more than circumstance that has prevented Lisp from being a consideration in this area.

How do you know that? The Lisp Machines went down with Lisp during the AI Winter.
quote:
Quite frankly, the link you posted showed nothing interesting being done with Lisp in OS development.

It was a rebuttal to your implication Lisp is no good for OS development.
quote:
One of the OSes was featured as not having a kernel, process manager, or file system.

I''ll bet there are C OSs without a kernel, process manager or file system. If you are of a rational mind-set, then you should consider that a lack of something does not make for a proof. So, we can conclude from the fact there are C OSs that you write OSs using C. We can''t conclude that because we don''t know of any Lisp OSs, that you can''t write an OS in Lisp. The question then, should be "why aren''t there any popular OSs written in Lisp?" Notice that this is just a special-case of "why isn''t Lisp popular?"
quote: Original post by trzy
Such as?

Well, if you wanted some shrinkwrap non-mission-critical desktop applications that are basically a rehash of problems already solved, I'm not providing you any.

What I am providing you are are completely unique very large problems which required an effective and powerful solution for mission-critical applications, which in my opinion, is far more intensive than what you were probably thinking of.

Luther
British Telecom
Design Planner
ICAD for GM, Ford, Mitsubishi, Honda, British Aerospace
Mars Pathfinder Mission Planning System
Hubble Telescope Scheduling System
ViaWeb for Yahoo!

Also,
CYC
AutoCad and very large customized modules for automated design and testing within AutoCad.
EMACS.
quote: Original post by trzy
Then why isn't Lisp more popular in compiler development?

How do you know it isn't? As it turns out, of the hundreds and hundreds of languages out there, most are probably built on top of Lisp to begin with. You're probably only thinking of the four or five that you're familiar with. There's a whole world out there full of computer scientists developing heavy theory with regard to languages, provability, theorem proving, declarative programming, planning, design verification, unification, etc. that relies on the power and ease of Lisp to act as the substrate for such languages.
quote: Original post by trzy
I can't imagine something like GCC or ORC done in Lisp.

I can. How small can you write a Prolog compiler in C? It was done in Lisp in 180 lines.

[edited by - bishop_pass on March 8, 2003 5:41:47 AM]
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
Another look at Lisp.
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
Advertisement
So far, my take on Lisp:

Pros:
Looks pretty cool

Cons:
I can''t find a decent freeware ide for windows... (With an interpretor and file running thiny put together) They all got strings
Few Questions After Learning a Bit:

How do I get a function to return a value?

Whenever I use print, it prints the same thing twice, why?

Whenever I run a script, do I have to refer to a main function? Or could I just click and run it?

quote: Original post by RedSweater
So far, my take on Lisp:

Pros:
Looks pretty cool

Cons:
I can''t find a decent freeware ide for windows… (With an interpretor and file running thiny put together) They all got strings

For certain values of "freeware"[1], you can use Corman, Xanalys or Allegro. Learn to drive Google, and it''s a short hop across a fibre to reach a downloadable copy.

[1] What is it with "freeware"? It''s not clear what people mean. Often, I suspect that people mean "I want something that fulfils each and every one of my whims at no cost to myself, and with no effort on my own part, and I have no intention of ever putting anything back into the community that I take from". If, on the other hand, people mean that they would like to avoid paying money, but are prepared to go to a little effort in using someone else''s work, and have the willingness to contribute something in return, then there is freeware to be found wherever you look.
Freeware: A piece of software free of charge that doesnt nag you to register it. (Or it doesn''t have any time constraints, file saving constrains, big giant screens at startup etc..)

For example, Corman only allows you to use the freeware edition for 30 days. Xnalysis has some sort of time limit for each use, and Allegro, I didn''t bother to try out. Right now, I''m using a lisp that runs on the command line.

This topic is closed to new replies.

Advertisement