Чи все ще Perl є корисною, життєздатною мовою? [зачинено]


77

Я знаю, що це, можливо, просили і раніше, але тут нічого не йде ...

Чи все-таки Perl є чимось, що вважалося б корисним? Якби хтось був новим програмістом (або абсолютно новим у програмуванні, або лише за кілька місяців / років досвіду), чи може Perl щось вважати вартим?

Чи все ще Perl використовується з частотою? Він все ще популярний?

Або Perl вимирає порівняно з такими мовами, як Python, Ruby, PHP, ASP.NET тощо?

В основному це зводиться до цього:

  • Він все ще використовується / все ще використовується часто? Якщо так, це вмирає? Якщо ні, чи це повернеться?
  • Це щось, чого варто було б вивчити?
  • Як вона порівнює попит на такі мови як Python як за популярністю, так і за зручністю / життєздатністю? Чи можуть такі мови, як Python чи Ruby, вважатись заміною Perl?

Крім того, чи справді нові версії Perl принесуть значне вдосконалення спільноті Perl і, можливо, повернуть Perl до центральної сцени порівняно з іншими мовами?

Редагувати:

Гаразд, я думаю, що тут є краще, переформульоване питання:

Перл все ще зростає, чи «вмирає»? Це все-таки мова, яку варто вивчити та використовувати? Які проекти насправді "світять" порівняно з іншими мовами? Що робить мову вибору Perl? По суті: чи Perl стає застарілим порівняно з іншими мовами, і якщо так, чи очікуєте ви, що це зміниться чи продовжить?

І дякую всім, хто відповів поки що, дискусія була справді цікава!


12
Не втрачайте перспективи, згідно з TIOBE, вона все ще в першій десятці, випереджаючи Ruby і навіть JavaScript.
Даніель

Відповіді:


60

Перш за все, завжди краще розібратись .

Підприємства говорять про Perl 5, коли розмовляють з Perl, але на далекій землі, поза глибоко замислим островом , плем'я дизайнерів за комітетом все ще готує здоровенну плиту Perl 6 (і вона майже готова, з двигуном, написаним на Хаскелл і живиться від сліз богів )

Добре, що сказано, для чого сьогодні використовується Perl 5 ?

  • застарілі веб-системи / внутрішньомережеві веб-сайти - деякі просто не загинуть

  • інтелектуальний аналіз даних / статистичний аналіз - Perl - движок регулярних виразів, навіть якщо трохи застаріли , ( PCRE, від бібліотеки центрифугировали, вершини його в будь-якому possibile чином , і це за замовчуванням PHPдвигуна) по - , як і раніше добре для простого аналізу

  • Адміністрація системи UNIX - Perl завжди повинен встановлюватися в UNIX.
    Ви можете розраховувати на те, що він буде доступний навіть на Mac OS X.

  • мережеве прототипування - багато експертів з основних мереж дізналися Perl, коли це було все люто; і вони все ще роблять свої докази концепції .

  • безпека - багатьом експертам з безпеки теж потрібно швидко прототипувати . (і швидкі автоматизовані виправлення) Perl може, і може, покрити це.

Велика колекція CPAN дуже зручна при роботі з прототипами.
(Батареї можуть бути не включені, але вони все ще знаходяться там, на полиці )

Однак пам’ятайте про недоліки :

  • Підтримка об'єктів у Perl важко затягує , ви благословляєте посилання та недобросовісно бачите імена предметів, а потім дивуєтесь, чому ви взяли на себе всі проблеми в першу чергу.
  • Читання чужих Perl - це більше, ніж ремесло, це наука , і болісне .
  • Perl вишуканий, він змушує думати вишукано, він змушує себе почувати себе витонченим, ти стаєш рок-програмістом . А тепер подумайте, як встати, і поїхати працювати в офіс, повний рок-зірок : це "човен, який важко гойдає" . Очікуйте диких коливань.

19
@WorldEngineer погодився, але найгірше в тому, що приїжджаючи з perl, Рубі зовсім не відчуває себе чудовим : він просто відчуває себе занедбаною, неефективною, версією perl.
ZJR

12
Я бачу лише один недолік. Особисто мені подобається благословляти свої посилання, але для тих, хто цього не робить, є Moose (на CPAN), що є достатньо хорошою об'єктною системою, що інші мови копіюють її. І, хоча я люблю витонченість, я не зустрічав багатьох самоокутаних рок-зірок у світі Perl. У спільноті Perl набагато серйозніші, дисципліновані розробники (яким, як правило, подобається розгойдуватися у вільний час), ніж є рок-зірки. (Я прямо заперечую, що буду програмістом на рок-зірці, і поки жінки не почнуть кидати труси на мене, поки я пишу код.)
Дейв Шероман

