Языки программирования для непрофессионалов

Беседы ни о чем

Re: Языки программирования для непрофессионалов

Сообщение Freeman » 29 сен 2016, 18:40

Позволю себе высказаться на правах разработчика языка программирования.

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

Перечисленные причины влияют на рынок, и в этом десятилетии наблюдается ренессанс компилируемых языков. Большинство недавно появившихся языков, набирающих популярность, -- компилируемые: Go, Rust, Nim и пр. Они пытаются преодолеть сложность компилируемых языков предыдущих поколений, используя наработки популярных сейчас интерпретируемых языков, удобство которых стало промышленным стандартом. Разрабатываемый мной Кантор -- тоже такой язык.

Кроме того, поскольку гонку мегагерц заменило увеличение числа ядер (плюс еще CUDA), наблюдается объективный спрос на параллельные вычисления, простоту которых могут обеспечить только функциональные языки. Из этого вытекает второй тренд -- все новые языки содержат в себе средства функционального программирования, они же добавляются в старые языки вроде C++ или Delphi: вывод типов, лямбды, замыкания и всё такое. Уже в ближайшем будущем чисто императивных языков не останется, все языки будут гибридными. Свой Кантор я разрабатываю не просто как функциональный язык, а как язык функционального системного программирования, надеясь тем самым открыть новое направление в ИТ.

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

Кстати, "Канторовым системам" нужен евангелист. Если кто хочет попробовать -- пишите в личку.
Разработчик языка программирования Кантор
Аватара пользователя
Freeman
Мастер Даунгрейда
 
Сообщения: 647
Зарегистрирован: 06 дек 2012, 05:49
Откуда: Санкт-Петербург

Re: Языки программирования для непрофессионалов

Сообщение KPG » 29 сен 2016, 21:36

Freeman писал(а):Кроме того, поскольку гонку мегагерц заменило увеличение числа ядер (плюс еще CUDA), наблюдается объективный спрос на параллельные вычисления, простоту которых могут обеспечить только функциональные языки.

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

Есть проект языка программирования Factor совмещающего идеи Форт и функционального программирования и даже некоторые проекты реализованные
на Factor на Github и хотелось бы услышать взвешенное мнение как этот проект применим к функциональным принципам программирования.

P.S. По поводу Кантор языка - смотрел, но ещё подробней не изучал и смущает, что возможно ядро языка синтаксически переусложнено
для моего использования. (в сравнении с дизайном Форт языка) Haskel тоже по этому критерию не обрадовал. Синтаксически, возможно,
ещё интересен проект 8th языка (тоже наследующего какие то Форт идеи)
Последний раз редактировалось KPG 29 сен 2016, 23:12, всего редактировалось 7 раз(а).
KPG
Матерый даунгрейдер
 
Сообщения: 70
Зарегистрирован: 21 окт 2015, 21:53

Re: Языки программирования для непрофессионалов

Сообщение Nika » 29 сен 2016, 22:40

А где можно взглянуть на, собственно, сам компилятор?
Последний раз редактировалось Nika 29 сен 2016, 22:53, всего редактировалось 1 раз.
Nika
Мастер Даунгрейда
 
Сообщения: 595
Зарегистрирован: 17 окт 2013, 00:21

Re: Языки программирования для непрофессионалов

Сообщение KPG » 29 сен 2016, 23:18

Nika писал(а):А где можно взглянуть на, собственно, сам компилятор?

Какого языка?
Factor
Описание 8th (исполняемую среду через почтовую регистрацию/ компилируемая платная)

P.S. Ресурс по конкатенавным языкам (наверное есть ещё не вошедшие в подборку)
Последний раз редактировалось KPG 29 сен 2016, 23:22, всего редактировалось 2 раз(а).
KPG
Матерый даунгрейдер
 
Сообщения: 70
Зарегистрирован: 21 окт 2015, 21:53

Re: Языки программирования для непрофессионалов

Сообщение KPG » 29 сен 2016, 23:51

Gawobeka писал(а):Я не работаю с Паскалем, но было интересно узнать его мнение по современному состоянию этого языка. Не знаю, прав ли он, но мне показался убедительным.

Мне достаточно понимания, что Паскаль (FreePascal, Delphi) был использован и используется в Конструкторе программ HiAsm

P.S. Проект Lazarus тоже вроде жив.
Последний раз редактировалось KPG 29 сен 2016, 23:52, всего редактировалось 1 раз.
KPG
Матерый даунгрейдер
 
Сообщения: 70
Зарегистрирован: 21 окт 2015, 21:53

Re: Языки программирования для непрофессионалов

Сообщение Nika » 30 сен 2016, 02:56

KPG писал(а):
Nika писал(а):А где можно взглянуть на, собственно, сам компилятор?
Какого языка?
Прошу прощения. Этого самого "Кантор
KPG писал(а):Описание 8th (исполняемую среду через почтовую регистрацию/ компилируемая платная)
- Клоунада какая-то.
Последний раз редактировалось Nika 30 сен 2016, 03:07, всего редактировалось 3 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 595
Зарегистрирован: 17 окт 2013, 00:21

Re: Языки программирования для непрофессионалов

Сообщение nongrato » 30 сен 2016, 20:37

Freeman писал(а):
Кстати, "Канторовым системам" нужен евангелист. Если кто хочет попробовать -- пишите в личку.


Запили компилятор под SparcV9 и я буду твоим фанатом навеки.
SGI Octane2 | SGI VW 320 | Sun Ultra 10 | Sun Sparcstation 20
Аватара пользователя
nongrato
Мастер Даунгрейда
 
Сообщения: 655
Зарегистрирован: 21 апр 2013, 16:26
Откуда: СПб

Re: Языки программирования для непрофессионалов

Сообщение Freeman » 01 окт 2016, 00:01

Nika писал(а):А где можно взглянуть на, собственно, сам компилятор?

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

Где-то с 2007 года и вплоть до открытия блога "Канторовых систем" в 2013-м я занимался занимался теорией, проработкой концепций языка. Были попытки создать публичную документацию, но все они оказались неудачны: сказывался и предстоящий объем для документирования, и непроработанность концепций. С открытием блога я стал писать как пишется, параллельно продолжив работу над теориями. С 2015-го взялся за код, достиг значительных успехов с библиотекой, но блог оказался заброшен. Теперь есть и теории, и библиотека поддержки компилятора, можно приступать к реализации... Вместо этого я каждый день хожу на работу и мечтаю о том, как буду работать над Кантором. Сил ни на что не остается. Нужно каким-то образом найти инвестора на проект, чтобы можно было уйти с работы и заниматься только им.

Сейчас вот вышел в отпуск и не знаю, что делать. Нужно писать спецификацию языка, писать код и писать в блог по итогам лекций-вебинаров, которые были на Livecoding.tv летом. И еще отдыхать как-то. Наиболее высока вероятность последнего, ибо устал слишком. Так и живем... Евангелиста ищу, чтобы писал в блог по итогам лекций. Я тогда займусь тем, в чем меня никто не заменит.

Кто тут про Delphi спрашивал? Кантор пишется на Delphi, в будущем будет переписан на Канторе.

KPG писал(а):При чтении одной из книг по Haskel пытался сложить мозаику функциональных принципов озвученные автором к личному опыту и возможностям Форт программирования (через какие то ограничения) и принципиально кардинальных моментов для этого особо не увидел.

Кстати, да. К сказанному выше про языки можно добавить, что старые функциональные языки не получили широкой популярности, и уже прошло достаточно времени, чтобы стало понятно, что это навсегда. Будущее -- за новыми языками, сочетающими функциональную парадигму с привычной записью, приближенные к практике. Скажем, сейчас набирает популярность Elixir -- функциональный язык с близким к императивному синтаксисом, работающий в среде виртуальной машины Erlang и взаимозаменяемый с Erlang. По моим оценкам, Elixir сейчас находится в состоянии, в каком был PHP в 1998-м. Кто из вас знал о PHP в 1998-м году? К сожалению, Elixir -- интерпретируемый.

В чистом виде функциональная концепция непригодна для практического программирования: она исходит из отсутствия состояния, а все наши машины обладают состоянием. Нужно найти какой-то разумный компромисс. Кто найдет такой компромисс -- тот язык и станет популярным. В Канторе такой компромисс есть: переменные считаются функциями, имеющими реализацию памятью. Ни в каком другом языке переменные функциями не считаются. В них или переменных вообще нет, или переменные -- самостоятельные сущности, не связанные с функциональной парадигмой.
Разработчик языка программирования Кантор
Аватара пользователя
Freeman
Мастер Даунгрейда
 
Сообщения: 647
Зарегистрирован: 06 дек 2012, 05:49
Откуда: Санкт-Петербург

Re: Языки программирования для непрофессионалов

Сообщение Nika » 01 окт 2016, 18:51

Freeman писал(а):
Nika писал(а):А где можно взглянуть на, собственно, сам компилятор?
Разработка компилятора только-только начинается.[...]
Ну "HelloWorld" он уже хотя бы транслирует?
Последний раз редактировалось Nika 01 окт 2016, 18:52, всего редактировалось 1 раз.
Nika
Мастер Даунгрейда
 
Сообщения: 595
Зарегистрирован: 17 окт 2013, 00:21

Re: Языки программирования для непрофессионалов

Сообщение Gawobeka » 02 окт 2016, 21:25

Кто в Logo разбирается - можно его сч тать функциональным? Все-таки считается потомком Лиспа
Аватара пользователя
Gawobeka
Мастер Даунгрейда
 
Сообщения: 304
Зарегистрирован: 08 дек 2012, 22:11
Откуда: Кострома

Re: Языки программирования для непрофессионалов

Сообщение Gawobeka » 06 авг 2017, 01:32

Просто как еще одно мнение, найденное в WWW:

22century.ru/popular-science-publications/myth-about-a-simple-language-for-non-programmers
Миф о «простом языке для непрограммистов»

«Мы сделали язык, на котором смогут писать программы даже те, кто не умеет программировать».
В 99% случаев за этой фразой скрывается не более чем оправдание для плохо задизайненного языка. И от того, чтобы написать «100%», меня удержало только то, что я не все случаи в истории видел, поэтому, мало ли — надо дать миру шанс.

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

Тут вся штука в том, что очень многие путают «язык, у которого очень мало команд» с «языком, на котором легко писать программы» или с «языком, на котором легко научиться писать программы». На самом деле, всё обстоит чуть ли не с точностью до «наоборот»: язык, у которого очень мало команд, крайне сложен и в освоении, и в использовании.
Аватара пользователя
Gawobeka
Мастер Даунгрейда
 
Сообщения: 304
Зарегистрирован: 08 дек 2012, 22:11
Откуда: Кострома

Re: Языки программирования для непрофессионалов

Сообщение KPG » 07 авг 2017, 19:50

Gawobeka писал(а):Просто как еще одно мнение, найденное в WWW:
...

Зачастую это так и есть. :) Скретч, например, как прививка алгоритмического мышления.

P.S. Перечитал тред, и в приведённом описании некоторых ключевых моментов Форт от Олега заметил некоторые неточности,
а именно что контексный словарь - это не единственный словарь, а организованная цепочка словарей (контекст) по которой ищется необходимое слово с требуемым функционалом для включения в текущий словарь. (т.к. и с одним именем слово может быть в разных словарях). У выстроенной цепочки, конечно, есть первый словарь с которого и начинается поиск.
Слово найденное в словаре анализируется на признаки - или непосредственного исполнения или компиляции в определяемое слово (State признак) Не нашли - значит пытаемся его понять как число, не получается и это, то выдаём ошибку, хотя в SPF4 ещё добавлено слово NOTFOUND и если оно активизировано, то оно может окончательно определится со словом из потока при трансляции программы.
В реализации Олега форка SPF4 он ушёл от этого и считает всегда найденное слово исполнимым и даже числа :) Его модель работы со словарями не классического исполнения. Он обобщил и слово выделяемое как словарь (в классике Форт) в единое своё понятие слова и "механики' работы с ним.
Дополню ещё некоторые ссылки о Форт дискутируемым мнениям,
Почему обречён Форт и более интересный опрос Кто какие Форт системы использует - англоязычный тред в Форт хабе на Github
Также кого то на рускоязычном Форт форуме заинтересовало старое познавательное опросное обсуждение От Форт к ОС

Давно, что то, не заходил на форум по HiAsm - именно позиционируемому как инструмент для неумеющих программировать.
Последний раз редактировалось KPG 08 авг 2017, 01:17, всего редактировалось 22 раз(а).
KPG
Матерый даунгрейдер
 
Сообщения: 70
Зарегистрирован: 21 окт 2015, 21:53

Re: Языки программирования для непрофессионалов

Сообщение Gawobeka » 08 авг 2017, 22:24

Прочитав автора, я стал сомневаться, что Бейсик - это для начинающих. Ведь написать "Hello ..." на нем легко, но более сложные программы иногда (всегда?) разработать сложнее, чем на "профессиональных" языках
Аватара пользователя
Gawobeka
Мастер Даунгрейда
 
Сообщения: 304
Зарегистрирован: 08 дек 2012, 22:11
Откуда: Кострома

Re: Языки программирования для непрофессионалов

Сообщение Freeman » 09 авг 2017, 20:00

Gawobeka писал(а):написать "Hello ..." на нем легко, но более сложные программы иногда (всегда?) разработать сложнее

Это очень по-американски.
Разработчик языка программирования Кантор
Аватара пользователя
Freeman
Мастер Даунгрейда
 
Сообщения: 647
Зарегистрирован: 06 дек 2012, 05:49
Откуда: Санкт-Петербург

Re: Языки программирования для непрофессионалов

Сообщение KPG » 09 авг 2017, 20:56

Gawobeka писал(а):Прочитав автора, я стал сомневаться, что Бейсик - это для начинающих. Ведь написать "Hello ..." на нем легко, но более сложные программы иногда (всегда?) разработать сложнее, чем на "профессиональных" языках

Смотря какой современный диалект Бейсика и для каких целей использовать, какое вокруг него коммунити, среды разработки и др (что школьники на нём будут делать)
А если брать например Турбо Бейсик (уже он был структурный) и спартанские условия, то возможностей гораздо меньше,
хотя и на нём можно реализовывать решение каких то задач,
но до этого ассемблер уже был освоен и даже использовался для расширения и Бейсика на Spectrum ZX помимо PC (Си, правда, более интересно смотрелся)

P.S. Годик-полтора и на Бейсике был опыт программирования помимо ассемблера и ещё он меня немного времени не отпускал после этого опыта. :)
Где то даже бумажные листинги, возможно, сохранились.
Основных претензий к нему у меня на тот момент было примерно 2-е (кроме относительно недолгого времени компиляции)

1. Для решения задачи и развития инструментария приходилось очень интенсивно использовать механизм работы со строками.
(вариант доморощенной бухгалтерской системы и компьютерной автоматизации в начале ломатых 90-х на i386 процессорах)
2. На распечатке листинга программы не было почти пустого места (заполняемость площади листа)

Но что интересно, работа с массивами была довольно эффективна.
Последний раз редактировалось KPG 09 авг 2017, 21:14, всего редактировалось 9 раз(а).
KPG
Матерый даунгрейдер
 
Сообщения: 70
Зарегистрирован: 21 окт 2015, 21:53

Пред.След.

Вернуться в Флейм

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron