LINUX.ORG.RU

[без флейма]Выбор языка программирования (perl, python, ruby, ...)


0

2

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

Чем не нравится перл... Хм, какое-то чувство внутреннего дискомфорта вызывают мои многомегабайтные монстры. Опять же, не понятно будущее перла и сейчас не так много спецов по перлу.

Python. Когда-то начинал изучать но не понравилась ОО-модель, точнее расположение методов в корневых классах, типа того что join является методом строки а не массива. Опять же, сейчас разговаривал со знакомым тех-директором, он сказал что у них трудности с поиском питонистов (они вообще используют питон, пхп и яву в своих проектах). Опять же, сейчас идёт какой-то тяжёлый переход 2.x->3.0.
-- django - очень забавно, но я так и не понял, как (и зачем) мне использовать ORM в рамках МОИХ проектов. У меня всё что может быть вынесено, выносится на уровень базы данных (хранимки и прочее).

Ruby. Плотно не смотрел.

Возможно есть что-то ещё?

В рамках бреда смотрю на javascript (сервер-сайд) и lua.

PHP. Не хочу даже рассматривать.
Java. Не хочу даже рассматривать.

Опять же, хочется чтобы язык был достаточно шустрым а также чтобы он умел нормально работать с СУБД, то есть всякие bind чтобы поддерживались нормально.

Чем занимаюсь:
- пишу сайтики, магазинчики, web-ERP для конкретных бизнесов под заказ, всякие OLAP-образные фиговины.

Хочется выслушать мнение по следующим вопросам:
1. плюсы и минусы от тех кто много работал с данными языками
2. от тех кто нанимал сотрудников
3. перспективы языков.

Просьба не сваливать это всё во флейм.

★★★

Ответ на: комментарий от Lighting

А ты написать хоть слово можешь, кроме названия любимого языка? Сколько строк написано, что и как, быстродействие, прогнозы, перспективы, есть ли соработники или подчинённые пишущие на руби?

vahvarh ★★★ ()

>Java. Не хочу даже рассматривать.

Этому есть какие-то объективные причины помимо личной неприязни?

linuxfan ()

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

mv ★★★★★ ()

он умел нормально работать с СУБД

Delphi же! )

Andru ★★★★ ()
Ответ на: комментарий от mv

Ну да, я понимаю, если указать 300к то даже по эрлангу и хаскелю очередь выстроится. Из трёх человек. И я их всех знаю. Но я говорю о достаточно разумных (для работодателя) ценах, например 60-90.

vahvarh ★★★ ()

щас прийдет mono и расскажет.. не про язык, но про раздел форума.

k0l0b0k ★★ ()

а руби посмотри поплотнее, да. он хоть и тормоз, но приятный.

k0l0b0k ★★ ()
Ответ на: комментарий от linuxfan

>>Java. Не хочу даже рассматривать.

Этому есть какие-то объективные причины помимо личной неприязни?

Опыт работы с j2ee (около года), опыт развёртки больших явовских приложений на разных платформах (linux=>solaris это песня). Кстати, питон linux=>freebsd тоже песня.
Опять же, ява слишком громоздка, слишком требовательна к ресурсам.
Фиг ты найдёшь хостинг «под свой маленький сайтик» для java CMS.
Ну и вообще, я её достаточно наелся. «ImageMagick не на всех платформах работает, давайте возьмём нативную явовскую тулзу чтобы оно всегда работало. Ой, а что, оно картинку 1024x768+ не может отмасштабировать потому что гига памяти не хватает?!»
Ну и есть правило, одна ошибка на сколько там строк кода? В яве количество строк в 2-3-4 раза больше чем в перле/питоне.

vahvarh ★★★ ()

> PHP. Не хочу даже рассматривать.

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

Нанимался и нанимал.

Terrens ()
Ответ на: комментарий от k0l0b0k

> он хоть и тормоз, но приятный.
Вот тормоз мне как раз нельзя. То есть «не медленнее перла»

