Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата(vinter)

эх ща флейм попрет.. Это с чего это starcraft 2 штамповка? 

Взяли старкрафт, приделали к нему 3д и выпустили, щас так модно, взять заготовочку переделать её под игру и выдать за своё.
Откуда такое количество игр, а вот оттуда, что все на готовом.
А раньше как было... Fade To Black, Doom2 гораздо интереснее проходить что-то новое а не что-то старое. Вот сплинтер селл, они не смогли написать чтобы он дрался, он может только ходить, потому что нет такой возможности в заготовке, неудобно, она сделана не под это. Всё щас тырят сами ничо не пишут.

Автор: korian 20.3.2008, 03:50
Цитата(inside_pointer @  20.3.2008,  01:53 Найти цитируемый пост)
Взяли старкрафт, приделали к нему 3д и выпустили, щас так модно, взять заготовочку переделать её под игру и выдать за своё.

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

Автор: archimed7592 20.3.2008, 07:25
Цитата(SABROG @  19.3.2008,  11:58 Найти цитируемый пост)
В связи с такой тенденцией все больше появляются полу-программисты, которые "нахватались" поверхностных знаний обо всем

Было бы прекрасно, если бы они нахватались "обо всём". Как правило это всё сужается до чего-нибудь одного(C#/Java/Delphi).
На самом деле, распространение полу-программистов(или обезьян, http://forum.sources.ru/index.php?showtopic=227570), а также их произведений искусства - это проблема IT индустрии и к проблемам программирования, IMHO, отношения особо не имеет.

Автор: Lazin 20.3.2008, 08:49
archimed7592, ты это
user posted image
имел ввиду smile)

Автор: 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
Цитата(comcon1 @  20.3.2008,  16:37 Найти цитируемый пост)
Все слишком быстро меняется.

Это не проблема программирования. И не проблема вовсе. Скажем, техника для производства пекарных изделий(к примеру) тоже меняется.


Цитата(comcon1 @  20.3.2008,  16:37 Найти цитируемый пост)
Вот стандартная библотека С++, к счастью, больше не изменяется.

Буквально в следующем году измениться.


Цитата(Alek86 @  20.3.2008,  10:52 Найти цитируемый пост)
А какой процент фирм-владельцев кода в состоянии выкинуть кучу бабок на "ненужные перестройки кода"?

Дело не в состоятельности или несостоятельности... Дело в экономической выгоде, которой в общем случае от рефакторинга не будет.

Автор: inside_pointer 21.3.2008, 04:15
Цитата(archimed7592)

это проблема IT индустрии и к проблемам программирования, IMHO, отношения особо не имеет. 

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

Автор: comcon1 21.3.2008, 11:03
Цитата(archimed7592 @  20.3.2008,  21:45 Найти цитируемый пост)
Дело не в состоятельности или несостоятельности... Дело в экономической выгоде, которой в общем случае от рефакторинга не будет.

По-моему, будет, если ориентироваться на "длинные деньги".

Проблема с быстро-меняющимися ресурсами состоит в том, что не понятно, какое получать образование програмисту. Техника производства пекарных изделий немного не то. Вот я, к примеру, нуб, живу в москве, посещаю рунет. По образованию - биофизик. У меня есть друзя-программисты, по образованию програмисты, из моего родного города. Дык у меня иногда такое ощущение, что они немного не в теме, о том, что происходит в компутерном мире... А уж насколько они не в теме по сравнению с профессиональными програмистами с мехмата или ВМК.. я уж и боюсь думать..

Автор: bsa 21.3.2008, 13:32
Цитата(comcon1 @ 21.3.2008,  11:03)
А уж насколько они не в теме по сравнению с профессиональными програмистами с мехмата или ВМК.. я уж и боюсь думать..

Был у нас "профессионал" с ВМК. Мягко говоря, он не был в теме  smile 
Имхо, программистами не становятся - ими рождаются. Тут нужен определенный склад ума, любопытство и желание учиться чему-то новому...

Автор: archimed7592 21.3.2008, 13:44
Цитата(bsa @  21.3.2008,  13:32 Найти цитируемый пост)
Тут нужен определенный склад ума, любопытство и желание учиться чему-то новому... 

Так абсолютно в любой области. Так что, IMNSHO, можно стать кем угодно, лишь бы желание было smile.

Автор: SABROG 21.3.2008, 21:48
А вот христианская религия считает любопытство - грехом. Считается, что не нужно отвлекаться на мироустройство, а нужно молить Господа Бога, чтобы за все простил и не отправил в гиену огненную. Вот я теперь и думаю, походу нам вместе с вами гореть, ну хоть не скучно будет поорать хором... вечность.

Автор: marcusmae 22.3.2008, 02:36
Нда, ребят, я извиняюсь, но по-моему топикстартер имел ввиду немного другое. Когда говорят, скажем, о современных проблемах математики, это - не о том, какие все идиоты и как всё плохо, а о том, какие конкретные предметные задачи в данный момент стоят перед отраслью. В 70ые они были одними, в 90ые - другими, сейчас - ещё какие-то. Уж не знаю, может, это - свободное программное обеспечение, виртуализация или искуственный интеллект. Что-то такое имеется ввиду, имхо.

Ах, да, ну на мехмате и вмк вообще-то не программистов готовят, если что  smile  Думать - учат  smile А программирования - на ВМК - первые 4 семестра лекций и семинаров, потом уже тока практикум, в котором каждый растёт в своём направлении, на своей кафедре. Например, на системном программировании будет что-то оно, на матстате - другое, на вычислительной математике - третье. А, может, вообще устроился на хорошую работу, и приходит только сессию сдавать.

Автор: 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, на вижуал студию и билдер smile, а для некоторых тот же билдер (который по идее промтая среда разработки) все еще лес дремучий и они даже проект там создать не в состоянии.

Добавлено @ 10:54

Цитата(profispb @  24.3.2008,  23:04 Найти цитируемый пост)
А программировать на визуальных языках может и ребенок - я утрирую, но эт так!


многие даже этого не могут, а считают себя "программистами".

Автор: Любитель 25.3.2008, 15:07
 smile 
А причём C/C++ smile

Автор: bsa 25.3.2008, 15:13
Цитата(Любитель @ 25.3.2008,  15:07)
smile 
А причём C/C++ smile

А что есть другие инструменты (языки) для написания программ? smile

Автор: Lazin 25.3.2008, 15:43
Цитата(profispb @  24.3.2008,  23:04 Найти цитируемый пост)
А программировать на визуальных языках может и ребенок - я утрирую, но эт так! 

действительно утрируешь, визуально ты кнопочки на форме напрограммируешь, менюшки там всякие и тд. а дальше клавиатурой пользоваться приходиться)))

