Мини-опрос: назовите три, с вашей точки зрения, самых красивых (своей эстетикой, своим устройством, своей структурой и т.п.) языка программирования. Ответы в комментах приветствуются.
Мои ответы:
1. Форт
2. Смолток
3. Не знаю - много разных претендентов на это место.
Видимо, учитывая первые два места в моём ответе, мне нравятся языки с таким свойствами:
Последнее свойство, правда, имеет и свои отрицательные стороны: изоляцию языка внутри интегрированной среды, сложности с написанием отдельных программ, призванных функционировать отдельно от среды, внутри других систем.
Форт: дистилляция до прозрачной, и вместе с тем неимоверно мощной простоты базовой идеи макроса: кода, который только и делает, что вызывает в последовательности один за другим другие макросы. Плюс к этому постфиксная нотация и раздельные стэки для данных и контроля выполнения. Всё.
Смолток: дистилляция до прозрачной, и вместе с тем неимоверно мощной простоты базовой идеи объекта: набора данных, который определяет и воплощает протокол коммуникации с ним других объектов.
Оба языка - вне "мейнстрима", у обоих - своя ниша (Форт - embedded software, Смолток - financial systems). Оба мне бы хотелось видеть в мейнстриме, но этого никогда не случится.
Оба я сделал бы (вместе ещё с пятью-шестью другими языками) обязательными для преподавания в программе компьютерного факультета. Оба не являются обязательными для преподавания ни на одном известном мне факультете.
Мои ответы:
1. Форт
2. Смолток
3. Не знаю - много разных претендентов на это место.
Видимо, учитывая первые два места в моём ответе, мне нравятся языки с таким свойствами:
- очень простая концептуальная база;
- практически неограниченные способности к расширению языка самим программистом в нём, включая самые фундаментальные его структуры;
- прозрачность каждого действия на атомном уровне, переходящая в управляемую сложность на глобальном уровне, вытекающую из структуры, сотканной программистом.
- мощная интегрированная среда, включающая в себя компилятор, интерпретатор и т.п., и всё это написано на самом языке за исключением крошечного ядра.
Последнее свойство, правда, имеет и свои отрицательные стороны: изоляцию языка внутри интегрированной среды, сложности с написанием отдельных программ, призванных функционировать отдельно от среды, внутри других систем.
Форт: дистилляция до прозрачной, и вместе с тем неимоверно мощной простоты базовой идеи макроса: кода, который только и делает, что вызывает в последовательности один за другим другие макросы. Плюс к этому постфиксная нотация и раздельные стэки для данных и контроля выполнения. Всё.
Смолток: дистилляция до прозрачной, и вместе с тем неимоверно мощной простоты базовой идеи объекта: набора данных, который определяет и воплощает протокол коммуникации с ним других объектов.
Оба языка - вне "мейнстрима", у обоих - своя ниша (Форт - embedded software, Смолток - financial systems). Оба мне бы хотелось видеть в мейнстриме, но этого никогда не случится.
Оба я сделал бы (вместе ещё с пятью-шестью другими языками) обязательными для преподавания в программе компьютерного факультета. Оба не являются обязательными для преподавания ни на одном известном мне факультете.
no subject
Date: 2002-04-20 01:03 pm (UTC)Ðидимо дело в Ñом, ÑÑо Ñ ÑемеÑленник, а не Ñ Ñдожник. Я поÑÑи пÑÑнадÑаÑÑ Ð»ÐµÑ Ð¶Ð¸Ð²Ñ Ð¸ÑклÑÑиÑелÑно на Ñо, ÑÑо заÑабаÑÑÐ²Ð°Ñ Ð¿ÑогÑаммиÑованием, но пÑакÑиÑеÑки никогда не пиÑал код ÑолÑко Ñади ÑдоволÑÑÑвиÑ, и поÑÑÐ¾Ð¼Ñ ÑзÑки Ð´Ð»Ñ Ð¼ÐµÐ½Ñ - ÑÑо меÑÐ»Ñ Ð´Ð»Ñ Ð´Ð²Ð¾Ñника: инÑÑÑÑÐ¼ÐµÐ½Ñ Ð½Ð°Ð´Ð¾ знаÑÑ Ð¸ беÑеÑÑ, но кÑаÑоÑÑ Ð¿ÑедпоÑиÑÐ°Ñ Ð¸ÑкаÑÑ Ð½Ðµ на ÑабоÑем меÑÑе.
Re:
Date: 2002-04-20 01:10 pm (UTC)no subject
Date: 2002-04-20 01:15 pm (UTC)no subject
Date: 2002-04-20 01:18 pm (UTC)Haskell
Re:
Date: 2002-04-20 01:21 pm (UTC)У Ð¼ÐµÐ½Ñ Ð¥Ð°Ñкел один из пÑеÑенденÑов на ÑÑеÑÑе меÑÑо. ÐиÑон... не, не поÑÑнеÑ.
no subject
Date: 2002-04-20 01:24 pm (UTC)Haskell: ÑипиÑованное лÑмбда-иÑÑиÑление, lazy evaluation.
ML: по ÑÑÑи Scheme - Ñкобки + ÑипÑ.
Cecil: generic programming, квинÑеÑÑенÑÐ¸Ñ Ñвоего Ñода. вÑе ÑÑнкÑии generic, parametric multiple dispatch, etc.
Ð¿Ð¾Ð¼Ð½Ñ Ð²Ð¾Ñ ÐµÑÑ Icon бÑл оÑÐµÐ½Ñ ÐºÑаÑивÑй и инÑеÑеÑнÑй, ÑолÑко Ð²Ð¾Ñ Ð½Ðµ ÑÐ¿Ð¾Ð¼Ð½Ñ Ñем именно.
no subject
Date: 2002-04-20 01:32 pm (UTC)Ð Python'е ÑаÑплÑвÑаÑÑй обÑекÑнÑй Ð¿Ð¾Ð´Ñ Ð¾Ð´ довели до конÑенÑÑиÑованной ÑаÑплÑвÑаÑоÑÑи. Ридейно, и ÑинÑакÑиÑеÑки. Ð¢Ð°ÐºÐ°Ñ Ð¿Ð¸ÑÐ¸Ñ (pythoness) subtle OOD =)
no subject
Date: 2002-04-20 01:33 pm (UTC)no subject
Date: 2002-04-20 01:50 pm (UTC)То еÑÑÑ, на Ñамом деле (еÑÑеÑÑно, вÑÑ IMHO):
- Haskell, как ÑамÑй пÑавилÑнÑй "ÑиÑÑÑй" ÑÑнкÑионалÑнÑй ÑзÑк (non-strict evaluation, ÑимпаÑиÑнÑе ÑÑÑÑкÑÑÑÑ, пÑоÑабоÑÐ°Ð½Ð½Ð°Ñ ÐºÐ¾Ð½ÑепÑÐ¸Ñ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ Ñ "импеÑаÑивнÑм миÑом" ÑеÑез монадÑ)
- Scheme, как ÑамÑй пÑавилÑнÑй ÐиÑп (лекÑиÑеÑкое ÑвÑзÑвание, continuations)
- Smalltalk, как ÑамÑй пÑавилÑнÑй class-based ÐÐ-ÑзÑк (пÑавилÑное ÑооÑноÑение ÑÑаÑики и динамики, ÑиÑÑоÑа Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð°)
ÐÑиÑÑм вÑе ÑÑи а) могÑÑ Ð±ÑÑÑ Ð²ÐµÑÑма ÑÑÑекÑивно ÑеализованÑ, б) доÑÑаÑоÑно ÑÐ´Ð¾Ð±Ð½Ñ Ð² пÑеподавании CS и в) пÑиÑÑÐ½Ñ Ð² иÑполÑзовании.
ÐандидаÑÑ (оба ÐÐ), не воÑедÑие в ÑÑойкÑ: Self и Cecil - пеÑвÑй за ÑиÑÑоÑÑ prototype-based ÐÐ Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð°, вÑоÑой - за пÑакÑиÑнÑе мÑлÑÑимеÑодÑ.
ÐпÑоÑем, ни одним ни дÑÑгим Ñ Ð°ÐºÑивно не полÑзовалÑÑ (в оÑлиÑии Ð¾Ñ ÑÑойки пÑизÑÑов).
no subject
Date: 2002-04-20 01:54 pm (UTC)Рв пиÑоне ÑдалоÑÑ ÑеализоваÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ Ð¸ OOP, и IP, и FP (в какой-Ñо ÑÑепени).
no subject
no subject
Date: 2002-04-20 03:11 pm (UTC)ЯзÑки, пеÑеÑиÑленнÑе вÑÑе (в комменÑаÑиÑÑ Ð´ÑÑÐ³Ð¸Ñ ), обладаÑÑ Ð¸Ð½Ñми Ñипами кÑаÑоÑÑ. Я Ð±Ñ ÑÑавнил кÑаÑоÑÑ Ð¡++ Ñ ÐºÑаÑоÑой ÑÑбаниÑÑиÑеÑкого пейзажа (ÐеÑÐ°Ð½Ñ Ð¸Ð»Ð¸ ÐйÑелева баÑнÑ, напÑимеÑ), Smalltalk - Ñ Ð²Ð¸Ð´Ð¾Ð¼ на Ð»ÐµÑ Ð¸Ð· окна, ФоÑÑ - Ñ ÑоÑпиÑÑми Ð ÑблÑва, Ð¡Ñ ÐµÐ¼Ñ - Ñо звезднÑм небом (Ñ Ð¥Ð°Ñкелем дело не имел).
ÐÑÑ Ð¼Ð¾Ð³Ñ Ð¿ÑедложиÑÑ ÐÑолог как СагÑада ФамилиÑ.
оÑÐ²ÐµÑ Ð½Ð° кавеÑзнÑй вопÑоÑ
2. ÐлаÑÑÑ.
3. ÐаÑкалÑ.
ÐеÑвÑй - за ÑнивеÑÑалÑноÑÑÑ. ÐÑоÑой - за неÑмолимоÑÑÑ. ТÑеÑий - за Ñе милÑе недоÑÑаÑки, коÑоÑÑе Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ мне.
no subject
Date: 2002-04-20 04:01 pm (UTC)ÐоÑом, ÑÑавниваÑÑ Ð½ÐµÑÑавнимое ÑÑÑдно: Ñ Ð¾ÑеÑÑÑ Ð¸ ML и Prolog поÑÑавиÑÑ Ð½Ð° вÑоÑое.
Prolog, конеÑно, не за ÑдобÑÑво пÑогÑаммиÑованиÑ, а за оÑÑÑение "ÑÑда", коÑоÑое вÑегда пÑиÑÑÑÑÑвÑÐµÑ Ð¿Ñи его ÑабоÑе.
Рза ÑÑÐµÐ´Ñ Ð¸ usability - Java.
РвообÑе, вопÑÐ¾Ñ ÐºÐ»Ð°ÑÑнÑй, ÑолÑко оÑвеÑиÑÑ Ð½Ð° него невозможно. Ð¢Ñ Ð²Ð¾Ñ Ð¿Ñо ÑеловеÑеÑкие ÑзÑки ÑпÑоÑи - инÑеÑеÑно бÑÐ´ÐµÑ !
no subject
Date: 2002-04-20 04:08 pm (UTC)ÐожалÑй лиÑÑ Ð¾Ð´Ð½Ð¾: в обÑекÑном миÑе Ñ ÑÑвÑÑвÑÑ ÑÐµÐ±Ñ Ð³Ð¾Ñаздо ÑÑÑнее.
no subject
Date: 2002-04-20 04:10 pm (UTC)2. ML.
3. Ðе знаÑ.
Ðополнение:
Date: 2002-04-20 04:12 pm (UTC)2. ÐÑÑÑ ÑÐ°ÐºÐ°Ñ ÐºÐ½Ð¸Ð¶ÐºÐ° ÐÑвида ÐелеÑнÑеÑа (не Ð¿Ð¾Ð¼Ð½Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ), где он пÑизÑÐ²Ð°ÐµÑ Ð½Ð° компÑÑÑеÑнÑÑ ÑакÑлÑÑеÑÐ°Ñ Ð¿ÑеподаваÑÑ ÐºÑÑÑÑ Ð¿Ð¾ ÑÑÑеÑике, иÑкÑÑÑÑвÑ, Ð´Ð¸Ð·Ð°Ð¹Ð½Ñ Ð¸ Ñ.п.
Ðак ÑÑо бÑло Ð±Ñ Ð·Ð´Ð¾Ñово и пÑавилÑно !
Тогда Ð±Ñ Ð½Ðµ бÑло пÑогÑаммиÑÑов на Visual Basice и не возник Ð±Ñ JavaScript.
no subject
Date: 2002-04-20 04:22 pm (UTC)no subject
Date: 2002-04-20 04:59 pm (UTC)ой. оÑÑй. оÑÑÑÑй.
в каком ÑÑо ÑмÑÑле "пÑакÑиÑнÑй", не говоÑÑ Ñже о "ÑамÑй"?
Re: Ðополнение:
Date: 2002-04-20 07:25 pm (UTC)2. ÐеÑÑÑ, меÑÑÑ. ÐÑо ÑÐ¾Ñ ÑамÑй ÐелеÑнÑеÑ, коÑоÑÑй ÑÑал инвалидом из-за Ð±Ð¾Ð¼Ð±Ñ Ð£Ð½Ð°Ð±Ð¾Ð¼Ð±ÐµÑа, веÑно?
ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ, еÑли Ð±Ñ Ð£Ð½Ð°Ð±Ð¾Ð¼Ð±ÐµÑÑ Ð½Ð° его ÑакÑлÑÑеÑе маÑемаÑики пÑеподавали ÑÑÑеÑикÑ, иÑкÑÑÑÑво и дизайн... ;)
Re:
Date: 2002-04-20 07:40 pm (UTC)Я в какой-Ñо моменÑ, оÑÐµÐ½Ñ Ð´Ð°Ð²Ð½Ð¾ (Ð»ÐµÑ 9 назад), изÑÑÐ°Ñ ÐÑолог, иÑпÑÑал ÑÑо. У Ð¼ÐµÐ½Ñ Ð±Ñла пÑогÑамма (взÑÑÐ°Ñ Ð¸Ð· книги), Ñ Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð» каждÑй оÑделÑнÑÑ ÑÑÑокÑ, понимал пÑинÑип ÑабоÑÑ ÐÑолога, вÑÑ Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð» - а как Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¿Ð¾Ð»ÑÑалоÑÑ ÑабоÑаÑÑ, не понимал. ÐапÑÑкал ÐµÑ Ñнова и Ñнова Ñ Ð¿Ð¾ÑÑи ÑелигиознÑм воÑÑоÑгом.
Re: Ðополнение:
Date: 2002-04-20 08:09 pm (UTC)Ð ÐелеÑнÑÐµÑ - ÑÑо ÑоÑ, коÑоÑÑй пÑидÑмал ÑзÑк Ðинда, а ÑейÑÐ°Ñ Ð¾Ð½ занимаеÑÑÑ ÐºÐ°ÐºÐ¾Ð¹-Ñо ÑÑÑкой под названием LifeStream, ÑÑо-Ñо вÑоде новой конÑепÑии user interface.
no subject
Date: 2002-04-20 08:11 pm (UTC)Re:
Date: 2002-04-20 08:17 pm (UTC)Я Ñоже когда-Ñо заÑабоÑал $10,000 (Ñовно ÑÑолÑко) Ñвоей ÑиÑме за 10 минÑÑ (+- пÑÑÑ), Ñ Ð¾ÑÑ Ð¸ за ÑовÑем дÑÑгÑÑ ÑабоÑÑ. ÐÐ»Ñ Ð¼ÐµÐ½Ñ ÑÑо бÑло Ð½ÐµÑ Ð¸Ð»Ñм поÑÑÑÑением. Ðозможно, Ñ ÐºÐ¾Ð³Ð´Ð°-нибÑÐ´Ñ Ð¿Ð¾Ð·Ð¶Ðµ ÑаÑÑÐºÐ°Ð¶Ñ ÑÑÑ Ð¸ÑÑоÑиÑ.
ÐавеÑное, ÑÑ Ð² пÑоÑлой жизни бÑл мной. Ðли наобоÑоÑ.
Re: Ðополнение:
Date: 2002-04-20 08:19 pm (UTC)http://www.wikipedia.com/wiki/Unabomber