Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2014, 00:30   #1
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию зачем нужны интерпретируемые языки?

Вообще зачем придумали языки perl, ruby, php, python? Зачем тратить столько вычислительных ресурсов на интерпретацию кода?

Самый быстрый и кошерный ruby работает медленее, чем нативный код примерно в 10 раз. Проще говоря: примерно 90% времени процессор тратит просто на интерпретацию кода.

Да, понимаю, разработка на нативных языках типа С++ или Delphi, довольно сложная штука и очень много проблем с переносом на разные платформы. Плюс таки спецов не много, они высокооплачиваемые. Да и вообще медленная разработка и долгий этап тестирования. Поэтому придумали языки для мартышек типа perl, ruby, php, python, на которых можно легко и быстро накатать код, на них запилено много классов и инструментов, у которых красивый и логичный синтаксис, программист занимается реальными алгоритмическими задачами, а не тем, где у него утечка памяти или нарушение стека. Плюс, самое главное для бизнеса (бизнес - это деньги, а деньги это самое главное), самое главное, что если спец вдруг начнёт быковать, то его легко уволить и нанять другую мартышку на следующий день, в случае же сложных языков типа С++, это довольно сложная задача, искать спеца придётся месяц или два. Это очень хороший плюс и пофиг на потерю в произволительности кода в 10-15 раз.

Да, но есть Java, которая очень легко переносится и почти не уступает нативным языкам по производительности. Но она тоже очень сложная штука, таких спецов мало.

Но потом придумали .NET, который почти не уступает в производительности нативным языкам, но при этом это довольно простые языки, со свеми преимуществами языков для мартышек: простота, логичность, лёгкость разработки кода. Есть Mono, есть ASP.NET, который благодаря mono можно поднять на бесплатном Linux, также есть XST - веб-сервер в котором вместо PHP можно использовать кошерный .NET язык типа C# или Delphi.NET
rpy3uH вне форума Ответить с цитированием
Старый 15.07.2014, 01:20   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Вообще зачем придумали языки perl, ruby, php, python? Зачем тратить столько вычислительных ресурсов на интерпретацию кода?
Встречный вопрос(ы): зачем Windows поставляет API? Зачем в Linux, Bash? Для чего нужен JavaScript в веб-браузере и почему?

Когда большая система идет в перспективу, очень накладно каждый раз переписывать, дописывать и менять её в соответствии с желаниями потребителей, которые, кстати говоря, часто противоречат другим идеям и прочему "я хочу".
Куда проще реализовать меньшую подсистему, скрывающую огромную работу за малыми строками кода(а то и за одной строкой) и дать доступ к ней чтобы бошковитые пользователи реализовывали свои хотелки сами.

А придумали их для того, чтобы не искать высококвалифицированного спеца, который бы быстро въехал в крупный проект и начал его дорабатывать. Большая система реализует малую как более простое средство её же доработки и расширения, меньшими затратами на ЗП кадрам и время обучения, разгрузку тез кто занимается самим монстром. Параллельно скрывая то что другим видеть не надо, то что делает спец за огого$ и обыскались его огого месяцев.

Другой пример:
Сайт написанный вами на в виде CGI приложения может быть написан за в 4 раз меньший срок на php.
О сроках доработки можно вообще молчать, там где мартышке 10 минут - страницу добавить, вам недельку посидеть.

Последний раз редактировалось Человек_Борща; 15.07.2014 в 01:25.
Человек_Борща вне форума Ответить с цитированием
Старый 15.07.2014, 02:12   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,849
По умолчанию

Чем мощнее железо, тем больше на него всякой работы нагружают. Иначе не понятно, зачем мощное железо.
Arigato вне форума Ответить с цитированием
Старый 15.07.2014, 02:19   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Зачем козе баян?
Человек_Борща вне форума Ответить с цитированием
Старый 15.07.2014, 02:30   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,849
По умолчанию

Чтобы музыку изучала.
Arigato вне форума Ответить с цитированием
Старый 15.07.2014, 02:53   #6
Vad33
Участник клуба
 
Аватар для Vad33
 