3
@johannes все ще має справу з Законом Ван "Whenever you find a python executable preinstalled, it's the wrong version""sometimes the right version is available, but it has the wrong name"
Россума

2
Perl також все ще досить великий у просторі біоінформатики.
дієтабудда

3
+1 для адміністрування системи. Я ніколи не бачив ОС на основі Unix, не включаючи perl. Я навіть бачив це в деяких вбудованих ОС Linux, які використовували Busybox для своїх користувачів
Earlz

23

На мою думку, після того, як знову працювати з Perl після декількох років, майже не використовуючи його, це краще, ніж будь-коли. Perl 5 має багато дивовижних в CPAN, навіть OO можна зробити прямо зараз. (Подивіться на Modern Perl )

Perl 5 далеко не мертвий. Просто подивіться на деякі веб-сайти Perl та CPAN, і на горизонті з’являється зовсім нова мова - Perl 6.

В Інтернеті є багато ресурсів, блогів та презентацій про те, чому це не погано і чому у нього погана репутація, якої він не заслуговує - просто подивіться на них, щоб зрозуміти.


7
На мою думку, CPAN - це чудово, якщо вам потрібне колесо будь-якої форми, але менш чудове, якщо вам потрібна фабрика автомобілів.

@ ThorbjørnRavnAndersen CPAN - це чудово, якщо вам потрібне колесо будь-якої форми. Проблема в тому, що shape($wheel) == 'round' ? available_in_cpan($wheel) : false;це не дійсний фільтр.
Джейсон Льюїс

Тільки тому, що ОО існує в Perl, не означає, що це насправді добре.
kirbyfan64sos

22

Головне, що Perl все ще має, це CPAN - так багато попередньо написаних модулів, що дуже просто знайти щось необхідне.

Це сказало, що я б не навчився Perl. Perl - це чудова мова для людей, які її вже знають (як і я), але здається, що Python є (з моєї точки зору мого аутсайдера) кращою мовою для того, щоб робити такі швидкі та брудні матеріали для розбору файлів та тексту, якими раніше користувався Perl " перехід на "мову для.


І чи вважаєте ви, що це дає перевагу щодо інших мов? Або це просто зрівняє його з іншими мовами. Наприклад, здається, що .NET Framework також переповнений різними корисними методами та класами.
Боб

6
@Paul Tomblin - Це досить грубий спосіб. "Головне, у Perl все ще є foing для цього ..." <- Головне, що C / C ++ мають на них, - це те, що в них все ще написано багато програмного забезпечення. Крім того, вони сміття.
Корінь

Домовились з Ідігасом, оскільки ви можете сказати те саме про Яву, яка має багато пакетів ...
Ізката

1
Питання не було "Чи C ++ чи Java - це хороша мова". Питання полягало у тому, чи все ще Perl життєздатний. І є дві причини, чому я все ще пишу свої веб-додатки в Perl: CPAN і у мене є тонна коду, про яку я вже написав.
Пол Томблін

7
Якби я починав зараз, я, мабуть, використовував би Python. Але я використовую Perl, тому що мені добре в Perl.
Пол Томблін

19

Коли я кілька років тому вирішив вивчити Perl як свою першу мову, було багато чинників, які керували моїм рішенням:

  • чи багато хорошого довідкового матеріалу про мову?
  • чи можу я легко знайти допомогу у своїх питаннях?
  • чи є мова в активному використанні великим різноманітним населенням?
  • чи є активні проекти, які допоможуть мені досягти моїх цілей?

Для мене відповідь - так. Я графічний дизайнер. Я навчився HTML і CSS років тому, але мені потрібно було покращити свої навички після того, як клієнти захотіли більше від своїх веб-сайтів. Я використовував різні рамки PHP, які дали мені помилку, щоб дійсно навчитися програмувати. Я провів багато досліджень і знайшов добре підтримувані проекти, як «Шаблон інструментарію», а також нові, такі як Perl Dancer та Mojolicious. Документація, що постачається разом з Perl, була дуже корисною, як і бібліотека публікацій.

Я знайшов списки пошти Perl досить привітними для початківців та активних. На PerlMonks люди з усього світу приходять із запитаннями та відповідями для широкого спектру застосувань. Є кілька активних сайтів новин Perl, блогів та потоків. Ці ресурси мене багато чому навчили Perl та програмування.

