[perl vs .net] кто более кроссплатформенный? [re: [Ajax] litportal.ru]

Werdna

Для запуска качалки требуется .net framework версии не ниже 2.0. Ну, или Windows Vista, т.к. там .net стоит сразу.
ЖЖОШЬ! Сколько оперативы надо для запуска? ;)
Вот думаю — купить себе Висту что ль? Коль пошла такая пьянка...

Helga87

Ну, типа. Я вот тут чо-то сделал, запускается не везде, зато это было сделано быстро и мои проблемы это решило. Я поделился этим с другими. Если тебе нужно, можешь установить Mono на свою систему и запустить.
Короче, я не понял наезда.

timefim

Спаси людей от покупки висты, выложи свой вариант.

Werdna

Короче, я не понял наезда.
Это не наезд, это ирония. :)
Не понимаю зачем дотнет, если можно написать скрипт на перле, например, простой и понятный :)

apl13

Вот думаю — купить себе Висту что ль? Коль пошла такая пьянка...
Брось каку! Брось! :donot:
Лучше б и в самом деле platform-indep-решение выложил. :deal:

Helga87

Не понимаю зачем дотнет, если можно написать скрипт на перле, например, простой и понятный
и какая будет разница? И для перла, и для .net надо ставить runtime.
Причем, если учитывать, что большинство пользователей не умеет работать с командной строкой, предоставленный gui делает им программу доступной для использования.

Helga87

Лучше б и в самом деле platform-indep-решение выложил. :deal:
Прога без проблем запускается на Linux + Mono

FRider

ЖЖОШЬ! Сколько оперативы надо для запуска? ;)
Ну уж явно меньше, чем берут обычно при покупке любого современного компа.

Werdna

Прога без проблем запускается на Linux + Mono
У меня ни Явы, ни Моно. Пока не понадобились...
перл ставить не надо, он всегда в системе есть. то что его нет в стандартной поставке винды — минус винде, она "не такая как все".

mkrec

> то что его нет в стандартной поставке винды — минус винде, она "не такая как все".
просто в винде лишь малая доля пользователей представляет собой программеров, и среди них большинство не считают нужным наркоманить с перлом. Извините за оффтоп.

Helga87

Прога без проблем запускается на Linux + Mono
У меня ни Явы, ни Моно. Пока не понадобились...
Ну, и где проблема? Понадобится, установишь. Нет?

apl13

Это не оффтоп, это глупость. По твоей логике, большинству пользователей в компьютере не нужен процессор, потому что очень немногие пишут на ассемблере, а напрямую в машинном коде - и того меньше.

mkrec

Я ни разу не сталкивался с практической задачей (и даже не слышал о ней которая бы решалось в перле и не решалась как-нибудь иначе. Я вполне допускаю, что такие задачи есть, но для столь редкого случая нуждающийся вполне может скачать перл. В конце концов, в винде (и в линуксах тоже) по умолчанию отсутствует масса более полезных вещей. Никто ведь не обвиняет солярис в отсутствии возможности импортировать виндовый реестр или еще какой-нибудь нафиг ему не нужной фигни.

apl13

Ты даже не пытаешься понять, о чем я говорю. Я к такому привык.

mkrec

в винде не нужен перл, потому что задачи, где бы он требовался, встречаются редко. Да, я не понял твоей метафоры касательно проца, но если метафора была в тему, она ложна. Миллионы людей десятки лет пользуются виндой, ругаются на ненадежность, нестабильность, большой объем, отсутствие кодеков, слабый шелл, нехватку настроек, отсутствие вгета, седа, слипа и кучи других полезных вещей, но никому кроме Пианиста, ни хрена в винде не разбирающемуся и, судя по его постам, последний раз сталкивавшемуся с 95ой версией, отсуствие перла по умолчанию не показалось недостатком.

apl13

никому кроме Пианиста... отсуствие перла по умолчанию не показалось недостатком.
И за человека ты меня тоже не считаешь... :(

Werdna

в винде не нужен перл, потому что задачи, где бы он требовался, встречаются редко.

Ну да, в винде большинство задач решаются в Аутлуке.
Миллионы людей десятки лет пользуются виндой, ругаются на ненадежность, нестабильность, большой объем, отсутствие кодеков, слабый шелл, нехватку настроек, отсутствие вгета, седа, слипа и кучи других полезных вещей, но никому кроме Пианиста, ни хрена в винде не разбирающемуся и, судя по его постам, последний раз сталкивавшемуся с 95ой версией, отсуствие перла по умолчанию не показалось недостатком.

Отсутствие шэлла — это вообще пиздец. Объясни мне, как в винде по телефону быстро объяснить человеку как поднять сеть? В любой юникс-системе ты говоришь от рута запустить команду которую диктуешь, типа ifconfig ... В винде же ты начинаешь расспрашивать про венрсию винды, про установленные сервиспаки и прочую муть, и потом ты врубаешься, что нужный комббокс оказывается в совершенно другой вкладке.
Сейчас же немного насмешила картина простого шэлл-скрита, вызывающего wget с 5 параметрами и awk. К черту перл, выдирать страницы из говнолибпортала можно на шэле. Скрипт с простым синтаксисом. Решение на дотнете мне кажется излишне сложным и тяжелым.

Werdna

кстати, весьма показательно, что в случае классического юникс-решения ответ был бы такой:

#!/bin/sh

wget ...
cat ... | awk ... | iconv -f cp1251 -t utf-8


В случае венды с дотнетом — это зип файл, который к тому же надо проверить на вирусы. ;)

serega1604

#!/bin/sh wget ... cat ... | awk ... | iconv -f cp1251 -t utf-8
вгет умеет в stdout выводить :)

IvladV71

тогда уж можно s/wget/curl/

dedwowan

Пианист, для таких людей, как ты, существует линуксы и юниксы. Тебе и тебе подобным они нравятся, вас от них прет и вы всем (почти) в них довольны. Это замечательно. Пользуйтесь этими прекрасными ОС, которые созданы для таких как ты.
И не лезьте в те ОС, которые созданы для людей, которым на@@й не надо разбираться в том, как всю эту ху@@@нь настроить, запоминать какие-то команды, читать горы мануалов и прочее, прочее...
Люди, они знаешь-ли разные. И устраивать тут обсирание всяких осей вещь неблагодарная, нудная и совершенно тупая.

slonishka

ну кому-то вот в сишарпе охота разбираться. кончится сишарп, еще чего-нибудь рюхнут.

«ИТ-отрасль развивается очень стремительно, полученные знания и навыки быстро устаревают.»

slonishka

это ж не шутки все: http://www.joelonsoftware.com/articles/APIWar.html
хотя я не знаю, как там сейчас дела обстоят, да и ничего против не имею. кому нравится — пусть пользуется.

Werdna

Пианист, для таких людей, как ты, существует линуксы и юниксы. Тебе и тебе подобным они нравятся, вас от них прет и вы всем (почти) в них довольны.
Знаешь, именно с этим утверждением я не согласен. Не нравится мне ничего, и уж тем более меня не прет от написания скриптов. Беда в том, что в жизни и в работе я сталкиваюсь с задачами и минизадачами. Я ленив, до жути, особенно когда речь идет о повторении определенной операции более чем 5 раз.
Решая ту или иную задачу, часто сталкиваешься с однотипными действиями. В решении этих мелких задач важно иметь некий набор кирпичиков, чтобы быстро на лету собирать нужный мне функционал за 1 минуту. Я не знаю ничего проще скриптов на шэлле, потому что они просты, наглядны, используют минимум знаний и легко без перекомпиляции делают то, что мне надо.
Красин написал прогу. Отлично, но что делать с этим бинарем если пидорамы изменили что-то и текст на выходе стал замусорен? Писать автору? Или изучать исходники на дотнете? А если мне надо дофичить эту простую программу? Бачан уже тут написал про АПИ, которое меняется от фреймворка к фреймворку.
Мне проще иметь 10 команд и утилит утилит. Документация по ним не сложна, но выучив это я становлюсь способен быстро и четко сделать любую фигню.
Это 10 утилит по сути такие программы как программа Красина, вот только они выстраданы временем, и мне уже не надо будет лезть в их код. Мне достаточно знать их и уметь применять.

Helga87

Согласен с твоим утверждением.
Например, на работе очень похожая задача решается мной именно коротеньким скриптом для bash. Здесь же ставилась цель упростить использование теми, кто вообще не знает, как программировать. Пусть даже в ущерб простоте изменения другими.
Цели определяют средства, и это нормально. Большую часть треда ты пытаешься убедить в том, что взяты негодные средства. Нет, просто взята цель, отличная от твоей.

dedwowan

Ну так замечательно. А вот мне по работе не приходиться решать задачи, которые требовали бы кирпичиков из скриптов. Я тупо рисую схемки и диаграмки и знать не знаю ничего о скриптах на башах, сишарпах, жавах и т.д. и т.п.
Мне убить себя ап стену и не скачивать книги с литпортала? Читать их с экрана в их тупом форматировании? Или бежать изучать скрипты, чтобы это сделать?
Человек написал прогу, которую я могу использовать. Спасибо ему за это. Скрипт, написанный тобой я использовать бы не смог.

apl13

Здесь же ставилась цель упростить использование теми, кто вообще не знает, как программировать.
У меня на домашнем компьютере некоторое время был цигвин со всеми ништяками, но не было дотнетфрамоворка.
Кстати, "те, кто не знает, как программировать" /= "те, кто сидит под виндой".

Helga87

если ты подскажешь, как сообщение связано с , я буду счастлив.

apl13

Тогда я коварно спрашиваю, в чем тут противопоставление:
Например, на работе очень похожая задача решается мной именно коротеньким скриптом для bash. Здесь же ставилась цель упростить использование теми, кто вообще не знает, как программировать.

Dasar

> Тогда я коварно спрашиваю, в чем тут противопоставление:
скрипт легко делается под себя, но тяжело распространяется.

apl13

но тяжело распространяется.
Дотнетная программа в зип-архиве, конечно, распространяется не в пример проще. :spy:

Werdna

скрипт легко делается под себя, но тяжело распространяется.
скрипт вообще копипастится. :)
Или тебе нужно чтобы в меню СТАРТ появилась программа?

Helga87

Дотнетная программа в зип-архиве, конечно, распространяется не в пример проще.
Распространение - это не только копирование. Это копирование+настройка+обучение пользователя
Для того, чтобы моя знакомая девушка с филфака смогла запустить мою прогу, мне надо ей прислать по почте .zip файл, сказать "разархивируй и запусти".

Werdna

моя знакомая девушка с филфака
feel&fuck :)
скрипт тоже говоришь — скачай и запусти. разница?
ЗЫ: Да! Устанавливать Перл надо, а дотнет — он ведь в Висте есть! Ура! Я угадал?

Helga87

я боюсь, что на объяснение, как пользоваться скриптом, уйдет очень много времени
да, Виста. Ей очень удобно.

Dasar

Дотнетная программа в зип-архиве, конечно, распространяется не в пример проще.
Основная проблема в распространение- это чтобы программа все-таки смогла запуститься у пользователя в том окружении которое у него есть, с минимумом телодвижения от самого пользователя.
зы
кстати в скриптах жопа с обработкой ошибок, что видно на том же примере предполагаемой рыбы на скрипте.

Dasar

Устанавливать Перл надо
а также устанавливать и настраивать полное nix окружение (wget, iconv и т.д.)

AlexV769