Регистрация: 24.07.2009
Сообщений: 638
По умолчанию

Лень - двигатель прогресса.
Во времена "больших машин" встречал системного программиста который
запросто садился к консоли и писал команды в машинных кодах.

А сейчас 99% ресурсов расходуется на интерфейс взаимодействия
компьютера с человеком для удобства последнего.
Это касается и интерпретаторов.
Все идет к освоению программами свободного человеческого языка,
чтобы не писать программы, а формулировать "хотелки".
** Удача терпелива. **
Vad3333@inbox.ru
Vad33 вне форума Ответить с цитированием
Старый 15.07.2014, 06:41   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
А сейчас 99% ресурсов расходуется на интерфейс взаимодействия
компьютера с человеком для удобства последнего.
Сейчас 99% ресурсов используется на обогрев окружающего пространства.
Цитата:
самое главное, что если спец вдруг начнёт быковать, то его легко уволить и нанять другую мартышку на следующий день,
В бизнес-приложениях быдлокод норма сплошь и рядом. Независимо от языка программирования. Спецов просто не хватает. Нет культуры разработки программного обеспечения. Гарантированная оплата только в госконторах, но именно для них и делают самое унылые вещи, так заказчик часто не разбирается в сути вопроса, а потому зачем напрягаться? Да и распил никто не отменял.
Вот для примера:
http://topwar.ru/10049-ministerstvo-...ry-i-sayt.html
Цитата:
Зачем тратить столько вычислительных ресурсов на интерпретацию кода?
Почему бы и нет? Не вижу причин по которым этого не нужно делать.
Да и вообще как-то Вы в один ряд поставили языки высокого уровня (Делфи) и языки сверхвысокого уровня (Руби). А сверхвысокий уровень добиться компиляцией пупец как сложно.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 15.07.2014 в 07:48.
Utkin вне форума Ответить с цитированием
Старый 15.07.2014, 08:11   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Лень - двигатель прогресса.
Вот вот. Когда-то писал нативный компиль. В серьез в общем-то занялся. А потом подумал: Да че я буду тратить кучу времени на ассемблерный код? И переделал компиль в интерпретатор. В результате его допиливание, доправка крутыми и тяжелыми функционалами (как то ADO) пошла гораздо быстрее и эффективнее. Сравнил скорость - меня устраивает даже на пентиумах 3 под мои задачи.
Лень - матушка не дала все сделать нативным.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.07.2014, 08:13   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Другой пример:
Сайт написанный вами на в виде CGI приложения может быть написан за в 4 раз меньший срок на php.
О сроках доработки можно вообще молчать, там где мартышке 10 минут - страницу добавить, вам недельку посидеть.
похорошему 11 минут, а не недельку
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.07.2014, 08:45   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Всеми нелюбимый Basic - интерпретатор, его клон Visual Basic используется в Офисе. Многим непонятный Visual LISP, используется в AutoCad. Всеми обхаиваемый PHP, используется на многих серверах. В чём причина такой популярности интерпретаторов?
1. Кроссплатформенность. Не важно на какой системе и на каком процессоре работает комп. Если на нём стоит интерпретатор, написанный именно под него, то прикладной код будет ним интерпретироваться без переделок.
2. Сорость написания программ.
3. Безопасность прикладного кода. Не нужно думать о том, что стек переполнится или выйдешь за границы массива и затрёшь расположенную в соседнем сегменте прогу.
4. Ну, и как писал rpy3uH, его легко могут изучить "мартышки", что немаловажно для работодателей.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 15.07.2014 в 08:48.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зачем нужны события (event) ? MooNDeaR C# (си шарп) 15 14.12.2015 13:49
Зачем вы используете фреймворки и интерпретируемыя языки программирования? Tronix Свободное общение 29 05.09.2012 18:33
Зачем нужны многомерные массивы? Sёker Общие вопросы Delphi 13 13.05.2012 15:42
Зачем нужны классы Sylar9 Общие вопросы C/C++ 5 15.03.2012 11:38
Зачем нужны операторы << и >> fs444 Общие вопросы C/C++ 3 23.12.2009 08:07