Звичайно, це мій досвід. Я не знаю точно, скільки людей входять на ці сайти, підписуються на списки пошти або створюють свої веб-додатки, наприклад, використовуючи Perl. Я також не можу коментувати, наскільки краще чи гірше було б моє враження, якби я обрав іншу мову для початку. Я не сумніваюся, що я міг знайти багато однакових позитивних аспектів у спільнотах інших мов. Можу сказати, що я все ще задоволений вибором, який я зробив.


Я вивчив Perl як свою першу мову в 1996 році, тому що я просто перейшов на Linux з Windows для моєї основної ОС. Perl ніколи не був чудовою веб-мовою (хоча PHP - це чиста перегонка всього зла, який Perl може запропонувати), але він фантастичний як заміна для bash-скриптів. Проблема виникає, коли люди намагаються зробити вигляд, що є така річ, як срібна куля.
Джейсон Льюїс

16

Популярність мови має дуже мало спільного з її життєздатністю або зручністю використання. Perl - це все ще дуже зручна мова. Його репутація, заслужена чи інакше, як недоброзичлива до новачків, врешті-решт означала, що ніхто новий не дізнається цього, якщо вони зможуть допомогти. Єдиною причиною того, що я більше не користуюся ним, є те, що більше ніхто, кого я знаю, не використовує.


5
Тож чи не твердження "Єдиною причиною того, що я більше не користуюся ним, є те, що ніхто більше, кого я знаю, не використовує більше", що свідчить про те, що популярність, можливо, має щось спільне як з його життєздатністю, так і з зручністю використання? У всякому разі, це не сенс мого питання, що я дійсно хочу знати, чи Perl все ще корисний? Коли ви обираєте її на інших мовах (як, наприклад, коли вона дійсно сяє)?
Боб

1
Мови існують як засіб висловлення інших людей, кажучи, що наскільки популярною є мова до цінності, яку вона представляє, на мій погляд, необґрунтовано.
помилки

4
Це дуже орієнтоване на навколишнє середовище ... Якщо ви * nix sysadmin, ваш вибір для виконання загальних завдань зводиться до Perl проти sed + awk + grep + bash ... і Perl, як правило, простіше, ніж запам’ятати 4 синтаксиси для одноразовий сценарій.
Джейсон Льюїс

12

Для запису я програмував в Perl 5 близько 15 років, тому я трохи упереджений. Сказавши це, мені дуже подобається Perl. Не слухайте найсайєрів і не думайте, що його вік якимось чином є показником його живої полиці. Найкращий спосіб подивитися на Perl - це побачити його порівняно з іншими мовами:

  • PHP - PHP - досить гарна мова веб-програмування; не зрозумій мене неправильно Але це лише мова веб-програмування. Навіть веб-додаткам потрібні чіткі роботи, щоб очистити процеси, і вам доведеться робити якісь дивні речі, щоб це відбулося. Не забувайте писати швидкий сценарій для адміністратора UNIX або аналізувати текстовий файл. Крім того, у PHP немає CPAN.

  • Ruby - Мова занадто нова і "сценарій малюк" на мої смаки. Єдине, що я чую про Рубі - це Ruby on Rails. У Perl є Catalyst і Dancer (як рамки MVC), які є чортовими прекрасними MVC, але це не наріжний камінь мови. Ви не збираєтесь знайти «Рубін» як вимогу в пропозиціях про роботу найближчим часом (якщо і коли-небудь). Крім того, у Ruby немає CPAN.

  • Пітон - За словами Ларрі Уолла, Python - це просто зміїна олія. Python піклується про пробіли, а остання мова, яку я використовував, щоб піклуватися про пробіл, була ОСНОВНОЮ. Крім того, як і BASIC, він по суті був розроблений як зручна мова для початківців. Нарешті, тут немає жодного CPAN.

  • Java - Java - це проблема дочірньої мови. Концепція полягала в тому, щоб мати цю віртуальну машину, яка працює на будь-якій платформі, але через величезну популярність мови в курсах коледжів, ви бачите додатки Java скрізь, де цього не повинно бути. Наприклад, веб-додатки на базі сервера не повинні існувати. Це єдиний сервер із специфікаціями, які вони визначають, і він загортається в окремий VM з обмеженим слідом пам’яті. Ява роздута, і у них немає CPAN.

  • C # - Насправді я вже зовсім небагато використовую цю мову, і, здається, я склав з нею стосунки кохання / ненависті. Вміти перевантажувати методи з різними параметрами - це класно і весело. Але, якщо ви хочете мову, яка сучить ваш кожен рядок коду про кастинг типів , тоді C # призначений для вас. Боже мій, він хоче, щоб ти став явний кастинг ВСЕ! Зробити заняття весело, але ви раптом зрозумієте, що витрачаєте більше часу на заняття, щоб зробити прокляту мову просто РОБОЧИМ, ніж насправді писати реальний код.

    Крім того, у C # немає ... гаразд, у ньому є .NET, який справді хороший та обширний. Однак мені все ж подобається CPAN, тому що ви все ще можете написати власні модулі та поскаржитися на автора про помилку чи недолік дизайну. І всі вони безкоштовні. Крім того, Perl в майбутньому працює над Perl.NET, тому ми можемо розробляти додатки для Windows задовго.

