Почему Лисп умирает?
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 26.05.07 10:19
Оценка: 71 (9) +2
Привет всем.

Наткнулся на очень необычную точку зрения. Хотя она именно цепляет своей необычностью, тем не менее здравое зерно в ней, на мой взгляд, есть. Сообщение было запощено в comp.lang.lisp неким Ben-ом.

Well, I finally reached enlightenment. I understand why people don't use lisp. It took me a long time. It isn't a lack of libraries, or the number of parentheses. The thing that kills a language is powerful syntax and abstractions.

I work in C# (worst language EVER!) and I had to write some loops to accumulate some values in some collections. I spent a good deal of time looking for some standard accumulate function. Nothing. So I
decided to roll my own using generics and anonymous functions. My manager looked at the code and asked "Who's going to maintain this? How will they understand it?"

That's not the first time I've encountered these questions. I heard it when I used function pointers in C. I heard it when I used templates in C++. I heard it when I used Lisp for ANYTHING.

I can certainly understand concerns about over engineering a solution. I've been the victim of many over complicated class structures. I think there's a difference between complicating a design and using the language syntax. When I simplified the implementation from six independent functions to one that gets an anonymous function, I thought I was making it easier. I didn't worry that future developers would have to know ALL the syntax of the language instead of just the set that intersects with C++.

I'm finding that regardless of the language used, many "professional" developers have a serious issue with the more powerful abstractions available to them. A language like Lisp that supports the abstractions so naturally (as opposed to the syntactic mutilation that happens in C#) is doomed.

Sorry about the rant. I am incredibly frustrated. How is C#'s poor readability my fault? I didn't design or select the doggone language.

I hope our product's translators understand the languages they translate. Maybe they figure knowing a few major words is enough, and they can wing the rest!

-Ben


Результат трансляции:

Гхм, я наконец достиг просветления. Теперь я понимаю, почему люди не используют Лисп. О, я долго шёл к этому. Причина не в недостатке библиотек, и не в количестве скобок. Та самая штука, которая убивает язык — это мощный синтаксис и мощные абстракции.

Я работаю на C# (кошмарнейший язык!) и я должен был написать некоторые циклы для суммирования некоторых занчений в некоторых коллекция. Я потратил целую кучу времени в поисках стандартной функции суммирования. Ничего. Потому я решил налабать свою на дженериках и анонимных функциях. Мой манагер посмотрел на код и спросил: "Чувак, да ты маньяк! Какого хрена ты здесь накатал? Ты думаешь у меня штат гениев чтобы разбирать твою помойку?"

Это не первый раз, когда мне задавали такие, с позволения сказать, вопросы. Меня доставали ими, когда я использовал указатели на функции в C. Меня доставали ими, когда я использовал шаблоны в C++. Мне капали на моск когда я использовал Лисп для хотя бы ЧЕГО-НИБУДЬ.

Я конешно могу понять штуки про стрельбу из пушки по воробьям. Я оказался жертвой соблазна владеть ядерным оружием. Я думаю, есть разница между усложнением дизайна и использованием синтаксиса языка. Когда я упрощал реализацию с шести независимых функций до одной, которая принимает анонимную функцию, я думал что я делаю вещи легче для понимания. Меня не особенно волновало то, что разработчики идущие вслед за мной вынуждены были знать ВЕСЬ язык вместо небольшой части, пересекающейся с C++.

Я наблюдаю такую ситуацию независимо от используемого языка. Многие "профессиональные" программуры обнаруживают серьёзные пробелы с более мощными абстракциями доступными для них. Язык типа Лиспа, который поддерживает абстракции настолько естественно (вместо синтаксических вывертов, что происходит в C#) оказывается обречённым на вымирание.

Я прошу прощения за этот поток сознания. Я офигенно разочарован. Как получилось, что ужасная читабельность C# оказывается моим провалом? Я не разрабатывал его и не выбирал этот долбаный язык!

Я надеюсь, переводчики нашего продукта понимают языки на которые они переводят. Хотя возможно они думают, что достаточно знать несколько мегаслов, и они могут подогнать остальное, что бы там ни оставалось!

— Бен


Вся ветка, которую я не советую читать — очень большая, и невозможно оторваться, но привожу здесь для полноты картины:
I finally understand why I'm not allowed to use Lisp
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.