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. перспективы языков.

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

★★★

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

Не. в Дубаи я так и не уехал, как ни звали. Так что я по-прежнему в default city.

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

Там всё есть

так раскройте тему, думаю, будет многим интересно. Как с производительностью у Hunchentoot; что за фреймворки такиe: RESTAS, Weblocks в сравнении с; шо там с mod_deflate, mod_rewrite, как с безопасностью, и т.д.

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

Ну вот видите, сами всё знаете :)

Я не совсем совсем не лиспер. Я могу раскрыть тему по Smalltalk, ибо там тоже всё есть, но не буду, ибо хоть люди и делают на нём сайтики, магазинчики, ERP, OOCL доверяет ему управление перевозками контейнеров, а JPMorgan - управление финансовыми рисками, лично я не буду рекомендовать ТСу Smalltalk, потому что в сфере работы ТСа опыта применения Smalltalk у меня нет.

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

Если нет - то я бы посмотрел на Скалу


А для нее есть бизон? Аффтору бизон надо

Karapuz ★★★★★
()

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

От добра добра не ищут. Может, просто пересмотреть собственный стиль программирования, подходы, методы?..

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

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

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

Как с производительностью у Hunchentoot

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

RESTAS

Его автор, archimag, на лоре переодически бывает. Сайт его --- lisper.ru лучше там и спроси.

шо там с mod_deflate, mod_rewrite,

если мне склероз не изменяет, есть mod_lisp для апача, так что с модулями всё в порядке.

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

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

GAE мультипоточность научился уже? jsf на нем заработал версии выше 1.1?

без многопоточности и jsf «маленький сайтик» сделать никак?

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

сами на джаве только пишете, или иногда и код читаете ?

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

сами на джаве только пишете, или иногда и код читаете ?

Есть официальные гайдлайны от ныне покойного сана, в которых расписано до мелочей как надо писать. И подавляющее большинство проектов пишутся именно в таком стиле, и прекрасно читаются. А вот когда приходится читать меньшинство, то действительно хочется УБИВАТ.

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

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

сами на джаве только пишете, или иногда и код читаете ?

Есть четкий Java Code Convention на этот счет. Фигурная скобка не должна начинать строку.

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

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

Ага, каждый героинщик, когда-то в своей жизни сказал эту фразу

wlan ★★
()

Ruby

очень рекомендую детально изучить этот язык.

Мне он нравится очень хорошей объектной моделью(тут питон сливает), но не обязательно писать в ОО стиле; полной открытостью классов(можно в класс добавить любой метод, как офигенно писать 2.day.ago !); нормальными замыканиями(а не однострочными как в Питоне) и более-менее хорошим набором библиотек.

Вообще Руби создавался для того чтобы ты получал удовольствие от написания программы, выражается это в том, что на борьбу с ограничениями языка уходит минимум времени(я бы даже сказал что язык никак не ограничивает)

Из проблем могу отметить не очень большое кол-во библиотек не связанных с веб-разработкой(но дело идет на поправку).

Также присутсвует некоторые проблемы с версионностью: есть 2 основные версии 1.8.7 - старая, тормозная, но стабильная и 1.9.* - новая, быстрая(на уровне с Питоном), стабильная для продакшна(ну кто смелый есс-но), но в язык внесены изменения поэтому некоторые библиотеки могут не работать(хотя сегодня это уже редкость, все тестируется на совместимость с 1.8.7 и 1.9.2)

По твоим задачам

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

Рельсы подойдут идеально.

В качестве бонуса – разработкой JRuby занимается EngineYard(солидная фирма), он уже стабилен, поэтому если надо работать в Java среде, то все тоже ок.

Вобщем, очень рекомендую изучить. По началу, конечно, ничерта не будет понятно из-за «магии» руби, которая, на самом деле является всего-лишь отличным метапрограммированием, но потом все немного просветлеет и все станет ясно. Через месяца 2 после работы с руби от всего остального вообще будешь плеваться.

Если будут более конктерные вопросы - задавай.

anonymous
()

Ruby = Perl + Smalltalk!

Да, по теме. Рекомендую Ruby как посланника Smalltalk на Земле.

yoghurt ★★★★★
()

— Не имей Амати, а умей лабати!

Кроме того, есть целый пласт знаний: ООП, паттерны, архитектурные

приемы, принципы проектирования, http://rsdn.ru/forum/web/3469500.1.aspx

Karapuz ★★★★★
()

C++
- быстрота выполнения кода, типа -march=native -O3 и всё летает
- если проект большой, убьешься дебажить
- есть полтора тулкита: Wt и CppCMS

Python
- кроме Django есть еще несколько фреймворков (cherrypy, pylons, turbogears), можно даже сделать своего франкенштейна из всяких там paste, pypgsql, genshi, jinja, mako, cheetah, kid итп
- что-то критичное к скорости выполнения можно вынести отдельно и переписать на сях или плюсах

какбы увлекательные таблички

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

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

Дык, дело же не в скорости самого sbcl, про него известно, что с производительностю всё в порядке. Интересует именно лисповый веб-сервер, хочется узнать относительное сравнение с чем-нибудь для ориентации. Где он вообще находится, рядом с апачем, нгинксом или каким-нибудь тормозным вебриком...

если мне склероз не изменяет, есть mod_lisp для апача, так что с модулями всё в порядке.

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

зы кастую Архимага в тред.

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

> кастую Архимага в тред.

Почитай http://restas.lisper.ru - дока на RESTAS на русском языке. По сравнению с Django или RoR - более мощный механизм диспетчерезации и получше с модульностью (хотя насчёт модульности ИМХО, ибо детально в RoR и Django это не смотрел, не осилил).

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

