Я так понял что современные языки идут по пути оптимизации труда кодера, но при этом создают нагрузку на железо из-за лишнего кода для оптимизации труда, есть идеи как с этим бороться?
Сам не программист, писал простенькие программы на паскале, сейчас решил выучить C, потом Cpp, потом уже что понадобится.
Другие языки программирования и технологии
Современные языки программирования вопрос внутри
> есть идеи как с этим бороться?
Самое главное - не писать программ на Java. Разве что под Android, там все программы де-факто на Java и ничего с этим в общем-то не поделаешь, но там она и не тормозит так.
Кстати, никакого особо удобства для программиста она взамен не дает. Просто жрет много ОЗУ и грузит ЦП. Говнокодеры ее авторы.
C# и Python жрут гораздо меньше ресурсов. На них можно и нужно писать не очень крупные и достаточно срочные проекты. Для крупного проекта лучше поднапрячься, взять таки С++ и написать свой фреймворк для GUI и т. д., как сделали авторы Chromium.
И еще, не стоит на нем писать игр и фоновые службы (запущенный постоянно) типа "часики на рабочий стол" или "кнопочка Пуск для Win8". Фоновые службы не должны много жрать, т. к. если будут запущены они и потом запустить что-то тяжеловесное, то комп вообще зависнет..
Самое главное - не писать программ на Java. Разве что под Android, там все программы де-факто на Java и ничего с этим в общем-то не поделаешь, но там она и не тормозит так.
Кстати, никакого особо удобства для программиста она взамен не дает. Просто жрет много ОЗУ и грузит ЦП. Говнокодеры ее авторы.
C# и Python жрут гораздо меньше ресурсов. На них можно и нужно писать не очень крупные и достаточно срочные проекты. Для крупного проекта лучше поднапрячься, взять таки С++ и написать свой фреймворк для GUI и т. д., как сделали авторы Chromium.
И еще, не стоит на нем писать игр и фоновые службы (запущенный постоянно) типа "часики на рабочий стол" или "кнопочка Пуск для Win8". Фоновые службы не должны много жрать, т. к. если будут запущены они и потом запустить что-то тяжеловесное, то комп вообще зависнет..
Грамотно писать программы. Кроме того, можно выбрать более быстрый для написания программы или более быстрый для исполнения компьютером язык.
Александр Макаров
Пример питона и Си в Питоне типы данных можно не определять, но тогда компилятор будет проверять что это за тип данных и он будет делать это всегда, хочешь ты или нет, а в Си то нету такой фигни.
Выбор языка от этого не зависит.
Например, писать что-то приличное под андроид можно только на джаве, клиентские скрипты для веба - только на джаваскрипте, серверные имеет смысл писать на php, а на прочем - вряд ли, для микроконтроллеров на выбор всего два варианта - С и ассемблер. Лично я начинала с редкого диалекта C++ CLI, потому что нужно было обеспечить совместимость моего кода с кодом коллег, потом вслед за ними ушла на классический С++, а когда надобность подстраиваться под кого-то отпала, остановилась на C# и проблем не вижу.
Если тормозят какие-то участки кода, следует размыслить об ассемблерных вставках, а если запросы к БД, - о смене БД. Вплоть до NoSQL, которые вроде хвалят за быстроту. А еще бывают OLAP-кубы, цель которых - тоже скорость.
Например, писать что-то приличное под андроид можно только на джаве, клиентские скрипты для веба - только на джаваскрипте, серверные имеет смысл писать на php, а на прочем - вряд ли, для микроконтроллеров на выбор всего два варианта - С и ассемблер. Лично я начинала с редкого диалекта C++ CLI, потому что нужно было обеспечить совместимость моего кода с кодом коллег, потом вслед за ними ушла на классический С++, а когда надобность подстраиваться под кого-то отпала, остановилась на C# и проблем не вижу.
Если тормозят какие-то участки кода, следует размыслить об ассемблерных вставках, а если запросы к БД, - о смене БД. Вплоть до NoSQL, которые вроде хвалят за быстроту. А еще бывают OLAP-кубы, цель которых - тоже скорость.
Александр Макаров
Тока на Java? А что на счёт библиотеки Qt????
Основные потери у таких языков как java или языков семейства NET в том, что они компилируются не в машинный код (IL, byte code), и выполняются на виртуальной машине, что требует дополнительных затрат. Что же касается программ, компилируемых в машинный код, то нормально они компилируются и оптимизируются. Серьёзных потерь не будет. Они конечно будут, но не такие, чтоб переживать. Основная работа ложится на компилятор, а не на программу. Кстати говоря это ещё не последний этап преобразования программирования.
Я вот работала, с пожилыми дядьками, которые работали в СССР, на ЕС, и БЭСМ, а там был 1 Мбайт памяти, на больших машинах, а на младших 64-128 Кб. У них была привычка, инстинктивная, доводить алгоритмы до совершенства! Я пишу, программа на 5 Мбайт, а такой дядька пишет, 500 кбайт, и работает быстрей! Потому, что мой алгоритм тупой, как грабли, а у него произведение искусства, было обидно, поначалу, потом научилась.
Согласна: сейчас железо мощное. А скрипты? Тот же JS, крутится на чем? На ОЧЕНЬ хреновых движках, которые левой ногой писали! А SQL? Длинные запросы ведь реально по 2 часа могут работать! А если сделать нормальный алгоритм, то 10-20 минут!
Мозги у программистов: для придумывания алгоритмов, а не заучивания модных языков, как тут тупая школота спрашивает: "Какой самый лучший язык, чтоб стать супер-программистом? " Мозги никто не отменял, и не отменит, при любом, мощном железе.
Согласна: сейчас железо мощное. А скрипты? Тот же JS, крутится на чем? На ОЧЕНЬ хреновых движках, которые левой ногой писали! А SQL? Длинные запросы ведь реально по 2 часа могут работать! А если сделать нормальный алгоритм, то 10-20 минут!
Мозги у программистов: для придумывания алгоритмов, а не заучивания модных языков, как тут тупая школота спрашивает: "Какой самый лучший язык, чтоб стать супер-программистом? " Мозги никто не отменял, и не отменит, при любом, мощном железе.
Денис Майборода
Дядьки, которые работали в СССР и которые до сих пор выдержали конкуренцию, это не программисты, а Математики (да-да с большой буквы). Так как в то время было только две школы программистов - Ленинградская и Новосибирская, причём обе были математическим.
И их привычка к оптимизации не инстинктивная, а они просто не умеют по-другому. Хорошо это или плохо - отдельный вопрос.
Кстати, сдача сырого кода портит карму ;)
И их привычка к оптимизации не инстинктивная, а они просто не умеют по-другому. Хорошо это или плохо - отдельный вопрос.
Кстати, сдача сырого кода портит карму ;)
Денис Майборода
Сводить 2 часа выполнения запроса к 10-20 минутам - дело техники, но иногда дешевле написать нечто среднее (30 минут например). Потому что излишне оптимизированный код на порядок сложнее переделывать, а если за это сажают студента, то это вообще абзац…
Асыланбек Баймолда
Есит два подхода:
1) быстро работает/мало занимает
2) позволяет быстро разобраться с нуля и внести изменения
Эти два подхода взаимоисключающие.
1) быстро работает/мало занимает
2) позволяет быстро разобраться с нуля и внести изменения
Эти два подхода взаимоисключающие.
Бороться, как самурай!!! Настоящий самурай может всю жизнь точить клинок ради одного единственного удара!
Сейчас такие мощностя у железа, что об этом можно не думать
Александр Макаров
Точно можно об этом не думать?
Александр Воротынцев
Какие там мощностя? Берём роутер ваш любимый вайфайный. Если не будете экономить каждый байт -- не взлетит прошивка.
Если не умеете писать код хорошего качества (читабельный+тестируемый) ЗАБУДЬТЕ про оптимизацию!
Необходимое условие НАЧАЛА оптимизации кода - наличие тестов, которые демонстрируют присутствие проблемы и позволяют её локализовать. Даже когда видна проблема с производительностью, устранить её могут 1-2 человека в команде (обычно самые квалифицированные). А написать код, который СРАЗУ будет оптимален, трудно даже профессионалам высокого класса.
То есть, сначала научитесь тестировать свой код, а потом уже оптимизируйте.
Эволюция языков программирования идёт не в сторону оптимизации, а в сторону облегчения вхождения. Это просто бизнес - чем больше народу программирует, тем больше бабок получают разработчики и внедренцы языков. Если при этом что-то начинает работать быстрее, то это чисто случайность.
То что хотите изучать С - это полезное и, я бы даже сказал, необходимое дело. Порешайте на нем не простенькие, а олимпиадные задания. Полезно для мозга.
По поводу C++ будьте осторожнее. Согласно индексу TIOBE Java выглядит привлекательнее.
С++, Java и С# - языки, которые учат для профессиональной работы. Выбор определяется личными предпочтениями и анализом рынка труда. Кстати работу на C можно найти, хотя и сложнее, чем на вышеперечисленной тройке ширпотреба.
Необходимое условие НАЧАЛА оптимизации кода - наличие тестов, которые демонстрируют присутствие проблемы и позволяют её локализовать. Даже когда видна проблема с производительностью, устранить её могут 1-2 человека в команде (обычно самые квалифицированные). А написать код, который СРАЗУ будет оптимален, трудно даже профессионалам высокого класса.
То есть, сначала научитесь тестировать свой код, а потом уже оптимизируйте.
Эволюция языков программирования идёт не в сторону оптимизации, а в сторону облегчения вхождения. Это просто бизнес - чем больше народу программирует, тем больше бабок получают разработчики и внедренцы языков. Если при этом что-то начинает работать быстрее, то это чисто случайность.
То что хотите изучать С - это полезное и, я бы даже сказал, необходимое дело. Порешайте на нем не простенькие, а олимпиадные задания. Полезно для мозга.
По поводу C++ будьте осторожнее. Согласно индексу TIOBE Java выглядит привлекательнее.
С++, Java и С# - языки, которые учат для профессиональной работы. Выбор определяется личными предпочтениями и анализом рынка труда. Кстати работу на C можно найти, хотя и сложнее, чем на вышеперечисленной тройке ширпотреба.
Буду очень рад новым подписчикам. Интересные Факты про UK
http://vk.com/englishtimecom
http://vk.com/englishtimecom
Смотри все упирается в "цель" образно говоря. Да, С к примеру очень производителен, в плане предоставляемых возможностей - они потенциально велики, с этой стороны он очень хорош, и идеально подходит для микроконтроллеров, небольших автоматизированных систем, небольших системных программ. - Но отбирает время если программа пишется для компьютера. - Приходится переходить на более высокий уровень абстракции и отдавать часть рутинной работы на автоматическое управление самой "системе".
С++ Тоже нативный код но тупо как золотой стандарт языка программирования человечества =) Если Миру пришлось бы выбирать из всех один - это был бы он.
Но поскольку все развивается и ресурсы у программиста как у человека ограниченны, приходится опять переходить на более высокий уровень C# к примеру, он нацелен на бизнес, на практические моменты, удобство, и много чего но у всех основных языков своя "целевая аудитория" =) Короче говоря, понимая цель понимаешь какой язык нужен и почему. Бороться не нужно, просто нужно более менее качественный код писать =)
С++ Тоже нативный код но тупо как золотой стандарт языка программирования человечества =) Если Миру пришлось бы выбирать из всех один - это был бы он.
Но поскольку все развивается и ресурсы у программиста как у человека ограниченны, приходится опять переходить на более высокий уровень C# к примеру, он нацелен на бизнес, на практические моменты, удобство, и много чего но у всех основных языков своя "целевая аудитория" =) Короче говоря, понимая цель понимаешь какой язык нужен и почему. Бороться не нужно, просто нужно более менее качественный код писать =)
Похожие вопросы
- А где можно узнать, сферы применения всех современных Языков Программирования?
- Поясните чайнику несколько базовых термина программирования! Вопросы внутри. Объясняйте простым языком. Лучшему 10 балов
- является ли фортран современным языком программирования?
- Назовите пожалуйста современные языки программирования.. . (не более 10 лет) Заранее спасибо!
- характеристика современных языков программирования основанных на с++ теория.
- Какие из современных языков программирования самые сложные для изучения и какие наоборот самые простые?
- Подскажите! Программирование (Вопрос внутри)
- Какой язык программирования выбрать для изучения для начинающего ? (внутри)
- Необходимо консультация по реальности проекта, и выбору языка программирования для реализации нейросети. Подр. и внутри.
- А вот правельно ли я думают о языках программированиях? И каквообще делают?? (см.внутри)