Perl - чудова мова, яка має:

  • Регулярні вирази - якщо Perl може зробити добре, це маніпуляція текстом. Так, у багатьох мов є регулярні вирази, але Perl проклятий майже винайшов їх, і є причина, чому grep має режим "Perl Regular Expression", або чому Oracle має розділ "Розширення під впливом Perl у регулярних виразах Oracle". Він вбудований і не вимагає ніяких модулів.

  • Гнучкість - у вас є три основні типи змінних: Скаляри, Масиви та Хеші. Це воно. Це все, що вам потрібно. У вас немає інта, байта, рядка чи будь-якого з цього лайна. Perl рахує це просто чудово. І ви можете використовувати посилання на все, що хочете, не побоюючись витоку пам'яті або призвести до збою всього ПК. Мова просто працює.

  • Переносність - Perl чудово працює в Інтернеті. Він чудово працює в UNIX. Він навіть досить добре працює в Windows. Це не голубині отвори на одній функції. Це джек-оф-трендс, але також майстер (в основному) всього.

  • З невеликим кодом легко зробити багато - надайте мені пустий файл 1 К і я можу записувати всі види речей із цього простору. Навіть один-лайнер Perl чудово додати до команди командного рядка.

  • CPAN - Я не можу підкреслити, як добре знайти майже все, що вам потрібно для чого-небудь. Що таке "що-небудь"? Ну, а як щодо модулів DB для кожної бази даних чи речі, яку ви могли собі уявити, починаючи від Oracle до iPod до CSV до Adabas до Yaswi? Як щодо кількох повнофункціональних веб-серверів? Як щодо програми зчитування файлів Excel або модуля SNMP або модуля, який читає коментарі до рядків налагодження або модулів, які допомагають швидше програмувати? Проект, який я зараз роблю, - це створення динамічного генератора карт Terraria, доповнення від існуючого модуля під назвою Ігри :: RolePlay :: MapGen. .NET ніколи не матиме нічого подібного.

    Плюс це встановити будь-який модуль через CPAN. Отримайте його від Debian. Встановіть його безпосередньо з CPAN. Це робить настільки ж хорошу роботу, як сприйняття у вирішенні залежності. У мене немає проблем сказати моєму sysadmin встановити X модуль з CPAN, оскільки це просто проста однолінійна команда.

Так, у нього є свої недоліки, і так, я упереджено ставлюсь до цього, але ви, мабуть, вже занадто багато разів чули негативи. Вони не переважують позитивів, не дальньою пострілом.


14
-1 в основному за те, щоб не визнати, що інші мови мають такі ж інструменти, як не краще, ніж CPAN. Maven Central для Java, наприклад? У ньому більше артефактів, ніж у CPAN, і це 0-вкладиш для встановлення артефактів Maven, оскільки вони автоматично ідентифікуються за допомогою аналізу залежності моделі об'єкта проекту. Також я менш досвідчений з Ruby Gems, але я вважаю, що вони приблизно еквівалентні CPAN.
mikera

8
PHP має PEAR. І це не лише мова веб-програмування.
MattBianco

25
Я б не сказав, що ти трохи упереджений. Ви явно упереджені. Я не можу повірити, що ви можете злегка піднести Python головним чином тому, що він має значну пробіл і тому, що Ларрі (звичайно, тут не об'єктивне джерело) використовував вираз зміїної олії. А пропозицій про роботу для Рубі взагалі немає? Коли ви востаннє бачили ринок праці? Принаймні докладіть певних зусиль, намагаючись встановити повноваження Перла.
Мухаммед Алкароурі

6
-1 для чітко упередженої та невивченої точки зору щодо інших мов. Я згоден, що Python - це зміїна олія, але Ruby == "script kiddie" - це абсурд. Я жодного разу не бачив спроби вторгнення на основі Ruby на жодному з серверів, які підтримую. Це переважно Python. PHP - прийнятна мова програмування в будь-якому сенсі? Шенанігани. Ваші коментарі щодо C # демонструють приголомшливу наївність щодо набору тексту та / або орієнтації на об'єкт. Дотримуйся Перла, друже. Серйозно, я завжди буду любити Perl, тому що це була моя перша "справжня" мова програмування і прекрасна для завдань систематизму, але ця відповідь є гіршою, ніж поганою.
Джейсон Льюїс

8
+1 За те, що я маю на увазі будь-яку мову, яку я коли-небудь любив (або ненавиджу) - крім Perl, звичайно. :-)
jpaugh

12

Продуктивність є однією з головних причин, щоб вибрати вибір perl. У порівнянні з Python, Ruby або будь-якою із мов сценаріїв, заснованих на JVM, його блискавка швидко.

Ось чому його ніколи не замінювали в просторі обміну даними, а всі інші (халявні) мови повільніше ставляться до обробки великих обсягів даних.


6
Чи можете ви надати підтримку / орієнтири для цього твердження? Мені здається, останні останні показники, які я бачив для Perl vs. Ruby / Python, віддавали перевагу останньому, особливо. при включенні альтернативних реалізацій останнього.
Джейсон Льюїс

2
Будь-які зауваження щодо продуктивності повинні бути узагальненими, якщо не цитуються конкретні випуски та середовища. Багато тамтешніх позначок - hentenaar.com/serendipity/index.php?/archives/… onlyjob.blogspot.com/2011/03/… є досить типовими. Ви маєте рацію, що останні версії ruby ​​досить швидкі, але Perl має регулярні випуски "підвищення продуктивності", тому не повинно виникати проблем з нею. LUA б'є все.
Джеймс Андерсон

Луа досить палає.
Джейсон Льюїс

12

Перл має своє місце. Його "погана репутація", як правило, пояснюється тим, що вона дає вам велику гнучкість робити речі, які дійсно слід робити за допомогою іншого інструменту.

Якщо ви задаєте собі питання "Що я намагаюся досягти? Чи є відповідні інструменти для цього?" то ви частина шляху туди.

Якщо ви пишете швидкий сценарій, то використання мови сценаріїв має сенс. Якщо ви хочете створити складну програму, ви можете "написати" її в Perl, але ви, мабуть, не повинні.

Однак, оскільки ваше запитання стосується новітнього програміста, я можу запропонувати покинути Перла поки що в спокої. Просто тому, що ви навчитеся менше шкідливих звичок з менш гнучкої мови.


3
Добре, але Python - це цілком життєздатний варіант для створення швидкого сценарію, але ви також можете розтягнути його для створення великих програм. Це ж не правда для Perl? Це робить Python кращим за Perl?
Боб

@Bob: Я думаю, що це здебільшого те, що ти звик писати, і твій смак. Іноді також є якась зручна бібліотека Perl, якої у вас немає в python, і навпаки.
dagnelies

1
@Bob: Я б запропонував йому спершу спробувати python, це більш недоброзичливо. Тоді я б сказав йому вибрати зовсім іншу мову як другу мову, як «Схема».
dagnelies

1
@Bob: вся рамка .NET доступна лише в Windows. У просторі Unix / Linux Perl - це чудова мова для заміни скриптів оболонок, системного адміністрування та будь-чого, що передбачає багато обробки тексту, а не багато іншого. Це робиться безпосередньо, для чого (востаннє я подивився) Python потребував трохи структури. Це, як правило, робить Perl гіршою загальною мовою програмування, але краще для її більш спеціалізованих застосувань.
Девід Торнлі

1
@Bob Власне, це цікавий момент. Perl дуже зручно, якщо у вас є сценарій оболонки, який обмежує межі bash. Perl вміщує його досить легко, оскільки ви можете просто поставити задній план навколо більшості команд, і він все одно працюватиме.
Стівен Гросс

12

Мене приваблював Python своїм макетом - структура блоку - це те, що ти бачиш, те, що ти отримуєш - і не розумію, чому є люди, яких цим відклали. Я думаю, це було і є гарною ідеєю.

Але я повернувся до Перла. Це просто здається краще продуманим як практичний інструмент. У теорії інформатики Пітон і Рубі "кращі". Але я працюю в реальному світі.

Рубі та Пітон є більш модними серед дітей, котрі виходять із коледжу. Більшість програмістів, які перебувають у Facebook, дотримуватимуться сучасної моди та йтимуть із Ruby чи Python. Оригінальна публікація ілюструє це: вона пов'язує "Чи варто" з "Чи все ще популярна?"

Мені ні відомо, ні байдуже, чи Perl "популярний" у світі Facebook. Це, мабуть, найпоширеніша сценарна мова серед людей, які багато чого досягають, а це зовсім інша річ. Деякі з коментаторів, які думають, що улюблена мова має порівнянний з CPAN ресурс, не мають уявлення про те, наскільки широкий і глибокий CPAN.


5
Значний пробіл - жахлива ідея. Завжди був, завжди буде. Якщо говорити, хоча я використовую Ruby де завгодно, це має сенс, у мене все ще є кілька сценаріїв Perl для завдань sysadmin, які я не мав причин переписувати в Ruby. Чому? Вони працюють чудово, і вони в солодкому місці Перла. Навіщо створювати більше роботи?
Джейсон Льюїс

1
Примушуючи людей до правильного відступу - це гарна ідея незалежно від мови. Кращі мови (як Python) просто застосовують більше сили.
Брендан

10

Perl - це мова для написання одноразових інструментів. Існують різні інші програми, де Perl є більш-менш стійким і корисним, але якщо вам не потрібна команда оболонки, щоб зробити дивну річ, якщо вам потрібна заглушка, щоб захопити деякі дані з непарного сокета, якщо у вас є файл журналу або базу даних та потрібно витягнути деякий вміст у спосіб, який знаходиться поза межами досяжності SQL, якщо вам потрібно витягнути пару зображень із сервера, або якщо всі шаблони веб-сторінок містять помилки одного типу і хочете виправити їх все - прошивання 10-хвилинний сценарій Perl - це шлях.

Написати те саме в Shell, можливо, можливо, але через дивні застереження синтаксису оболонки це займе більше часу і може бути набагато складніше. Написання цього будь-якою "професійною" мовою, як C ++, C #, Java тощо, займе приблизно годину порівняно. Написання цього на конкуруючих мовах сценаріїв, таких як Python, Ruby або PHP, є життєздатною альтернативою і, ймовірно, буде потрібно до 20% більше часу для написання.

Так, програми іншими мовами будуть більш ретельними та легшими для читання. Але якщо вам потрібне рішення ЗАРАЗ, Perl - це шлях.


8

Перевірте «останні завантажені файли на CPAN» - стор . Щодня завантажується 20 нових або оновлених модулів. Я думаю, що середня кількість щоденних завантажень повільно, але неухильно зростає. Чи є ця діяльність ознакою мови, яка вмирає? Немає!

Завжди мене вражає те, як протягом багатьох років деякі важливі модулі (наприклад, для веб-програмування або інтерфейси до драйверів RDBMS) підтримуються та вдосконалюються. Часто від оригінального автора чи нових технічних працівників. Часто це створило дуже зрілий код.

Щоб включити модуль в CPAN, авторам рекомендується пройти дуже довгий шлях до підтримки зворотної сумісності (зі старими версіями perl 5), а також незалежності платформи. Дивіться, наприклад, http://matrix.cpantesters.org/?dist=DBI (DBI = інтерфейс бази даних, рівень абстракції)

Також сама мова: я трохи спантеличений усіма новими можливостями, які були включені в мову з 5.10, 5,12., 5.14. Я не навчився користуватися новими можливостями. Perl розвивається для мене занадто швидко!


7

Я навчився Perl 4 і 5, роблячи системне адміністрування ще в 90-х. Сьогодні я займаюся програмуванням на Java (де зазвичай не бажано використовувати Perl), і я все-таки користуюся Perl час від часу на своєму комп'ютері розвитку. Зазвичай це робиться виключно для обробки даних у файлах журналів, де регулярні вирази в Perl та риштування для розбору тексту oneliners в Perl дуже легко зробити в командному рядку.

По суті, я сьогодні використовую це як див на стероїди. Для цього це геніально.

Однією з особливостей Perl є те, що існує майже один спосіб зробити майже все. Це дозволяє вибрати той, який відповідає вашому способу мислення - що чудово, коли ви просто злому один або два лінійки, але не так здорово, коли вам потрібно зрозуміти код Перла інших людей, оскільки вони зазвичай обирають інший спосіб зробити це, який відповідає їхньому способу мислення.

