love5an: (Default)
[personal profile] love5an
Сейчас я опишу одну из главных причин по которым я недолюблюваю Ъ ф.п, и люблю CL.


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

В истории классической промышленности были периоды когда всё делали единично и ручками. Я мог бы сравнить такие периоды с ранним развитием IT. Со временами расцвета UNIX или DOS. С языками вроде Си.

Потом были периоды рабовладельческого строя и раннего капитализма, когда любую задачу закидывали необходимым количеством человеков. Я бы сказал, что сейчас в IT-индустрии как раз такой подобный период, со всеми этими Java и PHP.

Но в итоге, во всех развитых странах промышленность пришла к автоматизации. И производит продукты лучше, быстрее и качественнее, чем когда-либо.

И IT-индустрию ждет когда-нибудь то же самое, то есть массовая автоматизация, программы которые пишут программы(понимаете, к чему я клоню, да?), и это неминуемо.

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

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

Кстати, скоро напишу на хабр статью о макросах и метапрограммировании в лиспе, как только продумаю её.

Date: 2011-11-01 12:39 pm (UTC)
From: (Anonymous)
Аналогия разработки ПО и промышленности ложная. Потому, что вы говорите об автоматизации производства, а производство ПО и так полностью автоматизировано: изготовление - получение маш.кода, а тиражирование - простое копирование данных. Нужно проводить аналогии говоря о развитии R&D и проектирования, потому что разработка ПО только из этого и состоит, без всякого этапа "строительство" или "массовое производство". А труд инженера, проектирующего автомобили автоматизирует не конвейер, точно также и экскаватор - автоматизирует не труд архитектора.

Date: 2011-11-01 01:06 pm (UTC)
From: [identity profile] love5an.livejournal.com
R&D, если проводить аналогии с промышленностью, это SA, разработка архитектуры, и да, оно тоже требует автоматизации, и сейчас ее автоматизация тоже в зачаточной стадии.

Но является ли написание кода R&D? Нет, это как раз ближе именно к строительству. Я в основном как раз об этом и говорю.

Это дело автоматизированно на текущий момент, очень и очень слабо. Хотя и имеются некоторые подвижки(Да, компиляторы ЯВУ это инструмент автоматизации. Или, например, современные IDE - рефакторинг, автодополнение, статический анализ и т.п. Кстати там вот выше сказали что хаскель вносит некоторую автоматизацию в разработку, по сравнению с java - может быть, но всё это нивелируется мощными инструментами, доступными java-разработчикам).
Но это все мелочи, по сравнению с тем, как автоматизированы современные конвейеры.

У меня один из основных источников вдохновения, в плане будущего проекта, и вообще будущей области деятельности в целом, это DMS Software Reengineering Toolkit
http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html

Вот, см. например видео с Google Tech Talk о ней, и вообще о компании, которая ее производит:
http://www.youtube.com/watch?v=C-_dw9iEzhA

Date: 2011-11-01 02:06 pm (UTC)
From: [identity profile] thesz.livejournal.com
>Но является ли написание кода R&D? Нет, это как раз ближе именно к строительству. Я в основном как раз об этом и говорю.

Вот же беда-то. Основной проблемой в строительстве является экспертиза перед строительством и даже перед контрактом. Сейсмическая обстановка, экология, погодные условия, почвы, воды, грунты, коммуникации, инфраструктура и тп.

А вот после этого уже идёт строительство. Которое видно хорошо и издалека и в котором нет особых проблем. Как построение GUI поверх библиотеки.

Экспертизу же не видно. Но именно она очень близка к R&D. И что интересно, она каждый раз новая, как и программный продукт.

PS
Я могу сравнивать скорость разработки на Java и Haskell. Как-нибудь расскажу.

Вкратце, автоматизированные средства рефакторинга не помогают.

Date: 2011-11-01 04:26 pm (UTC)
From: [identity profile] love5an.livejournal.com
>Я могу сравнивать скорость разработки на Java и Haskell. Как-нибудь расскажу.

Было бы интересно, наверное.

Date: 2011-11-01 07:38 pm (UTC)
From: [identity profile] enternet.livejournal.com
Кстати, про рефакторинг. А с чего бы ему помогать, если он не нужен в принципе. Т.е. я на полном серьёзе не понимаю зачем это нужно. Я не пишу тонны кода, соответственно, не переименовываю постоянно переменные, не конвертирую ежедневно куски кода в методы и т.д и т.п. По хорошему говоря не нужны даже сильно развитые редакторы. А уж редакторы уровня эмакса - это вообще маразм.

Работа программиста - эта работа мозгом, а не руками.

Date: 2011-11-01 07:50 pm (UTC)
From: [identity profile] thesz.livejournal.com
Заметьте, не я это сказал! ;)

Не могу не присоединиться. Сам пользуюсь nc/vc/Far/mc с начала карьеры, как заметил, что среды типа TurboC не ускоряют мою работу.

Profile

love5an: (Default)
Dmitry Ignatiev

June 2020

S M T W T F S
 123456
78910 111213
14151617181920
21222324252627
282930    

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 26th, 2025 10:13 pm
Powered by Dreamwidth Studios