Это сложно


Это сложно

Аннотация

В статье рассматривается проблема превышения сроков создания программ, как результат самообмана, что программирование это просто, и даже еще проще.

Введение

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

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

Почему я задумался над этими вопросами

Я буду исходить не из общих рассуждений, а из личного опыта. Я занимаюсь созданием статических анализаторов кода Viva64 и VivaMP для проверки программ, написанных для 64-битых систем или созданных с использованием технологии OpenMP. В таких программах возникает ряд паттернов ошибок, которые, тем не менее, достаточно просто выловить анализом исходного кода программ. Но суть не в этом. Дело в том, что, участвуя в продвижении этих инструментов, я столкнулся с большим сопротивлением, вызванных тем, что использование 64-битных технологий и OpenMP преподносится как крайне простая вещь. В результате этой уверенности возникает необходимость преодолевать огромное сопротивление людей, считающих, что никаких проблем нет и быть не может. Я как бы оказался врагом их спокойному миру. Аналогичная картина, конечно же, наблюдается и с другими технологиями, но в статье я буду говорить о технологиях OpenMP и 64-битных программах как о наиболее мне знакомых.

Убеждение, что все просто, не удивительно. Кругом описывают, как легко вы можете сделать свою программу 64-битной и сразу получить прирост производительности и огромный объем доступной памяти. Описывается, как, используя OpenMP, вы легко превратите свой код в параллельный. Кругом статьи, содержащие тезисы в духе «достаточно перекомпилировать приложение», «простой расстановкой директив OpenMP». И на этом прекрасном празднике жизни я хожу с плакатом, с крупными заголовками статей «20 ловушек переноса Си++ — кода на 64-битную платформу», «32 подводных камня OpenMP при программировании на Си++». При этом я чувствую себя вредным противным старикашкой, который всем недоволен и постоянно на все ворчит. Именно это странное ощущение и сопротивление «евангелистам простоты» и заставило меня задуматься.

Возникла мысль, что возможно на самом деле не прав я. Нужно вместе со всеми говорить как все просто. И что с нашими-то инструментами все просто совсем. Так просто, что дальше некуда. Но что-то не так. Возникает противоречие. Я хорошо представляю положение дел и уверен в существовании трудностей, ожидающих программистов при осваивании параллельных технологий и 64-битных систем с большим объемом памяти. Нет этой простоты. Это обман. А обман вреден. Он вреден мне, как лицу, заинтересованному в продвижении своих инструментов. Он вреден руководителю, который не может корректно спрогнозировать сроки. И конечно он вреден программисту, которого ждет разочарование в новых технологиях и сверхурочное время работы. Поэтому я решил остаться на своих позициях и попробую также изменить вашу точку зрения.

Откуда берется сложность

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

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

Это не значит, что технология OpenMP или любая другая плоха. Они замечательны. Но нужно понять, что они могут, а чего нет. Не надейтесь легко распараллелить свои существующие программы. Скорее всего, для этого потребуется создание новых алгоритмов и преобразование структур данных и механизмов работы с ними. Если хотите убедиться, то попробуйте сами быстро сесть и распараллелить алгоритм сортировки массива, который все писали в школе и институте. Если не получится, то посмотрите параллельную сортировку Бэтчера. Не просто? Конечно, непросто. Этот пример сделан для того, чтобы показать какого рода трудности вам следует ожидать даже с привычными алгоритмами, используемыми в ваших программах. Но этого мало. Вы, наверное, используете в своих программах на языке Си++ итераторы в циклах? А вы знаете, что в популярных статьях об OpenMP, когда показывают примеры с распараллеливанием for, вас забывают предупредить, что итераторы в нем использовать нельзя? Индексами должны быть простые типы данных (например, int). То есть, планируя время на переделку алгоритмов, учтите, что вам может потребоваться еще и изменить структуры данных, и методы работы с ними. А все это дополнительное время и усилия.

Если все сложно, то почему говорят что просто

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

Производители параллельных систем рекламируют различные программные технологии и библиотеки, убеждая, что все станет параллельным почти само. Те, кто создают эти библиотеки/технологии, стараются убедить программистов, что их библиотека/технология — самая лучшая, так как является самой простой. И тут происходит печальная путаница. Тот факт, что библиотека проста и удобна (например, по моему мнению, OpenMP проста и удобна), вовсе не означает, что и создание параллельных программ тоже просто!

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