vahvarh ★★★ ()

groovy/groovy++
все фичи и библиотеки java+фичи динамических языков
+grails для веба

thevery ★★★★ ()

Смотри Руби, похож на Перл только реализован более аккуратно

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от vahvarh

>Вот тормоз мне как раз нельзя. То есть «не медленнее перла»

Не медленнее - только языки со статической типизацией, а после Перла это как обратно в каменный век

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от Terrens

Ты готов, например, на php использовать бизон для разбора MDX (это язык программирования такой, типа SQL но для многомерных кубов) и генерации последовательности SQL-запросов? У меня не только задачи вида «сделать сайт из 4 страниц». Точнее таких задач у меня вообще ни разу не было.

По поводу удобства и документации php - не вижу плюсов по сравнению с perl. Готовые решения - мне не подходят.

vahvarh ★★★ ()

>какое-то чувство внутреннего дискомфорта вызывают мои многомегабайтные монстры

Может стоит озаботиться не сменой языка, а оптимизацией и совершенствованием навыков перла?

Опять же, не понятно будущее перла


Будущее вообще штука непонятная.

kranky ★★★★★ ()
Ответ на: комментарий от DNA_Seq

>>Вот тормоз мне как раз нельзя. То есть «не медленнее перла»

Не медленнее - только языки со статической типизацией, а после Перла это как обратно в каменный век

Я не говорю «быстрее», мне нужно «примерно той же скорости». Просто в вики даже написано что руби «сцуко не быстрый». Но я посмотрю его, раз уж столько человек пишет про него.

vahvarh ★★★ ()
Ответ на: комментарий от vahvarh

Ну они примерно одинаковы. Руби сливает где-то в полтора-два раза на некоторых задачах а на некоторых идут ноздря в ноздрю

DNA_Seq ★★☆☆☆ ()

Python. Потому что он прикольный.

GotF ★★★★★ ()

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

по субъективным отзывам людей, щупавших и руби и питон, руби более human friendly.

VladimirMalyk ★★★★★ ()
Ответ на: комментарий от VladimirMalyk

скорее разные стили написания. Руби как и перл - для художников-одиночек. А питон - это интерпрайз и кодманки.

DNA_Seq ★★☆☆☆ ()

Если нужен обязательно динамически типизированный язык, то Питон. Если нет - то я бы посмотрел на Скалу.

tailgunner ★★★★★ ()
Ответ на: комментарий от vahvarh

Да ты тоже что-то не стараешься объяснить свою немотивированную неприязнь к Java. А похапэ я и сам не люблю...

Lighting ★★★★★ ()

«Talks» и «без флейма» несовместимы, я так считаю.

mono ★★★★★ ()

> Ну да, я понимаю, если указать 300к то даже по эрлангу и хаскелю очередь выстроится. Из трёх человек. И я их всех знаю.

Спасибо, посмеялся.

runtime ★★★ ()

На С в очереди никого нет? Тогда я первый...

Eddy_Em ☆☆☆☆☆ ()

Ну, лисп же!

anonymous ()

Python. "".join куда логичнее, чем [].join, хотя бы потому, что результат и разделитель всегда строки. + не нужно для собственных классов каждый раз писать join. Тех, кто с этим не согласен ждут вечные муки, страшный суд, ад и perl.

Яростно верю в светлое будущее питона. Оно наступит, как только у питона появится полноценный JIT-компилятор. О тяжести перехода 2->3 впервые услышал на ЛОРе.

Snorg ()
Ответ на: комментарий от vahvarh

> Опять же, ява слишком громоздка, слишком требовательна к ресурсам.
Не слишком требовательна, но jre действительно слегка громоздко. Хотя и вы, вероятно, не «Hello World» пишете.

Фиг ты найдёшь хостинг «под свой маленький сайтик» для java CMS.

Можно посмотреть на Google App Engine, чтобы сильно не искать.

Ой, а что, оно картинку 1024x768+ не может отмасштабировать потому что гига памяти не хватает?!"

А почему Java2D не использовали ?

Ну и есть правило, одна ошибка на сколько там строк кода? В яве количество строк в 2-3-4 раза больше чем в перле/питоне.

Странное правило, на строки с одной скобкой «{» оно тоже распространяется?

Если у вас есть субъективные предубеждения против языков/технологий, то не пытайтесь выбирать «объективно».

Crocodille ()
Ответ на: комментарий от Crocodille

>> Ну и есть правило, одна ошибка на сколько там строк кода? В яве количество строк в 2-3-4 раза больше чем в перле/питоне.

>Странное правило, на строки с одной скобкой «{» оно тоже распространяется?

Как видишь, да. Впереди планеты всей язык с квадратными скобками.

yoghurt ★★★★★ ()

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

Бибилиотек тьма, подо все случаи жизни. Кроме джанги есть еще 100500 веб фреймворков. Скорость работы такая же как у перла, красота кода куда выше.

Zubchick ()
Ответ на: комментарий от Snorg

И давно правильная принадлежность метода определяется параметром и возвращаемым значением? Да ты упоролся.

Deleted ()

если по статистики то PHP 5.3 мой личный выбор Apache Tomcat

enep ★★★★ ()
Ответ на: комментарий от vahvarh

Ну и есть правило, одна ошибка на сколько там строк кода? В яве количество строк в 2-3-4 раза больше чем в перле/питоне.

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

Legioner ★★★★★ ()

> знакомым тех-директором, он сказал что у них трудности с поиском питонистов

для сравнения с руби не аргумент, с пыхом и жабой - да.

Опять же, сейчас идёт какой-то тяжёлый переход 2.x->3.0

никто никуда не переходит. 2.х пока мейнстрим и еще долго им будет.

anonymous ()

У perl'а есть одно неоспоримое преимущество — он стабилен и не меняется (perl6 это другой, к тому же не существующий, язык). Ruby мне субъективно нравится больше, хотя тут дело скорее всего в омерзительном двухмерном синтаксисе питона, его кислотном ООП и общей неопрятности. К тому же Ruby очень похож на perl с нормальным ООП. Даже что-то вроде cpan у Ruby имеется. Если Java не нравится только как язык, но не как платформа, то ещё можно посмотреть всякие модные демонические языки поверх JVM. Например тот же Ruby.

KblCb ★★★★★ ()

>Java. Не хочу даже рассматривать.
прости, но ССЗБ.

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

Фиг ты найдёшь хостинг «под свой маленький сайтик» для java CMS.
амазон small instance. Хватает с головой для «маленьких сайтиков»

Ну и вообще, я её достаточно наелся. «ImageMagick не на всех платформах работает, давайте возьмём нативную явовскую тулзу чтобы оно всегда работало. Ой, а что, оно картинку 1024x768+ не может отмасштабировать потому что гига памяти не хватает?!»

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

Ну и есть правило, одна ошибка на сколько там строк кода? В яве количество строк в 2-3-4 раза больше чем в перле/питоне.

это ты сейчас о get/set методах? или о try/catch конструкциях?

1. плюсы и минусы от тех кто много работал с данными языками

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

нормально работать с СУБД

jdbc драйвер + spring-jdbc плюшки или любой orm

Фиг ты найдёшь хостинг «под свой маленький сайтик» для java CMS.

Можно посмотреть на Google App Engine, чтобы сильно не искать.

по-моему, кто-то крупно сливается. От ваших ответов у меня ощущение, что вы не работали вообще ни с чем из того, о чем пишете. GAE мультипоточность научился уже? jsf на нем заработал версии выше 1.1?

Ой, а что, оно картинку 1024x768+ не может отмасштабировать потому что гига памяти не хватает?!"

А почему Java2D не использовали ?

а при чем тут java2d вообще?

Ну и есть правило, одна ошибка на сколько там строк кода? В яве количество строк в 2-3-4 раза больше чем в перле/питоне.

Странное правило, на строки с одной скобкой «{» оно тоже распространяется?


тех сюшников, что в джаве пишут «{» на новой строчке надо УБИВАТ





JFreeM ★★★☆ ()
Ответ на: комментарий от DNA_Seq

Не медленнее - только языки со статической типизацией

Лисп же!

mv ★★★★★ ()

без флейма

Это сарказм?

В принципе все приведенные варианты весьма и весьма хороши. По крайней мере, вы не рассматриваете PHP в качестве возможного варианта, - это уже огромный плюс.

Раз уж я взялся комментировать, опровергну пару ваших утверждений про python (понятно, что у вас эти заблуждения просто по незнанию, ничего страшного):

  • join - метод строки, а не списка/массива/whatever. У этого есть серьезнейшая причина - join работает не только с list, но и с любыми, объектами поддерживающими итерацию (т.е. имеющими метод __iter__). Понятно, что это может быть абсолютно все, что угодно (включая пользовательские типы), а не только list/tuple и т.п. Поэтому привязка идет к единственной, так сказать, постоянной величине - строке (тип basestring).
  • ORM и django - конечно, это ваше личное дело, как общаться с базой. Я, например, в большинстве случаев был бы против бизнес-логики в хранимых процедурах, но, опять же, это всего лишь мое личное мнение. В любом случае, в django есть куча действительно полезного функционала, к ORM отношения никакого не имеющего, например, формы, i18n/l10n, url роутинг, шаблонизатор и т.д. ORM вас никто не заставляет использовать.
  • тяжелый переход на 3.0 - де-факто, при создании нового проекта рекомендуется использовать последнюю версию из 2.х ветки, - на 3.х еще не портированы многие «критические» библиотеки. Забудьте пока про 3.х.

Кстати, кроме django есть достаточное количество достойных web-фреймворков, которые не привязывают вас к какому-либо определенному ORM, например werkzeug.

shylent ()
Ответ на: комментарий от vahvarh

Ну да, я понимаю, если указать 300к то даже по эрлангу и хаскелю очередь выстроится. Из трёх человек. И я их всех знаю.

Работа в тесной компании друзей-профессионалов - что может быть лучше и продуктивней? :)

Но я говорю о достаточно разумных (для работодателя) ценах, например 60-90.

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

mv ★★★★★ ()

CL --- мощный динамический ООП язык с богатыми императивными и функциональными возможностями. Может всё, но не обязательно использовать сразу и везде всю мощь лиспа. В принципе, можно один в один переписать на нём перловые программы, разве что с инфиксной записью и скобочным синтаксисом.

ugoday ★★★★★ ()

Чем не нравится перл... Хм, какое-то чувство внутреннего дискомфорта вызывают мои многомегабайтные монстры. Опять же, не понятно будущее перла и сейчас не так много спецов по перлу.

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

Reaper ★★ ()
Ответ на: комментарий от Reaper

> мало спецов на перле, это имхо плюс, тем ценнее ты сам будешь.
Там всё наоборот. Он наниматель, ему надо много спецов :)

SOmni ★★ ()
Ответ на: комментарий от ugoday

В случае с программированием под веб на мой взгляд богатство языка - это вторично, а первично наличие _уже_ готовой инфраструктуры. Было бы неплохо, если бы кто-то из лисперов развил тему.

Reaper ★★ ()
Ответ на: комментарий от SOmni

Он наниматель, ему надо много спецов :)

За 60-90 $ к в год не верю, что не может найти перл- писателей.

Reaper ★★ ()
Ответ на: комментарий от Reaper

> За 60-90 $ к в год не верю
У меня для тебя плохие новости. 60-90 тыр./месяц. Или у ТС-а для нас хорошие новости?

SOmni ★★ ()
Ответ на: комментарий от SOmni

Ну, для замкадья неплохо, но ТС где-то в арабских странах обитает, если правильно помню, наверно, годовые.

Reaper ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.