Как стать автором
Обновить
116
0
Kiriyama @Kiriyama

Пользователь

Отправить сообщение
Я считаю, что само появление в огромном количестве всех этих «гибридов» — важная тенденция, открытое признание того, что с императивными языками «не всё ладно», что «чего-то не хватает». Ведь «функционализация» языков уже принимает просто характер какой-то эпидемии, даже в новый С++ её впихивают!

Моё имхо заключается в том, что «гибридные языки» — это из-за переходности данного этапа. Также как сейчас бесполезно создавать чистые электромобили для массового использования — нет инфраструктуры зарядных станций, быстрой смены батарей и т.п. Подобно этому, программисты сейчас просто привыкли думать в императивном стиле. Также, как китайцы привыкли к своим иероглифам, и считают их чем-то само собой разумеющимся.

Создатели гибридных языков — молодцы, умные люди, которые понимают эту экономическую целесообразность постепенного перехода. Что только последовательными мелкими шажками можно перенаправить «слона» современной индустрии в другом направлении. Резкая смена парадигмы для такой большой массы людей и кода просто невозможна. Но это не мешает отдельным разработчикам, у кого есть такая возможность, перепрыгивать переходные этапы ;)
Ну, тут я вам многого посоветовать не могу. Могу лишь дать пищу для размышлений, а дальше решайте сами:

Это трудно сформулировать, но функциональное программирование — «дисциплинирует» мозги, заставляет порой полностью переосмыслить даже привычные вещи, взглянуть на них иначе (например, на операторы ветвления и циклы). А если ещё и SICP прочитан — вообще хорошо. Напоминаю, ФП отражает сам по себе Процесс — в чистом, математическом виде, без наслоений особенностей работы именно современных компьютеров. И глубокое понимание таких вещей также важно и полезно, как таблица менделеева для химиков. Отсюда и феноменальная «живучесть» того же Lisp'а. Устаревать-то нечему! (я уже приводил пример с теоремой Пифагора) Как ни крути, а фундаментальные кирпичики «программной материи» — они всегда были, есть, и будут есть ;)

Во-вторых, я начал заниматься Python'ом одновременно с Django, с января 2006-го. Тогда ни на Django, ни даже на Python'е «на российском рынке» никто почти и не писал. Теперь на Django пишут уже сайты Кремля… На самом деле не имеет значения, какой язык сейчас самый популярный. Python, например, в разы менее популярен чем C#, но работы на нём — это ужас какое количество! Важно не на чём вы пишете, а насколько хорошо и качественно. И без куска хлеба с чёрной икрой вы не останетесь, я гарантирую ;) В рунете есть примеры, когда целыми командами мигрируют на Erlang, например, причём всего за месяц. И качество кода при этом возрастает, как и масштабируемость и надёжность, хотя код становится меньше и понятнее. Если у инструмента есть такие преимущества, я считаю, уже не важно насколько он «мейнстримовый». Важно, что он позволяет экономить человеко-часы, а значит и деньги. Можно взять почти любого толкового программиста, и он освоится за месяц. Причём, мне кажется, сам разработчик с большим удовольствием пойдёт на вакансию, где есть возможность попробовать что-то новое.
Не судите строго. Человек попробовал, ему понравилось, он решил поделиться своим опытом. Не все же сразу профессионалами становятся. Учитывая, что тема веб-разработки на функциональных языках на хабре — редчайшая, автора можно только похвалить уже за саму попытку — и использования языка, и рассказа другим.

Лучше помогите автору советом или напишите статью лучшего качества. Снобизм тут излишен.
Продолжайте цикл! Только советую прислушаться к комментарию dimoclus'а, и получше продумайте целевую аудиторию ваших статей.

Если это профессиональные веб-разработчики, уже интересующиеся темой — не надо им рассказывать про Lisp. Достаточно указать «использовал SBCL и фреймворк такой-то, т.к. другие хуже». А далее — к сути.