а основные проблемы современного программирования, это:

Масштабируемость. Если у меня сервер работает с одним клиентом одновременно, то завтра возможно мне понадобиться работать с сотней или тысячей клиентов параллельно.
Безопасность. Всем нужно программное обеспечение работающее годами без перезагрузки...
Повторное использование кода, поддержка, тестирование и прочие "производственные" проблемы. При работе в команде(и не только) это очень важно, так как снижает затраты на производство софта и повышает его качество.
Наверняка можно добавить что нибудь еще, и все это отражается на инструментах для программистов, появляются различные фреймверки, IDE, утилиты, новые методики разработки ПО... Программисты плюются и говорят что это все не Тру, что на этом любой может набыдлокодить, но индустрии на самом деле нужно просто писать работающий код, который легко поддерживать, модифицировать и тд.

ну я и загнул))

Автор: JackYF 25.3.2008, 17:57
Lazin, хорошо, кстати, сказал.

Поправка только к этому:

Цитата(Lazin @  25.3.2008,  14:43 Найти цитируемый пост)
Наверняка можно добавить что нибудь еще, и все это отражается на инструментах для программистов, появляются различные фреймверки, IDE, утилиты, новые методики разработки ПО... Программисты плюются и говорят что это все не Тру, что на этом любой может набыдлокодить, но индустрии на самом деле нужно просто писать работающий код, который легко поддерживать, модифицировать и тд.

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

