На страницу 1, 2, 3, 4, 5 След. |
|
|
«А у вас нет такой же, только с перламутровыми пуговицами? Нету? Будем искать...».
Почти у каждого вебмастера в определенный момент начинается зуд в мозгах, вызванный желанием что-то переделать по своему. Запрограммировать какие-то рутинные процессы или сделать какой-то свой движок. Не открою секрета, если скажу, что все существующие готовые движки чего-либо (от счетчиков до блогов и CMS) сделаны мягко говоря «через жопу». Если быть точнее, то через жопу сферического усредненного пользователя. Чтобы нравиться и нашим и вашим. При разработке публичных приложений, чтобы угодить большинству пользователей обычно используется принцип маркетинговых весов «угодим-разозлим». Если на примере, то это ТВ-реклама. Не секрет, что многих людей старшего возраста раздражает реклама прокладок или презервативов. Но она нацелена на другую аудиторию, выгода от которой перевесит «разозленность». Так и в случае с публичными движками, которые идут по пути Windows — угодить домохозяйкам и плевать на производительность.
Впрочем, философские сентенции оставим философам, а сами озадачимся более приземленными вопросами.
1. А шо ви имеете таки мне предложить?
А предлагают нам нынче широчайший выбор языков применимых в сети. Я выбрал для сравнения только шесть, потому что знаю их в разной степени (седьмой — ASP я вычеркиваю из списка, потому что .... потому что вычеркиваю и все тут). Перечислять буду в соответствии со степнью владения мною. Многие оценки субъективны и базируются на старых привычках (например я считаю синтаксис и пространство имен языков Pascal и Xbase более выразительным, чем C и его производных, а «правила» бейсика и вовсе на дух не переношу). Сравнивать я буду простыми словами, не прибегая к страшным заклинаниям типа «инкапсуляция, полиморфизм, множественное наследование, обратная рекурсия». Да-да. Я знаю еще много страшных слов.
1.1. Старый добрый ПыХыПэ.
http://www.php.net/
Заслуженный ветеран броуновского движения и несомненный лидер в сайтопроизводстве.
Плюсы: есть на подавляющем числе хостингов, умеет встраиваться в html, прост в применении, обладает массой библиотек и классов, богатейшая документация, обилие учебников и сообществ.
Минусы: не самая удачная (мягко говоря) объектно-ориентированная модель, неудобный синтаксис, относительно низкая производительность.
Примечание: все остальные языки (за исключением Java) без «костылей» не умеют встраиваться в HTML. Это автоматически зачисляется им в минусы всем сразу же.
1.2. Рубероид, он же Ruby.
http://www.ruby-lang.org/en/
Пожалуй самый молодой язык из всей «шестерки». Очень красивый и удобный язык. Не путайте язык Ruby с его сверхпопулярным производным фреймворком Ruby on Rails (RoR).
Плюсы: потрясающе продуманный синтаксис, масса уникальных возможностей, самый «высокоуровневый язык» из рассматриваемых, самый маленький объем кода, прекрасная объектная модель, легок в освоении и «быстром программировании».
Минусы: малое распространение на хостингах, дефицит хороших бумажных учебников.
1.3. ... и друг его жемчужный Perl.
http://www.perl.org/
Не менее старый и не менее распространенный, чем PHP.
Плюсы: за исключением умения встраиваться в html имеет те же выраженные плюсы, что и PHP, но существенно быстрее оного.
Минусы: Он стар. Он очень стар. Место на кладбище его давно поджидает. Ну и плюс минусы того же PHP.
1.4. Они называли меня желтой рыбой? (с). Python.
http://www.python.org/
Вообще-то язык обязан названием не ползучему гаду, а Монти Пайтону, ну да это не важно. Язык хорош как синтаксисом, так и производительностью. То что его использует Google наверное говорит само за себя, не так ли?
Плюсы: хороший и крепкий середнячок. Достаточно быстрый, в меру удобный.
Минусы: все еще мало распространен.
1.5. Java — это кофе, а не сигареты.
http://openjdk.java.net/
Ууу. Я бы назвал Яву царь-языком, но слишком уж слишком люблю изящество Ruby и привык к PHP. Но статус-кво таково, что Яву используют все кому не лень. Потому что это удобно, практично и даже модно.
Плюсы: это самый «быстрый» язык, самый гибкий язык и один из самых распространенных и перспективных. А его родственность с JavaScript и дает ему огромную фору. Умеет «встраиваться» в html маскируясь JSP страницами. Ну а после шикарного инструмента GWT от Гугла получает и еще большее количество призовых очков.
Минусы: сложноват в освоении, имеет массу весьма запутанных реализаций, не очень хорошо распространен на «бюджетных» хостингах.
1.6. abC. До-Ре-Ми-Фа-Соль-Ля-Си.
http://gcc.gnu.org/
Все разновидности языка (C, CPP, C#) очень популярны и вполне заслуженно. Мощный язык с отличной производительностью.
Плюсы: высокая производительность, огромное количество документации, богатая история.
Минусы: крайне хреновая интеграция в WWW, сложность для освоения.
2. Вам шашечки или ехать?
Вообще-то, лучший язык тот, который вы лучше знаете. Но для разных задач лучше подходят разные языки. С обслуживанием нетяжелых www проектов отлично подходит старый добрый PHP. Perl и python по сути уже встраиваются в большинство линуксов и могут служить там скриптовыми языками (впрочем они и в Windows это могут, только кому это нужно?). Ruby, благодаря своей простоте и компактности, отлично подойдет начинающим программистам, как весьма универсальный язык для автоматизации рутинных задач. Java и Си позволяют достичь в большинстве случаев феноменальной производительности при тяжелых нагрузках, а вот программировать на них примитивные задачи мне представляется нецелесообразным.
3. Производительность.
Самым узким местом в веб-программировании остаются http-запросы. Запрос-ожидание-ответ. Эта фаза зачастую на корню гробит преимущества в скорости таких языков как Java или Си. Трудно ехать на Феррари через московские пробки. Но при росте нагрузок и количестве запросов становится актуальным и фаза обработки данных на сервере и отдача ответа. Да так важно, что старичок PHP с трудом справляется с задачами TDS например. Генерацию или же синонимизацию контента лучше поручать и вовсе Яве. Но с другой стороны, стоимость железа нынче не так уж и высока, так что «ускорить» ПО можно и методом Microsoft — нарастить системные ресурсы. Иногда это оказывается существенно эффективнее и дешевле, чем нанимать специалиста или изучать язык самостоятельно.
Ну померять письками-то языки все же надо
Вот тут можно посмотреть замеры:
http://elliottback.com/wp/archives/2008/01/17/ruby-vs-php-performance-revisited/
Если вкратце, то Java в 200 раз быстрее PHP.
И маленькая поправка: в указанном тесте рассматривалась старая версия Ruby (1.8.5). Новая (1.9.0) работает в 4(!) раза быстрее старой, что переносит Ruby на третье место после Java и C++. Думаете остальные языки тоже подтянулись? Увы, но нет. Ruby молодой язык и у него еще остался запас для оптимизации, в отличии от оттюнингованных до последних процентов ветеранов.
4. Казуальное программирование.
Не знаю, есть такой термин или его я изобрел (лень гуглить), но делать быстрые наброски и простенькие скрипты удобнее всего на ... правильно На Руби. Я действительно влюбился в этот язык и весьма пристрастен. Хотя Python тоже очень и очень неплох.
5. Вацлав, гад! Ты еще больше меня запутал! Что же выбрать!?
Все зависит от задачи. Какой язык лучше — это такой же бессмысленный вопрос как и «какой дистрибутив Linux лучше и не лучше ли вообще Windows?». Ориентируйтесь на свои задачи, как и я. Я тоже использую разные языки для разных задач.
а) Слабонагруженные Web-проекты: лучшее — враг хорошего. Пользуйтесь PHP и всеми его плюсами. А про минусы забудьте.
б) Средние нагрузки, с потребностью быстро обрабатывать данные — вот тут лучше заменить старый Perl на новый Python.
в) Средние нагрузки, с обработкой большого числа запросов (например AJAX и прочие «вебдванольности») - Java + GWT = JavaScript + PHP.
г) Высокие нагрузки и обработка большого числа данных: Java.
д) Наброски рутинных скриптиков — Ruby.
Как видите, Руби не особо где нужен, если честно. Но благодаря его удобству я его использую в о всех группах кроме «Г». Но, как я уже говорил — удобство языка это дело вкуса. Если же смотреть более объективно на вещи, то на первое место по перспективности я поставлю Java, а на второе Python. |
|
|
|
|
|
Отличная статья.
Вот это особенно понравилось:
Цитата: |
например я считаю синтаксис и пространство имен языков Pascal и Xbase более выразительным, чем C и его производных, а «правила» бейсика и вовсе на дух не переношу
|
+7, короче. |
|
|
|
|
|
+12 |
|
|
|
|
|
+7
Супер! , маленькая статья а столько информации. Вацлав ты гений мысли! |
|
|
|
|
|
Всё зависит от задач. И от рук программиста. Точнее сначала от рук, потом от задач.
У википедии и дигг хорошие нагрузки, но там прекрасно справляется РНР. Тем не менее, есть множество домашних страниц, которые не открываются вообще.
Про тест на elliottback.com нечего сказать. Это высшая степень необъективности. По сути это тестирование вида Hello world, оторванное от реальности. Ruby быстрее РНР? Возможно, пока дело не доходит, например, до работы с БД. Так как в Ruby, по-моему, нельзя написать SQL-запрос и работать нужно исключительно с объектной моделью. Ну и как С++ оказался медленнее Java - вообще фантастика. |
|
|
|
|
|
|
kio, Visual Studio немного не в этом ряду. Хотя бы потому, что он денег стоит А начинающему программисту-вебмастеру тратить деньги на IDE немного не с руки. Так что я смотрел только на linux/gnu/console языки. Да и распространены они больше и доступнее. Visual Studio не очень-то запустишь на слабеньком компе, а под иксами и с Geany в качестве IDE - хоть на Асусе ЕЕЕ можно кодить. Что я и делаю |
|
|
|
|
|
+7 Крута. Хорошо, но пипец как субъективно. Относительно сложности синтаксиса PHP, для того чтобы сделать вывод, что "язык веб программирования для домохозяек" имеет неудобный синтаксис, я не знаю что надо иметь идеалом. По мне так ничего удобней ещё не придумали. Ну хз, Руби я не видел может действительно небо и земля. |
|
|
|
|
|
Cabal, не PHP язык для домохозяек, а любые публичные скрипты. WordPress тот же. Так я его любил еще год назад, но последние две версии меня от него совсем отвратили. Слишком огромный он стал. |
|
|
|
|
|
Вацлав, "язык веб программирования для домохозяек" - это не цитата из тебя. Это мнение - оценка многих пользователей которую PHP заслужил благодаря своему простейшему синтаксису(простота правда достигнута в ущерб производительности - это уже мнение гиков от кодинга) и простоте изучения. |
|
|
|
|
|
Конечно у каждого свой подход !) Visual Studio 2008 у мелкомягких можно и нужно скачать полноценный триал на 90 суток - этого вполне хватит начинающему чтобы вкусить прелести жизни удобного программирования. Тебе конечно может удобнее кодить на асусе eee, и задачи перед тобой стоящие и главное твой опыт программиста позволяют работать на таком железе. Инструменты у мастера должны быть острозаточены, а позволить себе машину на которой будет работать студия может и школьник.
Системные требования:
* 1.6 GHz CPU
* 384 MB RAM (768 MB RAM для Windows Vista)
* 2.2 GB HDD
* 5400 RPM HDD
совсем не фантастика....
P.S.
Я не призываю никого бросать руби php или тем паче перл и переходить в студию!!!!!! Каждому своё....
Вообще обсуждение языков програмирования напоминает глобальное обсуждение Linux и Windows. Одни говорят про тёплое другие пишут про мягкое !))))) |
|
|
|
|
|
kio, +500
У меня просто мозг повернут на опенсоурсе и линуксе. Хотя начинал я как и большинство с Windows-программирования.
Но принимая факт того, что большинство серверов в инете все же не Linux/BSD, веб-программисту желательно (имхо) работать именно с этой архитектурой. Это позволяет в теневом режиме параллельно еще и администрирование осваивать
Собственно говоря этот грустный факт пересаживает меня сейчас с привычного дебиана на федору. Все же федора/центос более распространены, а BSD-семейство не очень хорошо приживается на ноутбуках. |
|
|
|
|
|
Вацлав, я наоборот начинал с Qunix потом Linux, а теперь Windows.... Миграция обусловлена именно тем что удобно работать разработчику, стоимость софта для разработки я всегда записываю в стоимость проекта. Из моих знакомых кто подсел на студию обратно ни в какую среду никого не загнать.)))
P.S.
От линукса осталось воспоминание ещё от красной шапки, что удалив из системы один из десяти ненужных мне калькуляторов или часов может вдруг перестать работать весь десктоп или ещё что похуже !)))))) И ещё я там помню постоянно что-нибудь настраивал - просто был фанат настроки системы !)))))) |
|
|
|
|
|
kio, Ну сейчас времена изменились. Линукс стал существенно дружелюбнее, а порой и проще чем Windows. Ubuntu & OpenSUSE не зря "шагают по планете" семимильными шагами. Ну а среды разработки - так OS Eclipse или NetBeans ничуть не хуже Visual Studio.
Но я сразу же в заметке оговорился: "Работать нужно с тем, что знаешь и с тем что нравится". А стоимость софта или железа действительно ниже чем стоимость найма или подготовки специалиста по другой платформе.
Дело вкуса. У меня вот полное неприятие всех визуальных систем. Я путаюсь в коде, если не пишу его исключительно в текстовом режиме. По этой причине я и фреймворки любые не люблю. Блокнот с подсветкой синтаксиса и автозавершением - вот и все что мне нужно от гуевых интерфейсов. В этом плане я полностью доволен Geany |
|
|
|
|
|
как вики, по этому Руби, так полно а как нормальный chm справочник по объектам, функциям и синтаксису так не найдешь |
|
|
|
|
|
|
|