Другие языки программирования и технологии

Современные языки программирования вопрос внутри

Я так понял что современные языки идут по пути оптимизации труда кодера, но при этом создают нагрузку на железо из-за лишнего кода для оптимизации труда, есть идеи как с этим бороться?
Сам не программист, писал простенькие программы на паскале, сейчас решил выучить C, потом Cpp, потом уже что понадобится.
> есть идеи как с этим бороться?
Самое главное - не писать программ на Java. Разве что под Android, там все программы де-факто на Java и ничего с этим в общем-то не поделаешь, но там она и не тормозит так.
Кстати, никакого особо удобства для программиста она взамен не дает. Просто жрет много ОЗУ и грузит ЦП. Говнокодеры ее авторы.

C# и Python жрут гораздо меньше ресурсов. На них можно и нужно писать не очень крупные и достаточно срочные проекты. Для крупного проекта лучше поднапрячься, взять таки С++ и написать свой фреймворк для GUI и т. д., как сделали авторы Chromium.
И еще, не стоит на нем писать игр и фоновые службы (запущенный постоянно) типа "часики на рабочий стол" или "кнопочка Пуск для Win8". Фоновые службы не должны много жрать, т. к. если будут запущены они и потом запустить что-то тяжеловесное, то комп вообще зависнет..
Евгений Семёнычев
Евгений Семёнычев
26 662
Лучший ответ
Грамотно писать программы. Кроме того, можно выбрать более быстрый для написания программы или более быстрый для исполнения компьютером язык.
ГК
Гена Куценко
75 837
Александр Макаров Пример питона и Си в Питоне типы данных можно не определять, но тогда компилятор будет проверять что это за тип данных и он будет делать это всегда, хочешь ты или нет, а в Си то нету такой фигни.
Выбор языка от этого не зависит.
Например, писать что-то приличное под андроид можно только на джаве, клиентские скрипты для веба - только на джаваскрипте, серверные имеет смысл писать на php, а на прочем - вряд ли, для микроконтроллеров на выбор всего два варианта - С и ассемблер. Лично я начинала с редкого диалекта C++ CLI, потому что нужно было обеспечить совместимость моего кода с кодом коллег, потом вслед за ними ушла на классический С++, а когда надобность подстраиваться под кого-то отпала, остановилась на C# и проблем не вижу.
Если тормозят какие-то участки кода, следует размыслить об ассемблерных вставках, а если запросы к БД, - о смене БД. Вплоть до NoSQL, которые вроде хвалят за быстроту. А еще бывают OLAP-кубы, цель которых - тоже скорость.
Дмитрий Пучкин
Дмитрий Пучкин
66 203
Александр Макаров Тока на Java? А что на счёт библиотеки Qt????
Основные потери у таких языков как java или языков семейства NET в том, что они компилируются не в машинный код (IL, byte code), и выполняются на виртуальной машине, что требует дополнительных затрат. Что же касается программ, компилируемых в машинный код, то нормально они компилируются и оптимизируются. Серьёзных потерь не будет. Они конечно будут, но не такие, чтоб переживать. Основная работа ложится на компилятор, а не на программу. Кстати говоря это ещё не последний этап преобразования программирования.
Я вот работала, с пожилыми дядьками, которые работали в СССР, на ЕС, и БЭСМ, а там был 1 Мбайт памяти, на больших машинах, а на младших 64-128 Кб. У них была привычка, инстинктивная, доводить алгоритмы до совершенства! Я пишу, программа на 5 Мбайт, а такой дядька пишет, 500 кбайт, и работает быстрей! Потому, что мой алгоритм тупой, как грабли, а у него произведение искусства, было обидно, поначалу, потом научилась.
Согласна: сейчас железо мощное. А скрипты? Тот же JS, крутится на чем? На ОЧЕНЬ хреновых движках, которые левой ногой писали! А SQL? Длинные запросы ведь реально по 2 часа могут работать! А если сделать нормальный алгоритм, то 10-20 минут!
Мозги у программистов: для придумывания алгоритмов, а не заучивания модных языков, как тут тупая школота спрашивает: "Какой самый лучший язык, чтоб стать супер-программистом? " Мозги никто не отменял, и не отменит, при любом, мощном железе.
Денис Майборода Дядьки, которые работали в СССР и которые до сих пор выдержали конкуренцию, это не программисты, а Математики (да-да с большой буквы). Так как в то время было только две школы программистов - Ленинградская и Новосибирская, причём обе были математическим.

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

Кстати, сдача сырого кода портит карму ;)
Денис Майборода Сводить 2 часа выполнения запроса к 10-20 минутам - дело техники, но иногда дешевле написать нечто среднее (30 минут например). Потому что излишне оптимизированный код на порядок сложнее переделывать, а если за это сажают студента, то это вообще абзац…
Асыланбек Баймолда Есит два подхода:
1) быстро работает/мало занимает
2) позволяет быстро разобраться с нуля и внести изменения
Эти два подхода взаимоисключающие.
Бороться, как самурай!!! Настоящий самурай может всю жизнь точить клинок ради одного единственного удара!
Сейчас такие мощностя у железа, что об этом можно не думать
Александр Макаров Точно можно об этом не думать?
Александр Воротынцев Какие там мощностя? Берём роутер ваш любимый вайфайный. Если не будете экономить каждый байт -- не взлетит прошивка.
Если не умеете писать код хорошего качества (читабельный+тестируемый) ЗАБУДЬТЕ про оптимизацию!

Необходимое условие НАЧАЛА оптимизации кода - наличие тестов, которые демонстрируют присутствие проблемы и позволяют её локализовать. Даже когда видна проблема с производительностью, устранить её могут 1-2 человека в команде (обычно самые квалифицированные). А написать код, который СРАЗУ будет оптимален, трудно даже профессионалам высокого класса.

То есть, сначала научитесь тестировать свой код, а потом уже оптимизируйте.

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

То что хотите изучать С - это полезное и, я бы даже сказал, необходимое дело. Порешайте на нем не простенькие, а олимпиадные задания. Полезно для мозга.

По поводу C++ будьте осторожнее. Согласно индексу TIOBE Java выглядит привлекательнее.
С++, Java и С# - языки, которые учат для профессиональной работы. Выбор определяется личными предпочтениями и анализом рынка труда. Кстати работу на C можно найти, хотя и сложнее, чем на вышеперечисленной тройке ширпотреба.
Буду очень рад новым подписчикам. Интересные Факты про UK
http://vk.com/englishtimecom
Смотри все упирается в "цель" образно говоря. Да, С к примеру очень производителен, в плане предоставляемых возможностей - они потенциально велики, с этой стороны он очень хорош, и идеально подходит для микроконтроллеров, небольших автоматизированных систем, небольших системных программ. - Но отбирает время если программа пишется для компьютера. - Приходится переходить на более высокий уровень абстракции и отдавать часть рутинной работы на автоматическое управление самой "системе".
С++ Тоже нативный код но тупо как золотой стандарт языка программирования человечества =) Если Миру пришлось бы выбирать из всех один - это был бы он.
Но поскольку все развивается и ресурсы у программиста как у человека ограниченны, приходится опять переходить на более высокий уровень C# к примеру, он нацелен на бизнес, на практические моменты, удобство, и много чего но у всех основных языков своя "целевая аудитория" =) Короче говоря, понимая цель понимаешь какой язык нужен и почему. Бороться не нужно, просто нужно более менее качественный код писать =)
Ali Temel
Ali Temel
23

Похожие вопросы