Автор: Любитель 25.3.2008, 18:09
Не, ну строго говоря - наличие формошлёпки уже шаг к развязыванию программеров smile Но разве формошлёпка - не есть гуд (хотя в идеале, конечно, формошлёпством вообще дизайнер должен заниматься - ну да ладно...). Любые ИДЕ приводят к тому, что зачастую люи их юзающие не понимаю, как сие работает толком. Однако это ИМХО целиком и полностью вина тех людей. Если меня устраивает как работают визарды, кодогенераторы, формошлёпки и прочая ИДЕ-шная муть - пояему не юзать? Только потому что ит из нот труъ?

Автор: JackYF 25.3.2008, 21:07
Цитата(Любитель @  25.3.2008,  17:09 Найти цитируемый пост)
Если меня устраивает как работают визарды, кодогенераторы, формошлёпки и прочая ИДЕ-шная муть - пояему не юзать?

Дык юзай на здоровье. Претензии в том, что если человек потом не знает, как изменить то, что нагенерило какое-то чудо, то вот это чудовищно. smile

Автор: archimed7592 25.3.2008, 21:57
Ребят, объясните мне, дураку, как размножение обезьян относится к проблемам программирования 0_о.

Автор: SABROG 25.3.2008, 23:50
Цитата(archimed7592 @ 25.3.2008,  21:57)
Ребят, объясните мне, дураку, как размножение обезьян относится к проблемам программирования 0_о.

Попытаюсь объяснить. Если брать понятие "программирование" ни как процесс действия, непосредственно написания кода в блокноте, а в ключе "качества напрограммированного", то проблема обезьян вылазит сама собой. Отсюда, если качество программ плохое, то это уже проблема.

Проблему современного программирования можно еще рассматривать под другим углом. Например человек приходит на форум и жалуется, вот я не знаю как использовать эту функцию, т.к. нет хорошего описания. Т.е. вот тебе проблема программирования. А вот современного или нет другой вопрос. Если библиотека или язык программирования современный, то наверное и программирование современное. smile

Только мне кажется речь все-же идет о глобальном смысле. Что-то типа "Проблемы современного жития". Сюда можно и глобальное потепление приплести и детей мутантов и проблему с бензином...

Автор: archimed7592 25.3.2008, 23:54
Цитата(SABROG @  25.3.2008,  23:50 Найти цитируемый пост)
Отсюда, если качество программ плохое, то это уже проблема.

Проблема IT индустрии smile.

А так, по теме, я согласен с первой частью 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 никоим образом не относились. Не согласен в общем smile

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

А какая же глобальная проблема должна стоять перед программистами ? Искусственный интеллект чтоль, программа, которая пишет сама себя, нейронные сети, генетические алгоритмы, наращивание мощностей ?

Автор: archimed7592 26.3.2008, 00:58
Цитата(SABROG @  25.3.2008,  23:57 Найти цитируемый пост)
Не согласен в общем

Ещё бы smile. IT/ИТ - информационные технологии smile. См. Википедию за разъяснениями...
К слову, программирование - понятие растяжимое. Более точный термин - Computer Science(CS), соответственно о его проблемах можно и поговорить smile.


Цитата(SABROG @  25.3.2008,  23:57 Найти цитируемый пост)
Только я не думаю, что у математиков стояла в 70 годы задача отличная от 90х годов. Задача может стоять у государства или отдельно взятой конторки. У медицины может и стоят задачи, всех вылечить от рака, спида, продлить жизнь и т.д. В принципе эти задачи были уже давно, другое дело, что люди не знали о вирусах и бактериях и не знали как обозвать смертельные болезни.

