Мини-опрос: назовите три, с вашей точки зрения, самых красивых (своей эстетикой, своим устройством, своей структурой и т.п.) языка программирования. Ответы в комментах приветствуются.
Мои ответы:
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: 2004-01-06 10:41 am (UTC)(no subject)
From: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)
From:(no subject)
From:no subject
Date: 2002-04-20 01:33 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:50 pm (UTC)То еÑÑÑ, на Ñамом деле (еÑÑеÑÑно, вÑÑ IMHO):
- Haskell, как ÑамÑй пÑавилÑнÑй "ÑиÑÑÑй" ÑÑнкÑионалÑнÑй ÑзÑк (non-strict evaluation, ÑимпаÑиÑнÑе ÑÑÑÑкÑÑÑÑ, пÑоÑабоÑÐ°Ð½Ð½Ð°Ñ ÐºÐ¾Ð½ÑепÑÐ¸Ñ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ Ñ "импеÑаÑивнÑм миÑом" ÑеÑез монадÑ)
- Scheme, как ÑамÑй пÑавилÑнÑй ÐиÑп (лекÑиÑеÑкое ÑвÑзÑвание, continuations)
- Smalltalk, как ÑамÑй пÑавилÑнÑй class-based ÐÐ-ÑзÑк (пÑавилÑное ÑооÑноÑение ÑÑаÑики и динамики, ÑиÑÑоÑа Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð°)
ÐÑиÑÑм вÑе ÑÑи а) могÑÑ Ð±ÑÑÑ Ð²ÐµÑÑма ÑÑÑекÑивно ÑеализованÑ, б) доÑÑаÑоÑно ÑÐ´Ð¾Ð±Ð½Ñ Ð² пÑеподавании CS и в) пÑиÑÑÐ½Ñ Ð² иÑполÑзовании.
ÐандидаÑÑ (оба ÐÐ), не воÑедÑие в ÑÑойкÑ: Self и Cecil - пеÑвÑй за ÑиÑÑоÑÑ prototype-based ÐÐ Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð°, вÑоÑой - за пÑакÑиÑнÑе мÑлÑÑимеÑодÑ.
ÐпÑоÑем, ни одним ни дÑÑгим Ñ Ð°ÐºÑивно не полÑзовалÑÑ (в оÑлиÑии Ð¾Ñ ÑÑойки пÑизÑÑов).
no subject
no subject
Date: 2002-04-20 04:22 pm (UTC)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.
РвообÑе, вопÑÐ¾Ñ ÐºÐ»Ð°ÑÑнÑй, ÑолÑко оÑвеÑиÑÑ Ð½Ð° него невозможно. Ð¢Ñ Ð²Ð¾Ñ Ð¿Ñо ÑеловеÑеÑкие ÑзÑки ÑпÑоÑи - инÑеÑеÑно бÑÐ´ÐµÑ !
Re:
Date: 2002-04-20 07:40 pm (UTC)Я в какой-Ñо моменÑ, оÑÐµÐ½Ñ Ð´Ð°Ð²Ð½Ð¾ (Ð»ÐµÑ 9 назад), изÑÑÐ°Ñ ÐÑолог, иÑпÑÑал ÑÑо. У Ð¼ÐµÐ½Ñ Ð±Ñла пÑогÑамма (взÑÑÐ°Ñ Ð¸Ð· книги), Ñ Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð» каждÑй оÑделÑнÑÑ ÑÑÑокÑ, понимал пÑинÑип ÑабоÑÑ ÐÑолога, вÑÑ Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð» - а как Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¿Ð¾Ð»ÑÑалоÑÑ ÑабоÑаÑÑ, не понимал. ÐапÑÑкал ÐµÑ Ñнова и Ñнова Ñ Ð¿Ð¾ÑÑи ÑелигиознÑм воÑÑоÑгом.
(no subject)
From:Re:
From:(no subject)
From:no subject
Date: 2002-04-20 04:08 pm (UTC)ÐожалÑй лиÑÑ Ð¾Ð´Ð½Ð¾: в обÑекÑном миÑе Ñ ÑÑвÑÑвÑÑ ÑÐµÐ±Ñ Ð³Ð¾Ñаздо ÑÑÑнее.
no subject
Date: 2002-04-20 04:10 pm (UTC)2. ML.
3. Ðе знаÑ.
no subject
Date: 2002-04-20 04:59 pm (UTC)ой. оÑÑй. оÑÑÑÑй.
в каком ÑÑо ÑмÑÑле "пÑакÑиÑнÑй", не говоÑÑ Ñже о "ÑамÑй"?
Ðополнение:
Date: 2002-04-20 04:12 pm (UTC)2. ÐÑÑÑ ÑÐ°ÐºÐ°Ñ ÐºÐ½Ð¸Ð¶ÐºÐ° ÐÑвида ÐелеÑнÑеÑа (не Ð¿Ð¾Ð¼Ð½Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ), где он пÑизÑÐ²Ð°ÐµÑ Ð½Ð° компÑÑÑеÑнÑÑ ÑакÑлÑÑеÑÐ°Ñ Ð¿ÑеподаваÑÑ ÐºÑÑÑÑ Ð¿Ð¾ ÑÑÑеÑике, иÑкÑÑÑÑвÑ, Ð´Ð¸Ð·Ð°Ð¹Ð½Ñ Ð¸ Ñ.п.
Ðак ÑÑо бÑло Ð±Ñ Ð·Ð´Ð¾Ñово и пÑавилÑно !
Тогда Ð±Ñ Ð½Ðµ бÑло пÑогÑаммиÑÑов на Visual Basice и не возник Ð±Ñ JavaScript.
Re: Ðополнение:
Date: 2002-04-20 07:25 pm (UTC)2. ÐеÑÑÑ, меÑÑÑ. ÐÑо ÑÐ¾Ñ ÑамÑй ÐелеÑнÑеÑ, коÑоÑÑй ÑÑал инвалидом из-за Ð±Ð¾Ð¼Ð±Ñ Ð£Ð½Ð°Ð±Ð¾Ð¼Ð±ÐµÑа, веÑно?
ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ, еÑли Ð±Ñ Ð£Ð½Ð°Ð±Ð¾Ð¼Ð±ÐµÑÑ Ð½Ð° его ÑакÑлÑÑеÑе маÑемаÑики пÑеподавали ÑÑÑеÑикÑ, иÑкÑÑÑÑво и дизайн... ;)
Re: Ðополнение:
From:Re: Ðополнение:
From:Re: Ðополнение:
From:Re: Ðополнение:
From:Re: Ðополнение:
From:Re: Ðополнение:
From:no subject
Date: 2002-04-20 11:45 pm (UTC)Ðго, кÑÑаÑи, пÑеподавали в Ð¢ÐµÑ Ð½Ð¸Ð¾Ð½Ðµ много Ð»ÐµÑ Ð¸ оÑменили года ÑÑи назад. Я бÑл поÑледним аÑÑиÑÑенÑом на ÑÑом кÑÑÑе - гÑÑÑÑно.
no subject
Date: 2002-04-21 12:20 am (UTC)[ а Ñ Ð¸ не знал, ÑÑо оÑменили. жалко. впÑоÑем, Ð¢ÐµÑ Ð½Ð¸Ð¾Ð½ наÑинал неÑмолимо опопÑеваÑÑ ÐµÑÑ Ð½Ð° Ð¼Ð¾Ð¸Ñ Ð³Ð»Ð°Ð·Ð°Ñ ... ]
(no subject)
From:K
From:no subject
Date: 2002-04-21 04:57 am (UTC)ÐоÑом бÑл Ðлгол 68, замеÑаÑелÑнÑй в пеÑвÑÑ Ð¾ÑеÑÐµÐ´Ñ Ñвоим ÑÑандаÑÑнÑм опиÑанием, коÑоÑое бÑло двÑÑзÑÑнÑм ÑебÑÑом вÑÑокой пÑобÑ.
Ðозже Ð¼ÐµÐ½Ñ Ð¾ÑаÑовал REXX, на коÑоÑом можно бÑло ÑделаÑÑ Ð°Ð±ÑолÑÑно вÑе, поÑÐ¾Ð¼Ñ ÑÑо он инÑеÑпÑеÑиÑовалÑÑ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ, пока не пÑевÑаÑалÑÑ Ð² ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ OC.
no subject
Date: 2002-04-21 04:40 pm (UTC)Ðлгол-68 пÑекÑаÑен Ñвоей оÑÑогоналÑноÑÑÑÑ, но еÑли Ñ Ð¿ÑавилÑно помнÑ, в ÑзÑк вклÑÑено оÑÐµÐ½Ñ Ð¼Ð½Ð¾Ð³Ð¾Ðµ (напÑ. ÑемаÑоÑÑ), и поÑÑÐ¾Ð¼Ñ Ð¾Ð½ не Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ð´ кÑиÑеÑии ÐввÑ: ни пÑоÑÑой конÑепÑÑалÑной базой, ни ÑаÑÑиÑÑемоÑÑÑÑ. ÐÐ¾Ñ (http://vestein.arb-phys.uni-dortmund.de/~wb/RR/rrTOC.html), кÑÑаÑи, наÑел опÑеделение ÑзÑка.
Ð ÑÑо еÑÑÑ Ð² РеÑале Ñакое, Ñего неÑÑ Ð² ÐиÑпе?
(no subject)
From:"ÐнÑÐ¸Ð»ÐµÑ ÐµÐ½ÑÑ. ÐÑаÑиво идÑÑÑ..."
ÐÑÑÑÑ Ð±ÑÐ´ÐµÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вÑбÑаÑÑ ÑÑи ÑзÑка, Ñже имеÑÑие как минимÑм один пÑинÑÑÑй ANSI ÑÑандаÑÑ. Ðожно даже ÑпÑоÑÑиÑÑ - пÑÑÑÑ Ð½Ðµ ANSI, пÑÑÑÑ - ÑÑÐ¾Ð²Ð½Ñ ANSI. ÐаÑкалÑ, наÑколÑко Ñ Ð¿Ð¾Ð¼Ð½Ñ, Ñам не пÑоканал пока, а Ð²Ð¾Ñ Ð³Ð´Ðµ-Ñо в ÐвÑопе (ÐÑиÑании?)...
Re: Рпо Ñеме
REXX - Ñ Ð¾ÑÑ Ð¾Ð½ и пÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð¸Ñ Ñ Ð¿Ð¾ÑÑÐ¾Ñ Ð°Ð¼Ð¸ одной мегакоÑпоÑаÑии
ÐÑолог - Ñ Ð¾ÑÑ Ð¿Ð¾Ð´ него Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑоздаваÑÑ ÑовÑем дÑÑгие пÑоÑеÑÑоÑÑ, а без поддеÑжки на ÑÑовне пÑоÑа ÑÑо вÑего лиÑÑ ÐºÑаÑÐ¸Ð²Ð°Ñ Ð¸Ð³ÑÑÑка.
Re: "ÐнÑÐ¸Ð»ÐµÑ ÐµÐ½ÑÑ. ÐÑаÑиво идÑÑÑ
From:no subject
Date: 2002-04-22 08:46 am (UTC)Forth и Smalltalk -- ÑоглаÑен. ÐÑÑ ML за невеÑоÑÑнÑÑ ÐºÑаÑоÑÑ Ñ Ð¸ÑÑой ÑипизаÑии, пÑовеÑÑемÑÑ Ð² compile time (коÑоÑой, afair, Ð½ÐµÑ Ð² Scheme), и lazy evaluation. ÐонеÑно, Prolog.
REXX ÑÑдеÑен Ñвоей Ñковозной инÑеÑпÑеÑиÑÑемоÑÑÑÑ (как на нÑм ÑÐ´ÐµÐ»Ð°Ð½Ñ Ð¼Ð°ÑÑÐ¸Ð²Ñ -- ÑÑо пеÑÐ½Ñ :-)).
ÐÑÑаÑи, не забÑÑÑ Ð±Ñ Ð¸ Eiffel.
ÐеÑÐºÑ Trac ÑÑпеÑно пÑодолжил ÑжаÑнÑй, Ñ Ð¾ÑÑ ÐºÐ¾Ð½ÑепÑÑалÑно оÑÑÑоÑмнÑй brainf*ck. УпоминавÑийÑÑ ÑÑÑ APL Ñазве Ð¾Ð±Ð»Ð°Ð´Ð°ÐµÑ Ð¼Ð°Ð»Ð¾Ð¹ и изÑÑной базой конÑепÑий? Ðа нÑм one-liner-Ñ Ñ Ð¾ÑоÑо пиÑаÑÑ. Ð ÑÑ Ð¶Ðµ каÑегоÑÐ¸Ñ ÑжаÑнÑÑ Ð² Ñвоей конÑепÑÑалÑноÑÑи -- perl ('it works the way you expect, unless you expect consistency') и С++ c Algol-68.
ÐÑли б ÑаздаваÑÑ ÐµÑÑ Ð¸ пÑÐ¸Ð·Ñ Ð·Ð° попÑÑÐºÑ ÐºÑаÑиво ÑеализоваÑÑ Ð¿ÑакÑиÑеÑки поÑÑебное Ñложное, ÑÑо нелÑÐ·Ñ ÑвеÑÑи к Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ð¸Ð·Ð¼Ñ Ð² дÑÑ Ðµ smalltalk / lisp / forth, Ñо ÑÑÑ Ð±Ñ ÑпомÑнÑÑÑ Simula-67 (ÑопÑогÑаммÑ) и Ada (модÑли, ÑандевÑ), и python (ÑдаÑÐ½Ð°Ñ Ð¿Ð¾Ð¿ÑÑка ÑовмеÑÑиÑÑ Ð² одном ÑзÑке кÑÑÑ Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¾Ð², оÑÑавив его пÑеделÑно понÑÑнÑм и непÑоÑивоÑеÑивÑм).
APL, unlambda
Date: 2004-01-06 01:26 pm (UTC)no subject
ФОРТРАН!
no subject
Re:
From:Forth + smalltalk
Date: 2003-10-14 12:43 am (UTC)Py
Date: 2004-02-23 10:05 am (UTC)@ красивый
@ живой
@ перспективный,
считаю что он "равен" Java и C#
**
one word comment
Date: 2004-05-24 09:37 am (UTC)