|
|
|
Royan |
|
||||
Dreamer Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
А как тебе JScript для ASP? Сейчас он вытеснен C#, но на нем было написано такое количество всего... Я уже не говорю, собственно, про JavaScript хоть текстовых редакторов на нем и не напишешь (RichEdit, который можно использовать с помощью JS не в счет, т.к. сам RichEdit - это компонент) на этом языке в дремучие 98 и 99 года создавались шедевры достойные классиков золотого века русской поэзии. Могу привести примеры, кого следует в этом убедить. -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
||||
|
|||||
Void |
|
|||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
Блин. Я же не сказал, что из-за этого на Ruby нельзя писать большие проекты. И естественно я знаю, что на Perl/Python/PHP/whatever, не требующих явного объявления переменные, написано море кода. Я сказал, что для крупных систем преимущество такого подхода по сравнению с явным объявлением перменных сомнительно.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Pete |
|
||||
Опытный Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 2 Всего: 12 |
Извини, если ты хочешь писать проги, скажем, для вычисления совершенных чисел, то ruby, действительно не оправдан. А вот если надо несколько раз вычислять апосториорную оценку (пришлось мне это делать, только получилось так, что сначала сдал курсач, а сегодня, наконец-то, прогу дописал!!!), то лучше ruby, пожалуй, не найти. Я же писал в первом сообщении, что ruby не для больших проектов, насыщенных и ориентированных прежде всего вычислениями, но работать на нем со сложными объектами, скажем, матрицами — одно удовольствие! Добавлено @ 22:06 Да, еще отпишись, пожалуйста, что ты называешь большим проектом. -------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
||||
|
|||||
Void |
|
||||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
По поводу быстрого скриптинга - согласен, хотя у меня для таких целей работает Python. Но это скорее дело привычки.
Матрицы - не очень-то сложные объекты. Ознакомься как-нибудь на досуге с декларативным языком с поддержкой pattern-matching'а, чтобы понять, что такое настоящее удобство работы со сложными структурами данных. Хотя по сравнению с C++/Java, Ruby несомненно рулит в выразительности кода.
Систему > 100K LOC, к примеру. Я потворюсь еще раз: я не говорю, что необязательное объявление переменных делает крупные проекты на таких языках невозможными - нет. Но оно затрудняет проектирование и тестирование. Мое (и не только мое) мнение: максимум ошибок должен отлавливаться во время компиляции, а не во время выполнения. Отсутствие декларации переменных существенно снижает количество compile-time проверок. Это сообщение отредактировал(а) Void - 14.1.2006, 23:51 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
Pete |
|
|||
Опытный Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 2 Всего: 12 |
Ты имеешь в виду механизм сопоставления с образцом? Тогда я тебя не совсем понимаю: 1) при чем тут структура данных? 2) в ruby этот момент разработан весьма прилично (уступает, разве что, Perl). -------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
|||
|
||||
Void |
|
|||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
pattern-matching не на уровне регулярных выражений, а на уровне любых значений и типов. Сюда же приплюсуем рекурсивные и алгебраические (вариантные) типы.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Pete |
|
|||
Опытный Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 2 Всего: 12 |
Да, зато прога, которая решает произвольную систему линейных уравнений, пишется минут за 20 и занимает примерно столько же строк (с учетом приглашений для ввода). Удобно, когда нет под рукой маткада... Добавлено @ 02:09
Например? -------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
|||
|
||||
Void |
|
|||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
Все ML-оиды (OCaml, SML), Haskell. Интересно, что вернее: где языковой флейм, там Void, или где Void, там языковой флейм? -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Pete |
|
|||
Опытный Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 2 Всего: 12 |
Я бы рад, да времени пока нет...
-------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
|||
|
||||
FunnyFalcon |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 76 Регистрация: 27.3.2006 Репутация: 3 Всего: 7 |
То что на языке с "обязательным объявлением переменных" у вас займет 100К LOC, на Ruby вряд ли превысит 35K LOC, а скорее всего, даже <<20K LOC. Что проще - отладить 100K с объявлением переменных или 20 - 35 K чистой логики, без всякого мало кому нужного мусора? В инете десятки/сотни статей людей, рассказвающих о переходе с Java/C++ на Python - разница в скорости разработки и __отладке__ - не проценты, а разы. И многие описывают именно __крупные__ проекты с LOC > 50K. Ruby - во многих случаях еще удобней (особенно для Web). Пример - RubyOnRails :-) Но все это за счет скорости конеченого продукта. Однако - если трафик вашего не более 1000 кликов в минуту - не все ли равно? Если у вас стоит сервак 2хXeon - думаете он не справиться и с гораздо большей нагрузкой? Когда-то был VisualBasic <5.0 - тоже был интерпретируемый, все плевались, но всем хватало - не странно-ли? Можете сказать: RubyOnRails - это единственное достойный/известный продукт на Ruby. Попробуйте - для своей задачи (веб) он в разы лучше ближайших конкурентов. |
|||
|
||||
Void |
|
|||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
Хотите сказать, оверхед от объявления переменных составляет 200-300%? Некисло На такие заявления на моей памяти не решался ни один апологет динамических языков. Есть немало языков, позволяющих достигать очень высокой выразительности и концентрации логики, обставляя в этом отношении действительно многословные Java и C#, и не теряя статической типобезопасности. RoR пользуется успехом — значит Ruby нашел нишу. Веб-разработкой не занимаюсь, так что судить не могу. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
FunnyFalcon |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 76 Регистрация: 27.3.2006 Репутация: 3 Всего: 7 |
Sorry. Буду признателен, если вы посодействуете знакомству с такими языками. Не сомневаюсь - они есть, но все-таки хотелось бы поподробнее.
|
|||
|
||||
Void |
|
|||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
FunnyFalcon
Из классики: MLоиды, Haskell. Где-то рядом LISP и Erlang. Впрочем, последний все-таки динамически типизирован, хотя является наиболее коммерчески успешным из перечисленных. Из сравнительно новых: Scala, Nemerle. В общем, в динамической типизации нет ничего крамольного, и duck-typing вкупе с рефлексией порой позволяет делать очень вкусные вещи Но при прочих равных я предпочту язык, где максимум ошибок отлавливается на этапе компиляции, а не исключительно покрытием юнит-тестами. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
FunnyFalcon |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 76 Регистрация: 27.3.2006 Репутация: 3 Всего: 7 |
А чем из перечисленного вы (или ваши знакомые) пользовались? И в каких проектах?
Насчет ошибок на стадии компиляции: каких ошибок у вас больше - связанных с типизацией или с логикой? Я не опытный программист. Но те ошибки типизации, что у меня были, больше были связаны с ограничением языка на статическую типизацию, чем с логическими ошибками (Правда это был С++). А логические ошибки и в статически типизированных языках вохможны и компилятором не отлавливаются. Опять таки - я повторяю мысль многих людей - приверженцев Python/Ruby, так что я плагиатор и не лучший из таковых. Но объективные ответы на вопросы я бы хотел услышать. |
|||
|
||||
Cr@$h |
|
|||
Исследователь Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: нет Всего: 41 |
||||
|
||||
Правила форума "Ruby: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |