Вибір між CL та Python для веб-розробки


13

Я приходжу з тла Java, і після того, як я прочитав цей невеличкий твір Пола Грема, я почав замислюватися над тим, як вибрати нову мову, а саме Common Lisp, щоб прискорити свою роботу (я веб-розробник).

Зараз я пишу проекти для домашніх тварин, але маю деякі бізнес-плани на майбутнє. Пол говорить про ЛІСП у своєму нарисі як про «Таємну зброю». Я не знаю, чи це твердження вірно після 10 років, але я занурив пальці ніг у чудовий підручник з CL, і схоже, що LISP може бути кращим для веб-розробки.

Пол також згадує Python як хороший вибір, який я насправді знайомий. Моє запитання: який я повинен вибрати для своїх майбутніх веб-проектів?

Про що я думав:

  • Я не збираюся розробляти настільні додатки, щоб я міг вибрати будь-яку мову, яку я віддаю перевагу.
  • Здається, що python має дуже велике співтовариство, таким чином, він об'єднує більше бібліотек / фреймворків порівняно з lisp
  • Я з'ясував, що lisp має певну функціональність (наприклад, макроси), яку неможливо знайти більше ніде
  • Я здебільшого працюю один або з 1-2 іншими програмістами, але знайти когось із знань лісу може бути важким

Так що ж ви думаєте?


Наскільки велика спільнота Python порівняно з PHP? Я припускаю, що знайти розробника Python теж може бути важко, порівняно з пошуком розробника PHP, тому я схильний вибирати між ними параметри, якщо проект експериментальний.
Олексій

Я не дуже люблю PHP, тому для мене це не варіант. Оскільки я є єдиним начальником, ніхто не змушує мене використовувати те, що мені не подобається. :)
Адам Арольд

2
@Vash Python спільнота розвитку може бути не такою величезною, як PHP, але вона все ще дуже велика. Крім того, я вважаю, що онлайн-документація Python значно перевершує документацію PHP.
кількість

Думаю, це правда.
Адам Арольд

2
Я не вірю, що про Clojure ще ніхто не згадує!
Хірон

Відповіді:


7

Ви надходите з фону Java, то чому б не перевірити мову програмування Clojure?
Це сучасний діалект Ліспа, який живе на JVM, тому у вас є доступ до тонн JAR там.

Поки ви не збираєтеся знайти відшліфовані та готові до виготовлення веб-рамки, такі як Django та Rails у Всесвіті Clojure (принаймні зараз), але програмісти використовують веб-рамки Noir та Compojure.
Ви також можете розгорнути веб-додатки Clojure на платформі Heroku.

Clojure дуже корисний, але крива навчання дуже крута. Ви готові вивчити функціональне програмування (якщо ви не знайомі)? жити на стороні світу ООП?

Python - це безпечна сторона: він зрілий, багато книг, багато веб-рамок, величезний пул знань і простий у навчанні.

Тож рішення дійсно за вами.


1
Останнім часом я перевірив Clojure і думаю, що саме той найбільше відповідає моїм потребам! Дякую за пораду!
Адам Арольд

7

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

Хоча Лісп впливав на багато мов, він ніколи не встигав перейти в мейнстрим. Чому? Оскільки багато розробників не розуміли понять мови, їм це здавалося досить незрозумілим. Лісп важко зрозуміти для величезної маси розробників. Ви коли-небудь бачили опис завдання, що вимагає Lisp як мови програмування? Я ні. "Чому ти питаєш? Тому що важко підтримувати і читати багатьом людям. У Ліспі ви можете набагато частіше не сказати відразу, що робить вираз, просто подивившись на нього. Їй не вистачає певного виду простоти, тому вона ніколи не стала загальною мовою.

Тим не менш, Лісп вплинув на багато мов. Я рекомендую вивчити це в академічних цілях. Це розширює ваші ментальні межі, тому ви часто можете думати про проблеми з іншої точки зору. Однак я б не рекомендував використовувати його для веб-додатків, якщо ви не проводите дослідження техніко-економічного обґрунтування для університету. Не вистачає підтримки в інструментах та бібліотеках порівняно з іншими параметрами. Якщо ви хочете придбати практичні навички, які з часом принесуть трохи грошей і можуть бути представлені у вашому резюме, то обов'язково виберіть Python. Ви також отримаєте вигоду від Lisp, але він менш практичний і більш академічний, хоча ваш загальний стиль програмування може виграти від цього.

Також в наші дні відбувається відродження функціональних мов. Ви також можете переглянути F # for .NET або Scala на JVM, якщо хочете підібрати деякі функціональні поняття.

Тож зробіть свій вибір. Якби обидві були справжніми мовами, яку з них ви б краще вивчили: латинська / давньогрецька або французька / німецька / італійська / іспанська / китайська / арабська?


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

Гаразд, що я буду робити: я теж вивчу LISP та Python, але я буду використовувати Python, тому що ви та інші згадали вище. Дякуємо за роз’яснення.
Адам Арольд

3

З огляду на вибір між звичайним lisp та python, найкраща прагматична порада, яку я можу дати, - це вивчити python . Хоча технолог в мені вважає, що всі, хто програмує, повинні навчитися ляскати, я не думаю, що навчання це допоможе вам "пришвидшити [вашу] роботу".

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

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


3

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

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

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

Я жорстоко упереджений, я впевнений.


1
Упереджений чи ні, я не бачу вашої точки зору!
Адам Арольд

2

Якщо ви хочете підкреслити те, про що говорив Пол Грехем, я б виступав за Ліса. Різниця в підході та мисленні, що підтримується мовою сімейства Лісп, має набагато більший потенціал вплинути на вас як на програміста в цілому через спонукання думати інакше. І хоча я цього ще не робив, схоже, що веб-розробка в Lisp досить добре підтримується: Дивіться це питання на сторінці SO.

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

Зрештою, через сучасне середовище вибір Lisp, здається, завжди зводиться до питання "Ви хочете використовувати те, що ви хочете, або ви хочете використовувати те, що галузь уже використовує?" Яка ваша відповідь на це питання?


2

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

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

Нарешті, вправляйте правий мозок. Формалізм мов програмування змушує нас надмірно використовувати лівий мозок для вирішення проблем. Активуйте правий мозок, щоб отримати доступ до іншої зміни парадигми, що змінюється в грі.


0

Lisp - просто інструмент, як і будь-яка інша мова. Чи є у нього корисні функції, обов'язково. У той же час, можливо, однаковий вихід з будь-якою іншою мовою, це може зайняти більше часу та коду. Основна проблема Lisp полягає в тому, що ви хочете отримати хоч VPS-хостинг, оскільки на їхній платформі немає спільного хоста (який я знаю), який підтримує будь-яку різноманітність Lisp.

Я б хотів би запропонувати одне - так як ви програміст Java, погляньте на Groovy (або навіть Scala). Вони дозволять використовувати ваші Java-бібліотеки та API та забезпечать підвищення продуктивності.


VPS не є проблемою, оскільки мої ідеї також не працюватимуть із спільним хостингом.
Адам Арольд

0

Я не знаю тонкощів про Лісп, крім її витоків. Що я знаю про Python, це:

Через 5 хвилин після появи першої літаючої тарілки спільнота Python зібрала щось для взаємодії зі своїми системами вводу / виводу.

Крім того, виходячи насамперед з JavaScript, я знайшов Python дуже природним. Можливо, навпаки може бути правдою.

Крім того, Джанго є значною мірою основою для наслідування в наш час.

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