Я вважаю Perl дуже корисним інструментом, який ви можете дізнатися, якщо зосередитись саме на тому, що можуть робити звичайні вирази, щоб допомогти вам просіяти ваші текстові файли. Не тримайтеся подалі від предметів.


Отже, ви б сказали, що це в основному корисно для швидких сценаріїв для обробки тексту?
Боб

На мою думку так, тоді це дійсно дуже добре. Він також може робити і інші речі, але вони не так добре запечені.

1
Хоча Perl дуже добре обробляє текст за допомогою його регулярних виразів, немає необхідності переглядати його, якщо ви знаєте Python або Ruby (або, можливо, PHP), я б сказав, оскільки вони також дуже хороші з регулярними виразами. Пітон хоч трохи більш багатослівний, але він, безумовно, чистіший.
Ерік О Лебігот

@EOL, але ні Python, ні Ruby, ні PHP не можуть нанести ліси для розбору текстових ліній. Див. Наприклад варіант "-i".

@ ThorbjørnRavnAndersen: Погоджено, для одного вкладиша: oneliners Python (-c варіант) дійсно довші. :)
Ерік О Лебігот

7

Деякий час розвиток Perl5 застоювався через зосередженість на Perl6, що спричинило велику затримку між випуском 5,8 та 5,10. З того часу спільнота реально почала розуміти, що Perl5 та Perl6 - це різні мови, і останнім часом з'явилися дуже регулярні нові випуски.

Нещодавно Perl виграв конкурс веб-додатків за допомогою Catalyst (хоча я віддаю перевагу Mojolicious ), а деякі нові сучасні практики Perl приносять багато чистіших ідей OO в Perl з такими речами, як Moose.

На мою думку, як розробник Perl, Perl має чудову спадщину, а також світле майбутнє - це не лише канальна стрічка, яка поєднує корпоративні мережі разом, але і місце в новій горячі веб-додатках.


3

Я не експертний програміст. Але мені здалося, що Perl досить легкий у навчанні (я використовував книгу верблюдів), завжди приємно, і PerlMonks - найдружніша допомога громаді в програмуванні. Perl, здається, втратила свою сексуальну привабливість в плані найму на Ruby та Python, але лише в певних галузях (особливо в Інтернеті).


3

Якщо ви знаєте perl, то легше вивчити Powershell Microsoft. Що стосується синтаксису powershell, він не має коренів perl , але Powershell взяв багато особливостей та понять з мови Perl, наприклад, вгорі моєї голови: змінна $ _, префіксація масивів з @ і рядками / скалярними значеннями з $, умовні файли для іменування та зберігання модулів і, певним чином, Автозавантаження, щоб назвати декілька.

Тож, якщо ви знаєте, Perl, це стане в нагоді, і вам трохи легше вивчити Пауершелла, або зрозуміти настрій Пауершелла, або зберегти ідіому Пауершелла у вашій довгостроковій пам’яті. Зустрічаючи Powershell без певного фону, мабуть, трохи дивніше. Просто кажу.

Звичайно, мова Powershell додала нові речі, зокрема її .NET дружелюбність, і не продовжувала жодної з функцій / операторів perl, які забезпечують "зворотну сумісність" з інструментами командного рядка unix.


2

Грант Маклін просто завантажує короткий фільм, заснований на еволюції mapofcpan.org , показуючи, як CPAN розвивається разом із візуальним способом у формі карти. Це досить зрозуміло щодо життєдіяльності громади. Не вмирає.

Perl, безумовно, страждає від поганої репутації, через багато легенд і тому, що громада не хоче і не намагається зробити так, щоб це було найгіршим мовою програмування у світі. Дуже важко зрозуміти, чому так багато людей абсолютно впевнені, що це жахлива мова. Ви можете написати моторошний код будь-якою мовою. Perl отримав кращі практики, як і будь-яку іншу мову, вам просто потрібно втілити його в більш ніж один спосіб зробити це базовою філософією.

Я бачу дуже сумну причину такої поганої репутації: тривалий час веб-сайти громад Perl отримували дуже некрасиві дизайни інтерфейсу (як, наприклад, perlmonks.org ). Особисто мені це зовсім не байдуже , можливо, я навіть приїжджаю в Perl, тому що з цієї причини: не так багато модних інтерфейсів веб-сайтів, але ви можете довіряти інструментам, спільноті набагато більше віри, оскільки вона не намагається бути красивішим, ніж це є. Однак якісні інструменти не означають, що вам не слід орієнтуватися на зовнішній вигляд, і врешті-решт це є своєрідною помилкою не піклуватися про зовнішній вигляд.

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

Я вважаю, що це дуже сумна причина непопулярності, але саме це править світом.


Якщо ви не збираєтесь проявляти увагу до деталей вашого логотипу, чому я повинен припускати, що ви збираєтеся проявляти увагу до деталей більш глибокими подробицями своєї мови? Справа не лише в тому, що логотип виглядає погано, це в тому, що поганий логотип відчуває культуру, яка не має значення для того, як все подано, а це підсилює стереотип, що стоїть за всіма анекдотами "лише на мові писати"
Racheet

Я чув про людей, які працюють на погану репутацію. Ці люди є прихильниками сучасного Perl та тестового розвитку. Такі веб-сайти, як buildinperl.com , questub.io змінюють спосіб розгляду справи Perl. Duck Duck Go також є величезним успіхом, ніхто не може сказати, що їм все одно, як все подано. Навіть metacpan.org - це спосіб подарувати користувачеві CPAN (основну силу Perl) новий досвід через показ коду, документації та модулів пошуку з приємним інтерфейсом. Я не вірю в мовні логотипи: чи має логотип C? Мова - це не бренд.
smonff

1

Perl точно не вмирає. Це ніколи не було настільки розкрученим, як деякі інші мови.

Хоча це правда, що Perl сам по собі є старою мовою, він має яскраве і дуже продуктивне співтовариство, значення якого є в бібліотеці CPAN. Я не думаю, що будь-яка мова має бібліотеку настільки обширною і настільки повною, як CPAN. Нічого навіть не наближається. У CPAN ви знайдете тисячі модулів та фреймворків, які роблять практично все, що ви можете собі уявити. Вам потрібен веб-сервер? Там HTTP :: сервер. Вам потрібна окрема база даних? Там Muldis :: DB. Незалежно від ваших потреб, ви зазвичай знайдете кілька модулів, які відповідають вашим потребам, вам просто потрібно вибрати той, який найкраще підходить для вашої програми.

Що стосується Ruby, Python та інших конкурентів, я думаю, що здорова конкуренція стала величезною користю для Perl. Все, що отримали інші мови, громада Perl переписала на Perl. Наприклад, коли Рубі летіла на успіх Рейлів, Перл отримав танцюриста, що багато в чому краще, ніж Рейлс.

Перл, безумовно, не мертвий, і не вмирає. Навколо цього просто нічого не виникає, немає жодної компанії, яка б виграла від Perl, тому вона не приділяє великої уваги ЗМІ, і не кожен дитина знає Perl, тому про це менше говорити.

Минуло більше 6 місяців з часу Вашої оригінальної публікації. Якщо ви все ще не вирішили, зробіть собі послугу і вивчіть Perl.


0

Я використовую perl для розробки веб-ігор з 90-х, і після 3-річної перерви я згоден з попереднім плакатом. Я повертаюся і знаходжу, що це розвинулося вище і далі там, де я його залишив.

Це вмирає? Не випадковість.

Це корисно? Я б без нього загубився. Можливо, це тільки я, але з інших відповідей я б сказав, що це дуже активна жива істота.


-6

Я отримав більшу частину свого професійного досвіду в Інтернеті з PHP, але в міру того, як я зростав, як розробник, речі стали дещо складнішими, багато завдань PHP просто не міг виконати або робить дуже неефективно. Я міг би підняти руки вгору, але замість цього (завдяки Google) я опинився на ssh-сесіях, використовуючи libreoffice, ffmpeg, imagemagick, щоб написати функції обробки процесів для PHP. Ніколи не використовував його, перш ніж я пішов право на PERL .. в основному тому, що Perl ідеально сидить під стеком LAMP.

(1) він попередньо встановлений на всіх серверах LAMP або принаймні має свіжий об / хв. (2) має приголомшливий репо CPAN, щоб заощадити багато часу. (3) швидше / безпечніше виконувати завдання, коли PHP, який працює на апачі, не вдається. (4) дуже схожий на PHP та легкий у навчанні.

Змішайте ідеї з PHP, запікайте з PERL за допомогою BASH за бажанням, переверніть відповідно до MySQL, потім подавайте HTML5 та штрих jQuery. Це чудовий рецепт.


1
Щось підкріпити ці твердження?
Остін Генлі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.