Библиотека
Дневники
Фотогалереи
Легкий форум
Архив
Поиск
Здравствуйте Гость (Вход|Регистрация)   
Студенческий форум
 
 


Страницы: (3) 1 2 [3]  ( Перейти к первому непрочитанному сообщению ) Ответ в темуСоздание новой темыСоздание опроса

> Востребованность языков программирования, Что ждет нас в будещем?

sensey
Быстрая цитата




Аспирант
***

Профиль
Группа: Пользователи
Сообщений: 191
Регистрация: 6.06.2005
Репутация: 16

Место учебы: ОрелГТУ


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

Поэтому существует (и, надо сказать, процветает) методология метапрограммирования и проблемно-ориентированных языков (Domain Specific Language).

Цитата

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


Реализуются DSL при помощи кодогенераторов или на основе языков функционального программирования.

Есть современные языки, типа Scala (на платформе Java) или Ruby или Python, которые позволяют совмещать функциональный и императивный стиль.

Программы, написанные в функциональном стиле наиболее компактны и наглядны.
Напр. я видел программку на Lisp-е в несколько строчек которая умела дифференцировать и интегрировать аналитические функции, заданные их алгебраическим выражением. Аналогичная программа на С/C++ потребовала бы на порядки (!!) больше кода со всеми вытекающими отсюда последствиями.

В общем, уважаемый топикстартер, рекомендую к прочтению классику. Напр. :
Эрик Рэймонд. Искусство программирования для UNIX
Ахо А. Структуры данных и алгоритмы
Знаменитый 4-томник Дональда Кнута. Кстати основным языком описания программ у Кнута является естесвенный язык (близкий к функциональному), а не алгоритмический.

А так же:
http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%...%BD%D0%B8%D0%B5
http://offline.computerra.ru/2006/630/258015/
http://en.wikipedia.org/wiki/Domain-specific_language
http://www.interface.ru/home.asp?artId=16215

И помните: всегда востребованы грамотные люди, знающие методологию проектирования, и разработки, способные принимать адекватные решения, а не сodemonkeys, знающие только лишь конкретные технологии.
PMПисьмо на e-mail пользователюMSN
Top
дед_мажор
Быстрая цитата




Уважаемый крутой перец
Group Icon

Профиль
Группа: Декан
Сообщений: 2405
Регистрация: 11.11.2005
Репутация: 156

Место учебы: да


Цитата (sensey)
Реализуются DSL при помощи кодогенераторов или на основе языков функционального программирования.

dsl без проблем реализуются любым general-purpose объектно-ориентированным языком без необходимости изобретать новый синтаксис.
достаточно domain-specific классов с fluent-интерфейсом, позволяющим осуществлять конфигурацию. почти каждая domain-specific библиотека, каждый domain-specific framework — это dsl. хороший пример — web-фреймворк onPHP, onphp.org, некоторые компоненты которого являются dsl.
правило оккама гласит, что не нужно плодить лишнего без крайней надобности. и это называется embedded dsl. дальнейшее чтение продолжать в блоге у фаулера, который сейчас пишет книгу по этой теме: http://martinfowler.com/dslwip/index.html
PMПисьмо на e-mail пользователю
Top
BrainDrain
Быстрая цитата




Кандидат наук
*****

Профиль
Группа: Пользователи
Сообщений: 561
Регистрация: 24.02.2009
Репутация: 33

Место учебы: ОГУ


Цитата (sensey)
и ортогонален).

lolwut?
чему ортогонален-то? Предметной области? icon_lol.gif
PMПисьмо на e-mail пользователю
Top
БЕ3НОГNM
Быстрая цитата




Unregistered








Место учебы:


wat
Top
sensey
Быстрая цитата




Аспирант
***

Профиль
Группа: Пользователи
Сообщений: 191
Регистрация: 6.06.2005
Репутация: 16

Место учебы: ОрелГТУ


BrainDrain,
я имел в виду компактность, концептуальную целостность и ортогональность понятий.

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

Цитата

Compact software has the property that it can fit conceptually inside a human's head. Orthogonal software has the property that operations are atomic and have no unexpected side effects; they change one thing without affecting others. Often, the concepts for good software design are best-illustrated by example, and Raymond provides many such examples to drive each point home. One of my favorite things about this material is that it has changed my thinking about design/architectural elements in my own programs.


PMПисьмо на e-mail пользователюMSN
Top
timofeji
Быстрая цитата




Абитуриент
*

Профиль
Группа: Пользователи
Сообщений: 18
Регистрация: 13.06.2008
Репутация: нет

Место учебы: ОрелГТУ


sensey что то у меня сомнения закрались о наличие у вас прикладного опыта по данной тематике
PMПисьмо на e-mail пользователю
Top
sensey
Быстрая цитата




Аспирант
***

Профиль
Группа: Пользователи
Сообщений: 191
Регистрация: 6.06.2005
Репутация: 16

Место учебы: ОрелГТУ


timofeji, а я нигде и не утверждал обратного.
В моей предметной области (системы автоматизированного управления, обработка сигналов) тяжело применить что-либо кроме C/Asm/Forth/Fortran.

:мечтательно: Вот займусь синтезом ПЛИС и имитационным моделированием, вот тогда-то и откроется простор для использования достижений Computer Science.
PMПисьмо на e-mail пользователюMSN
Top
BrainDrain
Быстрая цитата




Кандидат наук
*****

Профиль
Группа: Пользователи
Сообщений: 561
Регистрация: 24.02.2009
Репутация: 33

Место учебы: ОГУ


Такое применение термина "ортогональность" слегка смутило, потому что ортогональной как правило называется некая пара языков (обычно императив+функционал); такая пара как раз и обладает всеми преимуществами, описанными в том (№41) посте.

Цитата (sensey)
Программы, написанные в функциональном стиле наиболее компактны и наглядны.

Если это именно те задачи, под которые функционал подходит лучше императива,
Цитата (sensey)
Поэтому в идеале каждой проблеме — свой язык
PMПисьмо на e-mail пользователю
Top
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
 
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:o  :D  :rolleyes:  :cry2: 
:unsure:  :cry:  :angry:  :bleh: 
:dev:  :flowers:  :fool:  :old: 
:shook:  :angel:  :wor:  :rotfl: 
:kov:  :chair:  :friends:  :wub: 
       
Показать всё


 
Опции сообщения  Включить смайлики?
 Включить подпись?
 Использовать AJAX?

Опции темыСтраницы: (3) 1 2 [3]  Ответ в темуСоздание новой темыСоздание опроса

 

Студенческий клуб ostudent.ru и его создатели не несут ответственности за достоверность самостоятельно размещаемой посетителями сайта информации и не могут подтвердить или опровергнуть её.

Этот сайт защищен «Site Guard»