АРМАДА
Выбираем язык программирования.
На страницу 1, 2, 3, 4, 5  След.
Новая тема Написать ответ

Вацлав
Banned
Зарегистрирован: 21.02.2006
Сообщений: 4966
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 6:28 amДобавить в избранноеОтветить с цитатой
«А у вас нет такой же, только с перламутровыми пуговицами? Нету? Будем искать...».

Почти у каждого вебмастера в определенный момент начинается зуд в мозгах, вызванный желанием что-то переделать по своему. Запрограммировать какие-то рутинные процессы или сделать какой-то свой движок. Не открою секрета, если скажу, что все существующие готовые движки чего-либо (от счетчиков до блогов и 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 — нарастить системные ресурсы. Иногда это оказывается существенно эффективнее и дешевле, чем нанимать специалиста или изучать язык самостоятельно.

Ну померять письками-то языки все же надо Smile
Вот тут можно посмотреть замеры:
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. Казуальное программирование.
Не знаю, есть такой термин или его я изобрел (лень гуглить), но делать быстрые наброски и простенькие скрипты удобнее всего на ... правильно Smile На Руби. Я действительно влюбился в этот язык и весьма пристрастен. Хотя Python тоже очень и очень неплох.

5. Вацлав, гад! Ты еще больше меня запутал! Что же выбрать!?
Все зависит от задачи. Какой язык лучше — это такой же бессмысленный вопрос как и «какой дистрибутив Linux лучше и не лучше ли вообще Windows?». Ориентируйтесь на свои задачи, как и я. Я тоже использую разные языки для разных задач.

а) Слабонагруженные Web-проекты: лучшее — враг хорошего. Пользуйтесь PHP и всеми его плюсами. А про минусы забудьте.

б) Средние нагрузки, с потребностью быстро обрабатывать данные — вот тут лучше заменить старый Perl на новый Python.

в) Средние нагрузки, с обработкой большого числа запросов (например AJAX и прочие «вебдванольности») - Java + GWT = JavaScript + PHP.

г) Высокие нагрузки и обработка большого числа данных: Java.

д) Наброски рутинных скриптиков — Ruby.

Как видите, Руби не особо где нужен, если честно. Но благодаря его удобству я его использую в о всех группах кроме «Г». Но, как я уже говорил — удобство языка это дело вкуса. Если же смотреть более объективно на вещи, то на первое место по перспективности я поставлю Java, а на второе Python.

Ronald Wild
V.I.P.
Зарегистрирован: 29.09.2006
Сообщений: 1959
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 10:56 amОтветить с цитатой
Отличная статья.
Вот это особенно понравилось:
Цитата:
например я считаю синтаксис и пространство имен языков Pascal и Xbase более выразительным, чем C и его производных, а «правила» бейсика и вовсе на дух не переношу


+7, короче.

choor
Человек-загадка
Зарегистрирован: 09.11.2005
Сообщений: 2097
Star (Сумма: 1)
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 11:13 amОтветить с цитатой
+12 Wink
“How would you like to suck my balls, Mr. Garrison?!?!” :mrgreen:

adamant
V.I.P.
Зарегистрирован: 20.03.2008
Сообщений: 11504
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 11:37 amОтветить с цитатой
+7
Супер! :thup: , маленькая статья а столько информации. Вацлав ты гений мысли!
EvaPharmacy. Чтобы мазать хлеб икоркой, Ева – лучшая партнёрка! Инвайты Jabber: [email protected] и ICQ: 750000
Unlimited on 1Gbs port |

samedi
Офисный планктон
Зарегистрирован: 17.04.2008
Сообщений: 214
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 11:39 amОтветить с цитатой
Всё зависит от задач. И от рук программиста. Точнее сначала от рук, потом от задач.

У википедии и дигг хорошие нагрузки, но там прекрасно справляется РНР. Тем не менее, есть множество домашних страниц, которые не открываются вообще.

Про тест на elliottback.com нечего сказать. Это высшая степень необъективности. По сути это тестирование вида Hello world, оторванное от реальности. Ruby быстрее РНР? Возможно, пока дело не доходит, например, до работы с БД. Так как в Ruby, по-моему, нельзя написать SQL-запрос и работать нужно исключительно с объектной моделью. Ну и как С++ оказался медленнее Java - вообще фантастика.

kio
Профессионал
Зарегистрирован: 04.10.2005
Сообщений: 946
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 12:38 pmОтветить с цитатой
вот ещё альтернативный тест - в описанном выше нет к примеру С#. И вообще платформы .net с её языками не упоминается.
по ссылкам тест 9 языков с образцами тестов
http://www.osnews.com/story/5602&page=3
http://www.osnews.com/story/5602/Nine_Language_Performance_Round-up_Benchmarking_Math_File_I_O/page2/
http://www.osnews.com/story/5602/Nine_Language_Performance_Round-up_Benchmarking_Math_File_I_O/page3/
и результат кому читать лениво:



P.S.
Моё мнение - на самом распрекрасном языке можно написать тормоз, а на самом "хреновом" сделать всё максимально грамотно. 99,999999% зависит от рук программиста. Поэтому лично я выбираю тот язык где для моей работы максимум удобства. Среда разработки Visual Studio 2008 язык (C#)
Привет,Гость

Вацлав
Banned
Зарегистрирован: 21.02.2006
Сообщений: 4966
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 1:17 pmОтветить с цитатой
kio, Visual Studio немного не в этом ряду. Хотя бы потому, что он денег стоит Smile А начинающему программисту-вебмастеру тратить деньги на IDE немного не с руки. Так что я смотрел только на linux/gnu/console языки. Да и распространены они больше и доступнее. Visual Studio не очень-то запустишь на слабеньком компе, а под иксами и с Geany в качестве IDE - хоть на Асусе ЕЕЕ можно кодить. Что я и делаю Smile

Cabal
Гуру
Зарегистрирован: 20.10.2007
Сообщений: 1360
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 1:31 pmОтветить с цитатой
+7 Крута. Хорошо, но пипец как субъективно. Относительно сложности синтаксиса PHP, для того чтобы сделать вывод, что "язык веб программирования для домохозяек" имеет неудобный синтаксис, я не знаю что надо иметь идеалом. По мне так ничего удобней ещё не придумали. Ну хз, Руби я не видел может действительно небо и земля.
Cabal - патентованный зануда.

Вацлав
Banned
Зарегистрирован: 21.02.2006
Сообщений: 4966
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 1:34 pmОтветить с цитатой
Cabal, не PHP язык для домохозяек, а любые публичные скрипты. WordPress тот же. Так я его любил еще год назад, но последние две версии меня от него совсем отвратили. Слишком огромный он стал.

Cabal
Гуру
Зарегистрирован: 20.10.2007
Сообщений: 1360
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 1:41 pmОтветить с цитатой
Вацлав, "язык веб программирования для домохозяек" - это не цитата из тебя. Это мнение - оценка многих пользователей которую PHP заслужил благодаря своему простейшему синтаксису(простота правда достигнута в ущерб производительности - это уже мнение гиков от кодинга) и простоте изучения.

kio
Профессионал
Зарегистрирован: 04.10.2005
Сообщений: 946
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 2:16 pmОтветить с цитатой
Конечно у каждого свой подход !) 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. Одни говорят про тёплое другие пишут про мягкое !)))))
Привет,Гость

Вацлав
Banned
Зарегистрирован: 21.02.2006
Сообщений: 4966
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 2:25 pmОтветить с цитатой
kio, +500 Smile
У меня просто мозг повернут на опенсоурсе и линуксе. Хотя начинал я как и большинство с Windows-программирования.
Но принимая факт того, что большинство серверов в инете все же не Linux/BSD, веб-программисту желательно (имхо) работать именно с этой архитектурой. Это позволяет в теневом режиме параллельно еще и администрирование осваивать Smile

Собственно говоря этот грустный факт пересаживает меня сейчас с привычного дебиана на федору. Все же федора/центос более распространены, а BSD-семейство не очень хорошо приживается на ноутбуках.

kio
Профессионал
Зарегистрирован: 04.10.2005
Сообщений: 946
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 3:30 pmОтветить с цитатой
Вацлав, я наоборот начинал с Qunix потом Linux, а теперь Windows.... Миграция обусловлена именно тем что удобно работать разработчику, стоимость софта для разработки я всегда записываю в стоимость проекта. Из моих знакомых кто подсел на студию обратно ни в какую среду никого не загнать.)))
P.S.
От линукса осталось воспоминание ещё от красной шапки, что удалив из системы один из десяти ненужных мне калькуляторов или часов может вдруг перестать работать весь десктоп или ещё что похуже !)))))) И ещё я там помню постоянно что-нибудь настраивал - просто был фанат настроки системы !))))))
Привет,Гость

Вацлав
Banned
Зарегистрирован: 21.02.2006
Сообщений: 4966
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 3:42 pmОтветить с цитатой
kio, Ну сейчас времена изменились. Линукс стал существенно дружелюбнее, а порой и проще чем Windows. Ubuntu & OpenSUSE не зря "шагают по планете" семимильными шагами. Ну а среды разработки - так OS Eclipse или NetBeans ничуть не хуже Visual Studio.
Но я сразу же в заметке оговорился: "Работать нужно с тем, что знаешь и с тем что нравится". А стоимость софта или железа действительно ниже чем стоимость найма или подготовки специалиста по другой платформе.

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

banzai
Профессионал
Зарегистрирован: 24.05.2007
Сообщений: 730
Обратиться по нику
# Добавлено:Ср Авг 20, 2008 9:48 pmОтветить с цитатой
как вики, по этому Руби, так полно а как нормальный chm справочник по объектам, функциям и синтаксису так не найдешь Sad
Термоядерный спам или интеллектуальный, выбирай самЗло присуще любому скоплению людей
Новая тема Написать ответ    ГЛАВНАЯ ~ ПОЛЕЗНЫЕ СТАТЬИ

Перейти:  





Генеральный спонсор



Партнеры