avva: (Default)
[personal profile] avva
Мини-опрос: назовите три, с вашей точки зрения, самых красивых (своей эстетикой, своим устройством, своей структурой и т.п.) языка программирования. Ответы в комментах приветствуются.

Мои ответы:
1. Форт
2. Смолток
3. Не знаю - много разных претендентов на это место.


Видимо, учитывая первые два места в моём ответе, мне нравятся языки с таким свойствами:
  • очень простая концептуальная база;
  • практически неограниченные способности к расширению языка самим программистом в нём, включая самые фундаментальные его структуры;
  • прозрачность каждого действия на атомном уровне, переходящая в управляемую сложность на глобальном уровне, вытекающую из структуры, сотканной программистом.
  • мощная интегрированная среда, включающая в себя компилятор, интерпретатор и т.п., и всё это написано на самом языке за исключением крошечного ядра.

Последнее свойство, правда, имеет и свои отрицательные стороны: изоляцию языка внутри интегрированной среды, сложности с написанием отдельных программ, призванных функционировать отдельно от среды, внутри других систем.

Форт: дистилляция до прозрачной, и вместе с тем неимоверно мощной простоты базовой идеи макроса: кода, который только и делает, что вызывает в последовательности один за другим другие макросы. Плюс к этому постфиксная нотация и раздельные стэки для данных и контроля выполнения. Всё.

Смолток: дистилляция до прозрачной, и вместе с тем неимоверно мощной простоты базовой идеи объекта: набора данных, который определяет и воплощает протокол коммуникации с ним других объектов.

Оба языка - вне "мейнстрима", у обоих - своя ниша (Форт - embedded software, Смолток - financial systems). Оба мне бы хотелось видеть в мейнстриме, но этого никогда не случится.

Оба я сделал бы (вместе ещё с пятью-шестью другими языками) обязательными для преподавания в программе компьютерного факультета. Оба не являются обязательными для преподавания ни на одном известном мне факультете.
Page 1 of 2 << [1] [2] >>

Date: 2002-04-20 01:03 pm (UTC)
From: [identity profile] levg.livejournal.com
Прочитал, задумался... и понял, что не чувствую никакой красоты ни в одном из известных мне языков программирования. Более или менее грамотно реализованные, подходящие для той или иной цели, те, что я знаю лучше или хуже, но красивые, пожалуй что нет...

Видимо дело в том, что я ремесленник, а не художник. Я почти пятнадцать лет живу исключительно на то, что зарабатываю программированием, но практически никогда не писал код только ради удовольствия, и поэтому языки для меня - что метлы для дворника: инструмент надо знать и беречь, но красоту предпочитаю искать не на рабочем месте.

Re:

Date: 2002-04-20 01:10 pm (UTC)
From: [identity profile] avva.livejournal.com
Понимаю, да. У меня наоборот: во всём, что делаю, пытаюсь, иногда мучительно, найти красоту. Но не ощущаю себя при этом "художником", это другое.

Date: 2002-04-20 01:15 pm (UTC)

Date: 2002-04-20 01:18 pm (UTC)
From: [identity profile] dhr-eigen.livejournal.com
Python
Haskell

Re:

Date: 2002-04-20 01:21 pm (UTC)
From: [identity profile] avva.livejournal.com
А объяснить? ;)

У меня Хаскел один из претендентов на третье место. Питон... не, не потянет.

Date: 2002-04-20 01:24 pm (UTC)
From: [identity profile] cmm.livejournal.com
Scheme: лямбда-исчисление с латентными типами, абстракция контроля (в виде "продолжений").

Haskell: типированное лямбда-исчисление, lazy evaluation.

ML: по сути Scheme - скобки + типы.

Cecil: generic programming, квинтессенция своего рода. все функции generic, parametric multiple dispatch, etc.

помню вот ещё Icon был очень красивый и интересный, только вот не упомню чем именно.

Date: 2002-04-20 01:32 pm (UTC)
From: [identity profile] dhr-eigen.livejournal.com
Lambda calculus как парадигма программирования - это сильно своей радикальностью. Сравнивая ML с Haskell, выбираю Haskell.
В Python'е расплывчатый объектный подход довели до концентрированной расплывчатости. И идейно, и синтаксически. Такая пифия (pythoness) subtle OOD =)

Date: 2002-04-20 01:33 pm (UTC)
From: [identity profile] simuran.livejournal.com
I'll second that :)

Date: 2002-04-20 01:50 pm (UTC)
From: [identity profile] hotgiraffe.livejournal.com
Моя тройка: Haskell, Scheme, Smalltalk.
То есть, на самом деле (естессно, всё IMHO):

- Haskell, как самый правильный "чистый" функциональный язык (non-strict evaluation, симпатичные структуры, проработанная концепция взаимодействия с "императивным миром" через монады)
- Scheme, как самый правильный Лисп (лексическое связывание, continuations)
- Smalltalk, как самый правильный class-based ОО-язык (правильное соотношение статики и динамики, чистота подхода)

Причём все три а) могут быть весьма эффективно реализованы, б) достаточно удобны в преподавании CS и в) приятны в использовании.

Кандидаты (оба ОО), не вошедшие в тройку: Self и Cecil - первый за чистоту prototype-based ОО подхода, второй - за практичные мультиметоды.
Впрочем, ни одним ни другим я активно не пользовался (в отличии от тройки призёров).

Date: 2002-04-20 01:54 pm (UTC)
From: [identity profile] simuran.livejournal.com
Вообще, FP - забавная штука. Понятие referential transparency и битва с side-effects. В lazy языках (Haskell, Clean) - поддержка потенциально бесконечных структур.

А в питоне удалось реализовать поддержку и OOP, и IP, и FP (в какой-то степени).

