На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (31) « Первая ... 5 6 [7] 8 9 ...  30 31  ( Перейти к последнему сообщению )  
> идеальный язык программирования , каким он должен быть?
    Цитата Grumike @
    Algorithm Builder

    В подробности не вдавался, но вспоминаю, как мы проходили видимо аналогичную систему - программу Labview. Там тоже можно программировать, рисуя некоторые графические конструкции, причём эта программа ориентирована на научные применения (ну, например, принять данные с экспериментальной установки и автоматически обработать) и выполнена почти с матлабовским размахом. А вообще, на заре программирования изобрели такую вещь, как блок-схемы - это фактически то, о чём идёт речь. Насколько я знаю (опять же, вплотную не вникал), в настоящее время существуют генераторы С++-кода на основе блок-схем - я слышал такие загадочные слова, как Rational Rose и UML-диаграммы. Одним словом, я хочу сказать, что это далеко не новый подход (как, кстати, и Форт). Вопрос в следующем: чем алгоритм билдер лучше всего вышеперечисленного, и вообще чем графическое программирование лучше текстового?

    Цитата Grumike @
    Почти каждый фортер в начале своего познания Языка пробует сделать Свой Форт.

    :yes: В общем я не исключение. 8-) Мне стандартный форт не нравится в основном тем, что там всё пишется большими буквами, а также тем, что он слишком большой (СП-форт 3 мегабайта) и, как следствие, мало доступен прямому изучению. Также на мой взгляд в стандарте много архаизмов (например, поддержка блоков). Плюс я не встретил нормальной библиотеки для работы с плавающей точкой (возможно, мало искал).

    Цитата Grumike @
    3. Большинство пишущих успевает понять что "просто еще один форт" это хуже чем "один из фортов, поддерживающий стандарт/имеющий достаточное число библиотек + свои расширения", благо одно из основных его свойств - расширяемость!

    Ну, пока что я преимуществ стандарта не осознал. Лично мне кажется, что стандарт несколько устарел.
      Цитата wormball @
      А вообще, на заре программирования изобрели такую вещь, как блок-схемы - это фактически то, о чём идёт речь.

      Как человек, очень тесно и очень долго работавший с блок-схемам, могу сказать: исходя из моего опыта, блок-схемы непригодны для практических задач. Сколько бы то ни было сложная программа в текстовом виде записывается намного компактнее и понятнее, чем в графическом.
        Идеальный с точки зрения язык программирования («идеальный» не в смысле абстрактного идеализма, а в смысле наилучшего из того, что можно пощупать руками), 1) не должен навязывать определенную парадигму по принципу «один размер на всех». Конечно, можно практически во всех (кроме клинических) случаях работать в любом стиле на любом языке, но суть в том, что это должно быть не через одно место; 2) должен располагать средствами для расширения самого себя, желательно, в том же флаконе, а не как C (через препроцессор); 3) не должен обладать тем неприятным свойством, что простые задачи на нем решать просто, сложные — невозможно. Желательно, чтобы при возрастании сложности задачи сложность формулировки решения возрастала лишь маргинально; 4) большим плюсом является «интеграбельность» с существующими библиотеками и другими языками (вопрос реализации, но отсутствие таких реализаций зачастую настораживает).

        Может ли автор темы, или другой какой адепт Forth рассусолить мне, темному, эти четыре пункта?
          Цитата shadeofgray @
          Как человек, очень тесно и очень долго работавший с блок-схемам, могу сказать: исходя из моего опыта, блок-схемы непригодны для практических задач.

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

          Цитата Ho Im @
          Может ли автор темы, или другой какой адепт Forth рассусолить мне, темному, эти четыре пункта?

          Наверное, Grumike объяснит лучше, но я тоже попробую.
          1. Всё зависит от твоего определения понятия "через одно место". А вообще вследствие неограниченной расширяемости из Форта можно сделать хоть Пролог.
          2. Именно наличием данного качества Форт отличается от других известных мне языков программирования. Расширяемость - это не свойство Форта, это его сущность. (во как выразился 8-) )
          3. Книжки Броуди кишат примерами серьёзных систем на Форте. От себя добавлю, что на СП-форте силами одного или двух программистов написан полноценный сервер, на котором функционирует сайт forth.org.ru. Ваш покорный слуга в настоящее время занимается написанием программы на Форте для моделирования молекулярной динамики, кстати, это самый серёзный проект в моей жизни. Не скажу, что мне легко, но на Паскале мне было бы не легче.
          4. Лично я юзаю старый добрый механизм ДЛЛ-библиотек. Как насчёт линукса - не знаю, ни разу не сталкивался. Наверное, там тоже есть нечто подобное.
            Цитата wormball @
            можешь поделиться своими соображениями про языки программирования?

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

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

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

            Перегрузка операторов также крайне желательна.
              Цитата shadeofgray @
              В моем понимании, идеальный язык программирования должен не содержать конструкций, чье поведение не полностью определено стандартом языка. Например, в обычном паскале нет единого мнения по поводу того, чему равно значение управляющей переменной цикла for после завершения цикла. Одни компиляторы устанавливают её в "следующее за последним" значение, другие - неизвестно во что. Если цикл не выполнялся ни разу (верхняя граница меньше нижней), то после цикла в одном компиляторе переменная цикла будет равна нижней границе, а в другом - не изменится вообще. Таких вещей в идеальном языке программирования не должно быть. Всё должно быть регламентировано стандартом.

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

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

              :yes:

              Цитата shadeofgray @
              Перегрузка операторов также крайне желательна.

              А вот этого в Форте нет вследствие того, что нет контроля типов. Конечно, можно сделать контроль типов, но я считаю, что его преимущества не стоят недюжинного усложнения языка. Насколько я понимаю, перегрузка операторов нужна только для матриц и строк.
                Цитата
                А вот этого в Форте нет вследствие того, что нет контроля типов. Конечно, можно сделать контроль типов, но я считаю, что его преимущества не стоят недюжинного усложнения языка. Насколько я понимаю, перегрузка операторов нужна только для матриц и строк.

                Это не так.Перегрузка операторов удобна практически везде где применимо ооп.а оно применимо много где.Самый очевидные пример - различные математические объекты.Если надо обширно пользоваться теми же кватернионами и векторами то без перегруженных операторов становится плохо.
                Сообщение отредактировано: Pourtous -
                  Цитата
                  1. Всё зависит от твоего определения понятия "через одно место". А вообще вследствие неограниченной расширяемости из Форта можно сделать хоть Пролог.

                  Через одно место — это как в случаях, когда надо вместо понятного foo==bar писать foo.equals(bar) (Java), это когда надо написать небольшую анонимную функцию и передать ее как аргумент другой функции — в реализации на C.

                  Хм, а пролог, сделанный из форта, разве не перестанет обладать предложений построения Йоды речи магистра даром? :) Имею в виду, 1) он позволяет уширить в нужную степь свой синтаксис? 2) он позволяет расширить, но нафиг никому это не надо и потому мало кто пробует? или же 3) он не гибок в плане расширения своего синтаксиса?

                  Цитата
                  Это не так.Перегрузка операторов удобна практически везде где применимо ооп.а оно применимо много где.Самый очевидные пример - различные математические объекты.Если надо обширно пользоваться теми же кватернионами и векторами то без перегруженных операторов становится плохо.

                  Мне в этом плане нравится Python. Поскольку он ОО насквозь (хотя позволяет программировать так, что этот факт можно не замечать), то операторы всегда вызывают некоторые методы, присущие всем объектам. В результате переопределяются эти методы, что позволяет и получить желаемый результат, и избежать введения еще одной громоздкой синтаксической конструкции (operator blam(...)).
                    Цитата Pourtous @
                    Цитата
                    А вот этого в Форте нет вследствие того, что нет контроля типов. Конечно, можно сделать контроль типов, но я считаю, что его преимущества не стоят недюжинного усложнения языка. Насколько я понимаю, перегрузка операторов нужна только для матриц и строк.

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

                    Случайно наткнулся на обсуждение языка Форт на данном форуме.
                    Если интересен подход применяемый в данном языке то более
                    детальное обсуждение можно найти на http://fforum.winglion.ru/index.php

                    P.S. Форт малоизвестен в настоящее время, хотя находит еще
                    достаточное число сторонников его использования:)
                      Цитата
                      Это не так.Перегрузка операторов удобна практически везде где применимо ооп.а оно применимо много где.Самый очевидные пример - различные математические объекты.Если надо обширно пользоваться теми же кватернионами и векторами то без перегруженных операторов становится плохо.

                      можно спокойно писать матсофт и без перегрузки. на обычно фортране77
                      Сообщение отредактировано: gnus -
                        Цитата shadeofgray @
                        Например, в обычном паскале нет единого мнения по поводу того, чему равно значение управляющей переменной цикла for после завершения цикла.

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

                        По замыслу оператора for, переменная цикла должна существовать только внутри цикла. Но в Паскале "область жизни" переменной может быть ограничена только рамками функции, поэтому и возникают вопросы подобно Вашему...
                          Цитата gnus @
                          можно спокойно писать матсофт и без перегрузки. на обычно фортране77

                          Потому что там многие операторы с математическими объектами являются частью языка.
                          И потом, в фортране95 всё таки была введена пергрузка операторов.
                            Цитата antigen @
                            Цитата gnus @
                            можно спокойно писать матсофт и без перегрузки. на обычно фортране77

                            Потому что там многие операторы с математическими объектами являются частью языка.
                            И потом, в фортране95 всё таки была введена пергрузка операторов.

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

                            согласись, недалекому юзеру, пользующему твой пакет, понятней будет, скажем, сабрутина PowMatrix(M,p), чем какое-нибудь M^p
                              Цитата gnus @
                              ну просто не вижу особого смысла в перегрузке для матприложений

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

                                а недалеким юзерам иногда приходится читать сорсы на фортране. ситуации всякие бывают.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (31) « Первая ... 5 6 [7] 8 9 ...  30 31


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0465 ]   [ 15 queries used ]   [ Generated: 18.07.25, 13:48 GMT ]