Если пишете для широкой аудитории — тем более, не пишите про Lisp. Ничего, совсем. Другими авторами написано уже более чем достаточно, и более интересно (взять хотя бы статьи Пола Грэма). Сошлитесь на готовое. А дальше постарайтесь «затянуть аудиторию». Приведите примеры известных веб-проектов (Reddit, например) или покажите на примере какую-нибудь убойную возможность, которая позволяет решить близкую разработчикам по опыту задачу «с полпинка» вашим способом. «Заведите» людей! Потому что унылых постов вида «Как я писал плагин к ERP на .NET» — на хабре более чем достаточно. И люди просто на них не реагируют, их можно понять. Часто даже если тема хороша, то её подача убивает смысл прочтения. Не наступайте на эти грабли, попробуйте найти примеры интересных постов по программированию (с высоким рейтингом) и проанализировать причины их успеха.
Напротив, это что-то очень, очень хорошее! :) Просто хотел поставить эти языки «на одну полку», ведь навыки, полученные в Lisp, могут успешно применяться и в других функциональных языках (да и многие императивные языки сейчас позволяют функциональный стиль, хотя и не поощряют, не получают от этого больших выгод, и писать «функционально» на Python и на Haskell — это две большие разницы).
Спасибо за статью! Правда, вы ещё ничего не написали о собственно самой веб-разработке с использованием CL, но начинание — хорошее.

Не обращайте внимание на критику языка. Я сам — веб-разработчик с достаточно большим стажем (последние годы — Python, Django), но к функциональным языкам отношусь весьма серьёзно, и к Lisp-разновидностям тоже. В данный момент параллельно читаю «SICP» и «Real World Haskell».

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

И функциональные языки (появившиеся, как ни странно, уже очень-очень давно — в 60-70-х) — это не «прошлое» программирования, а наоборот, его будущее. Также как теорема Пифагора, они не могут просто так устареть, потому что отражают именно абстрактный фундамент мышления, а не тупо подражают современной архитектуре процессоров, как современные императивные языки. Но пока компьютеры были простыми и слабыми, изменения и не были никому нужны.

И что мы видим сегодня? Архитектура процессоров (и сред исполнения вообще) стала менятья — появились виртуальные машины, многоядерность, альтернативные архитектуры, облачные сервисы… И тут же современные языки резко «встряли» — вместо простого и элегантного кода стали выдавать каких-то жутких монстров, увешанных специальными костылями и блокировками как новогодние ёлки. А это бесконечные месяцы отладки, тяжелейший рефакторинг и т.п. Причём даже эти монстры часто работают неэффективно. А функциональные языки, напротив, вписываются в новую картину будущего просто идеально! Да, они ПОКА могут быть несовершенны, особенно инструментарий разработки (компиляторы, наборы библиотек). Но это же решается! Под Python тоже 7 лет назад не было инструментария. И Ruby on Rails тоже не было. И даже под PHP — «кот наплакал». Даже Java, при всей популярности, допиливали много лет, чтобы добиться сносной производительности. И это при большом вложении средств! Сегодня мы гордо гнём пальцы, и называем это всё «мейнстримом». Функциональные языки долго жили лишь в академической среде, никто не вкладывал миллионы в развитие средств разработки (как, например, Google вкладывал в Python). Пока…

Не слушайте никого. В любом случае, занятия Lisp'ом сильно повысят ваши способности как разработчика, я уверен. Даже если потом вы пересядете на Erlang или Haskell ;)
На самом деле, по-настоящему новых технологий в IT достаточно мало. Где ни начнёшь копать, везде выясняется, что та или иная вещь была придумана годах этак в 1965-75-х, описана в куче научных работ, и положена «под сукно», т.к. не хватало производительности машин для таких абстракций. И только сейчас это всё начинает «вылезать на свет».

Нет, я не говорю, что ничего нового не создаётся. Но вы также должны понимать, основные принципы «мироздания» — методы управления сложностью, теория алгоритмов и т.п. — они ведь не зависят от того, пишешь ты на Алгол 60 или на Python в Eclipse. Что теорема Ферма была верной в 1637-ом также, как она верна в 2010-ом. Кстати, книга Фредерика Брукса «Мифический человеко-месяц» остаётся актуальной классикой для IT-менеджеров даже несмотря на 1975-ый год выпуска.

Т.н. «технологии» — это шелуха, которая толковым человеком осваивается без проблем. Куда сложнее получить системное представление о разработке ПО в целом. А лень в переходе на «новые технологии» обычно связана с ясным пониманием того, что нового-то там и нет ничего. Например, если я — шикарный программист на C++, ну зачем мне «ваш C#»? Только потому что он новый? Но если я на C++ то же самое могу сделать быстрее и качественней в разы?! Если же новый инструмент действительно имеет неоспоримые преимущества — например, помогает ускорить совместную разработку — то профессионал-то и заметит эту черту в первую очередь, и сам инициирует переход на него. Потому что он-то прекрасно понимает цену такой способности. И на своих ошибках научился ценить «эфемерные» вещи вроде «стиль», «архитектура», «изящность», «простота», «ясность».
Сейчас мне 27, и я замечаю две основные тенденции в изменении своего мышления:

1. Я становлюсь умнее. Ощущаю это буквально физически. Мозг начал легче манипулировать достаточно сложными абстракциями. Шутка ли, даже математическую литературу я стал читать… с удовольствием!

2. При этом, пропадает интерес к банальностям. Видимо в этом и есть причина «старения программистов». Они не стареют, просто типовые задачи их перестают возбуждать. Насмотрелись. Логично, что интересного в написании тридцатого по счёту интернет-магазина? (тут каждый может привести пример из своей работы) И тут молодые начинают «выигрывать». Естественно, ведь им это всё ещё не надоело! В то же время, у зрелого программиста уже есть семья, устойчивый круг коллег-профессионалов, и смена сферы деятельности начинает казаться рискованной. Иногда этот конфликт решается переходом от кодирования к работе проектировщика или управлению в той же компании.

Лично я считаю, что программисту надо периодически сильно менять сферу деятельности. Причём необязательно отказываться от программирования. Что хорошего в нашем занятии? Что область применения почти неограничена! Более того, человек «вживается» в новую сферу, узнаёт массу нового, начинает в ней разбираться как специалист. Надоело писать банковский софт? Попробуйте себя в геймдеве, в биоинформатике, в разработке систем ИИ, в обработке изображений или текстов… всего не перечислить! Глядишь, и вопрос «о лучшем возрасте» отпадёт сам собой :)

В подростковом возрасте мы учимся управлять своим телом. Но вот мозг… учиться владеть своим мозгом приходится всю жизнь! И это именно то, что приобретается с годами. Это громадный опыт и от того способность всё лучше или лучше видеть закономерности и проводить аналогии, это психологическая устойчивость, уверенность в своих силах. Многим удаётся развить волю к достижению целей, научиться смотреть на жизнь с десятков разных углов, лучше понимать других.

И если вы больше не прыгаете от осознания того, что ваша новая библиотека финансовых операций работает, может вы просто выросли из этого? Может добились тут всего, чего хотели, и пора покорять новые континенты?
Когда-то я тоже считал что с возрастом я «закостенею», поглупею, и т.п. Но потом со мной произошёл один случай, который полностью изменил мои взгляды…

2006 год. во время поездки с семьёй к родне, я сидел на вокзале в Уфе и читал журнал («Компьютерру», кажется). Тут ко мне неожиданно подходит одна бабушка, и спрашивает, не программист ли я, случайно. Я подтвердил её догадку, и у нас завязалась несколько странная беседа.

Бабушка рассказала мне про то, как увлекается компьютером (который ей подарил сын). И заявила, что со дня над день подключает себе интернет. Попросила меня дать ей какие-нибудь толковые советы, как начинающему интернетчику, интересовалась возможными сложностями. Это был очень живой человек, умный, с горящими глазами, и мы с ней проболтали достаточно много времени.

Под конец беседы я не выдержал (удивление было так велико, что челюсть еле закрывалась) и спросил: «Сколько вам?! Вы меня извините, но вы не похожи на обычных пожилых людей! Как вам удаётся остаться такой?!». Она улыбнулась и сказала что ей уже почти 80, грустно добавив, что мужа уже нет в живых. И что она просто всегда старалась не терять любовь к жизни. Сколько она себя помнит, она всегда интересовалась всем новым, много читала. Она любит жизнь, она ей интересна. И что не надо бояться годов — всё зависит только от нас самих.

Вот такая сказка.
Фраза вообще какая-то замкнутая:

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

Т.е. фраза запрещает саму себя. Новые полномочия ФСБ для предотвращения преступлений против государства, создают условия для совершения преступлений против государства самим же ФСБ. Жучка укусила сама себя за хвост? Что они там курят?
А я ни за кого не заступаюсь, и никого не ругаю. Ни Flash, ни Apple, ни iPhone меня не волнуют — я не фанат, и не противник ни компаний, ни их продуктов самих по себе. Тем более, что за глаза ругать не люблю — продукцией Apple я почти не пользовался.

Повторюсь, статья никого не ругает, и никого не хвалит, и написана без эмоций, только констатирует факт, что люди слишком сильно увлекаются обсуждением как «Джобс послал кого-то на...». Хотя на самом деле, поведение руководства Apple не особо связано с тормозами Flash'а. Даже будь флеш быстрее в 50 раз, ситуация повторилась бы в точности. Это единственный посыл статьи.

Очень многие комментаторы увидели в статье всё что только хотели увидеть. Одним видится, что я хвалю Flash, другим — что ругаю Apple, третьи — что я считаю продукцию Apple некачественной, четвёртые — что я попираю право каждой компании зарабатывать доступными ей средствами. Хотя ни на что такое я в статье и не намекал. Просто привёл факты. Если в учебнике по экономике написано что «Монополия приводит к ухудшению качества и удорожанию услуг», — это просто научно доказанный факт. И Android-телефон я купил по таким же спокойным соображениям, а не из любви к Google/Linux или ненависти к Apple/Nokia/iPhone.

Будьте проще, не читайте «между строк», иногда там просто ничего нет :)
Да, перенесённые приложения часто выглядят неприглядно. Но если покопаться в причинах, там не только лень разработчиков:

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

Куда лучше обстоят дела у приложений, которые сразу ориентировались на несколько платформ. У таких в архитектуру заранее закладывается качественное отделение представления и поведения от внутренней логики. И вы никогда не догадаетесь, что такое приложение «не родное» для данной платформы…

В то же время, рынок ещё не успокоился. Постоянно появляются новые устройства, довольно часто обновляются API и версии операционок. Да и времени прошло совсем мало с момента появления у iPhone конкурентов. Толковые средства кроссплатформенной разработки за полгода-год не делаются. Такие, чтобы упрощали следование гайдлайнам и обеспечивали приемлемую скорость работы. Но они появятся, т.к. это очень естественная ниша. Не ждите всего и сразу. Москва тоже не сразу строилась.
Согласен. Мне тоже это было всегда очевидно. Но, перечитав массу комментариев в разных статьях о Flash и iPhone, я понял что это очевидно далеко не всем. Прошу прощения, если потратил ваше время.
Основной посыл статьи: всё происходящее в Apple — естественная реакция компании, стремящейся захватить рынок, и не допустить на него конкурентов. Microsoft и прочие делают то же самое. Не надо придумывать обиды Apple на Adobe, и прислушиваться к их склокам. Это лишь отголоски куда более глубокого процесса.

Для Apple жизненно важно стать платформой №1 по числу уникального софта, даже ценой потери части прибыли с AppStore от недопущения туда многих написанных под другие платформы приложений. Потому что сиюминутные потери части прибыли с лихвой компенсируются длительностью доминирования на рынке, которое они и пытаются получить своей нынешней стратегией.
Почему вы считаете, что удобство разработчика — зло? Может ещё и C++ не использовать, а писать на ассемблере под каждую отдельную архитектуру процессоров?

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

Я уважаю гайдлайны разных платформ и задумки их юзабилистов и дизайнеров. И их можно соблюдать, написав для программы несколько стандартных стратегий внешнего вида и поведения (Look and Feel). Большинство подобных проблем были решены ещё в Java Swing или Qt, например. Модель разработки MVC позволяет эффективно отделить представление и способ ввода данных от внутреннего кода приложения. Но только при условии, если разработчик платформы даёт свободно использовать любые удобные для разработчика инструменты.

Но тогда платформа становится просто «одной из многих». Да, хорошая, красивая, но и у других тоже всё хорошо и красиво. И если софт будет одинаковым, то покупателю, о ужас, вдруг станет всё равно что выбирать — Maemo или Android, Moblin или WinMobile. Покупатель — он, сволочь, начнёт сравнивать, искать по соотношению цена/качество. А вдруг он нашу продукцию не купит?! Не допустим!
Кстати, про Волкова была интересная статья в февральском выпуске «Русского репортера»: «Чудак на букву W».
Один из немногих здравых комментариев к статье. Спасибо!

Лично я болею за первые варианты — и для браузеров, и для видеохостингов. Вопрос тут действительно принципиальный — интернет должен быть построен на открытых технологиях. Иначе это уже не глобальная сеть, а набор феодальных княжеств. И явное торможение прогресса.

Например, я решил создать программу, позволяющую записать видео на Android'е, потом быстро его обработать (вырезать части, добавить всякие визуальные метки), а потом выложить в wordpress-блоге. Допустим, я — американский разработчик, и не имею права поставить кодек. А программа разрабатывается не в коммерческих целях. Я не смогу написать программу, потому что должен буду лицензировать закрытую технологию?! Ох, неправы ребята из Google. Сильно неправы!

Существует такой термин:
Провал рынка — неспособность рыночных механизмов удовлетворительно решать важные для общества социально-экономические проблемы, несовершенство рыночных институтов и инструментов; фиаско рыночных отношений, не обеспечивающих рациональное распределение и использование ресурсов, свидетельствующее о необходимости государственного вмешательства в экономику.

Мне кажется, мы сейчас наглядно видим ещё один такой провал. Ради достижения сиюминутных целей, компании-гиганты готовы отказаться от развития технологии, которую сами же могли улучшить для своих целей. А кроме того, пресекают нормальное развитие массы разнообразного ПО, которое, в перспективе, могло принести им же куда большую экономию и прибыли, чем нынешняя «экономия свободного места на дисках».
Бесполезно спорить об инструментах или идеологиях — у каждого свои критерии.

Я описал, что меня не устраивает в Mono и Moonlight. Я не говорю что это плохие продукты, или что они неуспешны, или что MS не имеет права требовать отчислений за exFAT. Напротив, идея Mono вполне неплохая, и я лично пользуюсь тем же Tomboy в работе.

Но разрабатывать на них я бы не стал. Это для меня вопрос принципа — стараться использовать общедоступные технологии с предсказуемым открытым будущим — которые никто не запретит, не засудит, даст мне самому исправить баг, и не забросит разработку «из-за кризиса» и т.п.

Спорить о таких вещах — всё равно что спорить о диктатуре и демократии. Всегда найдутся те, кто скажет: «Да, у нас диктатура, но зато наш вождь Пётр Энный привёл страну к богатству и процветанию! Так что все ваши „демократии“ — это просто паранойя!». А для кого-то диктатура будет неприемлема — принципы иные. Вот и тут — то же самое.

Поэтому предлагаю прекратить бесполезные прения. По-моему, все точки зрения уже высказаны, и вполне ясны.
Замечательная аргументация: «Столлман — дурак и параноик, потому что его не любит Линус Торвальдс». А также «Раз я чего-то не помню и меня это не волнует, значит это всё — паранойя».

Т.н. «простой маркетинг» может значить разные вещи. Представьте, если BMW начнёт показывать телерекламу со словами «Автомобили Toyota — это вёдра с гайками, которые легко приведут к вашей смерти...». Конечно, BMW этого не сделает — ведь за это придётся отвечать в суде. А Linux — его можно ведь поносить как угодно, это ведь общественное достояние, он же никому не принадлежит. И Microsoft обливает его грязью, с удовольствием.

«Бетховен — дерьмо для очкариков, слушайте Бритни Спирс!» (Всё равно Бетховен давно умер, в суд не подаст).

Я не против, когда кто-то платит за технологии Microsoft. Против самой компании я ничего не имею. Бизнес есть бизнес. Я против нарушения в этом бизнесе элементарных норм морали. Когда что-то сначала свободно распространяется налево-направо (exFAT), а потом всем говорят «а теперь свободе — конец». Почему Silverlight должен быть исключением? По-моему, очень удобный способ избавления от конкурента.

> монополизация рынка технологией которая является частью стандарта? очередной загиб паранои?
Ключевые слова здесь: «является частью стандарта». А как же компоненты, что частью стандарта не являются?

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

Докажите мне, что Silverlight и .NET — это свободные технология без лицензионных ограничений, без потенциальных рисков судебного преследования opensource-аналогов, и что эти аналоги идут «в ногу» с разработками Microsoft, и могут свободно повторять любые части исходных продуктов MS. Тогда я признаю себя параноиком и в почтении сниму перед вами шляпу.
> Moonlight лицензирован под LGPL2.

Silverlight выпускается под MS-EULA и MS-PL. Так что Moonlight может придумать какую угодно лицензию, технология всё равно остаётся в руках компании Microsoft, которая никак юридически не гарантировала отсутствие претензий в будущем.

Зря вы так ругаете Столлмана — это не параноик, это просто хорошо осведомлённый оптимист. Для вас патентные склоки — это далёкие события в далёком США, а для него — это повседневная действительность. Компания Microsoft уже заслужила вполне конкретную репутацию. Вспомните:

* обвинения Linux в нарушении патентов MS
* история с лицензионным соглашением между MS и Novell
* компания «Get The Facts», отголоски которой мы до сих пор наблюдаем

это только то, что вспоминается сразу. А вот последнее: «Microsoft требует лицензировать использование exFAT» — очень серьёзный шаг для монополизации рынка флеш-накопителей.

Не надо верить в больших и добрых дядей из Microsoft. Верить можно только их делам. Почему сегодня все ставят Flash Player? Потому что Flash — повсюду. Без него браузер становится ущербным. Если Silverlight станет популярным, MS может повторить трюк с exFAT, и разом сделать ущербным Linux, потом рассказывая на курсах что «Linux-отстой, там даже Silverlight не работает».

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность