Сведения о вопросе

Kimsanov

20:30, 10th August, 2020

Стоит ли разрабатывать новый язык програмирования?

Просмотров: 372   Ответов: 17

Стоит ли разрабатывать новый язык програмирования?

Собственно уже не раз задавался себе вопросом о избыточности

и излишней универсализации существующих решений…

Дело в том что оптимальных решений в области компиляторов

и языков програмирования на сегоднешний день НЕТ.

И вот почему:

— оптимизация под конкретную архитектуру процесора (CPU иль GPU) вещь довольно абстрактная и решается совсем не опытными системами и даже не эвристикой а простым ДКА (if...then) из-за возможных больших нагрузок. Это, казалось бы, решение довольно логичное и оптимальное, но с приходом облаков, кластеров и прочих паралельных плюшек можно было бы найти какое-то «более быстрое» комплексное решение, и оно таки есть… только кому надо придумывать велосипеды с турбонадувом?

— человек решает проблемы абстракции приложений в большинстве случаев императивным

«чёрным ящиком» и пачкой шаблонов (в идеале 2-3), так появляются на свет шаблоно-зомби, и прочие недопроджекты. «0_о я открыл для себя мир erlang'a» — сказал Юра. «А нам пофиг.» — сказала team'a.

И так уже было со мною не раз — в одном случае ООП в другом функционал… в третьем brainfuck и сайт на fasm'e. кому какое дело?.. всем пофиг — «лишь бы работало» никто не задумывается о скорости и эфемерной «оптимальности». Так вот я скажу что у людей слишком много свободы! Абстракция на то и абстракция что бы сказать this is a ball. а вот что внутри пускай решает сам язык, если нужен метан — будет метан, если нужно серебро будет серебро.

— 0_о нам всем нравится STL он такой мягкий и пушистый… в нём столько много плюшек =)

зачем нам учить те долбаные алгоритмы? зачем задумываться о структуре данных?

Она может быть избыточна?,- да что же ты несёшь… работает вот и хорошо, пускай даже медленно…

но ведь работает. И так каждый день… люди часто стараются решать задачу вычисления оптимальности алгоритмов для конечной реализации, но почти всех и всегда ждёт полный epic fail.

Как говорил дядя Кнут: «Низкоуровневая оптимизация — корень всех проблем.»

И тут тоже у людей слишком много свободы…


СОбственно о чём это я?.. а мораль довольно проста:

существующие решения являются отчасти комплексными но ввиду апаратных нагрузок ключевые моменты обобщены и «универсализированы» что ведёт к потери «оптимальности» выходной продукции.

То есть Универсальные решения не могут быть оптимальными, лишь комплексные…

А огромной проблемой в наше время является именно оптимизация, не важно под что многоядерность, многопоточность, распределение нагрузок, низкоуровневая…

Пускай у нас для этого будет такой себе эфемерный торрент-компилятор аля СкайНет.

Нас не волнует ни апаратное время, ни объём памяти.

Нам нужен компилятор «без компромисов» и парадигм времён і386.

Собственно ПО никогда не блестало производительностью — а апаратная платформа уже далеко впереди.

Вот собственно и всё, думаю причины «упадка компиляторовединья» всем понятны.


Интересует стандартный вопрос: «а стоит ли овчинка выделки?»

Я занялся разработкой подобного «чуда», пока (к сожелению) за 1.5 года идеально отточена мат. часть.

Просто не хочу повторять google wave.

Не хочу быть кем-то купленым.

Хочу найти единомышлеников.

P.S. Зарание прошу прощения за возможно допущеные ошибки — русский не мой нативный язык.

Также прошу прощения за излишнюю сумбурность изложения.

Надеюсь на ваше понимание… Просто «это всё» уже на порядок достало.



  Сведения об ответе

прога

01:19, 12th August, 2020

Если есть горячее желание, то пиши свой язык программирования. И не слушай тех, кто говорит тебе «оно того не стоит, это никому не нужно».


  Сведения об ответе