Выводы

Уже в процессе написания этого текста я наткнулся на замечательную статью Дейкстры «Два взгляда на программирование», которая очень пересекается по смыслу с этой статьей. Я процитирую небольшой отрывок, который очень хорошо резюмирует все сказанное ранее: «В основном это не вина производителей компьютеров, которые желают вести дела так, будто они продают простейшую продукцию; и не вина руководителей программных проектов, которые предпочитают рассматривать деятельность программистов как простой и предсказуемый процесс; и не вина учебных заведений, которые хотели бы подготовить студентов к достижению гарантированного успеха. Это — следствие комфортной иллюзии, что Человек — лишь сложный автомат, иллюзии, которая, подобно наркотику, приносит своим жертвам кажущееся освобождение от бремени ответственности. Признание программирования серьёзным вызовом интеллекту вернуло бы полный вес этой ноши обратно на их плечи».


Но вес ноши не должен стать причиной, по которой следует продолжать держать глаза закрытыми. От этого теряют все. Нужно принять сложность такой, какая она есть.

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

Незаменимыми помощниками в выходе из кругового обмана простоты являются такие замечательные книги Стива Макконнелла «Сколько стоит программный проект» и «Совершенный код». И, конечно же, культовая книга Фредерика Брукса «Мифический человек-месяц или как создаются программные комплексы».

Желаю вам скорейшего выздоровления, успехов в оценке сложности программных проектов и завершения их в требуемые сроки!

Значение слова сложно

Новый толково-словообразовательный словарь русского языка, Т. Ф. Ефремова.

нареч. Соотносится по знач. с прил.: сложный (2).

Илон Маск рекомендует:  AnsiEndsStr - Функция Delphi

предикатив Оценка какой-л. ситуации, чьих-л. действий как характеризующихся наличием каких-л. затруднений для понимания, осуществления.

Примеры употребления слова сложно в литературе.

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

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

Как только морда Пустынника высовывалась вперед, мой Бахромчатый тут же вырывался на четверть корпуса, однако лошадки были примерно равны, и окончательный результат предсказать было весьма сложно.

Она пробралась туда помолиться пятью минутами раньше — после того, как вскрыла бензопровод, что оказалось совсем не сложно: стоило только представить себе лежащую под землей толстую трубу.

Понять, что именно богомол имеет в виду и чего хочет, было очень сложно: его бессловесные переживания прошли сквозь сознание Лены как радужная рябь и исчезли.

На протяжении первых 5-6 км встречаются отрезки гладкой быстрины, где можно пристать к берегу, на остальных 20 км, до устья левого притока — реки Быстрой, причаливание весьма сложно.

Ванс сжал зубы, когда понял, что нажать на спуск без того, чтобы предварительно взвести курок, очень сложно.

Голос был незнаком, да и сложно распознать голос, пропущенный через вокодер шлема.

Сложно, согласен, но такой способ наверняка дает массу преимуществ по сравнению с практикой откатывания пушки и выкатывания ее на позицию снова.

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


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

Без зазрения совести притворяться бескорыстным благодетелем в присутствии правдолюбивого и прямолинейного ганда было сложно.

Распознавание миастении в начале заболевания всегда очень сложно, поэтому при первом же подозрении на миастению необходима консультация невропатолога и госпитализация в специализированную клинику, в Москве это миастенический центр профессора Гехта.

В общем, любовь в мире губанов — это некое магическое действо, разобраться в котором натуралисту-любителю поначалу очень сложно.

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

Источник: библиотека Максима Мошкова

Транслитерация: slojno
Задом наперед читается как: онжолс
Сложно состоит из 6 букв

Как же это сложно – ПОПРОСИТЬ

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

В близких отношениях и не очень часто бывает так, что мы считаем, что Другой должен все понять сам и сделать то, что нам нужно – отодвинуть стул, если стул нам мешает; закрыть окно – «видно же, что мне дует и я замерзла уже», угостить, если ест сам; уступить лучшее место. И сделать массу других вещей ради нашего блага.

Просить – это труд

А если отношения близкие, тем более измеряющиеся годами, то он просто обязан уметь читать мысли, угадывать желания и тут же на них откликаться! Иначе разве это дружба, разве это любовь? «Тот, кто любит, понимает, а если не понимает, значит и не поймет никогда, что ему объяснять…»

Он должен понимать, что я хочу – это раз.

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

Действительно человеческое существо способно без слов понимать другое существо, иначе мы бы просто не выжили. Когда рождается ребенок, мать по его поведению, по крику и гримасам понимает, что хочет детеныш, и «достаточно хорошая мать» чаще откликается на просьбы, чем нет.

Новорожденному достаточно поерзать в кроватке, сделать кислое личико, и мать даст ему грудь. У многих из нас все еще осталась вера в то, что во взрослом мире это должно работать также.

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

Когда ребенок подрастает, ему приходится активно просить, чтобы от матери чего-то добиться. «Мама, ну купи, купи, пожалуйстаааа!» Вот здесь, чаще мать говорит нет. Не трожь, нельзя. Не бери, это мое, не куплю, не пойдешь, туда нельзя. Ребенок выясняет, что на его просьбы не всегда мать откликается с готовностью. А взрослый знает, что «могут и послать.»

Мало того, что просить – это стыдно, небезопасно, ты обнаруживаешь свою нуждаемость, становишься более открытым, уязвимым. Ты еще во всеуслышанье заявляешь, что ты чего-то хочешь от другого человека. И мало того, что хочешь, еще и просишь.


И просто декларации твоей нужды и потребностей семьи недостаточно.

Одно дело сказать: «мне бы хотелось на курс пойти расстановок по Хелленгеру, интересно мне очень это», другое дело – «оплати мне, пожалуйста, психологические курсы» или «побудь с детьми, три дня месяц в течении полутора лет пока я буду самообразованием заниматься». На такую прямую просьбу же могут и отказом ответить. А кому хочется себя дураком чувствовать, отвержение переживать.

Обиду же чувствовать куда приятнее. Не понимают меня, не любят, не заботятся обо мне.

Просить – это труд.

Во-первых, – нужно понять чего я хочу. И что конкретно хочу именно от этого человека.

Во-вторых, — это еще нужно сформулировать и сказать.

В-третьих, – приходиться просить, отдавшись на волю другого человека- захочет даст, а захочет не даст – его право.

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

Иногда ваша просьба только формально «просьба», на самом деле она «указание». Если вы разговариваете с наемным сотрудником, и ваша просьба входит в зону его обязанностей, то скорее всего, то что вы говорите, – это указание. В этом случае, вы не отдаетесь на волю другого человека – захочет сделает, захочет – нет.

Если вы уходите на работу и просите своих детей: одного – помыть посуду, другого – поменять воду в аквариуме, то вы раздаете указания, а не простите. И вернувшись с работы, наверняка, спросите с них.

Но, если вы находитесь в горизонтальной плоскости с другим человеком – вы на равных, то единственное, что можете сделать, чтобы получить то, что вам нужно, это попросить.

Но это вариант честного пути. А есть же еще обиды, навешивание чувства вины, стыжение, шантаж. Правда все они работают только до тех пор, пока ваш близкий согласен играть в эти игры.опубликовано econet.ru.

Дыбова Ирина Михайловна

Если у вас возникли вопросы, задайте их здесь

P.S. И помните, всего лишь изменяя свое потребление — мы вместе изменяем мир! © econ

Понравилась статья? Тогда поддержи нас, жми:

Как же это сложно.

очень тяжело, по себе помню, занималась года так 3 точно) потом бросила

так закаляется характер


Боже как вспомню детство, я занималась спортивной гимнастикой, у нас пару дней в неделю была хореография, это просто жесть, и ещё под живую музыку (пианино), желаю терпения твоей дочери и успехов ��

Я до 18 лет тоже балетом занималась… сначала тяжело очень, потом тоже тяжело))) но какой же это кайф так стоять, тянуться, стараться. Не зря же занимаются с зеркалами в зале… балет благородный танец, всегда смотрела на себя и очень нравилась прямая спина, подбородок вверх, руки полукругом пальчик к пальчику… мммм воспоминания и опыт бесценны))) Доча умница красавица у вас!

А почему бросила балет?

Группа распалась, началось непонятно что… время было к поступлению и я выбрала другую профессию и попрощалась, было очень грустно депрессняк аж)) но в университете стала заниматься народными танцами, защищали так сказать честь вуза на любом мероприятии в городе)) сейчас уже больше 10 лет прошло, горжусь, что получила такой опыт и уже не жалею, что жизнь так повернулась)

умничка! у нее все получится! главное желание)

Глядя на фотографии, вспоминаю себя в детстве на хореографии)) Все эти позиции, растяжки у станка�� Лера молодец! Всё получится!

Да) выворотность и улыбка постоянная это очень сложно.
На конкурсе, что вот были, девочки наши в восторге были от стритденса. А хореограф говорит. Классика намного сложнее. Все держать под строгими правилами и контролем. Не каждый танцор выдержит армейские каноны классики.
Лерусик молодец.

Очень сложно… Я в шоке… Это уже не просто шпагат и носочек тянуть, как в младшей группе было… Слушай, а чего ты танцы Ули не сняла? Я так ждала, что выложишь ��

Это сложно, но надо попробовать

Найдены возможные дубликаты

Это сложно понять. К чему это?

Скорее всего к тому, что в постах по ИП с тегом «Спойлер» всегда вылезает минимум одна истеричка с воплями «Аааа, тут спойлеры, ты ужасный человек», но занести тег в игнор — это слишком сложно для них

Во вторник вечером открываю ютьюб. Уже пару спойлеров словил на пикабу, ну думаю ладно, не беда. Теги поблочил, пердак остыл. Серия должна вот-вот выйти. И что я вижу?! Кликбейтная картинка «король ночи выжил?!». Как такого человека называть кроме как не пидорасом, в плохом смысле этого слова? Канал, кстати, у него называется «не спойлер». В жизни его не видел, видимо просто рекомендация по тематике. Может и на том видео, о котором ты говоришь, тоже был кликбейт, портивший момент ещё даже до просмотра самого ролика.

Илон Маск рекомендует:  Что такое код imap_get_quota

Вот таких сразу банить на неделю, заебали пидоры. Хотя, наверняка есть сверхразумы, которые создают однодневные страницы ради этого.

это почитатели какой-то древней традиции.
пост не освященный таким комментом — дурной знак

Давай скорее, я в нетерпении.

Да ну нахер, я после первого спойлера сразу внёс теги в игнор, но
1. Момент уже испорчен.
2. Это не всегда помогает, потому что тегов жопой жуй и с каждым новым ты все больше узнаёшь о серии.
Неужели трудно подождать пару дней до выхода нормальной озвучки и не портить момент?
Это вопрос к нормальным людям, с мудаками разговора не выйдет.

О сообществе

Сообщество посвящено сериалу «Игра Престолов» и циклу книг «Песнь Льда и Пламени», на котором основан сам сериал.

За неадекватное поведение, спам, прямые оскорбления автора, рекламу (вотемарки не считаются рекламой) сжигают в тронном зале (бан). Посты, не несущие никакого смысла, удаляются на усмотрение модераторов. Спойлерами считаются: события не вышедших серий и книг, события вышедших недавно серий и книг (менее месяца с выхода официального перевода), менее недели с выхода сезона полностью. Публикация ссылок на нелегальный контент запрещена правилами Пикабу.


Это сложно

Аннотация

В статье рассматривается проблема превышения сроков создания программ, как результат самообмана, что программирование это просто, и даже еще проще.

Введение

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

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

Почему я задумался над этими вопросами

Я буду исходить не из общих рассуждений, а из личного опыта. Я занимаюсь созданием статических анализаторов кода Viva64 и VivaMP для проверки программ, написанных для 64-битых систем или созданных с использованием технологии OpenMP. В таких программах возникает ряд паттернов ошибок, которые, тем не менее, достаточно просто выловить анализом исходного кода программ. Но суть не в этом. Дело в том, что, участвуя в продвижении этих инструментов, я столкнулся с большим сопротивлением, вызванных тем, что использование 64-битных технологий и OpenMP преподносится как крайне простая вещь. В результате этой уверенности возникает необходимость преодолевать огромное сопротивление людей, считающих, что никаких проблем нет и быть не может. Я как бы оказался врагом их спокойному миру. Аналогичная картина, конечно же, наблюдается и с другими технологиями, но в статье я буду говорить о технологиях OpenMP и 64-битных программах как о наиболее мне знакомых.

Убеждение, что все просто, не удивительно. Кругом описывают, как легко вы можете сделать свою программу 64-битной и сразу получить прирост производительности и огромный объем доступной памяти. Описывается, как, используя OpenMP, вы легко превратите свой код в параллельный. Кругом статьи, содержащие тезисы в духе «достаточно перекомпилировать приложение», «простой расстановкой директив OpenMP». И на этом прекрасном празднике жизни я хожу с плакатом, с крупными заголовками статей «20 ловушек переноса Си++ — кода на 64-битную платформу», «32 подводных камня OpenMP при программировании на Си++». При этом я чувствую себя вредным противным старикашкой, который всем недоволен и постоянно на все ворчит. Именно это странное ощущение и сопротивление «евангелистам простоты» и заставило меня задуматься.

Возникла мысль, что возможно на самом деле не прав я. Нужно вместе со всеми говорить как все просто. И что с нашими-то инструментами все просто совсем. Так просто, что дальше некуда. Но что-то не так. Возникает противоречие. Я хорошо представляю положение дел и уверен в существовании трудностей, ожидающих программистов при осваивании параллельных технологий и 64-битных систем с большим объемом памяти. Нет этой простоты. Это обман. А обман вреден. Он вреден мне, как лицу, заинтересованному в продвижении своих инструментов. Он вреден руководителю, который не может корректно спрогнозировать сроки. И конечно он вреден программисту, которого ждет разочарование в новых технологиях и сверхурочное время работы. Поэтому я решил остаться на своих позициях и попробую также изменить вашу точку зрения.

Откуда берется сложность

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

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

Это не значит, что технология OpenMP или любая другая плоха. Они замечательны. Но нужно понять, что они могут, а чего нет. Не надейтесь легко распараллелить свои существующие программы. Скорее всего, для этого потребуется создание новых алгоритмов и преобразование структур данных и механизмов работы с ними. Если хотите убедиться, то попробуйте сами быстро сесть и распараллелить алгоритм сортировки массива, который все писали в школе и институте. Если не получится, то посмотрите параллельную сортировку Бэтчера. Не просто? Конечно, непросто. Этот пример сделан для того, чтобы показать какого рода трудности вам следует ожидать даже с привычными алгоритмами, используемыми в ваших программах. Но этого мало. Вы, наверное, используете в своих программах на языке Си++ итераторы в циклах? А вы знаете, что в популярных статьях об OpenMP, когда показывают примеры с распараллеливанием for, вас забывают предупредить, что итераторы в нем использовать нельзя? Индексами должны быть простые типы данных (например, int). То есть, планируя время на переделку алгоритмов, учтите, что вам может потребоваться еще и изменить структуры данных, и методы работы с ними. А все это дополнительное время и усилия.

Если все сложно, то почему говорят что просто

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

Производители параллельных систем рекламируют различные программные технологии и библиотеки, убеждая, что все станет параллельным почти само. Те, кто создают эти библиотеки/технологии, стараются убедить программистов, что их библиотека/технология — самая лучшая, так как является самой простой. И тут происходит печальная путаница. Тот факт, что библиотека проста и удобна (например, по моему мнению, OpenMP проста и удобна), вовсе не означает, что и создание параллельных программ тоже просто!

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

Выводы


Уже в процессе написания этого текста я наткнулся на замечательную статью Дейкстры «Два взгляда на программирование», которая очень пересекается по смыслу с этой статьей. Я процитирую небольшой отрывок, который очень хорошо резюмирует все сказанное ранее: «В основном это не вина производителей компьютеров, которые желают вести дела так, будто они продают простейшую продукцию; и не вина руководителей программных проектов, которые предпочитают рассматривать деятельность программистов как простой и предсказуемый процесс; и не вина учебных заведений, которые хотели бы подготовить студентов к достижению гарантированного успеха. Это — следствие комфортной иллюзии, что Человек — лишь сложный автомат, иллюзии, которая, подобно наркотику, приносит своим жертвам кажущееся освобождение от бремени ответственности. Признание программирования серьёзным вызовом интеллекту вернуло бы полный вес этой ноши обратно на их плечи».

Но вес ноши не должен стать причиной, по которой следует продолжать держать глаза закрытыми. От этого теряют все. Нужно принять сложность такой, какая она есть.

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

Илон Маск рекомендует:  Что такое код asp servername

Незаменимыми помощниками в выходе из кругового обмана простоты являются такие замечательные книги Стива Макконнелла «Сколько стоит программный проект» и «Совершенный код». И, конечно же, культовая книга Фредерика Брукса «Мифический человек-месяц или как создаются программные комплексы».

Желаю вам скорейшего выздоровления, успехов в оценке сложности программных проектов и завершения их в требуемые сроки!

Как же это сложно.

очень тяжело, по себе помню, занималась года так 3 точно) потом бросила

так закаляется характер

Боже как вспомню детство, я занималась спортивной гимнастикой, у нас пару дней в неделю была хореография, это просто жесть, и ещё под живую музыку (пианино), желаю терпения твоей дочери и успехов ��

Я до 18 лет тоже балетом занималась… сначала тяжело очень, потом тоже тяжело))) но какой же это кайф так стоять, тянуться, стараться. Не зря же занимаются с зеркалами в зале… балет благородный танец, всегда смотрела на себя и очень нравилась прямая спина, подбородок вверх, руки полукругом пальчик к пальчику… мммм воспоминания и опыт бесценны))) Доча умница красавица у вас!

А почему бросила балет?

Группа распалась, началось непонятно что… время было к поступлению и я выбрала другую профессию и попрощалась, было очень грустно депрессняк аж)) но в университете стала заниматься народными танцами, защищали так сказать честь вуза на любом мероприятии в городе)) сейчас уже больше 10 лет прошло, горжусь, что получила такой опыт и уже не жалею, что жизнь так повернулась)

умничка! у нее все получится! главное желание)

Глядя на фотографии, вспоминаю себя в детстве на хореографии)) Все эти позиции, растяжки у станка�� Лера молодец! Всё получится!

Да) выворотность и улыбка постоянная это очень сложно.
На конкурсе, что вот были, девочки наши в восторге были от стритденса. А хореограф говорит. Классика намного сложнее. Все держать под строгими правилами и контролем. Не каждый танцор выдержит армейские каноны классики.
Лерусик молодец.

Очень сложно… Я в шоке… Это уже не просто шпагат и носочек тянуть, как в младшей группе было… Слушай, а чего ты танцы Ули не сняла? Я так ждала, что выложишь ��

В чем принципиальная разница между понятиями «трудно и «сложно»?

А «трудный» — это:
1. Требующий больших усилий, большого труда.
2. перен. Заключающий в себе большие затруднения, неприятности; тяжелый. // Причиняющий физические страдания, боль; мучительный.
3. Требующий большого умственного напряжения, больших усилий.
4. Требующий большого внимания и большого ухода, доставляющий много трудностей.
5. перен. разг. Опасный, тяжелый (о болезни). // Находящийся в тяжелом, опасном состоянии (о больном).

Т. е. «трудный» и «сложный» являются синонимами по некоторым из своих значений и в конкретных контекстах.


Употребление словосочентаний «совершить ошибку» и «сделать ошибку» также будет зависеть от контекста.

Открыть свой бизнес. Насколько это сложно?

Существует широко распространенное мнение, что заниматься бизнесом — это очень сложно, а порой даже и опасно. Отчасти, это справедливое высказывание. И в то же время бизнес можно и нужно делать легко и с удовольствием, играючи.

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

1. Нет времени на бизнес.

Обычно бизнес «строится» одновременно с основным местом работы, поэтому банально физически не хватает времени в сутках, чтобы заняться делами бизнеса.

Решение.
Чтобы появилось время, придется чем-то пожертвовать (отказаться от каких-то других своих повседневных занятий, например, сократить время на бездумный «серфинг» в Интернете) и выкроить несколько часов в день или в неделю — это решаете только вы.

2. Нет навыков ведения переговоров.

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

Решение.
Чем больше вы говорите (тренируетесь), тем лучше это у вас получается. (Пример из жизни. У меня есть дефект речи, но это не мешает мне, а наоборот, помогает — делает запоминающимся. Поэтому меня частенько зовут выступать на различных конференциях.)

3. Нет навыка презентации своих идей, товаров и т. п.

Мало просто рассказать о технических характеристиках своего товара (или услуги), надо это рассказать таким вдохновляющим образом, чтобы клиент очень сильно захотел купить и даже достал свой бумажник.

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

4. Нехватка (или полное отсутствие) покупателей.

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

Решение.
Учитесь привлекать клиентов «с улицы» и из Интернета. В вашем арсенале должно постепенно появиться 10−20 каналов привлечения потенциальных покупателей (расклейка рекламных листовок, совместные акции с другими предпринимателями, реклама в яндексе и в соцсетях, профессиональный запуск «сарафанного радио» и т. д.).

5. Техническая некомпетентность.

Вы не будете знать, как сделать сайт, как нанять сотрудников, как установить кассовый аппарат и т. п. действия, требующие специализированных знаний и навыков.

