LINUX.ORG.RU

Помогите выбрать скриптовый ЯП

 , , ,


0

1

На работе я пишу на PHP, использую его по назначению и в последнее время, все чаще мне хочется вещей, которых он не может мне дать без кривых(или ровных) костылей - в основном он не вписывается в одну мою затею связанную с паукописанием. Встал такой нелегкий выбор: Python, Ruby, Perl. Всех щупал, ради саморазвития прочел признанные обществом книги, повествующие об устройстве, удобстве и т.п. Свое предпочтение я отдаю Perl, уж очень мне понравились Lama-book и Camel-book, но в то же время я не хочу снова оказаться в массе из объектного и функционального кода вперемешку. Интересуют именно эти три языка.


Закрой глаза и ткни пальцем наугад.
Тут тебе не дадут абсолютного дельного и едино верного ответа.

Spirit_of_Stallman ★★★
()

Вижуал Бэйсик Профешнл

anonymous
()

все чаще мне хочется вещей, которых он не может мне дать

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

KRoN73 ★★★★★
()

Практика показывает, что для ruby и perl нужны определённые градусы упоротости. Если повезёт — познаешь дзен.

Python попосовей — легче будет команду найти.

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

Так выбери путь и иди по нему! Кстати, у Perl'а есть сотни решений для ООП и всяких ленивостей и прочих ништяков — надо будет ещё из этого выбирать.

helios ★★★★★
()

Свое предпочтение я отдаю Perl, уж очень мне понравились Lama-book и Camel-book

Ну и пиши на Перле.

я не хочу снова оказаться в массе из объектного и функционального кода вперемешку

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

tailgunner ★★★★★
()

Питон и только он.

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

Нужны нормальные потоки. Форки и эмуляция потоков на основе создания нескольких процессов, связанных через разделяемую память(или иначе) - под этим я понимаю значение слова «костыль». Необходимо наличие возможности удобно манипулировать изображениями, возможно я ворчун, но например стандартный подход, который предлагает php-gd2, я считаю убогим. Хочется, но не обязательно, удобной работы с бд, с помощью ORM например.

Seraph
() автор топика
Ответ на: комментарий от warmate

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

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

под этим я понимаю значение слова «костыль»

А что костыльного в форках? o_O

Необходимо наличие возможности удобно манипулировать изображениями

pecl-imagick

Хочется, но не обязательно, удобной работы с бд, с помощью ORM например.

Я уже лет пять как прямые SQL-запросы использую крайне редко. За последние пол-года, если не год, вроде, ни разу вообще прямой SQL не использовал. Только ORM.

KRoN73 ★★★★★
()

Похожая ситуация. Написал на питоне, замучался переносить на другую архитектуру/машины с другими версиями питона, etc., переписал на перле - замучался переносить на Си. Зато теперь даже тупой список целых вывожу на Си. Потому - выбери перл, с него проще куда-нибудь перейти, если функциональщина нужна, так как осилить классы и вообще ООП я не могу пока..

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

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

Seraph
() автор топика

Довольно удобным для достаточно сложных пауков будет Python+Bottle.py+celery. Питон и Руби удобны, но субъективно мне проще работать с Питоном, документация (и модулей тоже) лучше.

Боттл позволит сделать к этому удобный интерфейс. Можно даже за пару дней прикрутить эдакую RIA-панель управления на qooxdoo.

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

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

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

Про интересные вещи говоришь, поковыряю, спасибо.

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

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

Там же, вроде, copy-on-write практикуется. Т.е. память размножается только при модификации. Зато есть куда больший бонус — отсутствие утечек. При закрытии форка вся его память освобождается, сколько бы он там не потерял. А вот память, сожранная нитью и зацепленная за что-нибудь глобальное, так потерянной и останется.

pecl-imagick - интересно, благодарю, пошел пробовать

А ещё более высокий уровень (я им и пользуюсь обычно) — это PEAR Image_Transform. Он позволяет вообще выбирать имеющийся бэкенд, хоть GD, хоть Imagick.

о я интересовался их доступностью в перечисленных языках

Соответственно, PerlMagick или Image::Magick на Perl. Или RMagic на Ruby. Все эти решения схожи. Я потому и отметил, что язык тут играет вторичную роль.

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

Началось... Подробно описывать не буду - не там поставил пробел, в хедер забил /usr/bin/python, написав для второго, и так далее. Учитывая такую строгость, быстрее стало мой маленький код переписать на перле, чем продумывать - «а вдруг на целевой не запустится?». Да и в тот момент как-раз все на третий переходили, а я только учился на втором на убунте, и на третьем - на арче. Короче эта гадость ни там, ни там нормально не работала

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

Перенес код с кучей шаблонов и извращений (включая оконный интерефейс) на питоне2+С++ с линуха на на винду. Мучился конечно, винды то рядом не было нормальной, да и не знал как... делается в три строчки.

Регулярно переношу код на связке питон2-С++ на разные машины. Правда конечно х86, но разные версии линукса, разные версии компайлеров. Основные проблемы с gcc4.7, и с декоративными различиями ImageMagick в разных дистрах. С питоном проблем не помню.

ЧЯНТД?

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

Необходимо наличие возможности удобно манипулировать изображениями

Python Imaging Library - там все это есть.

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

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

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

Учитывая такую строгость

Обычно делаю так, проблем вроде нет:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

http://www.python.org/dev/peps/pep-0263/

Alv, всё так делаешь. Да, винда - штука хитрая, там приходится дописывать пути иначе, но терпимо в последнее время.

Как насчет java/scala? Там все это есть.

Везде всё есть, думаю вопрос в проработанности и скорости, с которой ты освоишь и применишь.

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

Странный подход - цитировать комментарии, отвечая другому человеку. Можете воспевать питон как язык не для новичков, а мне разницы нет, время дороже дебага лишнего отступа. Если бы не это правило для раздолбаев, пополнил бы ряды «чистюль»

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

Отвечать я пытался всем, а так да, глупо вышло.

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

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

KM155TM2
()

Как любитель Ruby, я должен посоветовать Ruby, но в данном случае соглашусь с Spirit_of_Stallman - выбери что-нибудь рандомно. :)
PS: Но существу конечно же голосую за Ruby.

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

О, любитель Руби! Расскажи, с чего начинал и что понравилось в языке? Я заметил кучу похожестей с Питоном, однако документация пугает и хочется с одной стороны не проходить мимо, а с другой - очень подробных и годных доков. Алсо, что в Руби есть похожего на Bottle.py?

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

Кстати говоря - я тоже за ruby и ярый любитель ruby & bash'а.
Но перед остановкой на этом языке, я потратил по месяцу на другие скриптовые языки, дабы понять что из них моё.
Посему согласен с вами, но еще больше настаиваю на инвестицию времени, на этот вопрос, дабы потом не корить себя и иметь свои представления о флагманах, дабы не вестись на бредни фанатиков и местных «специалистов» (которые составляют 80% минимум).

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

однако документация пугает

Видимо вы её не читали. Она превосходная.

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

Алсо, что в Руби есть похожего на Bottle.py?

микрофреймворк? sinatra

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

поисковый робот

Благодарю, пробел в знаниях. У меня есть проект, не робот, но тоже связанный с поиском информации. Ядро на Си, поверх скриптовые «костыли».

drSchur ★★★
()

если задача хорошо покроется такими библиотеками, как: scrapy, PIL etc. - можно питон

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

Я тебя огорчу: use threads в perl работает тоже через пердак и не юзает треды ОС.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от minakov

А мне вот удобнее важные строки левее описывать, а менее важные - вправо уносить

Столь глубокая мысль мне недоступна;-( Почему именно лево/право а не скажем по диагонали? М.б. просто стоит разносить вверх-вниз и повернуть монитор на 90 град? Или голову, заодно профилактика остеохондроза будет...

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

Интересное решение, однако краткий отступ - для важного и долгий - для обыденного мне удобнее и вообще

minakov ★★★★★
()

Свое предпочтение я отдаю Perl

Все правильно.

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

А мне вот удобнее важные строки левее описывать, а менее важные - вправо уносить

Ужасно.

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

Ох, скинь кусок кода посмотреть.

anonymous
()

Для паукописания Perl хорош.

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

Столь глубокая мысль мне недоступна ;-(

Логика человека, у которого не Питоне получается больше ошибок, чем на Перле, трудно доступна простому смертному :) Могу только предположить, что на Java у него программа вообще не будет запускаться, а на Haskell — компьютер сколлпсирует :)

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

«В-в-ваших ид-д-дельных людей надо сбрасывать на вражеские базы. На страх агрессору!»(c)

Давайте minakov-а устроим в госдуму на хаскеле писать?;-)

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