в скриптах жопа с обработкой ошибок
Да, жопа - но она только для тех, кто не знает `$?' и конструкций типа [ -z "$somevar" ] && do_ok || do_error
Короче если не умеешь писать скрипты на шеле - лучше по поводу него не высказывайся. Если используемые в скрипте утилиты адекватно отдают статус ошибки (а большинство это делают корректно то проблем с их отработкой не возникает.
Да, я тут принял скрипт=sh, если скрипт=perl, то ничего не меняется. Синтаксис разве что чуть-чуть.

apl13

ЗОМГ! Я пытался тебе намекнуть, что потом еще около пяти часов уйдет на объяснение знакомой девушке с филфака, что такое дотнет, зачем он нужен, почему без него нельзя и откуда его взять, а затем придется прийти поставить... Но ты не видел моих намеков. :(

apl13

Основная проблема в распространение- это чтобы программа все-таки смогла запуститься у пользователя в том окружении которое у него есть, с минимумом телодвижения от самого пользователя.
У меня на домашнем компьютере некоторое время был цигвин со всеми ништяками, но не было дотнетфрамоворка.
:( :cry: :mog:

Helga87

Не придется. Максимум - дам ссылку на инсталлятор .net, она скачает, установит (нажав несколько раз на Next, Next, Finish) и будет качать книги.

Helga87

Ден, скажи плз. Ты кем работаешь?

AlexV769

что такое дотнет
Это штука, которая нужна для запуска этой проги
зачем он нужен
см выше
почему без него нельзя
потому что.
откуда его взять
тут прямая ссылка .NET Framework @ download.microsoft.com
затем придется прийти поставить...
Скачай, запусти, прокликай next и будет тебе щастье.
Я ничего не пропустил? Впрочем, далеко не факт что у этой самой занакомой .NET ещё не стоит - он уже дофига где нужен и вроде бы распространяется через MS update в добровольно-принудительном порядке.

apl13

Это, конечно, сильно быстрее и проще, чем: "В меню "Пуск" выбери "Запустить...", там набери cmd.exe и нажми Enter, а в открывшемся окне набери perl script.pl :umnik: :bash: :programmer: ". :crazy:

apl13

А вы с какой целью интересуетесь? (c) :ooo:

apl13

Ну ладно, убили... :bricks:
Как вы думаете, почему большинство пользователей до сих пор не знает, что такое переносимые решения, и не имеет понятия о международных стандартах?

Dasar

а в открывшемся окне набери perl script.pl
1. script.pl в какой директории надо было сохранять?
2. выдало

'perl' is not recognized as an internal or external command,
operable program or batch file.

что делать дальше?

apl13

что делать дальше?
Что делать, когда у меня .Net Framework нет? Правильно, сухари сушить.

mkrec

перловость программы теперь автоматически считается переносимым решением и удовлетворяет международным стандартам?

Dasar

> Что делать, когда у меня .Net Framework нет? Правильно, сухари сушить.
вопрос, то серьезный, что дальше делать, если нет perl?
с .net более-менее понятно: даешь ссылку на дистр и дальше вопросов не возникает.

AlexV769

почему большинство пользователей до сих пор не знает, что такое переносимые решения, и не имеет понятия о международных стандартах?
потому же, почему сейчас "средний пользователь ПК" - что-то вроде бухгалтера-менеджера, который понятия не имеет о том, как всё это работает - он тупо ходит по сайтам в Ынтырнете и делает отчетики в 1C. Будешь смеяться, я знаю человека, который зовет помошника сис админа для того, чтобы отключить сетевой диск. Хотя этот человек знает где нужно тыкнуть.

apl13

с .net более-менее понятно: даешь ссылку на дистр и дальше вопросов не возникает.
Собственно, да. В случае с перлом все гораздо сложнее, на этом этапе, скорее всего, придется отказаться от идеи, поскольку перла для винды не существует, а если существует, то его не установить, а если установить, то незачем...

AlexV769

с .net более-менее понятно: даешь ссылку на дистр и дальше вопросов не возникает.
А чем это сложнее/проще дать прямую ссылку на дистрибутив perl'а?

Dasar

> А чем это сложнее/проще дать прямую ссылку на дистрибутив perl'а?
так дай
а также ссылку на wget, cat и awk.

Elina74

поскольку перла для винды не существует, а если существует, то его не установить, а если установить, то незачем...
могу дать прямую ссылку на сайт http://activestate.com, откуда его можно скачать и установить так же, даблклик, некст, некст, доне.

apl13

Нет, разумеется... почти. Программа на перле должна исполняться одинаково на любых двух платформах, где есть интерпретатор соответствующей версии. Дальше мне говорить, или ты все-таки лишь съехидничал?

Helga87

А вы с какой целью интересуетесь? (c)
этот тред четко показал, что мы друг друг понимаем с трудом. Обычно, это означает, что люди занимаются совсем разными вещами и смотрят на мир из сильно разных песочниц. Мне стало вдруг интересно, из какой песочницы смотришь ты. Моя песочница - это, наверное, песочница прикладного программиста (того самого, кто для конечных пользователей пишет, для девочек с филфака и мальчиков с эконома)

Dasar

кстати интересно посмотреть на скрипт с обработкой ошибок, а то я действительно может что-то не понимаю и в скриптах обработка ошибок делается элементарно.

apl13

ДаркГрею дай. А то его сей вопрос занимает.

Helga87

могу дать прямую ссылку на сайт http://activestate.com, откуда его можно скачать и установить так же, даблклик, некст, некст, доне.
установил. Ввел, что надо (perl script.pl). Выдает непонятные буквы, книжку скачать не предлагает. Что делать дальше?

Dasar

Программа на перле должна исполняться одинаково на любых двух платформах, где есть интерпретатор соответствующей версии. Дальше мне говорить, или ты все-таки лишь съехидничал?
а к .net-у эта фраза почему не относится?

Helga87

кстати интересно посмотреть на скрипт с обработкой ошибок, а то я действительно может что-то не понимаю и в скриптах обработка ошибок делается элементарно.
ну, не очень сложно, если использовать bash, например.
На прошлой неделе получилось даже транзакционность (или нечто очень близкое к ней) прикрутить к своим скриптам.

apl13

Моя песочница - это, наверное, песочница прикладного программиста
Я вообще не программист. Непонятно, что я в этом разделе делаю.
Я уже пенартуритом тут заболел, блин.
Самое смешное, что на почве отрицания .Net как платформы для решения (вот на единственном мне доступном компьютере с инетом стоит линукс) и пропаганды более распространенных (вплоть до мультиплатформенности) вещей.
у меня нет шансов. самбади, килл ми плиз (c) :crazy:

AlexV769

так дайа также ссылку на wget, cat и awk.
 perl
 всё остальное

apl13

Перестанет относиться, если в нужном месте приписать: "... и даже (о ужас!) не виндовых..."

Dasar

> ну, не очень сложно, если использовать bash, например
а более-менее приличный пример на котором это видно привести можешь?

mkrec

> Программа на перле должна исполняться одинаково на любых двух платформах, где есть интерпретатор соответствующей версии.
Если честно, я подобных фраз не понимал, еще когда десять лет назад мне говорили, что переносимый формат документа - это такой, который дает одинаковые результаты на любых двух платформах, где есть акробат. Все было бы понятным, если б не два но:
1) документ-таки нередко отображается на разных платформах по-разному;
2) в общих чертах и непереносимые документы отображаются одинаково.
Применительно к данному случаю, почему ты считаешь, что программа Красина будет исполняться на разных платформах под одним интерпретатором (ну, библиотекой - для пользователя один фиг) по-разному?

Dasar

> "... и даже (о ужас!) не виндовых..."
.net вроде не виндовый, дальше что?

apl13

Выдает непонятные буквы, книжку скачать не предлагает. Что делать дальше?
Выдай ему какие-нибудь буквы в ответ. Книжку, скорее всего, не скачает, но хоть будет справедливо.

apl13

И открытых.
И не от M$.

apl13

почему ты считаешь, что программа Красина будет исполняться на разных платформах под одним интерпретатором (ну, библиотекой - для пользователя один фиг) по-разному?
Я этого не считаю. Я считаю, что множество компьютеров, где она вообще будет исполняться, меньше множества тех, на которых будет исполняться виндовый скрипт.

Dasar

всё остальное
мне надо поставить все пункты? 100 раз нажав download/setup? издеваешься?
пункта cat я не увидел...

Helga87

Самое смешное, что на почве отрицания .Net как платформы для решения (вот на единственном мне доступном компьютере с инетом стоит линукс)
Ден, .Net кроссплатформенный. http://www.go-mono.com/mono-downloads/download.html
Ты через 5 минут после скачивания уже сможешь (хотя бы для примера) запустить мою прогу.

Dasar

И открытых.
И не от M$.
MONO вроде открытое и не MS. что дальше?

AlexV769

кстати интересно посмотреть на скрипт с обработкой ошибок

Helga87

perl
всё остальное
Я щелкнул по твоей ссылке. Ты издеваешься? Девочка это точно не осилит, ну вот зуб дам. Она даже пробовать не будет.

apl13

Ну ладно.
Ты на дотнете написал из-за девушки с филфака или потому что под руку попалось?

Helga87

Выдай ему какие-нибудь буквы в ответ. Книжку, скорее всего, не скачает, но хоть будет справедливо.
Спасибо, твоя программа на моей компе не работает :(

Helga87

Но не открытый ведь?
Открытый. mono - это GNU.
и даже ISO стандарт есть.

Helga87

Ты на дотнете написал из-за девушки с филфака или потому что под руку попалось?
сначала я написал скрипт на руби

AlexV769

мне надо поставить все пункты? 100 раз нажав download/setup? издеваешься?пункта cat я не увидел...
ты из себя строишь ту самую девочку с филфака?
у тебя хорошо получается. Если очень сильно постараться, то на этом же сайте можно найти вот это: web-страница
cat не нужен, он в винде и так есть: print /?

Dasar

посмотри
хотелось увидеть чуть больше, где активно идет работа с перенаправлением ввода вывода, как приводилось здесь в примере.

Helga87

а более-менее приличный пример на котором это видно привести можешь?
могу, пришлю в приват, т.к. писать специально для форума лень, а код с работы выкладывать в открытый доступ не хочу

apl13

It is an open source implementation of Microsoft's .Net Framework based on the ECMA standards for C# and the Common Language Runtime.
Ах вот как. Я давно не следил за новостями. :crazy:

apl13

где активно идет работа с перенаправлением ввода вывода
http://www.cygwin.com/setup.exe

AlexV769

перенаправление ввода-вывода, как правило, используется в однострочных командах для повседневной работы.
Если говорить о скртиптах и задаче отработки ошибок, то это наложит свои ограничения на использование перенаправления потоков.
Т.е. скрипт о котором тут изначально зашла речь, по-хорошему, должен использовать временный файл (или переменную) для хранения необходимых данных.
Перенаправление самом по себе аналогично вызову вложенных функций.

Helga87

ты из себя строишь ту самую девочку с филфака?
у тебя хорошо получается. Если очень сильно постараться, то на этом же сайте можно найти вот это: web-страница
скачал, начал устанавливать
1. Путь по умолчанию C:\Program Files (x86)\Mozilla Firefox 3 Beta 2 — это хорошо? На этом месте девочка огребет проблем, которые очень тяжело диагностируются
2. cat, grep, awk - ничего из этого в PATH не появилось. Значит, наш скрипт на перле грохнулся с ошибкой которая тяжело диагностируется — "не найдена команда grep"
Что делать дальше?

Helga87

Ах вот как. Я давно не следил за новостями.
Стандарт вышел в далеком 2002 году, почти одновременно с основным дотнетом (тогда это был драфт).
В том-то и дело, что .net ровно так же хорош, как и perl, кроме того, что для большинства пользователей ничего устанавливать не надо совсем и, в силу простоты написания gui, программой смогут воспользоваться гораздо больше людей (командную строку не осилят 3 из 4 пользователей компьютера)

Dasar

Если очень сильно постараться, то на этом же сайте можно найти вот это: web-страница
инструкции же не было :) что cat находится именно в этом файле, а не в каком-то другом
но пока кол-во ссылок превысило то кол-во на которое я готов был пойти, чтобы попробовать запустить перловое решение

Dasar

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

AlexV769

Если кто ещё не понял, то я считаю, что перлу на компе девочки-филолога делать не чему. wget-у тоже.

AlexV769

если нам нужна обработка ошибок, то не аналогично...
она совершенно аналогична, причинно-следственная связь такая же.
покажешь мне код, где будет отработана ошибка вложенного вызова функций?
приходится создавать временные файлы, потом их чистить, работа через файлы отрицательно сказывается на производительности
используй переменные, раз тебе нужны лишние 10ms бонуса для скрипта который сам по себе быстрее чем за 10 сек не отработает.
вместо естественного последовательного вызова набора функций, приходится городить громоздкий код
покажи мне естественный последовательный... на любом другом языке. вообще ты похоже действительно не умеешь писать под sh, если конструкции отработки ошибок в нем тебя пугают, а какие-нить try...catch - нет.

Helga87

не просто обработку ошибок, но обработку ошибок с восстановлением после сбоя.
в привате как раз такой cron script. Ну, вернее часть его. Там есть несколько стадий, если упала одна, остальные ждут, пока она перезапустится и отработает правильно.

Helga87

Хотя, это все равно было геморройно делать и обработка ошибок достаточно на высоком уровне, контролировать детали не получается.

Dasar

покажешь мне код, где будет отработана ошибка вложенного вызова функций?
public string GetPageText(string url)
{
return FlowHlp.Try(3, => HttpHlp.GetStringByUrl(url, HttpHlp.ParseCookie(this.Cookie, this.Site;
}

Werdna

В том-то и дело, что .net ровно так же хорош, как и perl, кроме того, что для большинства пользователей ничего устанавливать не надо совсем и, в силу простоты написания gui, программой смогут воспользоваться гораздо больше людей (командную строку не осилят 3 из 4 пользователей компьютера)
Проблема в том, что надо пропагандировать тру-средства. :)
А вообще, все неправы. На самом деле надо написать кроссплатформенный плагин к фаерфоксу и выложить. Девочка с филфака асилит. ;)

Helga87

Проблема в том, что надо пропагандировать тру-средства.
решай эту проблему, мы посмотрим
На самом деле надо написать кроссплатформенный плагин к фаерфоксу и выложить. Девочка с филфака асилит.
Вот это уже вариант, на самом деле.

sbs-66

Нихрена не вариант. У девочки нет фаерфокса и он ей не нужен и не нравится. Ей надо просто качать книжки. Прога на .net для этого имхо лучше. Нахрена при этом говорить про кросплатформенность мне непонятно, ибо у девочки с филфака наверняка стоит не линукс, а XP или Vista.
PS. пеонизд - мудак

Werdna

Вдогонку, про девочку.
Любой системный администратор в офисе выебал бы девочку за закачку зипов с экзотическими дотнет-программами. И был бы прав, потому что очень часто такие дотнет-программы типа "закачай бесплатно" приводят именно к этому.
В качестве тру-решений: написать поделие на своем хоумпейдже, твоя девочка зайдет на страничку, введет урл и получит текст. Ни ей что ставить надо, ни проблем с её офисным админом.
Короче, моё ИМХО:
Плюсы твоей проги на дотнете:
1) девочка оценит "программу для взлома защиты сайта", а если там будет рисунок с большим членом сердечками — оценит ещё и тебя.
Минусы
1) Это решение не универсально. Пацаны поинтересуются причинами выбора дотнета.

Dasar

В качестве тру-решений: написать поделие на своем хоумпейдже, твоя девочка зайдет на страничку, введет урл и получит текст. Ни ей что ставить надо, ни проблем с её офисным админом.
с законом проблем может быть больше.

FRider

и конечно, админ совсем не поинтересуется фактом установки скриптового движка

Dasar

В качестве тру-решений: написать поделие на своем хоумпейдже, твоя девочка зайдет на страничку, введет урл и получит текст. Ни ей что ставить надо, ни проблем с её офисным админом.
"снаружи" модифицировать решение или посмотреть идею решения будет сложно - противоречит концепцию open source.
ps
.net-ное решение даже при наличии только exe-шника позволяет посмотреть идею программы.
при наличии напильника и такой-то матери можно даже более-менее кошерно модифировать исходный код имея только exe-шник

bleyman

Проблема в том, что надо пропагандировать тру-средства.
Вот, ты показал свою истинную пропагандонскую сущность. Тебе не кажется, что было бы честнее с этого начинать, "командная строка и GNU — труёвые", а уже потом говорить, что они не намного менее удобные (хотя, как тут выяснилось, намного чем альтернативы?
2Даркгрей: напильника и матери не понадобится, Reflector восхитительно работает. Я уж не говорю о том, что никаких проблем приложить сорцы (прям вместе с .sln и .proj после чего набрать в командной строке "msbuild zzz.proj" в общем-то нет (почему-то люди дико удивляются когда узнают, что и csc, и msbuild входят в редист дотнета, причём таки прописываются в path). Особенно если этим будет заниматься не сама девочка, а её админ — девочка же не будет читать сурцы? И, кстати, админу, читающему шарповые сурцы, будет гораздо легче отловить наёбку, чем в случае перловых.

Olenenok

вместо естественного последовательного вызова набора функций, приходится городить громоздкий код.
гыг, императивный говнокод назвали естественным. Вот станешь ты человекоподбным роботом, тогда он и будет "естественным", а сейчас, извини ;)

freezer

Любой системный администратор в офисе выебал бы девочку за закачку зипов с экзотическими дотнет-программами. И был бы прав
криворукому админу, неспособному настроить runtime security policies для нетовых сборок, офисных девочек э... любить не полагается, ибо не дорос ещё

freezer

2Даркгрей: напильника и матери не понадобится, Reflector восхитительно работает.
На самом деле не всегда он восхитительно работает, иногда проекты после экспорта не собираются (во всяком случае у меня был случай, когда какой-то из идентификаторов требовал простановки @, может уже пофиксили это). Плюс, некоторые умники пользуются обфускаторами (слава богу, сама MS до этого не опускается).

kruzer25

почему-то люди дико удивляются когда узнают, что и csc, и msbuild входят в редист дотнета, причём таки прописываются в path
Я, как девочка с филфака, не понял, о каком это редисте ты говоришь, но в висте их в path нет, наверное, надо всё-таки что-то ставить?

kruzer25

Вот станешь ты человекоподбным роботом, тогда он и будет "естественным", а сейчас, извини
А перл/шелл, по-твоему - естественны?

salora

А перл/шелл, по-твоему - естественны?
пёрл и шелл вообще говно :grin: :grin: :grin:

tipnote

Насколько можно бегло прочитать с сайта моно, они до сих пор не достреливают до версии 2.0. У них периодически проблемы и ограничения с чем-то вроде Win.Forms (уж не это ли хваленое гуи?). Короче, с натяжкой дотнет кроссплатформенный, неа?
P.S. Про филдевочек и экомальчиков мне неинтересно. Я только про сравнение кросплатформенности.

Helga87

Gtk#, на том же сайте. Да и с WinForms там уже намного лучше, чем два года назад (ты когда последний раз читал?)

tipnote

Нее, дружок. Какая это кроссплатформенность-то? Когда под одной платформой одно средство, а под другой - другое? Так что можно еще сказать, что C# кроссплатформенный до некоторой версии, а вот дотнет - неа, разве нет?
Я, кстати, к чему. Я про то, что моно, имхо, постоянно будет страшно отставать от обычного дотнета. И почему-то мне кажется, что мелкомягких это устраивает. А значит, труЪ кросплатформенности дотнета через моно не будет никогда.
>ты когда последний раз читал?
Только что.

salora

Я вот не пойму, нахуй этот винформс сдался под линуксом. Сейчас в линуксе относительное, по сравнению с вендой, однообразие: есть gtk, есть qt, они практически дублируют друг друга, и из-за этого приложения в большинстве работают по одинаковым принципам. А в венде одно приложение имеет один скин наляпанный 18-летним дезигнером, другое - уже 17-летним. Потом они ещё работают по-разному, у одного приложения настройки в одном месте, у другого - в другом и пр. Пусть эта хуетень лучше в венде остаётся - порождает новых "опытных пользователей виндоус".

tipnote

Ты это к чему? Я вообще-то про другое, если ты не заметил...

salora

Это я к тому, что не надо поддержки формс. И цешарп не нужен.

Helga87

Я сильно удивлюсь, если моя программа без каких-либо дополнительных усилий не запустится в Ubuntu, где Mono стоит по умолчанию.
Дойду до работы, отпишусь о результатах.
А еще - ты какой-то злой сегодня. Неконструктивно злой.

salora

 
$ mono -V
Mono JIT compiler version 1.2.4 (tarball)
Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com
TLS: __thread
GC: Included Boehm (with typed GC)
SIGSEGV: altstack
Architecture: x86
Disabled: none
[/code]
 [code] $ mono BookScraper.exe
** (BookScraper.exe:2004): WARNING **: The following assembly referenced from /home/master/Desktop/BookScraper.exe could not be loaded:
     Assembly: System.Windows.Forms (assemblyref_index=0)
     Version: 2.0.0.0
     Public Key: b77a5c561934e089
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/master/Desktop/).
** (BookScraper.exe:2004): WARNING **: Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
** (BookScraper.exe:2004): WARNING **: Missing method EnableVisualStyles in assembly /home/master/Desktop/BookScraper.exe, type System.Windows.Forms.Application
Stacktrace:
Native stacktrace:
     mono [0x8194ca6]
     mono [0x81770ed]
     [0xffffe440]
     mono(mono_object_new+0x18) [0x80b596a]
     mono(mono_exception_from_name_two_strings+0x44) [0x80f0a45]
     mono(mono_get_exception_file_not_found2+0x4f) [0x80f0b9c]
     mono [0x810f9a7]
     mono [0x811a390]
     mono(mono_class_vtable+0x181) [0x80b29b3]
     mono(mono_object_new+0x18) [0x80b596a]
     mono(mono_exception_from_name_two_strings+0x44) [0x80f0a45]
     mono(mono_get_exception_file_not_found2+0x4f) [0x80f0b9c]
     mono [0x810f9a7]
     mono [0x8176370]
     mono [0x817699e]
     mono [0x8176a98]
     mono [0x8176f2d]
     mono(mono_runtime_invoke+0x27) [0x80b0b2f]
     mono(mono_runtime_exec_main+0x142) [0x80b5383]
     mono(mono_runtime_run_main+0x27e) [0x80b5631]
     mono(mono_jit_exec+0xbd) [0x805a4cb]
     mono [0x805a5a8]
     mono(mono_main+0x1683) [0x805bdc9]
     mono [0x8059636]
     /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0) [0xb7cf3050]
     mono [0x80595b1]
Debug info from gdb:
(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1211255088 (LWP 2004)]
[New Thread -1220871280 (LWP 2006)]
[New Thread -1215100016 (LWP 2005)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
0xffffe410 in __kernel_vsyscall
  3 Thread -1215100016 (LWP 2005) 0xffffe410 in __kernel_vsyscall
  2 Thread -1220871280 (LWP 2006) 0xffffe410 in __kernel_vsyscall
  1 Thread -1211255088 (LWP 2004) 0xffffe410 in __kernel_vsyscall
Thread 3 (Thread -1215100016 (LWP 2005:
0xffffe410 in __kernel_vsyscall
0xb7e589f6 in ? from /lib/tls/i686/cmov/libpthread.so.0
0x0811bc9f in ?
0xb79303ac in ?
0x00000000 in ?
Thread 2 (Thread -1220871280 (LWP 2006:
0xffffe410 in __kernel_vsyscall
0xb7e55676 in pthread@GLIBC_2.3.2
   from /lib/tls/i686/cmov/libpthread.so.0
0x08120dde in ?
0xb78991dc in ?
0xb78991c4 in ?
0xb7e53541 in pthread_mutex_lock from /lib/tls/i686/cmov/libpthread.so.0
0x081210eb in ?
0xb78991dc in ?
0xb78991c4 in ?
0x00000000 in ?
Thread 1 (Thread -1211255088 (LWP 2004:
0xffffe410 in __kernel_vsyscall
0xb7da92a1 in select from /lib/tls/i686/cmov/libc.so.6
0xb7ec8780 in g_spawn_sync from /usr/lib/libglib-2.0.so.0
0xb7ec8b4c in g_spawn_command_line_sync from /usr/lib/libglib-2.0.so.0
0x08194d84 in ?
0xb7b9a844 in ?
0xb7b9a82c in ?
0xb7b9a828 in ?
0xb7b9a824 in ?
0x00000000 in ?
0xffffe410 in __kernel_vsyscall
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
Aborted (core dumped)

slonishka

Hell Yeah!

tipnote

Отпишись, может, тебе повезет :)
И где это я злой? Я всего-то не верю в кроссплатформенность дотнета. Про эту кроссплатформенность разговоры идут лет пять, блин, а что-то по моно незаметно...
Заметь, я при этом не говорю, что дотнет - говно :D

tipnote

;)

tipnote

Так ставь оффтоп :)

freezer

наша софтина, которая на работе разрабатывается, долгое время делалась и тестировалась под виндой, под mono её даже не пытались тестировать (т.к. там использовалась сторонняя библиотечка с [DllImport("kernel32", ...)] или чем-то типа того, от которой потом отказались). Потом подняли нетовский код под mono и всё заработало сразу без каких-либо проблем. Там и WinForms, и много ещё чего используется.

slonishka

приложение было портировано под линукс, благодаря титаническому труду виртуозов WinForms и гуру ДотНэта!

freezer

я бы не сказал, что отношусь к виртуозам или гуру ДотНета. Остальные коллеги - тем более ;)

tipnote

Мне достаточно, например, 25% процентов проектов, которые без напильника под моно не переносятся, чтобы считать, что ни о какой кроссплатформенности речи не идет. Но есс-но, нет у меня статистики, и походу ни у кого нет. Все, что я слышал на тему разработки под моно начиналось примерно так: "сели мы в *nix и решили писать под моно". А вот обратно как-то нечасто. Впрочем, предыдущее тоже нечасто.
ЗЫ Кстати, под какую версию дотнета писали?

freezer

сначала 1.1, потом на 2.0 переехали. Вот с 3.5 и c# 3.0 пока под моно не всё сделано, но работа кипит.

Helga87

а если попробовать обновиться до 1.2.6?
Mono JIT compiler version 1.2.6 (tarball)
Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com
TLS: normal
GC: Included Boehm (with typed GC)
SIGSEGV: normal
Notification: Thread + polling
Architecture: x86
Disabled: none

salora

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

tipnote

Видимо, грамотно переехали :)
Вот с 3.5 и c# 3.0 пока под моно не всё сделано, но работа кипит.
The Mono API today is somewhere in between .NET 1.1 and .NET 2.0

freezer

возможно, некоторые особо хитрые фичи из 2-го фреймворка не используем :)

yolki

у меня такое ощущение, что больше половины моих безобидных постов перерастают в такие холиварные треды.

serega1604

пакеты для редхата
ну дык пакетами для редхата не один редхат питается.
null:~$ aptitude show mono-common 
Пакет: mono-common
Новый: да
Состояние: не установлен
Версия: 1.2.6+dfsg-5
Приоритет: необязательный
Раздел: interpreters
Сопровождающий: Debian Mono Group <pkg-mono-lists.alioth.debian.org>
Размер в распакованном виде: 745k
Зависимости: libc6 (>= 2.7-1 libglib2.0-0 (>= 2.14.0)
Рекомендуются: binfmt-support (>= 1.1.2)
Описание: common files for Mono
Mono is a platform for running and developing applications based on the ECMA/ISO Standards. Mono is an open source effort led by Novell.
Mono provides a complete CLR (Common Language Runtime) including compiler
and runtime, which can produce and execute CIL (Common Intermediate Language) bytecode (aka assemblies and a class library.

This package contains base configuration files and configures the system to run CIL executables like native applications.
Сайт: http://www.mono-project.com/

Tags: devel::ecma-cli, role::app-data

Olenenok

да ну нафиг, небось с собой ещё libc новую потянет

Helga87

а если попробовать обновиться до 1.2.6?
Обновился:

pilot

Да уж, не всякий линуксоид может запустить программу для девушки с филфака...

salora

шрифты - говно

Helga87

Проблемы Ubuntu, а не .net

kokoc88

Думаю, что там используются стандартные.

Helga87

Да уж, не всякий линуксоид может запустить программу для девушки с филфака...
зато любой виндузятник, в том числе, девушка с филфака.
Не проблемы .net, что линуксоиды боятся обновиться до нового пакета, не желая, что это потянет за собой обновление половины системы.

Helga87

Да, кстати. Еще я вчера эту прогу без проблем на mac запускал. Вечером, если не забуду, скрин запощу.
Это к вопросу о кроссплатформенности.

freezer

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

Helga87

вот за счет регулярности обновлений, у виндузятника обычно проги запускаются. А в linux еще надо будет заново пакеты ставить.
зы. На работе у меня на ubuntu вполне себе регулярные обновления ставятся и все у меня запускается. То же самое про домашнюю винду — ставятся, вирусов не было последние три года.

tipnote

Эгм. То есть на сайте врали по поводу запуска винформс моно под макось только из-под иксов?

tipnote

Тут фишка не в том. Проблема в том, что запуск небольшой и достаточно простой программки зависит от третьей цифры в версии. Есть, конечно, вероятность того, что это исключение... В общем, возможно я неправ, но стоит сравнивать моно с wine по покрытию перенесенных работающих проектов (много чего запускается, много чего запускается с напильником, много чего не запускается вообще)?

freezer

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

tipnote

Ну как бы вторая цифра обычно подразумевает некоторое изменение функционала. Но вообще, жесть все это, пишите на питоне :D

Helga87

ты хочешь сказать, что там при переходе от 2.4 и 2.5 совсем-совсем не ломается ничего? Или от 2.2 на 2.4? В .net такое было один раз — при переходе от 1.x к 2.x (пришлось поменять несколько мелочей, т.к. был пересмотрен runtime в сторону увеличения надежности и производительности). При всех следующих версиях они уже обеспечивается полная обратная совместимостимость (поправьте меня, если я неправ)
А насчет 2-3 цифры - это не так важно. Важно, что прогресс есть и на последней версии все работает.

freezer

не, это именно что service pack, исправление ошибок. У ms несколько не такой подход к релизам, как в open source-сообществе

nikita270601

Эгм. То есть на сайте врали по поводу запуска винформс моно под макось только из-под иксов?
Откуда такой вывод?
Там же написано "без проблем"; но ведь никаких проблем запустить прогу в X11 под макосью нет!

tipnote

ты хочешь сказать, что там при переходе от 2.4 и 2.5 совсем-совсем не ломается ничего? Или от 2.2 на 2.4?
А насчет 2-3 цифры - это не так важно. Важно, что прогресс есть и на последней версии все работает.
bullshit, sorry :p
Ты сравнил багфиксы и изменения функционала? Номер циферки играет значение, так как косвенно наша ситуация может свидетельствовать о сырости продукта, а следовательно о малопригодности в мейнстриме. А следовательно можно считать, что моно почти не существует вообще.
ЗЫ Еще раз говорю, что это могло быть эдакое исключение, случайно дожившее как минимум до номера 4, но все равно настораживает.

tipnote

Ну, я типа хотел, чтобы мне Ванек сказал, под чем он запускал ее.

nikita270601

Вероятно, под X11, не могут же на сайте врать!

tipnote

Ну, мб я ошибся, или инфа устарела, или еще что. Потому что иначе:
Насколько можно бегло прочитать с сайта моно, они до сих пор не достреливают до версии 2.0. У них периодически проблемы и ограничения с чем-то вроде Win.Forms (уж не это ли хваленое гуи?). Короче, с натяжкой дотнет кроссплатформенный, неа?

Helga87

Ну, я типа хотел, чтобы мне Ванек сказал, под чем он запускал ее.
Минут 15 потратил на то, чтобы найти как сделать в Mac OS скриншот. Оказалось, простейшая комбинация Ctrl+Shift+Command+3 приводит к нужному результату.

Запускал под X-ами. Какие-то встроенные в MacOS

Helga87

Ну, мб я ошибся, или инфа устарела, или еще что.
1. Во многом инфа у них устарела. До фига имеет отношения к 1.2.4, а не 1.2.6 версии. Почему-то код они пишут с большей охотой, чем документашку.
2. Ограничения Windows Forms, это значит, что в целом все работает, но они не готовы заявить, что обязательно на любой системе все будет круто (например, надо стартовать X11 на Mac).
Но вообще, сложилось впечатление, что они просто очень скромно о себе пишут. И да, Тем — надо не читать сайты, надо проверять. Иначе и будет складываться неверное мнение.

tipnote

И да, Тем — надо не читать сайты, надо проверять. Иначе и будет складываться неверное мнение.
Как бы в случае офсайтов это бета-тестированием попахивает :)

Helga87

К сожалению, советская редакция газеты "Правда" в интернете не работает. Поэтому там пишут вся-я-к-кую ерунду.
Т.е. либо тестить, либо не читать совсем.

tipnote

Ты удивишься, но на python.org ерунду особо не пишут. Я за свою практику на двух релизах как-то пока не столкнулся :p
Заметь, плохо документированные модули для меня обычно знак того, что модуль лучше в продакшне не использовать.

nikita270601

Минут 15 потратил на то, чтобы найти как сделать в Mac OS скриншот.
"mac os x screenshot" + I'm feeling lucky.

Helga87

угу, так и сделал. 5 минут на то, чтобы понять, что сам не угадываю, 5 минут на то, чтобы залезть в Google и сконфигурировать пальцы, 5 минут на то, чтобы попытаться найти Paint или другой графический редактор, понять, что проще вставить в Word и переслать на Windows машину.

nikita270601

5 минут на то, чтобы попытаться найти Paint или другой графический редактор
Это зачем? Preview умеет crop не хуже других.

Helga87

Ты удивишься, но на python.org ерунду особо не пишут. Я за свою практику на двух релизах как-то пока не столкнулся :p
Заметь, плохо документированные модули для меня обычно знак того, что модуль лучше в продакшне не использовать.
Ура!

Helga87

Это зачем? Preview умеет crop не хуже других.
не знал, спасибо
Оставить комментарий
Имя или ник:
Комментарий: