Вы никогда не задумывались над тем, какой язык программирования более быстрый, менее требовательный к ресурсам? А над тем, каким языком чаще пользуются? Если занимаетесь программированием, то наверняка такие мысли не раз вас посещали. Давайте попробуем найти ответы на поставленные вопросы…
Сначала теория. Давайте попробуем сравнить ряд языков. Вот результат. В нём учитывается и производительность, и объёмы используемой памяти, и объёмы кода (что тоже важно).
Итак, лидер налицо. Это C GCC. От него не отстаёт D Digital Mars. Остальные показывают заметное отставание. Java плетётся в хвосте, почти в шесть раз уступая лидерам. Последние строки делят PHP, Perl…
Более детально можно сравнить конкретные языки с использованием указанного выше ресурса. Посмотрите, поизучайте. Это и познавательно и увлекательно. Но это – теория!
Давайте обратимся к практике. Как жизнь расставляет эти языки? Идём сюда. Это живой рейтинг. Он постоянно обновляется, корректируется.
Java на первом месте!!! Теряют позиции C и С++. Зато верхние строки занимают (Visual) Basic, PHP (они с VB обогнали даже С++) и Perl.
А ведь VB даже не попал в первый рейтинг языков (по производительности и проч.)!
Почему люди используют для решения задач менее производительные, более громоздкие инструменты? Парадокс. Может быть они проще? Или легче взять более производительный компьютер, чем «вылизывать» критичные участки кода?
Факт остаётся фактом. Лучшее с теоретической точки зрения не всегда лучшее в жизни. Не всегда самое популярное и удобное.
Так что вопрос, с помощью какого языка решать те или иные задачи, решать всё равно вам, уважаемые товарищи программисты. Будет ли это «экзотический» проблемно ориентированный язык, на котором задача решается двумя строками кода (но при этом нужно месяц изучать задачу и сам язык), либо простенький «конструктор», где с помощью общеизвестных примитивов можно решить задачу «в лоб» за недельку.
И найти компромисс, надеюсь, вам помогут те рейтинги, с которыми вы сегодня познакомились.
«Почему люди используют для решения задач менее производительные, более громоздкие инструменты? Парадокс.»
Мне кажется, что это «промытые мозги»+»так делают все»+»привычка». Скажу за оформление научных документов. Есть язык LaTeX – он совершенен для таких операций, он для них создавался. Неделя изучения – и вы легко и просто оформляете такие статьи, где остальные корпят неделями. Он труден только вначале, потом время экономится.
Однако большинство пользуются вордом. А раньше – страшно сказать – пользовались Лексиконом. Вы хорошо представляете себе формулы в досовском лексиконе? Перед сном и едой лучше не смотреть.
Опять-таки, народ интеллектуально ленивый, зашоренный, упёртый в свою крохотную областёнку и ничего кругом не видящий. Легче (для мозгов) тыкать, как болван, в кнопки, чем сесть и подумать…
Июль 12, 2006 @ 11:35
Вы хоть режте меня, но я этих сравнений не понимаю…
это все равно что взять мерс и прогнать его по деревенской улице. Потом взять уазик и тоже прогнать. Уазик пройдет лучше. Значит, мерс — г! ЧТД, друзья.
вот только ведь мерсу — мерсово, а уазику — уазиково.
Ведь не будете же вы апплеты писать на Си? А может, на Паскале?.. а давайте вообще на Ассемблере! Он вообще крут неимоверно, ведь если его изучить (а как же его не изучить!) можно писать оччень оптимизированные приложения (ведь нам же нужны оптимизированные приложения).
Нет, повторю, но хоть режте меня, не понимаю я этих рейтингов.
Август 13, 2006 @ 17:47
Попытаюсь дать краткое пояснение по поводу рейтингов.
Зачем они нужны?
Рейтинги в данном случае – способ систематизировать множество языков программирования. Расставить их в каком-то порядке…
Можно говорить о процедурных, объектно ориентированных и проч. А в рейтингах языки рассматриваются с точки зрения (1) производительности, (2) ресурсоёмкости, (3) употребимости/популярности. И не более того.
Комментарий в статье не критикует те или иные языки, а просто отмечает одну забавную особенность – чем менее язык производителен, более требователен к ресурсам, тем более популярен (это отмечается не для всех языков, но для большинства хорошо известных).
А в конце статьи говорится – решать всё равно пользователям/профессионалам – какой инструмент выбрать для решения задачи. Вот для этого рейтинги и нужны. Ведь знания не берутся откуда-то «свыше».
Используйте для своего выбора не чьё-то «веское мнение» или своё «мне кажется», а факты, статистику и результаты экспериментов!!!
(Кстати, для того, чтобы написать на ассемблере оптимизированное приложение, нужно долго учииться и практиковать. Лихо Вы так по поводу АСМов… Как альтернативу советую рассмотреть оптимизирующие языки. Они, кстати, тоже выстроены в рейтинг!
)
Август 14, 2006 @ 0:37
Давайте только не Выкать. Мы не на суде вроде.
Рейтинг языков для разных сфер применения это.. хм.. странно.
Я лично никогда не стану писать системное приложение, скажем, на python. Для этого есть Си, Ада, на крайняк, тот же АСМ. Я думаю, человек, в котором есть хотя бы доля здравого смысла, сделает так же.
Если стоит цель систематизировать, то сначала систематизируйте их по сфере применения.
А то можно свалить в кучу пистолеты, бомбы и авиационные ракеты. А потом сказать: «Пистолет легче всех и меньше всех!» Будем использовать только его. А потом выяснится, что чаще всего используют тяжелые и крупногабаритные авиационные ракеты. Значит, все лохи, один составитель рейтинга умный, но его не слушают.
Нет ничего удивительного в том, что в данный момент популярны java, php, perl, python и vb. Сейчас сфера разработок в основном сместилась в сторону веб-программирования. В частности, в нашей конторе ведут разработку системы, построенной с использованием веб интерфейса. Поэтому применяется php и javascript. Или, может, нам бросить все уже написанное и переписать это, скажем, на Ada 95? А может составители рейтинга это сделают?
Еще один аргумент в пользу этих тяжеловесных языков в том, что за историю развития ПО всевозможные кампании снабдили свои продуктами столькими особенностями, что переписывать каждый раз свое приложение под каждую железку/софтинку — сизифов труд. Если написать идеально вылизанное приложение на одном из языков, находящихся в пятерке лидеров, то она будет летать неимоверно НО. Летать она будет на машине разработчика. Перенести ее в другую среду — там она либо уже не так порхать будет, либо вообще объявит, что погода нелетная. А можно написать приложение, которое будет требовать ресурсов на 30-40% больше, но зато с бОльшей вероятностью запустится на машине клиента. Тут уж думайте сами, решайте сами.
Август 14, 2006 @ 14:41
Полностью с Вами согласен. Пусть каждый сам для себя выбирает чем и что делать.
Авторы теста не валили в кучу пистолеты и танки. Приведённые языки программирования не настолько сильно друг от друга отличаются, как указанные виды оружия. Если они все позволяют работать с массивами, делать поиск в деревьях, суммировать и проч, то почему бы не сравнить их? Что автор и сделал. Так что автор сравнивал сравнимые вещи. Присмотритесь повнимательнее к тестам.
Если Вы не хотите или считаете нецелесообразным использование подобных тестов – пожалуйста. Не используйте. Пользуйтесь своим (цитирую) «здравым смыслом».
Лично я и большинство моих коллег (успешно работающих) доверяем больше цифрам и фактам, а не общественному мнению, предположениям или неподкреплённым советам.
В последнем абзаце своего комментария Вы делаете совершенно трезвые, практические выводы. А на чём они основаны? Смею предположить, что на опыте. Своём и коллег. И, отчасти, на общественном мнении. А не приходила ли Вам когда-нибудь в голову мысль о том, что этот самый опыт или мнение были когда-то сформированы под влиянием подобных тестов?
(Иначе откуда Вы знаете, что одни языки «тяжеловесные», а другие «будут летать»?)
Август 14, 2006 @ 15:04
из официальной документации к языкам-с, уважаемый. =)
Не думал, что можно настолько канцелярским языком общаться, если честно. Тут либо Вы подражаете г-ну Смердякову-с, либо налицо попытка достать человека (ибо я просил вас-с не выкать).
Засим прошу откланяться, разговор получился продуктивный…
Надеюсь, без обид-с. Дмитрий.
Август 18, 2006 @ 12:47