Палата #6

 
Renat Fatkhullin:

Дядя теоретик и балабол, как и большинство из академической среды. И не важно, что он профессор(звание давно инфлировало) и автор книг.

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

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

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

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

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

Уже давно инвестиции в софтверные компании - это смертельная вещь. Смертность и провалы потрясающие, а дальше будет хуже.

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

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

Выводы:

  1. сложность проектов растет и будет расти
  2. масса новых идей и подходов будут умирать, так и не дав результата
  3. основная масса софта пишется и будет писаться в ооп, тяжело и с надрывом
  4. инвестиции в софтверные стартапы будут показывать все больший процент провала. это бизнес, где профессорам делать нечего
  5. выхода нет - только боль и страдания

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

выхода нет - только боль и страдания

и останутся от вашей конторы, только рожки да ножки.

Я Вам этого не желаю. Просто стоит задуматься над этим.

 
Ibragim Dzhanaev:

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

и останутся от вашей конторы, только рожки да ножки.

Я Вам этого не желаю. Просто стоит задуматься над этим.

Слепая вера вместо знаний приятна.

Именно знания умножают печаль этого мира. В противоположность блаженству неведающих.

 

От коловорота к электродрели тоже не все сразу пришли. Дело времени.

 
Renat Fatkhullin:

Слепая вера вместо знаний приятна.

Именно знания умножают печаль этого мира. В противоположность блаженству неведающих.


Именно знания умножают печаль этого мира.

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

========

Надеюсь понимаете, о чем говорю.

 
Ibragim Dzhanaev:

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

========

Надеюсь понимаете, о чем говорю.

Вам в другую палату. Здесь форум трейдеров

 
Rashid Umarov:

Вам в другую палату. Здесь форум трейдеров


Когда нибудь поймете.

Трейдер тоже человек )
 
Ibragim Dzhanaev:

Когда нибудь поймете.

Трейдер тоже человек )

А по существу что можшь сказать ?  Что предъявить ?

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

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

Кто сможет все это удержать в памяти ?

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

 
George Merts:

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

Сомнительный аргумент в пользу ООП. Поддерживать большой продукт поможет только документация.

 
George Merts:

А по существу что можшь сказать ?  Что предъявить ?

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

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

Кто сможет все это удержать в памяти ?

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


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

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

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

 
A100:

Сомнительный аргумент в пользу ООП. Поддерживать большой продукт поможет только документация.

И документация, тоже. Только вот код должен быть по-максимуму самодокументируем.  И ООП подход здесь очень даже кстати.

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