А какая же глобальная проблема должна стоять перед программистами ? Искусственный интеллект чтоль, программа, которая пишет сама себя, нейронные сети, генетические алгоритмы, наращивание мощностей ?

Вот здесь не согласен я smile. Видишь ли, как и в математике, в программировании есть было есть и будет множество нерешённых задач. От техник программирования(те же паттерны - не думаю, что в 70-х слышали об NVI и т.д.) до вполне конкретных алгоритмических задач. Причём, задачи эти не обязательно нерешаемые в принципе(как, к примеру, NPC problems). Вот взять теорию расписаний - почти девственная отрасль CS. Теория расписаний ставит кучу неисследованных задач(тех, которые ещё даже не классифицировали по ассимптотической сложности, т.е., возможно, решаемых, только пока никто за них не брался).

Автор: marcusmae 26.3.2008, 01:29
SABROG,

меня не впечатлили Ваши доводы. В школу идут не сразу в 11ый класс. Сначала проблема - это научиться читать, писать, считать, действовать по элементарной логике. То есть, наверно, не стоит сразу браться за интегральные уравнения или делать вывод, почему Герасим утопил свою бедную собачку.

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

Цитата(SABROG @  25.3.2008,  23:57 Найти цитируемый пост)
А какая же глобальная проблема должна стоять перед программистами ? Искусственный интеллект чтоль, программа, которая пишет сама себя, нейронные сети, генетические алгоритмы, наращивание мощностей ?


Чтобы говорить о какой-то проблеме нужно, как минимум, знать её и работать в области этой проблемы. Иначе всё сойдёт на разговор ни о чём, на дилетантизм. Вы, вероятно, считаете себя программистами, не зная проблем программирования? smile Есть же, извините, наша новостная лента - там что, не новости о том, что люди решают свои современные проблемы? smile Лично я для себя только за одно сегодня две близких вещи увидел (http://devnews.ru/2008/03/21/perekvalifikaciya-programmistov-ne-za-gorami/, http://devnews.ru/2008/03/25/v-berkli-sozdayut-emulyator-mnogoyadernyx-sistem/#more-427) : многопроцессорность и многоядерность - ещё один пример вполне осязаемой чисто современной проблемы. 

Автор: SABROG 26.3.2008, 01:34
Обычно алгоритмы решают конкретные задачи для конкретных отраслей. Как правило люди пользуются тем что есть за неимением лучшего. Например можно тупо отсортировать массив по логике, а можно применять алгоритмы типа пузырьковой сортировки или быстрая сортировка.
Являются ли не решенные задачи проблемой программирования ? Например никто и ничто не мешает тебе программировать, у тебя вообще нет никаких проблем кроме одной - необходимости чего-нибудь напрограммировать. Если думать, что каждый алгоритм это проблема программирования, то написание программ вообще - это проблема программирования и само программирование не может существовать без этой проблемы.

Я все-таки склонен рассматривать тему "проблемы современного программирования" как перечисление препятствий, которые мешают программировать. Что-то типа проблемы осенезаторов: воняет, а работать надо.  smile 

Автор: archimed7592 26.3.2008, 12:54
marcusmae, лови плюс - хоть одну современную проблему озвучил smile.


Цитата(SABROG @  26.3.2008,  01:34 Найти цитируемый пост)
Если думать, что каждый алгоритм это проблема программирования, то написание программ вообще - это проблема программирования и само программирование не может существовать без этой проблемы.

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


Цитата(SABROG @  26.3.2008,  01:34 Найти цитируемый пост)
Я все-таки склонен рассматривать тему "проблемы современного программирования" как перечисление препятствий

Кстати, если взглянуть на английское слово "problem" и его трактование в области науки, то "Modern problems in programming" - это будут как раз задачи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)