Здравствуйте, Cyberax, Вы писали:
>> 1) Любой синтаксис, который нам понравится. >> 2) DSL будет компилироваться (в LISP-код, а затем и в нативный при >> необходимости), а не интерпретироваться. В том числе есть обширные >> возможности для оптимизации или применения Partial Evaluation. И это >> все будет работать при компиляции кода, а не при его выполнении.
C>3) Lots of Incredibly Stupid Parentheses
Нет, это конфликтует с первым пунктом. Я же написал — любой синтаксис Если вдруг скобочки не устраивают.
Здравствуйте, eao197, Вы писали:
E>Лично мне очень жаль, что Microsoft не занимается сама портированием .NET и C# хотя бы на Unix-ы (типа Linux-а и BSD). Моно и ДотГНУ -- это хорошо, то далеко не Microsoft.
Так я не понял, это хорошо или плохо?
Здравствуйте, eao197, Вы писали:
E>Кстати да, очень часто в скриптовых программках натыкаешься на такой hard-coding. Это не значит, что на Python-е (Ruby) нельзя писать без hard-coding-а (равно как на C++, Java и C# легко писать с hard-coding-ом). Но часто именно на такой код нарываешься.
Дело в том что для питона что есть хардкодинг что его нет всеравно придется все отлажывать на всю катушку ибо этот дурак не требует объявления переменных. Помнится из-за такой ошибки (правда там был другой язык но с тойже проблемой) упал какойто космический корабль. Ну опечатался программер в одном месте с кем не бывает, а компилятор сволочь пропустил...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, eao197, Вы писали:
E>Жаль, что гуру, говоря о достоинствах .NET-а, часто отмахиваются от наличия других платформ E>Лично мне очень жаль, что Microsoft не занимается сама портированием .NET и C# хотя бы на Unix-ы (типа Linux-а и BSD). Моно и ДотГНУ -- это хорошо, то далеко не Microsoft.
Здравствуйте, Козьма Прутков, Вы писали:
КП>Трурль wrote: >> Здравствуйте, WolfHound, Вы писали: >> Поставим вопрс по-другому. Стоит ли связываться с C#, если есть питон? КП> стоит ли шить сапоги если мы уже умеем плести лапти?
......... КП>Итого, всему свое место в жизни
Угу только лапти запросто могут превратится в сапоги и наоборот в зависимости от решаемой задачи.
Здравствуйте, WFrag, Вы писали:
WF>Здравствуйте, FR, Вы писали:
WF>>>Есть вообще мнение, что выгоднее вместо General Purpose Languages использовать DSL и развитие в ближайшем будущем должно идти в сторону удешевления создания DSL.
FR>>http://www.iso.ru/journal/articles/print/264.html
WF>До LISP-а ему в этом плане все равно далеко. В случае LISP-а мы имеем:
WF>1) Любой синтаксис, который нам понравится.
ты ссылку до конца прочитал?
WF>2) DSL будет компилироваться (в LISP-код, а затем и в нативный при необходимости), а не интерпретироваться. В том числе есть обширные возможности для оптимизации или применения Partial Evaluation. И это все будет работать при компиляции кода, а не при его выполнении.
Так тут тоже компилируется в байт код питона.
Вообще мне лисп не нравится лучше тогда форт взять
Здравствуйте, Cyberax, Вы писали:
C>FR wrote:
>> WH>На что спорим что я на питоне закриптую программу так что ты в ней >> озвереешь разбираться. >> Конечно напишешь Но суть в том что создатели java и C# выкинув >> процедурный стиль просто принуждают из простейших вещей делать криптокод.
C>Объясните, что вы понимаете под "процедурным стилем"? Код с глобальными C>переменными и фукнциями?
Нет скоре то что сильно любят Вирт и Дейкстра, код без глобальных переменных и goto, хорошо структуированный.
>> WH>Есть очень большая проблема: Отсутствие статической типизации. >> Чем ее отсутствие помешает преименовыванию методов и т. п.
C>Вот такой код: C>
C>Предположим, что код класса "Test" и переменная tst расположены в разных C>файлах в большом проекте из 5000 классов. Как нам теперь переименовать C>метод test_method в new_test_method?
C>В языках со статической типизацией все просто — переименовываем метод и C>компилируем программу, а потом по сообщениям об ошибках находим все C>точки использования метода test_method. Или если язык достаточно просто C>(типа Java или C#), то IDE может проанализировать код и заменить все без C>перекомпиляции.
так и в питоне можно запустить PyChecker и получить тоже AttributeError: Test instance has no attribute 'test_method'
>> WH>Что называется почувствойте разницу. >> и что?
C>А то, что с ReShaper'ом или IDEA "производительность" получается ничуть C>не хуже, чем у питонистов.
>> WH>Сомнительное преймущество. >> угу также как и шаблоны в плюсах
C>Темплейты в С++ — это огромное его преимущество, и ничуть не сомнительное.
обобщенное программирование в питоне тоже.
>> Может наоборот? Тем более пока C#2 нет, а переносимые варианты >> появятся еще позже.
C>Переносимый вариант (Mono) выйдет через пол-года.
А разве C#2 от ms уже вышел?
>> А связыватся стоит, так как портировать питон и настраивать под >> определенную задачу гораздо легче чем шарп, и памяти он кушает намного >> меньше.
C>Не факт.
Если судить по играм то факт.
>> FR>>и как плюс они будут короче и понятней, осбенно настроечные >> скрипты с которыми работают дизайнеры, то есть те кто мало разбирается >> в кодировании. >> WH>Сильно сомневаюсь >> зря, только то, что питон подерживает процедурный стиль уже гигантское >> упрощение, код можно писать без всякой обвязки, и читатся он будет не >> сложнее чем ini файл.
C>Только если при этом он будет делать примерно то же, что и "hello world".
ты контекст отслеживай, я говорил про настроечные скрипты в играх, это "умный" ini файл.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, eao197, Вы писали:
E>>Кстати да, очень часто в скриптовых программках натыкаешься на такой hard-coding. Это не значит, что на Python-е (Ruby) нельзя писать без hard-coding-а (равно как на C++, Java и C# легко писать с hard-coding-ом). Но часто именно на такой код нарываешься. WH>Дело в том что для питона что есть хардкодинг что его нет всеравно придется все отлажывать на всю катушку ибо этот дурак не требует объявления переменных. Помнится из-за такой ошибки (правда там был другой язык но с тойже проблемой) упал какойто космический корабль. Ну опечатался программер в одном месте с кем не бывает, а компилятор сволочь пропустил...
А другой взорвался на старте из-за того, что управляющий софт был написан на статически типизированной Ada...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, GlebZ, Вы писали:
GZ>Здравствуйте, eao197, Вы писали:
E>>Лично мне очень жаль, что Microsoft не занимается сама портированием .NET и C# хотя бы на Unix-ы (типа Linux-а и BSD). Моно и ДотГНУ -- это хорошо, то далеко не Microsoft. GZ>Так я не понял, это хорошо или плохо?
Хорошо, что есть Моно и дотГНУ.
Плохо:
— то, что Microsoft официально не занимается портированием .NET и C# на другие платформы сама ;
— то, что VladD2 и теперь уже WolfHound прибегают к аргументу, что линукс их не интересует
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
LSL wrote: > Здравствуйте, Козьма Прутков, Вы писали: > > КП>Но он ориентирован на разработку > КП>корпоративных приложений, автоматизации бизнеса, а не утилит и игр. > > C# Language Specification: C# is intended to be a simple, modern, general-purpose, object-oriented programming language. угу. И фото с рекламного проспекта
К тому же я имел в виду не только и не столько сам язык сколько .NET в
целом (без него шарп ведь не живет). Ну не будешь ты на C# писать
драйвера. Не будешь, пожалуй, писать и софт типа СУБД, веб-серверов и
т.п. — для этого есть C++. Не будешь писать поделку на 5 строк, которая
обработает текстовый лог используя регулярное выражение и что-нибудь
тебе сообщит — это удел скриптовых языков. Он предназначен для быстрой,
эффективной, дешевой разработки приложений. И с этой задачей справляется
на 5. А то, что язык general purpose — так это ежу понятно: он же не
заставляет тебя оперировать какими-то встроенными знаниями о целевой
области, только общепринятыми конструкциями и типами. Лом тоже general
purpose, хоть гвозди забивай, но это не означает, что пора выкинуть
шампуры и шашлык жарить на нем.
Ох, чтой-то я уже про шашлык вспомнил?
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, Gaperton, Вы писали:
G>>Да правда чтоли? VB со своим IDispatch, JScript, PHP, Perl и ваш любимый C# c контейнерами Object-ов — типизированны по самое нехочу? WH>С++, C#2...
Это у нас весь мэйнстрим? FR>>А отсутствие типизпции может быть и преимуществом. WH>Да правда чтоли? Интересно почему тогда весь мейнстрем типизированый по самое нехочу?
Плохонький аргумент, короче, с твоей стороны. Совсем никакой.
Здравствуйте, WFrag, Вы писали:
WF>Здравствуйте, Cyberax, Вы писали:
>>> 1) Любой синтаксис, который нам понравится. >>> 2) DSL будет компилироваться (в LISP-код, а затем и в нативный при >>> необходимости), а не интерпретироваться. В том числе есть обширные >>> возможности для оптимизации или применения Partial Evaluation. И это >>> все будет работать при компиляции кода, а не при его выполнении.
C>>3) Lots of Incredibly Stupid Parentheses
WF>Нет, это конфликтует с первым пунктом. Я же написал — любой синтаксис Если вдруг скобочки не устраивают.
+1. Взять хотя бы упомянутый Синклером Logo. Это диалект лисп .
Здравствуйте, eao197, Вы писали:
E>Хорошо, что есть Моно и дотГНУ. E>Плохо: E> — то, что Microsoft официально не занимается портированием .NET и C# на другие платформы сама ;
А я бы сказал что наоборот хорошо. Чем меньше Microsoft будет вмешиваться в сам Net, тем лучше. Как уже говорилось, что покрытие предметной области в Java наиболее полное. И не последнюю роль в этом играли именно третьи фирмы и опенсорс и отсутствие монополии типа Microsoft. Когда у тебя в конкурентах Microsoft, на рынке делать нечего. E> — то, что VladD2 и теперь уже WolfHound прибегают к аргументу, что линукс их не интересует
Это их проблемы. (хотя честно, сам работаю только на wintel).
С уважением, Gleb.
PS: вот если бы они коды JIT открыли, вот тогда Net компиляторы в натив начали бы плодится как грибы.
FR wrote: > Угу только лапти запросто могут превратится в сапоги и наоборот в зависимости от решаемой задачи.
типа, пиво — хорошая водка
нет, дружище, из лаптей хреновые сапоги получатся: хоть ты их резиной
заверни, а все равно в дождь промокнешь. Аналогично как из сапог —
хреновые лапти: не повесишь ты на стенку на даче полаченные сапоги, ну
не красиво
Здравствуйте, GlebZ, Вы писали:
GZ>Здравствуйте, eao197, Вы писали:
E>>Хорошо, что есть Моно и дотГНУ. E>>Плохо: E>> — то, что Microsoft официально не занимается портированием .NET и C# на другие платформы сама ; GZ>А я бы сказал что наоборот хорошо. Чем меньше Microsoft будет вмешиваться в сам Net, тем лучше. Как уже говорилось, что покрытие предметной области в Java наиболее полное. И не последнюю роль в этом играли именно третьи фирмы и опенсорс и отсутствие монополии типа Microsoft. Когда у тебя в конкурентах Microsoft, на рынке делать нечего.
Может быть. Хотя вот у Java сама Sun заботиться о том, чтобы при выходе новой версии Java весь новый JDK сразу был доступен на всех официально поддерживаемых Sun-ом платформах. Кроме того, именно Sun позиционирует Java как кроссплатформенное решение (хотя Java -- это сама по себе платформа ) А в случае с Microsoft-ом, во-первых, такого позиционирования со стороны самого Microsoft-а нет и, во-вторых, как следствие, после выхода очередной версии .Net будет проходить некоторое время пока Моно и дотГНУ подтянуться. Да и опыт GNU Classpath показывает, что тяжеловато за Sun-ом угнаться в отдельной реализации JDK.
Поэтому мне, как стороннему наблюдателю за спорами C# vs something интересно читать про достоиства .Net/C#, но из-за необходимости быть портабельным я не рассматриваю сейчас .Net/C# как серьезную альтернативу C++/Java и даже Python/Perl/Ruby.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, WolfHound, Вы писали:
WH>>Дело в том что для питона что есть хардкодинг что его нет всеравно придется все отлажывать на всю катушку ибо этот дурак не требует объявления переменных. Помнится из-за такой ошибки (правда там был другой язык но с тойже проблемой) упал какойто космический корабль. Ну опечатался программер в одном месте с кем не бывает, а компилятор сволочь пропустил...
E>А другой взорвался на старте из-за того, что управляющий софт был написан на статически типизированной Ada...
Тот, о котором пишет WolfHound, тоже статически типизированный.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, FR, Вы писали:
FR>>Конечно напишешь Но суть в том что создатели java и C# выкинув процедурный стиль просто принуждают из простейших вещей делать криптокод. WH> Может уже пора писать в объектно-ориентированом стиле?
Не везде выгодно писать в ОО стиле.
FR>>Чем ее отсутствие помешает преименовыванию методов и т. п. WH>Ну попробуй переименовать функцию some принимающею три параметра типов int, float, string сласса foo. Причем так чтобы ничего не поломалось ни при каких наворотах в коде.
У питона своя специфика, но все таки не вижу проблем для написания такой утилиты.
WH>>>ReSharper не проверяет код. Он помогает его набивать, модифицировать и осуществлять навигацию. Те это часть IDE, а не компилятора. WH>>>Что называется почувствойте разницу. FR>>и что? WH>А то что ReSharper не берет на себя функции компилятора по проверки программы на наличие ошибок.
так и для питона можно сделать тоже.
FR>>Нет, сейчас компиляторы просто стали умнее и выдают намного больше предупреждений, так что lint уже просто не нужен. WH>Не знаю как там у тебя но у меня при малейшей нестыковки программа просо не компилируется. И не нужны мне никакие варнинги.
то есть ты всегда выставляешь level 4 и "Treat Warnings As Error"?
FR>>Тем более пока C#2 нет, WH>Уже есть бета 2 FR>>а переносимые варианты появятся еще позже. WH>Микрософт перенесет его везде где есть винда очень быстро. А всякие линухи лично меня не волнуют.
понятно
консоли тоже?
FR>>А связыватся стоит, так как портировать питон WH>Ну для того чтобы портировать .НЕТ надо только прекомпилировать JIT и GC под конкретную платформу. А библиотеки те что чисто managed портируются автоматически. FR>>и настраивать под определенную задачу гораздо легче чем шарп, WH>Это чем же?
тем что гораздо компактнее, и сразу написан портируемым.
FR>>и памяти он кушает намного меньше. WH>Ой да брось ты. .НЕТ жрет памяти сколько винде не жалко. Но как только винде понадобится память .НЕТ ее отдает еще до того как винда потянит свои ручки к свопу.
FR>>зря, только то, что питон подерживает процедурный стиль уже гигантское упрощение, WH>Ну в программе из 10 строк это можно заметить. А вот в программе на несколько мегабайт исходников ты это и под микроскопом не увидишь.
Угу, только программа на питоне будет гораздо меньше чем эти несколько мегабайт.
FR>>код можно писать без всякой обвязки, и читатся он будет не сложнее чем ini файл. WH>Очень обманчивое "преймущество". Взять тотже "Vampire: The Masquerade Bloodlines" блин все руки надо пообравать этим горе программерам которые эти скрипты писали. WH>Замет все задается строками и магическими числами. И так везде.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, eao197, Вы писали:
E>>Кстати да, очень часто в скриптовых программках натыкаешься на такой hard-coding. Это не значит, что на Python-е (Ruby) нельзя писать без hard-coding-а (равно как на C++, Java и C# легко писать с hard-coding-ом). Но часто именно на такой код нарываешься. WH>Дело в том что для питона что есть хардкодинг что его нет всеравно придется все отлажывать на всю катушку ибо этот дурак не требует объявления переменных. Помнится из-за такой ошибки (правда там был другой язык но с тойже проблемой) упал какойто космический корабль. Ну опечатался программер в одном месте с кем не бывает, а компилятор сволочь пропустил...
Насчет необявленных переменных, на такой код:
from random import random
if random() < 0.001:
print x
PyChecker пишет: D:\temp\_tst\p1\tst1.py:4: No global (x) found
Насчет корабля ошибка была в том что вместо запятой поставили точку, программа была на фортране, подобная ошибка легко допускается и на си.
Здравствуйте, Трурль, Вы писали:
Т>Здравствуйте, eao197, Вы писали:
E>>Здравствуйте, WolfHound, Вы писали:
WH>>>Дело в том что для питона что есть хардкодинг что его нет всеравно придется все отлажывать на всю катушку ибо этот дурак не требует объявления переменных. Помнится из-за такой ошибки (правда там был другой язык но с тойже проблемой) упал какойто космический корабль. Ну опечатался программер в одном месте с кем не бывает, а компилятор сволочь пропустил...
E>>А другой взорвался на старте из-за того, что управляющий софт был написан на статически типизированной Ada... Т>Тот, о котором пишет WolfHound, тоже статически типизированный.
А про какие аварии вообще идет речь?
Я говорил об Ариан 5, который при старте взорвался.
Еще был, кажется, MarsExplorer, который врезался в марс из-за того, что в модуле подлета все считалось в одних единицах, а в модуле посадки в других. Интересно, на чем этот софт был написан.
Еще был какой-то случай, когда в программе на Фортране при написании константы вместо десятичной точки поставили запятую.
P.S. Лично я последние два случая знаю только из программиского фольклера (в смысле, что сам не читал каких-либо статей, где утвердалось бы именно такая причина катастрофы).
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.