четверг, 1 апреля 2010 г.

[prog] Ten years from now – предсказания Бертранда Мейера о будущем программирования

Автор языка программирования Eiffel, Бертранд Мейер, опубликовал слайды своей презентации “How you will be programming in 10 years” с конференции ACM Symposium On Applied Computing. Позволю себе процитировать один из слайдов. Итак, каким же будет программирование через 10 лет (стр.9):

1. We will still be using O-O languages
2. Professional programming will be far more rigorous
3. Verification will be integrated in the development process
4. Every program will have a Web interface
5. Concurrency will be ubiquitous
6. More reliance on objective assessment
7. Software engineering: not just process but technology

Или, в моем приблизительном переводе:

1. Мы все еще будем использовать объектно-ориентированные языки.
2. Профессиональное программирование будет намного более суровым.
3. Верификация будет частью процесса разработки.
4. Каждая программа будет иметь Web-интерфейс.
5. Конкурентное программирование будет повсюду.
6. Большую роль будут играть объективные оценки.
7. Разработка программ будет не просто процессом, а технологией.

Тут нужно пояснить, что Мейер разделяет нынешнее программирование на три категории:

  • от случая к случаю (casual): разработка простых веб-сайтов, Excel-евских документов и пр.;
  • профессиональное: Ынтерпрайзные системы, моделирование, системы мягкого реального времени и пр.;
  • критически важное: системы управления транспортом, системы жизнеобеспечения, системы жесткого реального времени и пр.

Так что, похоже, слова Мейера не касаются большого числа PHP и Ruby-On-Rails программистов, создающих Web-сайты за 3-4 дня. Вот какими он видит профессиональных программистов в будущем (все та же стр.9):

- Higher level of qualification (более высокий уровень квалификации)
- Apply verification techniques routinely (применяют верификацию программ в повседневной практике)
- Not mathematics PhDs (не имеют ученых степеней в математике)

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

9 комментариев:

Quaker комментирует...

На мой взгляд, очень грамотное и правильное видение. Относительно перевода п.2: думаю, что rigorous обозначает не суровость, а строгость (в математическом смысле, то есть имеется в виду доказательство корректности).

Rustam комментирует...

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

eao197 комментирует...

2Quaker:

>На мой взгляд, очень грамотное и правильное видение.

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

>что rigorous обозначает не суровость, а строгость (в математическом смысле, то есть имеется в виду доказательство корректности).

Я хотел дать определение в более широком смысле -- мол будут более сложные проекты, более сложные инструменты, более сжатые сроки. Короче, дальше будет только хуже.

eao197 комментирует...

>Ну и по седьмому пункту по моему это обещают с шестидесятых годов как минимум :)

Я не так давно видел интересное проявление технологичности: путем пре-коммит хуков в svn-е в одном из проектов запретили коммиты, если в описании коммита не указан точный номер тикета из Jira, в рамках работы над которым выполняется коммит.

Т.е. уже полная технологичность -- твои действия полностью контролируются на всех этапах.

Quaker комментирует...

Я сомневаюсь. Если бы Мейер мог предугадывать пожелания большинства разработчиков, его Eiffel был бы другим и более популярным сейчас.
Не думаю, что верификация программ - это то, что нужно большинству разработчиков. Особенно PHP и Ruby-On-Rails программистам, создающих Web-сайты за 3-4 дня.

eao197 комментирует...

>Не думаю, что верификация программ - это то, что нужно большинству разработчиков.

В том-то и дело. Большое количество разработчиков приходят в программирование через PHP и RoR. Постепенно они переходят к разработке все более сложных и ответственных систем. Какая в таких условиях верификация? Или Мейер расчитывает готовить профессиональных разработчиков в специальных учебных заведениях по собственной программе? ;)

Quaker комментирует...

Или Мейер расчитывает готовить профессиональных разработчиков в специальных учебных заведениях по собственной программе?
Насчет профессиональных разработчиков не уверен, но в ETH Мейер читает вводный курс по программированию.
слайды:
http://se.inf.ethz.ch/teaching/2009-H/eprog-0001/content_list_en.html
видео:
http://www.multimedia.ethz.ch/silva_ethz/ETH/id_sites/multimedia/multimedia/lectures/inf/2009_hs/252-0021-00L
Более того, есть и другие университеты, где используется Eiffel (слайд 99 из презентации).

Quaker комментирует...

Вот можно посмотреть видео "Teaching Programming: yerstaday and today" об основных принципах обучения, пропагандируемых Мейером:
http://www.multimedia.ethz.ch/episode_play/?doi=10.3930/ETHZ/AV-c6bb6e32-2cc1-490d-a4a0-c2d66ca8c22f&autostart=false

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

eao197 комментирует...

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