LIZA

05:19, 5th August, 2020

Прошу прощения…
При чтении комментариев перед глазами все ярче разгорается кровавая звезда с логотипа BolgenOS.


  Сведения об ответе

$DOLLAR

15:22, 24th August, 2020

нет. )


  Сведения об ответе

prince

16:40, 5th August, 2020

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


  Сведения об ответе

PHPH

15:40, 10th August, 2020

А можно посмотреть что-то конкретное по языку? Статьи ваши почитать, посты в блогах и тд?


  Сведения об ответе

lool

21:06, 1st October, 2020

Бля, чувак, ты под чем? Я много чего пробовал, но что б так крыло… Зависть-зависть-зависть.


  Сведения об ответе

PROGA

06:00, 9th August, 2020

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


  Сведения об ответе

прога

21:54, 27th August, 2020

Можно писать программы на языке, заточенном под одну-единственную железку, и она будет работать быстрее, чем программы на «универсальных» компьютерах. Но что бы использовать возможности железа на 100%, надо под каждую железку писать свою программу на своем языке программирования.

Другой подход — то о чем вы писали, «универсальность». Палка о двух концах. Требования рынка диктуют потребности в быстрой разработке софта — так появляются всякие высокоуровневые языки программирования. А ведь когда-то чистый Си считался непозволительно «раздутым» по сравнению с тем же асмом. Но «рынок» сказал — «нам нужно чтоб работало здесь и сейчас, и что бы специалисты могли легко осваивать новые языки, и писать софт под наше железо». Производительностью пришлось пожертвовать — это называется «компромисс».

Резюмируя, и отвечая на ваш вопрос: если вы хотите потренироваться в разработке оригинальных технологий, научиться наступать на грабли, и замечать их издали в будущем — создавайте свой собственный ЯП.


  Сведения об ответе

repe

04:12, 25th August, 2020

Конечно стоит, у вас вся жизнь впереди, будет потом над чем посмеяться что вспомнить.
Вообще, вам бы на rsdn в философию, к более целевой аудитории.


  Сведения об ответе

davran

02:00, 18th August, 2020

Если Вы задаете себе этот вопрос — ответ нет :)
+понравился вариант ответа от Christmas


  Сведения об ответе

nYU

09:18, 8th August, 2020

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


  Сведения об ответе

repe

03:06, 29th August, 2020

ИМХО, создавать нужно язык только в том случае если вы имеете отношение к железу…

Ассеммблер писать в том случае если вы создатель своего процессора…

А писать высокоуровневые языки вроде LISP, ADA, PASCAL. Только с целью обучения студентов или как хобби(Python).

P.S. Попробуйте подумать о мире как о рождающим предложения спросом мире… И вопрос о необходимости языков программирования отпадет сам собой…


  Сведения об ответе

KOMP

11:44, 20th August, 2020

Думаю это утопия. Если придерживаться поговорки — Каждый программист должен написать свой язык программирования, то может и стоит, для удовлетворения своих порывов. А вот в качестве серъезного языка программирования думаю не стоит, это колосальный труд и одному, даже небольшой командой будет очень сложно довести до конца, а еще потом и поддерживать. Если же делать опенсорсный проект, то лишь бы не получилось как со всякими PHP, когда вышел релиз 5.2.0, в котором была убита передача параметров в функции по ссылкам.


  Сведения об ответе

lats

18:46, 15th August, 2020

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


  Сведения об ответе

SILA

05:14, 6th August, 2020

Ух как тебя вставило! ты это поосторожней с дозировкой всяких голюциногенов!


  Сведения об ответе

SKY

22:09, 13th August, 2020

пролог наносит ответный удар \(*о*)/


  Сведения об ответе

SSESION

06:26, 24th August, 2020

По ходу, языками нынче мир пестрит не хуже вавилонской башни. Напишите лучше новый процессор.


Ответить на вопрос

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