Date: 2002-04-20 01:57 pm (UTC)
From: [identity profile] avva.livejournal.com
Наверное, Вы меня убедили почитать о Схеме, я с ней никогда дела не имел как-то.

Date: 2002-04-20 03:11 pm (UTC)
From: [identity profile] fima.livejournal.com
Назову C++ как самый жизнеспособный (моё представление о прекрасном в программировании).
Языки, перечисленные выше (в комментариях других), обладают иными типами красоты. Я бы сравнил красоту С++ с красотой урбанистического пейзажа (Дефанс или Эйфелева башня, например), Smalltalk - с видом на лес из окна, Форт - с росписями Рублёва, Схему - со звездным небом (с Хаскелем дело не имел).
Ещё могу предложить Пролог как Саграда Фамилия.
From: [identity profile] gong.livejournal.com
1. Деньги.

2. Власть.

3. Паскаль.

Первый - за универсальность. Второй - за неумолимость. Третий - за те милые недостатки, которые подходят именно мне.

Date: 2002-04-20 04:01 pm (UTC)
From: [identity profile] catpad.livejournal.com
Думаю, на первом месте Лисп (может и Схема, только о ней не знаю ничего).
Потом, сравнивать несравнимое трудно: хочется и ML и Prolog поставить на второе.
Prolog, конечно, не за удобство программирования, а за ощущение "чуда", которое всегда присутствует при его работе.
А за среду и usability - Java.
А вообще, вопрос классный, только ответить на него невозможно. Ты вот про человеческие языки спроси - интересно будет !

Date: 2002-04-20 04:08 pm (UTC)
From: [identity profile] 37.livejournal.com
Может, это не ответ на вопрос, или ответ, но на другой вопрос... Как старику Карамазову было все равно, какая женщина - хоть мовешка, хоть вьельфилька, так и для меня всегда хорош был тот язык, на котором я в тот момент писал. Иногда даже: чем хуже, тем лучше. Костный диалект вызывает к жизни чудеса изобретательности. В конце концов, я иногда вообще забываю, на каком языке я пишу и могу непроизвольно смешать конструкции :-)). Тем более, что, по крайней мере, в моей практике, язык почти никогда выбирать не приходилось. В конце концов, язык - это гвозди и молоток. Им сбиваешь конструкцию из стоящих над ним алгоритмов и интерфейсов.
Пожалуй лищь одно: в объектном мире я чувствую себя гораздо уютнее.

Date: 2002-04-20 04:10 pm (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
1. Scheme - самый практичный из лиспов, широко применяющийся в педагогике.

2. ML.

3. Не знаю.

Дополнение:

Date: 2002-04-20 04:12 pm (UTC)
From: [identity profile] catpad.livejournal.com
1. То, что ты написал про Форт, верно также и для никому не известного языка Trac. Очень симпатичное изобретение: здесь.
2. Есть такая книжка Дэвида Гелернтера (не помню названия), где он призывает на компьютерных факультетах преподавать курсы по эстетике, искусству, дизайну и т.п.
Как это было бы здорово и правильно !
Тогда бы не было программистов на Visual Basice и не возник бы JavaScript.

Date: 2002-04-20 04:22 pm (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
Только что нашел смешное Эволюция программиста на Хаскеле (http://www.willamette.edu/~fruehr/haskell/evolution.html)

Date: 2002-04-20 04:59 pm (UTC)
From: [identity profile] cmm.livejournal.com
> Scheme - самый практичный из лиспов.

ой. оёёй. оёёёёй.

в каком это смысле "практичный", не говоря уже о "самый"?

Re: Дополнение:

Date: 2002-04-20 07:25 pm (UTC)
From: [identity profile] avva.livejournal.com
1. Спасибо, обязательно посмотрю.
2. Мечты, мечты. Это тот самый Гелернтер, который стал инвалидом из-за бомбы Унабомбера, верно?

Может быть, если бы Унабомберу на его факультете математики преподавали эстетику, искусство и дизайн... ;)

Re:

Date: 2002-04-20 07:40 pm (UTC)
From: [identity profile] avva.livejournal.com
Про ощущение чуда с Прологом - это ты очень верно высказался.

Я в какой-то момент, очень давно (лет 9 назад), изучая Пролог, испытал это. У меня была программа (взятая из книги), я понимал каждый отдельную строку, понимал принцип работы Пролога, всё понимал - а как у программы получалось работать, не понимал. Запускал её снова и снова с почти религиозным восторгом.

Re: Дополнение:

Date: 2002-04-20 08:09 pm (UTC)
From: [identity profile] catpad.livejournal.com
Ой, а я ничего не знаю ни про бомбу, ни про Унабомбера ! Что это за история ?
А Гелернтер - это тот, который придумал язык Линда, а сейчас он занимается какой-то штукой под названием LifeStream, что-то вроде новой концепции user interface.

Date: 2002-04-20 08:11 pm (UTC)
From: [identity profile] catpad.livejournal.com
То же самое с точностью до количества лет назад :)

Re:

Date: 2002-04-20 08:17 pm (UTC)
From: [identity profile] avva.livejournal.com
А я недавно размышлял о том, как это похоже на то, что когда-то случилось со мной.

Я тоже когда-то заработал $10,000 (ровно столько) своей фирме за 10 минут (+- пять), хоть и за совсем другую работу. Для меня это было нехилым потрясением. Возможно, я когда-нибудь позже расскажу эту историю.

Наверное, ты в прошлой жизни был мной. Или наоборот.

Re: Дополнение:

Date: 2002-04-20 08:19 pm (UTC)
From: [identity profile] avva.livejournal.com
Почитай вот здесь например:
http://www.wikipedia.com/wiki/Unabomber
Page 1 of 2 << [1] [2] >>

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 11:22 am
Powered by Dreamwidth Studios