Linked by Alexandru Lazar on Mon 5th Jan 2009 19:13 UTC
General Development In the age of dynamic languages and closures, most of you have probably heard of a mighty dragon called Lisp (which stands for LISt Processing), whose fans look almost with despise at other languages rediscovering it. Invented half a century ago, Lisp went on to become a de facto standard in the world of AI research, and has stood behind a handful of very neat inventions in the 1980s. Nevertheless, the long AI winter and the drift of technology towards other paradigms have almost lead to forgetting Lisp alltogether; IT has only recently started to rediscover parts of what made Lisp so cool back then.
Thread beginning with comment 342385
To read all comments associated with this story, please click here.
One more to add to the list...
by kawazu on Mon 5th Jan 2009 20:14 UTC
kawazu
Member since:
2005-12-11

... of languages to have a look at and to eventually use for something "real-world", I once again come down to wondering, in 2009, _what_ I actually might want to use LISP for. Sure, it's an interesting language eventually covering a set of use cases better than other languages, same as Haskell or Erlang or Prolog or Scala or some others. But: Looking at my (narrow) horizon of using Java in a productive environment every day, I see it's not really the language, the paradigm or the IDE to make this a useful tool - it's the vast community, the overwhelming set of third-party components and code both open-source and proprietary, the presence of frameworks and platforms like Java EE or Spring, the availability of tools for modeling / MDA, testing, code coverage and so forth, the existence of application servers to allow for deploying, starting, running distributed applications without too much ado that still make me stay with Java rather than considering going for any of the (eventually more interesting) languages. So to say: Where in this toolbox to meaningfully fit in newLISP and friends? Where, in terms of doing productive work, can newLISP be dropped in there getting something done, making it more than just an "interesting tool"?

Thanks for any comments...
K.

Reply Score: 1

alexandru_lz Member since:
2007-02-11

A handful of places where Lisp is used can be found here: http://bc.tech.coop/blog/041027.html . Some of the links are dead (the blog post is almost five years old now), but it's there all right.

I, for one, don't believe in the rebirth of Lisp, in spite of liking it as I do. Common Lisp is too baroque to be meaningful today, and I don't think tools like newLISP or Scheme can make good replacements for Java or C# (although without trying it, I can't call this an informed opinion). However, there are a few features of Lisp that I wish Java -- of which I'm a user myself -- actually had.

I also think there's a reasonable niche for Lispish scripting languages like newLisp; they're dynamic ,expressive, have enough tools to be used for this, they're portable and allow for quick prototyping, which is exactly what I'm looking for in a scripting language (and what made me try newLisp first, in fact).


Edit: many of the links on that page point to Franz Inc.'s webpage, which sells its own Common LISP implementation, so there's a lot of marketing mumbo jumbo on them which I think you can safely skip.

Edited 2009-01-05 21:00 UTC

Reply Parent Score: 2

kawazu Member since:
2005-12-11

A handful of places where Lisp is used can be found here: http://bc.tech.coop/blog/041027.html . Some of the links are dead (the blog post is almost five years old now), but it's there all right.


Thanks for the pointer, I'll surely have a look and browse through these. Actually, I am generally enthusiastic about solving problems using tools that fit them best. I would love to, say, use a functional language to implement the computational core of our business application, or something like Prolog in situations in which business rules are to be implemented / evaluated. Maybe in many cases this would even eliminate the need to have custom DSLs because some language in existence might address the problem same as well.

But: In the end, to me so far it seems that, in terms of overall support and tooling, there are Java and .NET and no real other languages completely on par with both platforms in terms of feature completeness, tooling, adoption and "ecosystem". So as long as it's basically about choosing either one of them, throwing in another language to me mainly seems about adding complexity: I need an expert capable of working with this "additional language". I eventually will have to deal with a broken tool chain, being in need of another IDE, different debugging / profiling tools, different deployment mechanisms and so forth in order to get code implemented in this language handled. Plus, in worst case I end up with making a "standalone" application a "pseudo-distributed" one as I am suddenly in need of enabling communication between code / subsystems implemented in different languages, making use of different runtime environments, ... . Maybe, in Java, things like JSR-233 are likely to ease this a little on the long run, but so far I am really really sceptical about that...

Cheers,
K.

Reply Parent Score: 1

sdeber Member since:
2005-07-06

Dude, you really got the point. In so-called "IT" industry, the most worthless thing is the technology. Money is the real boss. Lisp itself is good. It evolves smoothly, in contrast, languages like java or C# are just evolution dead-end. I saw the talk about the future of C#, my impression is that these C# guys is doing the same thing as those C++ people did to C. They are just patching the existing language. And the result is that we end up with a language with awfully complicated syntax and semantics.
Why these guys like C flavor so much? I mean C is good, it is also an evolution dead end, but it is OK for C because C is designed to do low level programming such as writing kernels, device drivers or system programming, and this kind of jobs rarely changes. In contrast, languages like java or C# are different, they are mostly used in business world, and business changes fast.

Edited 2009-01-05 22:02 UTC

Reply Parent Score: 1

google_ninja Member since:
2006-02-05

C was designed to be a high level portable language, not to do "low level stuff". It was the C# or Java of its time, when everything was done in asm.

C# isn't just rolling random features in, if you look at the last few releases it is obviously trying to roll some of the reasons that functional and dynamic languages are so awesome into a statically typed language while still maintaining clarity and performance.

Not only that, but the IT industry that you are disparaging is taking a good look at functional languages like LISP right now. There is a huge interest in Haskell, Erlang, and F# as a way to leverage parallelism in a smart way and to deal with certain types of problems that OO doesn't handle well.

Reply Parent Score: 2

google_ninja Member since:
2006-02-05

One of the "friends" is F#. In the .net world, F# is a first class citizen, and can interop with C# assemblies with little effort and no penalty. The idea is that OO does not deal with certain kinds of problems well, while other paradigms deal with them beautifully. Functional languages are phenomenal for recursion, and can function in a parallel manner gracefully, both things that are very ugly in OO languages.

I would argue that the IT industry is very interested in functional (and dynamic) languages, are are just trying to find the best way to use them right now. I haven't been in the Java world for about 7 years now, but in the .net world functional languages are getting a lot of buzz.

Reply Parent Score: 4