Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Проблемы совр. программирования |
Автор: pndfy 18.3.2008, 23:06 |
Здравствуйте уважаемые программисты. Дело в том, что я пишу доклад на конференцию в своём ВУЗе на тему "Проблемы современного программирования" и не хочу заниматься плагиатом, а проработать тему самому... Если у кого- нибудь есть мысли по данной теме, прошу изложить их здесь (чтобы моя работа не была моим личным субъективным мнением). Спасибо за внимание. |
Автор: Lazin 19.3.2008, 09:22 |
главная проблема программирования - постоянное усложнение программного обеспечения, что-бы его компенсировать и нужны новые технологии программирования |
Автор: Empirik 19.3.2008, 09:59 |
Слишком много приходиться держать в голове, так, как много способов сделать одно и то же. Так же усложняются модели предметных областей с которыми приходиться работать. |
Автор: inside_pointer 19.3.2008, 10:45 |
Плохое образование выдаваемое за хорошее => плохие программы выдаваемые за хорошие => 1С например, игры штамповки(старкрафт вот второй даже смотреть не хочется). |
Автор: SABROG 19.3.2008, 11:58 |
Огромное количество альтернативных технологий: компиляторов, сред разработки, операционных систем, архитектур процессоров, библиотек, языков программирования, баз данных. А ко всему этому километры документации. Чтобы написать конкурентоспособный проект приходится изучать сильные и слабые стороны всех этих технологий и выбрать оптимальный вариант. Количество человек фигурирующих в "титрах" с каждым годом растет, т.к. привлекаются специалисты разных областей, от программистов до актеров анимирующих персонажи в играх. В связи с такой тенденцией все больше появляются полу-программисты, которые "нахватались" поверхностных знаний обо всем: assembler, javascript, html, visual basic (excel), sql, java, php, perl, python, shell script и т.д. С поверхностными знаниями о качестве софта говорить не приходится. Размеры программ растут на пустом месте только потому, что программист решил использовать библиотеку "all in one", где разработчики пытались учесть все и вся. Зато как удобно воспроизвести flash файл с рекламным баннером одной командой "load("http://site.com/file.swf");", и не задумываться о таких вещах как протокол tcp/ip, сокеты, реализация протокола http, прокси-серверы, dns серверы. |
Автор: Coder 19.3.2008, 16:49 |
Под словом программист масса понимает любого компьютерщика. Когда будешь выступать уточни, кто такой программист. Т.к. если тебя будут слушать люди далекие от этого -будут считать, что ты рассказываешь о компьютерщиках в общем. ИМХО. Так же согласен с SABROG. |
Автор: vinter 19.3.2008, 17:31 | ||
Проблемы совр. программирования - современные программисты.
эх ща флейм попрет.. Это с чего это starcraft 2 штамповка? |
Автор: inside_pointer 20.3.2008, 02:53 | ||
Взяли старкрафт, приделали к нему 3д и выпустили, щас так модно, взять заготовочку переделать её под игру и выдать за своё. Откуда такое количество игр, а вот оттуда, что все на готовом. А раньше как было... Fade To Black, Doom2 гораздо интереснее проходить что-то новое а не что-то старое. Вот сплинтер селл, они не смогли написать чтобы он дрался, он может только ходить, потому что нет такой возможности в заготовке, неудобно, она сделана не под это. Всё щас тырят сами ничо не пишут. |
Автор: archimed7592 20.3.2008, 07:25 | ||
Было бы прекрасно, если бы они нахватались "обо всём". Как правило это всё сужается до чего-нибудь одного(C#/Java/Delphi). На самом деле, распространение полу-программистов(или обезьян, http://forum.sources.ru/index.php?showtopic=227570), а также их произведений искусства - это проблема IT индустрии и к проблемам программирования, IMHO, отношения особо не имеет. |
Автор: Lazin 20.3.2008, 08:49 |
archimed7592, ты это![]() имел ввиду ![]() |
Автор: Alek86 20.3.2008, 10:52 |
Помойму, главная проблема программирования - это старый код, написанный с помощью огромных монолитов-фукций и классов Самое плохое, что программист, который работает с таким кодом, со временем сам "опускается" до того уровня ("раз везде так, то почему я буду надрываться, я что, крайний?"). И уже не хочет учить/использовать новые технологии, так как это утонет в той куче де...ма, в которой он каждый день барахтается. Помогает только рефакторинг. А какой процент фирм-владельцев кода в состоянии выкинуть кучу бабок на "ненужные перестройки кода"? |
Автор: SABROG 20.3.2008, 12:27 |
Может я и не прав. Но мне кажется следующий шаг в будущем программирования это перетаскивание блоков с готовой реализацией чего-либо на каком-нибудь виджете и связывание этих блоков друг с другом, на примере сигналов и слотов в Qt. Или как сейчас можно свой сайт построить, берешь панельку с названием "Новости", кидаешь ее на любое удобное место, берешь панельку с названием "Форум" кидаешь ее на другое место и т.д. Проектирование с каждым годом становится все более визуальным. Как мне кажется, все идет к тому, что в тех же программистах пишущих на Python'e, Jav'e, Visual Basic будут видеть тех же извращенцев, которых видят в людях пишущих на ассемблере или даже на чистом WinApi (!). Удивительно, но уже сейчас внедряют мини ОС в чипы на базе линукса или винды, а людей пишущих логику микросхемы паяльником уже не называют радиолюбителями, их называют мазохистами. А текущее поколение радиолюбителей это люди которые проектируют схему на компьютере, покупают готовые платы, готовые микросхемы, которые тупо защелкиваются в пазах без паяльника, используют программаторы с готовыми прошивками. Программирование видоизменяется и само понятие постепенно становится шире. Особенно радуют слух громкие фразы девушек типа "да ты гений !", "да он хакер!", а всего-то отредактировал .bat файл, или нашел забытый пароль с помощью программы PassAsterisk (или как ее там ? ;) ) |
Автор: comcon1 20.3.2008, 16:37 |
Все слишком быстро меняется. Вот стандартная библотека С++, к счастью, больше не изменяется. Я вот потратил день, только потому, что в документации к бусту, который на одну сотую версии выше моего стоял void вместо double&. А чтобы это выяснить пришлось лезть внутрь бустных шаблонов и смотреть чО за ошибка... и так все время. А если ты год не прикасался к чему-нить, там к Java, например, то все - ты отстал(( |
Автор: archimed7592 20.3.2008, 21:45 | ||
Это не проблема программирования. И не проблема вовсе. Скажем, техника для производства пекарных изделий(к примеру) тоже меняется. Буквально в следующем году измениться.
Дело не в состоятельности или несостоятельности... Дело в экономической выгоде, которой в общем случае от рефакторинга не будет. |
Автор: inside_pointer 21.3.2008, 04:15 | ||
индустрия влияет на программистов, вернее на людей, она диктует им условия на которых они могут что-либо заработать, а те соглашаются или отказываются девчёнка в соседней ветке пишет, что её заставляют писать деревья, разве ей нужны эти деревья, нут, ей сказали пиши а то уволим потихонечку, и она пишет а что она пишет - ей всё равно |
Автор: comcon1 21.3.2008, 11:03 | ||
По-моему, будет, если ориентироваться на "длинные деньги". Проблема с быстро-меняющимися ресурсами состоит в том, что не понятно, какое получать образование програмисту. Техника производства пекарных изделий немного не то. Вот я, к примеру, нуб, живу в москве, посещаю рунет. По образованию - биофизик. У меня есть друзя-программисты, по образованию програмисты, из моего родного города. Дык у меня иногда такое ощущение, что они немного не в теме, о том, что происходит в компутерном мире... А уж насколько они не в теме по сравнению с профессиональными програмистами с мехмата или ВМК.. я уж и боюсь думать.. |
Автор: bsa 21.3.2008, 13:32 | ||
Был у нас "профессионал" с ВМК. Мягко говоря, он не был в теме ![]() Имхо, программистами не становятся - ими рождаются. Тут нужен определенный склад ума, любопытство и желание учиться чему-то новому... |
Автор: archimed7592 21.3.2008, 13:44 | ||
Так абсолютно в любой области. Так что, IMNSHO, можно стать кем угодно, лишь бы желание было ![]() |
Автор: SABROG 21.3.2008, 21:48 |
А вот христианская религия считает любопытство - грехом. Считается, что не нужно отвлекаться на мироустройство, а нужно молить Господа Бога, чтобы за все простил и не отправил в гиену огненную. Вот я теперь и думаю, походу нам вместе с вами гореть, ну хоть не скучно будет поорать хором... вечность. |
Автор: marcusmae 22.3.2008, 02:36 |
Нда, ребят, я извиняюсь, но по-моему топикстартер имел ввиду немного другое. Когда говорят, скажем, о современных проблемах математики, это - не о том, какие все идиоты и как всё плохо, а о том, какие конкретные предметные задачи в данный момент стоят перед отраслью. В 70ые они были одними, в 90ые - другими, сейчас - ещё какие-то. Уж не знаю, может, это - свободное программное обеспечение, виртуализация или искуственный интеллект. Что-то такое имеется ввиду, имхо. Ах, да, ну на мехмате и вмк вообще-то не программистов готовят, если что ![]() ![]() |
Автор: pndfy 24.3.2008, 21:01 |
Спасибо большое всем- есть над чем задуматься. Попытаюсь отразить и развить ваши интересные на мой взгляд мысли... Работать..работать..работать |
Автор: profispb 24.3.2008, 23:04 |
Основная проблема, эт не профессионализм разработчиков. Что я хочу сказать.... то что любой ребенок(пацан девченка лет так 16-17) почитав книжку по какому-нибудь визуальному средству разработки.. мнит себя важной птицей... типа пару прграмм из книжки запустилось и круто.... Программистом надо родиться!)) И проблема в том что в вузах перестают учить элементарной алгоритмизации, в моем понимании все программирование строиться на алгоритмизации и если студента учат допустим Delphi без преподования Pascal и посторения алгоритмов, то какой в этом смысл? Из 10 студентов, будет всего пара самых талантливых которые буду понимать что происходит на ранних стадиях обучения, но в конечном итоге все свалиться на нет..... И самое обидное то, что тех кто пишут эти визуальные системы лет так через 20-30 не будет во все, а те кто будут они не будут знать не Си/С++, java, asm. Потому что нет в вузах и квалифициррованных преподавателей по этим языкам...(( А программировать на визуальных языках может и ребенок - я утрирую, но эт так! |
Автор: 0lmer 25.3.2008, 10:52 | ||
profispb +1 ИМХО еще у очень многих "программистов" нет желания учиться чему то новому и совершенствовать уже имеющиеся знания. Видели бы вы как у нас (СФУ->ФИПУ->2 курс) народ недавно со слезами переходил из любимой "среды разработки" borland C++ for DOS, на вижуал студию и билдер ![]() Добавлено @ 10:54
многие даже этого не могут, а считают себя "программистами". |
Автор: Любитель 25.3.2008, 15:07 |
![]() А причём C/C++ ![]() |
Автор: bsa 25.3.2008, 15:13 | ||
А что есть другие инструменты (языки) для написания программ? ![]() |
Автор: Lazin 25.3.2008, 15:43 | ||
действительно утрируешь, визуально ты кнопочки на форме напрограммируешь, менюшки там всякие и тд. а дальше клавиатурой пользоваться приходиться))) а основные проблемы современного программирования, это: Масштабируемость. Если у меня сервер работает с одним клиентом одновременно, то завтра возможно мне понадобиться работать с сотней или тысячей клиентов параллельно. Безопасность. Всем нужно программное обеспечение работающее годами без перезагрузки... Повторное использование кода, поддержка, тестирование и прочие "производственные" проблемы. При работе в команде(и не только) это очень важно, так как снижает затраты на производство софта и повышает его качество. Наверняка можно добавить что нибудь еще, и все это отражается на инструментах для программистов, появляются различные фреймверки, IDE, утилиты, новые методики разработки ПО... Программисты плюются и говорят что это все не Тру, что на этом любой может набыдлокодить, но индустрии на самом деле нужно просто писать работающий код, который легко поддерживать, модифицировать и тд. ну я и загнул)) |
Автор: JackYF 25.3.2008, 17:57 | ||
Lazin, хорошо, кстати, сказал. Поправка только к этому:
Дело в том, что многие (не все, Qt, скажем, сюда не относится) средства разработки "попустительствуют" к "быдлокодерству". И вот такой код потом ни отрефакторить, ни повторно использовать, ни модифицировать нормально не удаётся без больших затрат времени и сил. И вот это есть плохо. |
Автор: Любитель 25.3.2008, 18:09 |
Не, ну строго говоря - наличие формошлёпки уже шаг к развязыванию программеров ![]() |
Автор: JackYF 25.3.2008, 21:07 | ||
Дык юзай на здоровье. Претензии в том, что если человек потом не знает, как изменить то, что нагенерило какое-то чудо, то вот это чудовищно. ![]() |
Автор: archimed7592 25.3.2008, 21:57 |
Ребят, объясните мне, дураку, как размножение обезьян относится к проблемам программирования 0_о. |
Автор: SABROG 25.3.2008, 23:50 | ||
Попытаюсь объяснить. Если брать понятие "программирование" ни как процесс действия, непосредственно написания кода в блокноте, а в ключе "качества напрограммированного", то проблема обезьян вылазит сама собой. Отсюда, если качество программ плохое, то это уже проблема. Проблему современного программирования можно еще рассматривать под другим углом. Например человек приходит на форум и жалуется, вот я не знаю как использовать эту функцию, т.к. нет хорошего описания. Т.е. вот тебе проблема программирования. А вот современного или нет другой вопрос. Если библиотека или язык программирования современный, то наверное и программирование современное. ![]() Только мне кажется речь все-же идет о глобальном смысле. Что-то типа "Проблемы современного жития". Сюда можно и глобальное потепление приплести и детей мутантов и проблему с бензином... |
Автор: archimed7592 25.3.2008, 23:54 |
Проблема IT индустрии ![]() А так, по теме, я согласен с первой частью http://forum.vingrad.ru/index.php?showtopic=201348&view=findpost&p=1450596 marcusmae... |
Автор: SABROG 25.3.2008, 23:57 |
IT - Internet Technologies (или как там), до интернета у меня и были свои "проблемы современного программирования". Я без интернета за компом сидел 5 лет и к моим программам никакие web/cgi/http никоим образом не относились. Не согласен в общем ![]() Только я не думаю, что у математиков стояла в 70 годы задача отличная от 90х годов. Задача может стоять у государства или отдельно взятой конторки. У медицины может и стоят задачи, всех вылечить от рака, спида, продлить жизнь и т.д. В принципе эти задачи были уже давно, другое дело, что люди не знали о вирусах и бактериях и не знали как обозвать смертельные болезни. А какая же глобальная проблема должна стоять перед программистами ? Искусственный интеллект чтоль, программа, которая пишет сама себя, нейронные сети, генетические алгоритмы, наращивание мощностей ? |
Автор: archimed7592 26.3.2008, 00:58 | ||
Ещё бы ![]() ![]() К слову, программирование - понятие растяжимое. Более точный термин - Computer Science(CS), соответственно о его проблемах можно и поговорить ![]()
Вот здесь не согласен я ![]() |
Автор: marcusmae 26.3.2008, 01:29 | ||
SABROG, меня не впечатлили Ваши доводы. В школу идут не сразу в 11ый класс. Сначала проблема - это научиться читать, писать, считать, действовать по элементарной логике. То есть, наверно, не стоит сразу браться за интегральные уравнения или делать вывод, почему Герасим утопил свою бедную собачку. Такая же логика, в общем, в науке - эволюционирование от простого к сложному, преемственность - нахождение одних разработок в контексте других достижений и, конечно же, компромисность, состоящая в том, что люди не бьются над задачей, которую они просто в принципе не могут решить в данную эпоху, но делают шаги, которые, как кажется, в целом должны продвинуть положение дел. Чтобы не останавливаться, Вы можете, например, сделать гипотезу или принять допустимое упрощение, к которому Ваши последователи, может, вернутся, если им покажется, что роль казавшегося незначительным аспекта должна быть теперь изучена. Это - бесконечный путь!
Чтобы говорить о какой-то проблеме нужно, как минимум, знать её и работать в области этой проблемы. Иначе всё сойдёт на разговор ни о чём, на дилетантизм. Вы, вероятно, считаете себя программистами, не зная проблем программирования? ![]() ![]() |
Автор: SABROG 26.3.2008, 01:34 |
Обычно алгоритмы решают конкретные задачи для конкретных отраслей. Как правило люди пользуются тем что есть за неимением лучшего. Например можно тупо отсортировать массив по логике, а можно применять алгоритмы типа пузырьковой сортировки или быстрая сортировка. Являются ли не решенные задачи проблемой программирования ? Например никто и ничто не мешает тебе программировать, у тебя вообще нет никаких проблем кроме одной - необходимости чего-нибудь напрограммировать. Если думать, что каждый алгоритм это проблема программирования, то написание программ вообще - это проблема программирования и само программирование не может существовать без этой проблемы. Я все-таки склонен рассматривать тему "проблемы современного программирования" как перечисление препятствий, которые мешают программировать. Что-то типа проблемы осенезаторов: воняет, а работать надо. ![]() |
Автор: archimed7592 26.3.2008, 12:54 | ||||
marcusmae, лови плюс - хоть одну современную проблему озвучил ![]()
Ну а ты возьми любую программу - она состоит из набора классических задач и их вариаций(аля как разложить гору камней по кучкам, чтобы разница между массой кучек была минимальной) и некоторой логики(также называемой бизнес-логикой). Дык вот, логика - это не алгоритм... Это просто выражение некоторых действ в терминах языка программирования и контексте конкретной программы. Ну а вариации классических задач - это не что иное, как проблемы(просто уже решённые).
Кстати, если взглянуть на английское слово "problem" и его трактование в области науки, то "Modern problems in programming" - это будут как раз задачи. |