Решение.
Это легко «лечится» — стоит разобраться и сделать это единожды. Потом будете делать это с закрытыми глазами и искренне недоумевать — почему это так сложно для окружающих. Предприниматель зарабатывает руками и мозгами других людей, учитесь находить и нанимать профессионалов в тех областях, в которых вы — полный профан.


6. Потеря веры в свою победу.

Сложности и трудности обязательно и постоянно будут стоять на вашем жизненном пути, иначе бы все жители Земного шара уже были бы сказочно богаты, здоровы и счастливы.

Решение.
Смиритесь с мыслью, что вы будете падать и расшибать себе лоб и коленки. Так и должно быть! Беззаботная жизнь существует только в рекламных роликах производителей косметики, лекарств и возбуждающих напитков.

7. Нет начальника с кнутом.

Когда вы работаете на работе, вам выдают персонального начальника, который вас «пинает» и мотивирует работать быстро и продуктивно.

Решение.
Оставшись один на один со своим бизнесом, вы будете вынуждены научиться «пинать сами себя». В противном случае, у вас гарантированно ничего не получится и ваш бизнес обанкротится.

8. Первые попытки провалятся.

Вам предстоит накопить критическую массу поражений и обрести бесценный опыт — сын ошибок трудный.

Решение.
Знайте это заранее, будьте морально готовыми выстоять и двигаться дальше, шаг за шагом, от проблемы к проблеме — только так и никак иначе.

9. Нет связей и нужных людей.

Будьте спокойны, они постепенно появятся! Кто ищет, тот находит. Или они вас сами найдут. Но ждать намного дольше, проще самому их найти и заинтересовать сотрудничеством с вами.

Сложности в бизнесе обязательно встретятся на вашем пути. Лишь вам решать, смогут ли они остановить вас на пути к вашей цели!

24 невероятных факта о человеческом теле. В это сложно поверить…

Сегодня мы собираемся поделиться с вами удивительными фактами о теле человека. Например, в курсе ли вы, что одна волосинка может прожить на голове до 7 лет? Человеческое тело – очень интересный и даже увлекательный объект для изучения.

1. Человек теряет в среднем 18 кг кожного покрова за всю жизнь

2. Единственная причина, по которой кислота в вашем желудке не разъедает тело, состоит в том, что желудочные клетки регенерируют быстрее, нежели погибают

3. Желудочная кислота настолько мощная, что способна растворить лезвие бритвы

4. Мозг потребляет примерно 20% всех калорий и кислорода из организма

5. Каждый человек обладает своим уникальным запахом. Единственное исключение – однояйцевые близнецы


6. Чем выше ваш IQ, тем больше снов вы можете видеть

7. Не поверите, но ночью ваш рост на 1 см меньше. Дело в том, что днем межкостные хрящи сжимаются и проседают

8. В ваших ступнях 0,5 млн. потовых желез, и каждый день они вырабатывают около 500 мл жидкости

9. В легких около 300 млн. капилляров. Если их вытянуть в одну линию, то она проляжет через все Соединенные Штаты

10. Если вы вытянете в одну линию все кровеносные сосуды, длина составит 96500 км. Этим можно обмотать всю нашу планету почти 2,5 раза

11. Женщины моргают глазами вдвое чаще, нежели мужчины

12. Икота настигает мужчин вдвое чаще, нежели женщин

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

14. Если вы переедаете, слух ваш заметно притупляется

15. К 60 годам половина вкусовых рецепторов перестают работать

16. Новорожденные видят мир исключительно в черно-белых тонах

17. Роговица не имеет кровоснабжения. Она «добывает» кислород прямо из воздуха

18. 75 % тела – это вода, и 80 % мозга – это тоже вода?

19. Жизнь человеческого волоса колеблется от 3 до 7 лет

20. Волосы хорошо воспламеняются, но их очень трудно разрушить даже самыми сильными кислотами

21. Человеческий организм выглядит хрупким, но он способен выжить, даже если у него удалить полностью селезенку, весь желудок, 80 % кишечника, 75 % печени, одно легкое, одну почку и любой орган из тазовой и паховой областей

22. Переполненный мочевой пузырь обладает размерами мяча для игры в софтбол

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

24. Большинство младенцев появляются на свет голубоглазыми. Воздействие ультрафиолета и меланина в результате дает им их настоящий цвет

Поделитесь постом с друзьями!

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL