Как и где продвигать новый язык программирования?
От: DSblizzard Россия  
Дата: 20.04.09 00:08
Оценка:
Как и где продвигать собственный язык программирования? Подойдут как русско- так и англоязычные ресурсы.
Программировать сложно. Но не программировать еще сложнее.
Re: Как и где продвигать новый язык программирования?
От: Mr.Cat  
Дата: 20.04.09 01:30
Оценка: 2 (1) :)
Здравствуйте, DSblizzard, Вы писали:
DS>Как и где продвигать собственный язык программирования? Подойдут как русско- так и англоязычные ресурсы.
"Где" — сейчас прийдет утро и накидают тебе ссылок на хабры, лямбдазеультиматы, слешдоты и пр.
"Как" — я бы продвигал "по аналогии". Подумал бы, на какой известный язык похожа твоя разработка, любителям какого языка она была бы интересна. Кого в первую очередь заинтересуют сильные стороны языка. И уже после этого адресно пиарился бы на ресурсах, посвященных языку-"жертве".

А, ну и на рсдн стоит про твой язык отписать.
Re: Как и где продвигать новый язык программирования?
От: mkizub Литва http://symade.tigris.org
Дата: 20.04.09 01:31
Оценка:
Здравствуйте, DSblizzard, Вы писали:

DS>Как и где продвигать собственный язык программирования? Подойдут как русско- так и англоязычные ресурсы.


Не нужно ни писать ни продвигать свои языки программирования.
По той причине, что язык, сам по себе — это очень мало.
У языка есть шанс, если он востребован в данное время, и над ним работают десятки человек. Впрочем, если он востребован, то над подобными языками уже работают тысячи человек. Шанс исчезающе мал. И ещё меньше шанс того, что вы работаете над действительно востребованым языком.
Даже хороший компилятор — это работа для многих людей. Но для языка нужен не только компилятор. Нужна IDE, нужна хорошая документация. Нужно сопровождение, исправление ошибок, развитие языка. И при постоянном развитии ещё больше нужен хороший, быстрый, безбаговый, документированый и пр. и пр. компилятор.
И два десятка лет (если все вышеозначенные, и наверное другие, условия выполнены).
И первый (а чаще всего и последующие несколько) блинов (языков, то-бишь) будут коммом.
SOP & SymADE: http://symade.tigris.org , блог http://mkizub.livejournal.com
Re[2]: Как и где продвигать новый язык программирования?
От: c-smile Канада http://terrainformatica.com
Дата: 20.04.09 01:52
Оценка: +2 -1
Здравствуйте, mkizub, Вы писали:

M>Здравствуйте, DSblizzard, Вы писали:


DS>>Как и где продвигать собственный язык программирования? Подойдут как русско- так и англоязычные ресурсы.


M>Не нужно ни писать ни продвигать свои языки программирования.

M>По той причине, что язык, сам по себе — это очень мало.
M>У языка есть шанс, если он востребован в данное время, и над ним работают десятки человек. Впрочем, если он востребован, то над подобными языками уже работают тысячи человек. Шанс исчезающе мал. И ещё меньше шанс того, что вы работаете над действительно востребованым языком.
M>Даже хороший компилятор — это работа для многих людей. Но для языка нужен не только компилятор. Нужна IDE, нужна хорошая документация. Нужно сопровождение, исправление ошибок, развитие языка. И при постоянном развитии ещё больше нужен хороший, быстрый, безбаговый, документированый и пр. и пр. компилятор.
M>И два десятка лет (если все вышеозначенные, и наверное другие, условия выполнены).
M>И первый (а чаще всего и последующие несколько) блинов (языков, то-бишь) будут коммом.

Всё так и не так. Вышесказанное справедливо для языков типа C# или VB.
Но есть также скажем PHP или Ruby которые с точки зрения компиляторостроения и всего прочего — ноль на палочке.
Просто оказались в нужное время в нужном месте. Также и например Python — ну ведь VB же голимый и собственно был и сделан в пику Basic'у. Но вишь ты — есть community.
Т.е. наперед никогда нельзя сказать — пойдет язык или нет.

По делу: скажешь что язык — скажем кому он будет интересен — т.е. где его продвигать.
Re[3]: Как и где продвигать новый язык программирования?
От: Кодёнок  
Дата: 20.04.09 06:37
Оценка: 1 (1) +2
Здравствуйте, c-smile, Вы писали:

CS>Просто оказались в нужное время в нужном месте. Также и например Python — ну ведь VB же голимый и собственно был и сделан в пику Basic'у. Но вишь ты — есть community.


Не вижу ничего общего между питоном и VB. Питон имхо стал популярен благодаря чистому синтаксису (во времена Python 1.5 логичный язык без мусора — это та еще диковинка) и очень мощной стандартной библиотеке.
Re[4]: Как и где продвигать новый язык программирования?
От: MasterZiv СССР  
Дата: 20.04.09 07:31
Оценка:
Кодёнок wrote:

> Не вижу ничего общего между питоном и VB. Питон имхо стал популярен

> благодаря чистому синтаксису (во времена Python 1.5 логичный язык без
> мусора — это та еще диковинка) и очень мощной стандартной библиотеке.

Я удержался от подобного поста, но раз уж пошла пьянка...

Да питон стал популярным по одной простой причине: это классный
и мощный язык. С простой и очевидной семантикой и кучей библиотек,
не требующих OLEAutomation для связи с собой.

А VB как язык (не как технология) — это просто кусочек какашки.
Собственно, почему его C-шарпом и заменяют.
Posted via RSDN NNTP Server 2.1 beta
Re: А в чём цель?
От: Erop Россия  
Дата: 20.04.09 08:59
Оценка: 1 (1) +1
Здравствуйте, DSblizzard, Вы писали:

DS>Как и где продвигать собственный язык программирования? Подойдут как русско- так и англоязычные ресурсы.


А зачем это нужно? От этого, IMHO, очень зависит и где и как...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Как и где продвигать новый язык программирования?
От: c-smile Канада http://terrainformatica.com
Дата: 20.04.09 20:41
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, c-smile, Вы писали:


CS>>Просто оказались в нужное время в нужном месте. Также и например Python — ну ведь VB же голимый и собственно был и сделан в пику Basic'у. Но вишь ты — есть community.


Кё>Не вижу ничего общего между питоном и VB. Питон имхо стал популярен благодаря чистому синтаксису (во времена Python 1.5 логичный язык без мусора — это та еще диковинка) и очень мощной стандартной библиотеке.


А что в VB такого "грязного"?

Смотрим сюда:
http://merd.sourceforge.net/pixel/language-study/syntax-across-languages-per-language/VisualBasic.html
А теперь смотрим сюда:
http://merd.sourceforge.net/pixel/language-study/syntax-across-languages-per-language/Python.html
Re[2]: Как и где продвигать новый язык программирования?
От: Mr.Cat  
Дата: 20.04.09 20:55
Оценка: +1 :)
Здравствуйте, Mr.Cat, Вы писали:
MC>"Где" — сейчас прийдет утро и накидают тебе ссылок на хабры, лямбдазеультиматы, слешдоты и пр.

Хм... не накидали. Ну тогда начинай чтоли пиарить на rsdn, а мы по ходу дела подскажем, где еще анонсировать стоит.
Re: Описание языка
От: DSblizzard Россия  
Дата: 27.04.09 00:03
Оценка:
Повторю ссылку на всякий случай:
http://files.rsdn.ru/48064/Drive%2022.04.09.zip

Серьезно говорить о продвижении того, что я написал, пока рано, я интересовался больше теоретически, на будущее. Большое спасибо всем, кто ответил, напишу несколько более подробно, как и почему я решил создать ЯП.

Несколько лет назад я захотел написать программу искусственной жизни, симулирующей бактерию. Скоро понял, что для написания серьезной развивающейся программы требуется развивающийся язык и C#, на котором я тогда писал, для этой цели подходит плохо. О Лиспе я тогда не знал, если бы знал, все могло бы сложиться совсем не так. Да и слава Богу, что не сложилось.
Для написания языка перепробовал почти полный спектр языков: от ассемблера до Лиспа ("почти" — потому что я считаю Пролог более высокоуровневым языком). К Лиспу я серьезно охладел после того, как однажды при написании игрушки три недели плясал с несколькими бубнами и так и не смог подключить графику. К тому же в это время узнал, что некоторые известные лисперы переходят на Питон и рекламируют его, решил попробовать.
В Питоне меня не устраивает разный подход к передаче параметров — списки передаются по ссылке, а простые переменные — по значению. При рефакторинге это создает серьезные проблемы, когда элементарное значение решаешь превратить в список.
При создании языка оказалось, что передавать одни значения мало, нужны их адреса и адреса даже важнее, по понятной причине — по адресу можно получить значение, а по значению адрес — нет. Пришлось эмулировать систему указателей из низкоуровневых языков. Только указатели помощнее, позволяют обращаться к узлам дерева и не только по номерам, но и по тэгу (типу). Вот основная структура данных:
[Тип Структура1 Структура2 ..], где Структура — такая же основная структура, либо конечный ее вид — [Тип Значение].
Потенциально это позволит динамически создавать и удалять определения функций. Преимущества ленивых вычислений вы и сами знаете, передачу по ссылке решил использовать, потому что она больше соответствует особенностям моего мышления, чем функциональное программирование.
У языка унифицированный префиксный синтаксис:
def( f(X)
ret(X)
)

=(X 4)
loop(
if(
<(X 2)
cout("<2")
else
cout(">=2")
)
=( X -(X 1) )
break( ==(X 0) )
)
Интерпретатор написан на Питоне 2.6.
Интерпретатор пока работает с черепашьей скоростью, а так как я хотел написать следующую версию языка на первой версии, то это представляет огромную проблему. Как ее решить, я еще не придумал. Я против оптимизации, смешанной с кодом / встроенной в код.
В процессе создания начало складываться ощущение, что почти все современные языки, включая и Питон 3.0, устарели. Программист не должен заботиться о том, где расположены его данные, его должны интересовать только сами данные. Видимо, следующая версия моего языка будет более декларативной — constraints & logic, эволюционные вычисления, pattern matching/recognition или еще что-нибудь большое и светлое.
Хотелось бы знать, есть ли те люди, которых заинтересовал мой язык или которые хотели бы написать свой, или которые уже писали что-то подобное и могли бы поделиться опытом.
Программировать сложно. Но не программировать еще сложнее.
Re[2]: Описание языка
От: BrigateRosse  
Дата: 27.04.09 05:04
Оценка: 1 (1) +2
Здравствуйте, DSblizzard, Вы писали:

DS>Повторю ссылку на всякий случай:

DS>http://files.rsdn.ru/48064/Drive%2022.04.09.zip

Я бы на твоем месте ответил на 3 частных вопроса:

— Какова цель проекта (20 слов)
— Кто будет писать на новом ЯП (8 слов)
— Где будет использоваться ЯП через 5 лет (12 слов)

Если уложишься — сам увидишь ответ на все остальные вопросы.
Re[2]: Описание языка
От: dmz Россия  
Дата: 27.04.09 05:37
Оценка:
DS>В Питоне меня не устраивает разный подход к передаче параметров — списки передаются по ссылке, а простые переменные — по значению. При рефакторинге это создает серьезные проблемы, когда элементарное значение решаешь превратить в список.
DS>При создании языка оказалось, что передавать одни значения мало, нужны их адреса и адреса даже важнее, по понятной причине — по адресу можно получить значение, а по значению адрес — нет. Пришлось эмулировать систему указателей из низкоуровневых языков. Только указатели помощнее, позволяют обращаться к узлам дерева и не только по номерам, но и по тэгу (типу). Вот основная структура данных:

По моему, все это говорит о том, что вы не разобрались в предмете. Если такая передача параметров (совершенно естественная) почему-то мешает, это, скорее всего, говорит о проблемах дизайна. Т.е. на фичу языка особенность передачи параметров слабо тянет.
Если нужен частый рефакторинг с изменением типов, то это сразу наводит на мысли, что просто нужен язык с сильной статической типизацией. Который будет это вылавливать на этапе компиляции и ошибки типов просто не пройдут. Например, питоноподобным языком со статическими типами является Boo. Есть языки и более высокого уровня, которые использовать для решения такого рода исследовательских задач было бы резоннее. Почему они не рассматривались?


DS>В процессе создания начало складываться ощущение, что почти все современные языки, включая и Питон 3.0, устарели. Программист не должен заботиться о том, где расположены его данные, его должны интересовать только сами данные.


А какие языки рассматривались, позвольте спросить?

И с какой стати, в питоне кого-то особенно интересует, где расположены его данные (которые расположены на хипе, кроме примитивных типов — но это совершенно неважно) ?

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


Делюсь опытом.

1) Не надо что-то делать, если есть возможность этого избежать. Неделание — лучше чем делание.

2) Надо четче ставить цели. Кому и зачем нужен язык. Почему не подходят существующие. То, что озвучено про питон, извините, выглядит смехотворно. Т.е. у питона есть проблемы, конечно — но вот вышеприведенное не проблема совершенно. Если же вы настаиваете, что это проблема — приведите сравнительные кейсы. Т.е. как нечто делается на питоне делается плохо, на вашем языке — хорошо, и почему так.
Re[3]: Описание языка
От: Курилка Россия http://kirya.narod.ru/
Дата: 27.04.09 05:45
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>2) Надо четче ставить цели. Кому и зачем нужен язык. Почему не подходят существующие. То, что озвучено про питон, извините, выглядит смехотворно. Т.е. у питона есть проблемы, конечно — но вот вышеприведенное не проблема совершенно. Если же вы настаиваете, что это проблема — приведите сравнительные кейсы. Т.е. как нечто делается на питоне делается плохо, на вашем языке — хорошо, и почему так.


Пусть это будет несколько оффтопично, но не мог бы рассказать, какие лично ты видишь проблемы в питоне? Помимо динамической типизации и скорости?
Re[4]: Описание языка
От: dmz Россия  
Дата: 27.04.09 06:03
Оценка: 1 (1)
К>Пусть это будет несколько оффтопично, но не мог бы рассказать, какие лично ты видишь проблемы в питоне? Помимо динамической типизации и скорости?

А этого мало?

Отсутствие оптимизации хвосторой рекурсии, что в принципе сводит к нулю и без того чахоточные функциональные возможности. Плохая поддержка SMP (или вообще отсутствующая, даже для stackless питона, что особенно уныло). Плохой GC.

Package hell. Это не совсем про язык, это больше про окружение, но тем не менее.

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

Реализация мне кажется намного более приличной и аккуратной у Lua. Т.е. если нужен динамический императивный язык, то я бы сейчас рассматривал Lua.

Ну и напоследок — разведенный зоопарк с условно совместимыми (и вообще несовместимыми) версиями + package hell приведет к тому к дикому бардаку в продакшене — т.е. мне такого щастья на моих серверах точно не надо. Накатывание питоновского приложения X на сервер, которое потребует другой версии питона, чем там есть — может привести к последствиям. И вообще — какой питон сейчас считать продакшн? Под какой разрабатывать новое приложение, которое будет (допустим) распространяться?
Re[2]: Описание языка
От: dmz Россия  
Дата: 27.04.09 06:04
Оценка: +1 :))) :)
DS>Для написания языка перепробовал почти полный спектр языков: от ассемблера до Лиспа ("почти" — потому что я считаю Пролог более высокоуровневым языком). К Лиспу я серьезно охладел после того, как однажды при написании игрушки три недели плясал с несколькими бубнами и так и не смог подключить графику.

А как подключить "графику" к вашему языку?
Re[5]: Описание языка
От: Курилка Россия http://kirya.narod.ru/
Дата: 27.04.09 07:41
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>Плюс я считаю его низкоуровневым по сравнению с некоторыми другими языками. При этом, если более высокоуровневый язык показывает лучшую производительность и масштабируемость — то надо задуматься, имеет ли право на жизнь менее высокоуровневый?


Не мог бы ты пояснить эту низкоуровневость? Лучше продемоснтрировать, конечно.
Ну и какие другие? Haskell, lisp?
Re[6]: Описание языка
От: dmz Россия  
Дата: 27.04.09 07:50
Оценка: :)
К>Не мог бы ты пояснить эту низкоуровневость? Лучше продемоснтрировать, конечно.

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

К>Ну и какие другие? Haskell, lisp?


Haskell — очень хорошо. Lisp не знаю.
Re[7]: Описание языка
От: dmz Россия  
Дата: 27.04.09 08:56
Оценка:
dmz>Haskell — очень хорошо. Lisp не знаю.

В смысле — haskell, ocaml и прочие ml-и, clean.

Неправильно распарсил вопрос сначала.
Re[8]: Описание языка
От: Курилка Россия http://kirya.narod.ru/
Дата: 27.04.09 09:08
Оценка:
Здравствуйте, dmz, Вы писали:


dmz>>Haskell — очень хорошо. Lisp не знаю.


dmz>В смысле — haskell, ocaml и прочие ml-и, clean.


вот с продакшном в клине как-то, я бы постремался

dmz>Неправильно распарсил вопрос сначала.


Ничего страшного
Re[9]: Описание языка
От: dmz Россия  
Дата: 27.04.09 09:12
Оценка:
dmz>>>Haskell — очень хорошо. Lisp не знаю.

dmz>>В смысле — haskell, ocaml и прочие ml-и, clean.


К>вот с продакшном в клине как-то, я бы постремался


Это да. Они даже линк на скачивание прислать не могут, потому что, видимо, я запрос отправил в выходной.
Ну я же не мог написать один хаскелл. В окамле меня, например, крайней раздражает стандартная библиотека.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.