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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2012, 00:10   #1
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию Зачем вы используете фреймворки и интерпретируемыя языки программирования?

Здравствуйте!

Зачем, ну зачем вы используете различные фреймворки (что, по сути, является надстройками, процедурами в красивой обертке над стандартными процедурами языка) и различные интерпретируемые языки в программировании (ява, C#, PHP, Perl, Tcl, да тысячи их)??? Многие говорят, что тем самым они оберегают код от возникновения непредвиденной ошибки, как то, к примеру, - утечка памяти.

Но ведь, если вы не можете контролировать ошибки - вы что-то не понимаете в программировании, вы не понимаете, как распределяется память, как она выделяется и как она освобождается. Вы пишите алгоритм, не понимая базовых принципов работы процессора, да и вашего алгоритма в целом, если вы не можете контролировать, что будет происходить с памятью в результате его (алгоритма) выполнения.

Потом - скорость. Все то, что интерпретируется, или вызывает процедуру, которая вызывает процедуру - это снижение скорости. В случае интерпретатора - сильное снижение скорости, поскольку это можно сравнить с эмуляцией. Ну разве это не так? Да, были какие-то там процессоры наполовину поддерживающие, например, Java байт-код, однако все равно, это костыли. Зачем пытаться исполнить на процессоре инородные инструкции, когда у него есть свои собственные. Если язык интерпретируем, то вы должны загрузить прежде всего в память его интерпретатор - опять таки лишняя трата памяти.

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

Хотя задача, которую вы написали, для примера, на PHP с использованием двух-трех сторонних библиотек и подключив пару другую модулей, отдельный SQL-сервер и прочее, могла была быть решена на обычном четвертом пне будь она написана на си с самодельной простенькой БД.

Зачем вы заставляете нас (пользователей) все время апгрейдить компы?
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 05.09.2012, 00:15   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык видимо время разработчика дороже нового процессора.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.09.2012, 00:16   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Зачем вы используете фреймворки и интерпретируемыя языки программирования?
Для решения поставленных задач, более быстро и более дешевым способом. По моему это и так должно быть ясно.

Динамическим языкам нужна "прогревка", т.е. некоторое начальное время они будут исполняться не особо шустро, т.к. по причинам, которые вы описали, но далее они будут "прогреты" и приведины благодаря JIT (или что там для определенного языка) в бинарный код в памяти, который будет так же быстро выполняться если был бы изначально написан на С, к примеру.

Последний раз редактировалось BOBAH13; 05.09.2012 в 00:19.
BOBAH13 вне форума Ответить с цитированием
Старый 05.09.2012, 00:22   #4
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Дык видимо время разработчика дороже нового процессора.
Дороже в конечном счете для кого? Для пользователя? - да, несомненно. Об этом и речь.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 05.09.2012, 00:26   #5
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Само собой присоединяюсь к фразе про стоимость разработчика, это должно быть очевидно)
Дороже для работодателя и в конечном итоге для пользователя, вынужденного платить круглые суммы за софт (ну не в этой стране, ладно)))
А про скорость таких языков подкину пример: программа на C#, как известно, хранится в виде байт-кода, но при запуске перегоняется в машинный (потому так и подвисает при запуске), да вот только прикол в том, что .NET Framework может при этом оптимизировать программу под тот конкретный процессор (!), который стоит у пользователя, чего не сделать ни на каком С[++]. Всё относительно.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 05.09.2012, 00:27   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Tronix Посмотреть сообщение
Дороже в конечном счете для кого? Для пользователя? - да, несомненно. Об этом и речь.
Разработка ПО = деньги, время = деньги, причем тут пользователь? Пользователь не чувствует скорость или проблемы с ПО до 1 секунды, вы выиграите временно или же максимум несколько мс от написания на С, как вы намекаете.
BOBAH13 вне форума Ответить с цитированием
Старый 05.09.2012, 00:29   #7
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Для решения поставленных задач, более быстро и более дешевым способом. По моему это и так должно быть ясно.
Это ясно, однако что мешает решить те-же задачи, используя не-интерпретируемый, а нативно компилируемый язык? Возможно все-таки квалификация?
Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Динамическим языкам нужна "прогревка", т.е. некоторое начальное время они будут исполняться не особо шустро, т.к. по причинам, которые вы описали, но далее они будут "прогреты" и приведины благодаря JIT (или что там для определенного языка) в бинарный код в памяти, который будет так же быстро выполняться если был бы изначально написан на С, к примеру.
Нет, не согласен. JIT, да даже возьмем для чистоты AOT, будет выполнятся гораздо медленнее, нежели нативный код. Если вы не писали никогда эмуляторов, или тем более, интерпретаторов, то готов показать пример, хотя надеюсь это и так понятно.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 05.09.2012, 00:31   #8
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Хорошо, тогда встречный вопрос: почему не пишут, скажем, на ассемблере? Ведь всё будет летать! И можно будет спасти каждый килобайт, жадно сжираемый фреймвокрами!
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 05.09.2012, 00:37   #9
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Selestis Посмотреть сообщение
Хорошо, тогда встречный вопрос: почему не пишут, скажем, на ассемблере? Ведь всё будет летать! И можно будет спасти каждый килобайт, жадно сжираемый фреймвокрами!
Почему не пишут? Пишут и еще как ого-го. Ну, конечно не буду скромничать и начну с себя , и скажу, что, например, я пишу. А потом продолжим хотя-бы каким-нибудь там небольшим проектом типа Firefox или Chrome. Ну, это то, что мы можем созерцать в исходниках. Показать вам, что конкретно из мною выше озвученных проектов написано на ассемблере?
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 05.09.2012, 00:40   #10
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Tronix Посмотреть сообщение
Это ясно, однако что мешает решить те-же задачи, используя не-интерпретируемый, а нативно компилируемый язык? Возможно все-таки квалификация?


Нет, не согласен. JIT, да даже возьмем для чистоты AOT, будет выполнятся гораздо медленнее, нежели нативный код. Если вы не писали никогда эмуляторов, или тем более, интерпретаторов, то готов показать пример, хотя надеюсь это и так понятно.
Я уже написал и не собираюсь повторяться о причине почему не нативно, а интерпритируемый языки в вебе. Квалификация? Уж точно нет.

На счет ресурсов, если говорим о серверной стороне - то пользователя это вообще не касется, все ресурсы оплачены не им.

Знания и понимание эмуляторов и подходов к JIT - никак не связано с тем, писал ли я собственный велосипед. Да, соглашусь, исполняется медленней, я с этим даже и не спорю/ил, я говорил, что спустя некоторое время, код более не нуждается в интерпретации, т.к. уже был интерпритирован и приведен к текущей, актуальной архитектуре процессора и исполняется в памяти как бинарный, как любой другой код - на этом этапе нет никакой разницы на каком языке и с использованием чего это было написано.

Цитата:
Сообщение от Tronix Посмотреть сообщение
Почему не пишут? Пишут и еще как ого-го. Ну, конечно не буду скромничать и начну с себя , и скажу, что, например, я пишу. А потом продолжим хотя-бы каким-нибудь там небольшим проектом типа Firefox или Chrome. Ну, это то, что мы можем созерцать в исходниках. Показать вам, что конкретно из мною выше озвученных проектов написано на ассемблере?
Вы еще не работали в компании софтверной, не так ли?
BOBAH13 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Языки программирования Jony217 PHP 7 08.05.2011 19:18
Языки программирования xNIGA Свободное общение 20 10.09.2010 22:25
Языки Программирования..Прошу Помочь. ThreeX Помощь студентам 20 12.01.2010 11:29
Языки программирования doniyor Свободное общение 6 20.12.2009 21:42