Здравствуйте, VladD2, Вы писали:
VD>7. Пролог, как демонстрация красивой идеии логического программирования практичски бесполеной на прктие.
Кстати, прологоподбные языки замечательно используются для описания бизнес-логики для запутаных случаев.
Кодт wrote: > VD>9. Регулярные выражения и Перл, как пример того что и на системах > фирования можно писать программы. > > В качестве систем шифрования лучше выбирать J или K.
А вот не всегда.. У J очень жёсткий синтаксис, да и семантика
последовательная. Единственная тонкость — краткие имена в стандартной
библиотеке (а для единства стиля — и в коде) и непривычность
синтаксических решений. Первое можно имитировать и в Perl, второе
автоматически можно преобразовать в любой функциональный язык, возможно,
дописав небольшую понятную библиотеку для. Причём не так много и надо
(если не думать про производительность и всю ту часть стандартной
библиотеки, что на J, тупо конвертировать). А вот с Perl трюк может не
пройти... Он большой, состоит из граблей и всё связано.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Timur I., Вы писали:
TI>>Как считаете, стоит ли тратить время на изучения "альтернативных" языков и технологий ? Под альтернативными я понимаю не C++/Java/Php/Perl/C# Или это будет пустая трата времени и сил ?
VD>Мой список языков котрый может расширить кругозор:
Тут говорили про альтернативные языки
VD>1. C# — классика ООП, компонентность, статическая типизация, обобщенное программирование.
Ну это мейнстрим. Тут все равно что его, что Java. Это и так все знают.
VD>2. Руби — классика скриптов, динамика, гибкость.
Я бы не сказал, что это классика, классика скриптов — Bourne Shell . Но опять же BASh — это мейнстрим в Linux.
VD>3. Хаскель — функциональный подход, вывод типов, красивая идея классов типов (похожая на интерфейсы в C#, но которые можно подключать к уже имеющися типам), ленивое исполнение.
+1
VD>4. XQuary/XSLT — как пример языков трансформации данных.
Ну, опять же, это практически мейнстрим (ну или скоро будет (XQuery)). Хотя я считаю, что использовать синтаксис XML для программирования (XSLT) — это извращение . Лучше нормальная языконезависимая модель (типа DOM) преобразований и ее реализация в библиотеках для разных языков.
VD>5. Схема — как пример языка без синтаксиса и мощи макросов.
+1, Хотя можно и Common Lisp, правда он больше, зато более практичен.
VD>6. Рад, что даждались ожидаемого. Правильно немерле как квинтесенция свсего перечисленного выше.
+1
VD>7. Пролог, как демонстрация красивой идеии логического программирования практичски бесполеной на прктие.
Полезной, полезной. На нем делаются вполне практические коммерческие системы. Правда в России это мало заметно.
VD>8. SQL — пример декларативного языка обраобтки данных.
Опять же, это мейнстрим который все знают.
VD>9. Регулярные выражения и Перл, как пример того что и на системах фирования можно писать программы.
Регэкспы — это мейнстрим. Перл, в принципе, тоже. Хотя я думаю, что его постепенно вытеснят Python/Ruby.
Ява идет в лес за грязный дизай языка.
VD>>4. XQuary/XSLT — как пример языков трансформации данных. R>+более частные спецификации: XSL-FO, SVG, X-Path и т.п.
X-Path часть XQuary/XSLT, а остальные в лес за ненадобностью.
VD>>8. SQL — пример декларативного языка обраобтки данных. R>+объектные подходы в БД
В лес по тем же сообрежениям.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Андрей Хропов, Вы писали:
VD>>4. XQuary/XSLT — как пример языков трансформации данных. АХ>Ну, опять же, это практически мейнстрим (ну или скоро будет (XQuery)). Хотя я считаю, что использовать синтаксис XML для программирования (XSLT) — это извращение . Лучше нормальная языконезависимая модель (типа DOM) преобразований и ее реализация в библиотеках для разных языков.
Типа DOM? Тогда лучше сразу застрелиться.
Из вынесения языка транформации в библиотеку вряд ли что-то хорошее получится кроме ужасного синтаксиса.
Да и зачем? Подходящая модель данных для XML есть, есть язык для работы с ней (XPath), непонятно только зачем было строить синтаксис XSLT на основе XML.
Здравствуйте, VladD2, Вы писали:
VD>Ява идет в лес за грязный дизай языка.
Разжуйте, пожалуйста.
VD>X-Path часть XQuary/XSLT, а остальные в лес за ненадобностью.
?
VD>В лес по тем же сообрежениям.
?
Здравствуйте, lomeo, Вы писали:
VD>>1. C# — классика ООП, компонентность, статическая типизация, обобщенное программирование.
L>Идея ООП чище выражена в Smalltalk, можно поглядеть его.
Добавляй, что это твое мнение. Я считаю Смолток языком с прототипной орканизации. И она мне категорически не нравится. Так что мое мнение — смолток для начального обучения лучше не применять. Он даст отрицальный эффект.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, rsn81, Вы писали:
VD>>Ява идет в лес за грязный дизай языка. R>Разжуйте, пожалуйста.
Ява перенела довольно много граблей из С++. Например, отсуствие явного указания переопределения методов (ключевое слово override) или отсуствие возможности явно описать, что функция возращает множество результатов (в виде кортежей или ref/out-параметров). И таких проблем в ней много. C# можно считать наследником Явы в котором вычещено большинство проблем этого языка. Еще более чистым решением является Немерле, но так что в принципе им можно заменить C#, но им можно заменить и многое другое. Если же говорить о чистых представителях, то я их перечислил и расширять список не намерен. Если у гого-то свои взгляды на такой список, то высказывайте их отдельно, а не прытайтесь подправить мой список. Если я решу его изменить, то скажу об этом сам.
А вообще, есть много языков с различными особенностями. Например ОКамл. Но они не дают представления о чем-то радикально новом и имеют ряд недостатков. Именно по этому я не называю эти зяыки. А то можно было бы просто перечислить все языки начиная с С и заканчивая J с K.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
L>>Идея ООП чище выражена в Smalltalk, можно поглядеть его.
VD>Добавляй, что это твое мнение.
Ты же не добавлял, когда говорил, что С# классический ОО, а я всего лишь говорю об идее "всё есть объект, объекты общаются сообщениями". В смолтолке эта идея выражена чище. Ой, прости, это моё мнение.
VD>Я считаю Смолток языком с прототипной орканизации.
Твоё изобретательство в области новых определений старых терминов не знает границ, поясни. что ты понимаешь под прототипной организацией?
VD>И она мне категорически не нравится. Так что мое мнение — смолток для начального обучения лучше не применять. Он даст отрицальный эффект.
"Мне не нравится, так что лучше не применять". Железная логика! :-)
Здравствуйте, lomeo, Вы писали:
L>Ты же не добавлял, когда говорил, что С# классический ОО,
Для особо невнимательных цитирую себя любимого: [b]Мой список языков котрый может расширить кругозор:[/b]
L> а я всего лишь говорю об идее "всё есть объект, объекты общаются сообщениями". В смолтолке эта идея выражена чище. Ой, прости, это моё мнение.
Еще раз. Создай отдельно свой список и хоть Перл туда запиши. Мой списко трогать не надо.
На мой взгляд за чистоту Смолтака по рукам надо бить. Если возникнет вопрос "почему", то воспользуйся поиском.
VD>>Я считаю Смолток языком с прототипной орканизации.
L>Твоё изобретательство в области новых определений старых терминов не знает границ, поясни. что ты понимаешь под прототипной организацией?
За самобразованием обращайся к Википедии. Ключевое слово для поиска Prototype-based.
VD>>И она мне категорически не нравится. Так что мое мнение — смолток для начального обучения лучше не применять. Он даст отрицальный эффект.
L>"Мне не нравится, так что лучше не применять". Железная логика!
А мне по барабуну ты лично и то что ты думаешь о моей логие в частности. Повторяю последний раз. Это мой список. Создай свой и те кто считает твое мнение интересным воспользуются им. А от меня отстань. Я высказал свое мнение. Считаю свой список вполне достаточным. Причем еще и полезным, так как человек не только изучит языки отражающие основные тенденции в развитии языков программирования, но и изучит живые языки которые могут пригодиться ему в будущей работе. Изучение же Смолтоков и другой древности, на мой взгляд, практического смысла не имеет. Ничего нового уникального из них не почерпнуть, и на практике их тоже использовать вряд ли получится. Те же кто интересуется ЯП с научно-позновательной точки зрения и так изучат все что захотят.
Мой ответ исчерпывающий? Если, да, то просба отвязаться от меня. Мня утамляет навязчивость.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Да, собственно, забыл сказать. Я не зря упоминул Руби. Это как раз язык из серии продолжателей идей Смолтока только с "человеческим лицом". Так что еще раз поторюсь, смысла включать в свой список такой архики как Смолток не вижу.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Timur I., Вы писали:
TI>Как считаете, стоит ли тратить время на изучения "альтернативных" языков и технологий ? Под альтернативными я понимаю не C++/Java/Php/Perl/C# Или это будет пустая трата времени и сил ?
Если ты уже делишь языки на "основные" и "альтернативные" — это уже ошибочная постановка вопроса. Посему предложу тебе другую методику. В начале, пожалуй, математика в объёме первых 3-х курсов любого вуза. Это — минимум. Дальше в некотором роде смесь: системное программирование, формальные языки и построение компиляторов, дискретная математика, основы электроники, вопросы связанные с искусственным интеллектом. Присоединюсь к тем, кто советовал SICP и добавлю сюда ещё дядьку Кнута. Потом — применение тех или иных языков для определённых задач. Ну и в процессе уже определишься, что к чему и почему, и откуда и куда у чего ноги растут.
А так... Ну скажут тебе, что, к примеру, Lisp полезно знать. А почему? Его же относительно редко применяют. Потому что Пол Грэхем о нём балладу спел? Так баллады много о чём пели! Что ж теперь?
Так что, копай, а там вопросы подобные онтопику сами собой отпадут.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
VD>Ява перенела довольно много граблей из С++. Например, отсуствие явного указания переопределения методов (ключевое слово override)
В чем собственно недостаток? Если уж грабельный разговор... заодно расскажите, используете ли вы модификатор new в C#?
VD> или отсуствие возможности явно описать, что функция возращает множество результатов (в виде кортежей или ref/out-параметров).
Возвращение примитива по ссылке противоречит объектно-ориентированному методу. Это уже множество раз обсуждалось: передача параметра "по ссылке"
— в C# это оставили, потому на нем удобно писать в том числе и "процедурно" (к примеру, вычислители), а Java более "чистый" в этом отношении ООЯ.
VD> И таких проблем в ней много.
Да?
VD> C# можно считать наследником Явы в котором вычещено большинство проблем этого языка.
Извините, но вы пока не убедили.
VD> Еще более чистым решением является Немерле, но так что в принципе им можно заменить C#, но им можно заменить и многое другое. Если же говорить о чистых представителях, то я их перечислил и расширять список не намерен. Если у гого-то свои взгляды на такой список, то высказывайте их отдельно, а не прытайтесь подправить мой список. Если я решу его изменить, то скажу об этом сам.
Да как вам угодно: на ваш список никто не посягает — просто вы сказали достаточно резкое утверждение без аргументации, вот и заинтересовало.
VladD2,
VD>>>Ява идет в лес за грязный дизай языка. R>>Разжуйте, пожалуйста.
VD>Ява перенела довольно много граблей из С++. Например, отсуствие явного указания переопределения методов (ключевое слово override) или отсуствие возможности явно описать, что функция возращает множество результатов (в виде кортежей или ref/out-параметров). И таких проблем в ней много.
Грязь и бедность — это не одно и то же однако. То что ты привёл — это бедность в выразительных средствах. Грязь (то есть именно непоследовательность и обилие граблей) в Jave конечно есть, я бы туда отнёс некрасивую работу с плоскими типами (особенно когда туда приплели автобоксинг в 5-й джаве).
Ещё совершенно непоследовательно введение свойств (!) length и class. Без скобок и в качестве ключевых слов. Идиотизм.
synchronized методы — это взведённые грабли, ждущие когда на них наступят.
проваливающийся switch/case. Редкие, но грабли.
char d = '9' - '0'; // ашыпка
Если есть байтовое значение, большее 127 и к нему прибавить другое значение, то получаем не то что ожидали. Нужно сначала преобразовать значения к интам, потом уже производить арифметику.
List<String>[] data = new ArrayList<String>[10]; // такие коллекции недопустимы
List<String> data1 = new ArrayList<String>(); // а так мона
Если разобраться, конечно понятно почему, но тем не менее непоследовательно это. Либо запрещать ковариантность для всех коллекций, либо обеспечивать.
Ну в течение работы можно ещё встречал, но сейчас прямо всё упомнить не могу.
Здравствуйте, VladD2, Вы писали:
L>>Ты же не добавлял, когда говорил, что С# классический ОО,
VD>Для особо невнимательных цитирую себя любимого: VD>[b]Мой список языков котрый может расширить кругозор:[/b]
При чем тут твой список? Где ты сказал, что то, что С# классический ОО, это твоё мнение?
Указывать другим на то, что им делать — это запросто. Наплести логически несвязанного винегрета — пожалуйста! Но как только ты слышишь мнение отличное от своего, то сразу поднимается оскорбленный вопль о списках, находящихся в частной собственности. Очень по детски.
VD>Еще раз. Создай отдельно свой список и хоть Перл туда запиши. Мой списко трогать не надо.
Правила форума это запрещают?
VD>За самобразованием обращайся к Википедии. Ключевое слово для поиска Prototype-based.
Термин я знаю. Ок, обратимся к Википедии.
Prototype-based programming is a style of object-oriented programming in which classes are not present, and behaviour reuse (known as inheritance in class-based languages) is accomplished through a process of cloning existing objects which serve as prototypes.
Я, наверное, что то путаю, но в Смолтолке есть и классы и переиспользование там достигается совсем другими механизмами.
Так что ты опять что то изобрел. Я и спрашиваю — что?
VD>А мне по барабуну ты лично и то что ты думаешь о моей логие в частности.
Здравствуйте, VladD2, Вы писали:
VD>Да, собственно, забыл сказать. Я не зря упоминул Руби. Это как раз язык из серии продолжателей идей Смолтока только с "человеческим лицом". Так что еще раз поторюсь, смысла включать в свой список такой архики как Смолток не вижу.