> Самый быстрый HTTP сервер на Лиспе

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

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

> Есть официальные гайдлайны от ныне покойного сана, в которых расписано до мелочей как надо писать. И подавляющее большинство проектов пишутся именно в таком стиле, и прекрасно читаются. А вот когда приходится читать меньшинство, то действительно хочется УБИВАТ.

Это простая рекомендация, которая не является жестким требованием. Как правило у каждого проекта есть собственный coding style, который может основываться (а может и не) на офциальном Code Conventions.
imho код читабельнее, когда { стоит на отдельной строке. Раньше нравился официальный стиль, потом прошло.

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

> somePeopleJustLikeSingleStyleAcrossAllSources

Глупо предъявлять такие требования к коду разных проектов

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

> imho код читабельнее, когда { стоит на отдельной строке. Раньше нравился официальный стиль, потом прошло.

C# эволюционировал подобным образом, о чем приходится сожалеть

dave ★★★★★
()
Ответ на: Ruby от anonymous

>на борьбу с ограничениями языка уходит минимум времени(я бы даже сказал что язык никак не ограничивает)

А это хорошо, что не ограничивает? Вместо решения прикладной задачи (на которую требуется своё время) одним способом тратить время на выбор из 10000 возможных вариантов кодирования? И как потом чужой код разбирать? Где брать талантов-програмеров, способных разобраться в хитропопых конструкциях, написанных уволившимся любителем неограниченного языка?

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

>Есть официальные гайдлайны от ныне покойного сана, в которых расписано до мелочей как надо писать.

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

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

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

И забудь о нормальном использовании VCS

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

> Ну так наверно подразумевается что в VCS оно уже попадает pretty-print-нутое подобной программой :)

И как делать diff рабочей копии? И какой толк в том, что «каждый как хочешь», если из репозитория всё равно приходит преобразованное?

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

Вообще-то со своими программами работает только 1 человек всё то время, когда он отвечает за заданную ему работу. У него на компе рабочие файлы храняться в его стиле, а там, куда сдаётся, хранится преобразованное «как положено». Лично мне абсолютно не надо, чтобы в мои программы лазило ещё 100 других человек и вносили туда свои изменения. И им такое тоже не надо.

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

> У perl'а есть одно неоспоримое преимущество — он стабилен и не меняется

Угу, просто Перл - это окаменевшее говно мамонта. Потому и не меняется. Это с одной стороны удобно, да. А с другой очень плохо, потому что любителей мёртвых барочных языков не очень то много, а те что есть - все сплошь неадекваты с завышенным ЧСВ.

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

Например

                                   +----------------------+             
+======================+           |                      |           +=====+
|                      |------.    | Project coding style |---------->|     |
| My local copy        |      |    | pretty printer       |           | VCS |
| with my coding style |      |    |                      |       ,---|     |
|                      |<-.   |    +----------------------+       |   +=====+
+======================+  |   |           ^                       |
                          |   |           |                       |
                          |   |        +-----+                    |
                          |   `------->|     |                    |
                          |            | AST |                    |
                          |            |     |<-------------------'
                          |            +-----+
                          |               |
                          |               V
                          |          +-----------------+
                          |          |                 |
                          `----------| My coding style |
                                     | pretty printer  |
                                     |                 |
                                     +-----------------+

Правда оно содомия, но это ведь так интересно :)

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

> Знакомые рубисты просто прыгают и кричат от восторга

когда речь заходит о рельсах.


Да это вообще характерная черта пользователей RoR, более религиозного технического сообщества я в жизни не видел.

archimag ★★★
()
Ответ на: Например от yoghurt

> Правда оно содомия,

Ты ведь и сам всё понимаешь...

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

То есть лиспом среди лисперов никто не восторгается? У суровых мужчин-лисперов при написании программ и тень любого чувства не проскользнёт по лицам?

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

> То есть лиспом среди лисперов никто не восторгается?

Ты не понял. У лисперов, как известно, нет сообщества. Они разобщены и каждый сам по себе. А RoR это натуральная секта.

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

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

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

А что ты хочешь поменять в перле?

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

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

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

>А это хорошо, что не ограничивает?

для того кто знает что делает - хорошо.

Вот приведу тебе пример: сейчас занимаюсь разработкой под iPhone:Cocoa Touch _ОЧЕНЬ_ удобный и продуманный фреймворк, писать одно удовольствие. Но в самом языке Objective-C есть одна проблема: нет автобоксинга примитивных Сишных типов, т.е. если напишешь

NSArray *array = [NSArray arrayWithObject:10];

программа упадет, надо самому вручную

NSArray *array = [NSArray arrayWithObject:[NSNumber numberWithInt:10]];

что немного задалбывает.

Вместо решения прикладной задачи (на которую требуется своё время) одним способом тратить время на выбор из 10000 возможных вариантов кодирования? И как потом чужой код разбирать?

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

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

ну так это не проблема Руби, это проблема ревью кода в конкретной организации.

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

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

Ну это ещё можно было понять 4 года назад, но по нынешним временам RoR довольно таки уныл. К тому же ТС не хочет ORM, а без орма особого смысла в этой монстровине нет. Уж лучше тогда Sinatra использовать или любой из тысячи питоньих микро-фреймворков по вкусу. Языковые различия руби и питона - не стоящая внимания мелочь. Только генетические блондинки могут часами копья ломать, выясняя у кого лямбда красивее. Главное - инфраструктура, а тут руби сливает пока. Особенно в области event-driven, здесь даже перл поинтереснее.

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