LINUX.ORG.RU
решено ФорумTalks

Как грамотно и качественно создать свой ЯП?

 ,


2

2

Привет. У меня есть наброски своего языка программирования, теперь думаю как лучше его реализовать. Цель - создать быстрый и практичный язык для продакшена, чтобы писать на нём проги, а не просто сделать, поиграться и выбросить. И мой вопрос не в том как сделать язык вообще, а именно как сделать лучше.

Язык планируется общего назначения, высокоуровневый, с автоматическим управлением памятью, многопоточный, мультипарадигменный, js-подобный, скрипты будут во время выполнения компилироваться на лету в байт-код или в машинный код, который будет сохраняться на hdd и впоследствии будут загружаться именно он.

Хотелось бы выслушать мнение профессионалов, какие есть косяки в известных языках и компиляторах, чтобы не повторить их снова, какие есть тонкие моменты, которые стоит учесть.

По поводу самого языка:

1. Нужны ли классы? Мне нравится прототипное программирование и я не понимаю, зачем тогда нужно класс-ориентированное. Какие преимущества даёт класс по сравнению с прототипом?

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

3. Какие фичи лично вам бы хотелось видетьв новом ЯП?

По поводу реализации:

1. Байт-код или машинный код? И если первое, то регистровая машина или стековая?

2. Какие есть рекомендации по разработке сборщика мусора и оптимизатора?

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

4. Какие посоветуете готовые разработки, которые можно приспособить для своего языка? Компиляторы, виртуальные машины, генераторы парсеров, библиотеки, среды разработки?

5. Как вообще лучше реализовать jit-компилятор?

Перемещено tailgunner из development

Ответ на: комментарий от russian-turist-2019

Пока мой выбор остановился на LLVM, как считаете, хороший выбор?

llvm для скриптухи? Ты явно что-то перепутал.

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

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

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

Я не фантазирую, а советуюсь с людьми, которые в этом разбираются лучше. Может быть здесь кто-то сам пробовал создавать язык и может уберечь меня от каких-то распространённых ошибок.

Основная твоя ошибка в том, что ты собрался браться за дефолтное дерьмое, которое требует сотни рабов и тысячи лет. Этого у тебя нет.

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

Поэтому, единственное решение - это решить всё это на уровне архитектуры и дизайна языка.

vcerloman
()
Ответ на: комментарий от russian-turist-2019

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

А вот это называется каша в голове. Сложно тебе будет.

Пока мой выбор остановился на LLVM, как считаете, хороший выбор?

Передически интернет выплевывает отзыв еще одного языкописателя что оно не работает. Я просто слежу за темой И таких много. С другой стороны у его авторов из него выросли очень неплохие clang и swift. Вопрос настолько ли ты крут?

antares0 ★★★★
()
Последнее исправление: antares0 (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Ну ты послал меня на хабр, либо не ты. Ну я пошел - там ламерки ещё хуже тутошних.

Кстати, ты там до сих пор веришь в раст? Ты бы хоть читал темы и оценивал уровень адептов твоей веры - это же полный ахтунг.

vcerloman
()
Ответ на: комментарий от russian-turist-2019

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

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

Допустим, я всегда считал, что отсутствие типизации - это идиотизм. И я пошел в мире жаваскрипта для изучения темы, ведь в моём мире типизация есть и была всегда. И что я там увидел? Увидел 1в1 то, что я всегда знал и предполагал, а именно - полную жопу. И что самое главное, я узнал, что об этом говорит весь мир жаваскрипта.

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

vcerloman
()

vcerloman, спасибо за развёрнутый и интересный ответ! Похоже, что я не совсем верно объяснил мою идею. У меня будут типы. Помимо стандартных типов, любой объект первого класса также сможет выступать в качестве типа. То-есть, возможно правильнее было бы сказать, что это гибрид класс-ориентированного и прототипного программирования.

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

Байт-код, а вернее то, что ты в него вкладываешь - никому не нужно. Это сдохло и протухло.

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

Это не имеет смысла. Что ты там собрался компилировать? Тебя обманули в том, что это что-то даст - ничего это не даст.

Обращение извне для модульности. Компиляция - потому что байткод или машинный код быстрее исходника.

По поводу jit - мне показалось это удобней. Просто запускает исходник и он компилируется сразу же во время выполнения

llvm для скриптухи? Ты явно что-то перепутал.

Возможно. А теперь объясните, почему он не подходит. Я читал, там jit есть, а значит инерпритировать скрипты сможет

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

Мне глубоко плевать на признание, мне нужен лишь сам инструмент.

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

Я программировал и на других языках, просто js мне понравился больше

russian-turist-2019
() автор топика

Ребят, я понимаю, многим из вас это кажется смешным, что какой-то нуб замахнулся на создание своего языка, но я серьёзно намерен этим заняться, поэтому меня интересует ваше экспертное мнение по некоторым вопросам, чтобы не сделать какую-то ерунду и не переделывать потом с нуля

russian-turist-2019
() автор топика
Ответ на: комментарий от vcerloman

Зря ты вернулся.

А что так?

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

У тебя фиксация на том, чтобы меня изжить?

Чтобы тебя изжить, нужен бан по ДНК. Но необходимость чистить твою муть меня не радует.

tailgunner ★★★★★
()
Ответ на: комментарий от russian-turist-2019

что какой-то нуб замахнулся на создание своего языка,

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

antares0 ★★★★
()
Ответ на: комментарий от russian-turist-2019

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

Какое отличие прототипа от наследования? То, что прототип - это некий базовый инстанс, общий для всех «наследников». Для статических языков это не нужно - функций итак нет в объектах.

Остаётся только одно - хранить там данные, но опять же - нахрена? Если есть статик.

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

Я такого не знаю. Из всего того, что я видел - везде это отдельная область. Да и даже в жс сейчас - это отдельная область. И причина проста, ведь не делать так - это верх аутизма. И даже в рамках жс это признали.

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

Дело не в байт-коде. Байт-код это не жава, байт-код( либо промежуточное представление) нужно для унификации внутри компиляторов, либо тех же житов.

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

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

Обращение извне для модульности. Компиляция - потому что байткод или машинный код быстрее исходника.

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

Проблема в том, что jit - это не компилятор в том контексте, в которым ты говоришь о нём. В во всяких жс, жавах - это просто кастыль для интерпретатора.

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

Возможно. А теперь объясните, почему он не подходит. Я читал, там jit есть, а значит инерпритировать скрипты сможет

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

Мне глубоко плевать на признание, мне нужен лишь сам инструмент.

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

Это всегда надо учитывать.

Я программировал и на других языках, просто js мне понравился больше

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

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

vcerloman
()
Ответ на: комментарий от tailgunner

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

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

Что же вы такие сложные.

Чтобы тебя изжить, нужен бан по ДНК. Но необходимость чистить твою муть меня не радует.

А почему? Зачем ты чистишь безосновательно то, что лишь неугодно тебе? Что тебе мешает показать всем, что я неправ, что у меня «муть» и прочее? Не можешь? Ты ведь пытался, правда безуспешно.

Ну дак действуй честно. В чём твоя проблема? Попытайся ещё раз. Я живое напоминание покалеченного самомнения? Я помню как ты, да и многие другие, бежали с блеском в глазах на тряпку с мыслями «щас я покажу ему его место», но сколько бы вас ни было, место вы показывали не мне, а себе.

Это тебе намёк на то, что не все, кто думают не так, как ты - идиоты. С этим очень просто жить, в это очень просто верить и большинство с контр-примерами не сталкиваются, но ты столкнулся.

И не надо пытаться меня изживать - тебе надо лишь принять то, что твои представления о реальности были неверными.

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

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

vcerloman
()
Ответ на: комментарий от vcerloman

Стековое дерьмо существует только в тех случаях, когда кто-то не осилил регистры. Это настолько убогое дерьмо, что лучше бы его никто не видел.

Так что, wasm обречен на провал? а я уже надеялся что хоть что-то уменьшит количество жабаскрипта в этом мире, а оказывается оно тоже «убогое дерьмо».

pftBest ★★★★
()
Ответ на: комментарий от pftBest

Так что, wasm обречен на провал?

Дело не в том, что он обречён. Это никак не связано. Обречена на провал его производительность и управляемость относительно «на прямую», но это в любом случае лучше жабаскрипта, да и дело даже не в жабаскрипте.

а я уже надеялся что хоть что-то уменьшит количество жабаскрипта в этом мире

Не уменьшит - оно лишь снимет ограничения с тебя, ибо без него ты обречён на жабаскрипт.

vcerloman
()
Ответ на: комментарий от Virtuos86

Я заметил его, но не был уверен. Мне для его опознания нужна большая простыня.

tailgunner ★★★★★
()
Ответ на: комментарий от pftBest

Ах ну и да, забыл основное. Провал/успех определяют не сами подходы и языки, а те, кто на них пишут. Другое дело, что это пусть не прямо, но косвенно связано с самим языков/подходом. Именно поэтому раст обречён на провал, впили туда хоть всё фишки из да, да и просто интегрируй туда сишку. И всё это работает на очень простой логике.

Если есть человек, который что-то понимает и может, то ему нет смысла использовать то, что его ограничивает. Зачем сильному компиляторщику идти в мир js? Что-бы писать хелворд типа тайпскрипта? Там справиться любой второкурсник. Да, всех можно купить, но на самом деле ничего не покупается. Никогда человек, знающий что есть что-то лучше, что-то более подходящие и то, что больше нравиться ему - не будет продуктивно работать через силу на том, что ему не нравиться и то, что ограничивает его продуктивность.

Т.е., человеку нет смысла развивать asm.js, когда он понимает, что это тупик - он будет развивать тот же wasm, либо если это не так - он будет этого хотеть.

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

То же самое происходит и в расте и во всех поделках на нём - он привлекает только неолсиляторов, ведь тот, кто осилил и уже реализует себя в чём-то другом - для него смысла в расте, особенно тогда, когда он ничего ему не даёт, а только забирает.

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

И это расто-адепту мешает, вернее даёт ему ложную уверенность. Он пишет дерьмо, потом видит то, что кто-то написал лучше. И начинает пастить, а после говорит «ну почти(там 2-3 раза входит в это почти) не отличается», но он не понимает, что написал-то этот код не он, он лишь его спастил, но сам он его никогда бы не написал.

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

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

vcerloman
()

книга же есть, если не читал
Креншоу «Давайте создадим компилятор»

xmikex ★★★★
()
Ответ на: комментарий от russian-turist-2019

Ребят, я понимаю, многим из вас это кажется смешным, что какой-то нуб замахнулся на создание своего языка, но я серьёзно намерен этим заняться, поэтому меня интересует ваше экспертное мнение по некоторым вопросам

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

Virtuos86 ★★★★★
()

Чувак, успокойся. Напиши лучше какую-нибудь годную либу для любого языка и то будет больше пользы.

AUX ★★★★
()
Ответ на: комментарий от den73

Что вы так цепляетесь за этот репл? Дев-репл даже для сишки можно сделать из говна и палок (уровня gcc -shared / dlsym, например), но никто не сделал, потому что f(муторно, ненужно) -> 0. Это не киллерфича, уж тебе ли не знать.

anonymous
()
Ответ на: комментарий от anonymous

Дев-репл даже для сишки можно сделать из говна и палок (уровня gcc -shared / dlsym, например)

Без сохранения состояния - это не REPL, а говно с палками.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Дев-репл даже для сишки

написали на лиспе в рамках http://cliki.net/ecl Там как раз инкркментныое добавление с-шной функциональности получается очень прелестно. Хотя это и побочный результат от лиспа.

antares0 ★★★★
()
Последнее исправление: antares0 (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Можно пофантазировать на эту тему, но речь не о том. Рынок ПО, на котором по факту 2.5 реально успешных программиста (мв, пол грэм и кто там еще), это скорее насмешка над технологией, чем вин.

anonymous
()

Жизнь прекрасна и удивительна, если выпить предварительно.

King_Carlo ★★★★★
()
Ответ на: комментарий от anonymous

Рынок ПО, на котором по факту 2.5 реально успешных программиста (мв, пол грэм и кто там еще), это скорее насмешка над технологией, чем вин.

Ну это да, однако REPL - полезный инструмент. Python, JS, Ocaml и Haskell не могут ошибаться.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

ITA вместе c програмистами на лиспе которых там несколько больше 2-ух была оценена гуглом в 700 мегабаксов наличностью. Назвать их совсем неуспешными - сложно:) это такой самый публичный пример. Грэм он больше популизатор чем програмист.

antares0 ★★★★
()
Ответ на: комментарий от vcerloman

Я у тебя с пяток дет назад интересовался, но ты тогда наверное был не в том настроении. А почему ты склонен полагать, что ультраскилл это то, что не ненужно миру? Не, я не говорю, что это не круто, и с точки зрения лорчика это по-царски, даже без сарказма. Но прчему ты (не только ты) не вложите свои знания и опыт в продукт, который позволит другим делать то же самое. В мире дохрена предметных специалистов и просто хоббистов, у которых тупо нет времени и бэкграунда чтобы осилить переложение своих потенциальных задач на /dev как он есть сейчас.

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

anonymous
()
Ответ на: комментарий от antares0

Кстати интересно было бы посчитать затраты на железо игроков которых они выкинули с рынка. Там например были топовыt майнфрэймы ibm-а. Хотя это все это счас практически доисторическим выглядит.

antares0 ★★★★
()
Ответ на: комментарий от vcerloman

То же самое происходит и в расте и во всех поделках на нём - он привлекает только неолсиляторов, ведь тот, кто осилил и уже реализует себя в чём-то другом - для него смысла в расте, особенно тогда, когда он ничего ему не даёт, а только забирает.

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

Как ты думаешь, почему весь мир сейчас страдает от эпидемии electron приложений? Потому что люди смотрят на Qt, смотрят на gtk, смотрят на плюсы - говорят ну нахрен, и идут обратно на свой уютненький жабаскриптик. А я, как пользователь, из за этого должен мучаться и отдавать гигабайты оперативки на какой-то галимый чатик для skype.

Раст не идеален, но это единственный язык, который хоть как-то пытается сделать так, чтобы с одной стороны даже вебмакаки смогли писать код без сегфолтов, а с другой стороны дать unsafe инструменты для тех кто знает как ими пользоваться и может написать (или скопипастить) быстрые библиотеки, которыми смогут пользоваться первые. А выиграют от этого в первую очередь пользователи.

Так вот и сейчас, зарелизился wasm, а из языков под него только С, С++ и Rust. Ты думаешь побегут школьники разом учить плюсы? очень сомневаюсь, но я надеюсь что хотя бы немного js кода будет переписано на расте, от чего лично я, и много других людей получат чуть менее тормозмозные веб приложения.

pftBest ★★★★
()
Ответ на: комментарий от pftBest

Как ты думаешь, почему весь мир сейчас страдает от эпидемии electron приложений? Потому что люди смотрят на Qt, смотрят на gtk, смотрят на плюсы - говорят ну нахрен, и идут обратно на свой уютненький жабаскриптик.

Это не люди - это страшнее. Это JS-кодеры! Им уже ничего не поможет.

antares0 ★★★★
()
Ответ на: комментарий от pftBest

Сейча он выдаст тебе про агитки, про обёртки над сишкой и крестами и - «наша песня хороша, начинай сначала».

Virtuos86 ★★★★★
()
Ответ на: комментарий от pftBest

Как ты думаешь, почему весь мир сейчас страдает от эпидемии electron приложений?

Потому что JS/HTML/CSS-кодеров очень, очень много?

Раст не идеален, но это единственный язык, который хоть как-то пытается сделать так, чтобы с одной стороны даже вебмакаки смогли писать код без сегфолтов

Порог входа в Rust непреодолим для JS-макак.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Я у тебя с пяток дет назад интересовался, но ты тогда наверное был не в том настроении. А почему ты склонен полагать, что ультраскилл это то, что не ненужно миру? Не, я не говорю, что это не круто, и с точки зрения лорчика это по-царски, даже без сарказма. Но прчему ты (не только ты) не вложите свои знания и опыт в продукт, который позволит другим делать то же самое. В мире дохрена предметных специалистов и просто хоббистов, у которых тупо нет времени и бэкграунда чтобы осилить переложение своих потенциальных задач на /dev как он есть сейчас.

Ты немного меня не понял, я всегда был за то, чтобы всё было легко и просто. Я люблю типизацию даже больше не за то, что это круто и понятно, а за то, что попросту лень запоминать - что и где я писал. И это правильно - я должен рвать жопу, но должен это делать один разно, но. Есть нюансы.

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

Да, ты осилил молоток и можешь им долбить - это не требует никаких навыков, кроме базовых. Ты можешь крутить отвёрткой. Ты можешь строить всё из одного материала. Но это глупо.

И в этом мире существует данная проблема. Люди везде носятся с молотком, люди не хотят осиливать то, что даст им профит. Зачем мне статическая типизация, если я могу насрать 10строк дерьма щас, а потом хоть трава не расти. В этом проблема. Люди не приемлют ничего из того, что требует вложения сил - они просто не понимаю, что это потом им даст больше.

Всё это оправдывается «да не, это просто понты». Шаблоны - не круто, знать язык на котором пишешь - не круто. Долби всё одним и тем же молотком лишь потому, что другие не осилили.

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

vcerloman
()
Ответ на: комментарий от AUX

Rust убог синтаксисом, С ++ на его фоне кажется достаточно простым.

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

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Пишу в основном на Си, поэтому мне ближе го, я писал выше, что был опыт С++, только при написании гуев. Раст не осилил, т.е для меня это наркомания в чистом виде.

AUX ★★★★
()
Ответ на: комментарий от anonymous

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

Оно не должно быть сложным, дело не в этом. Он просто должен требовать базового понимания.

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

Где тысячи кастылей подпирают друг друга, для того, чтобы что-то нормально сделать - надо рвать волоса на жопе недели - для пацанов это будут года. Это попросту не имеет смысла. Это мир убог.

И мне, с моим миром сишки/крестов намного всё проще. И не потому, что я не осилил какой-то жс - я осилил всё лучшее из того, что мне пацаны предлагают. Но ничего из этого - мне ничего не даёт.

Если в сишке/крестах я беру и открываю хедеры, в которых я всё вижу - я в них вижу и сигнатуры, типы и комментарии/документацию, то открывая жабаскрипт - я вижу только дерьмо, тонные неведомого дерьма, которые непонятно как работают.

Я попросту даже не знаю где и какие есть методы, мне нужно идти и смотреть доки, которые 100% мёртвые, либо убогие. И каждый раз, каждый раз, когда я пишу очередную строчку - я должен вспоминать и смотреть в эту документацию каждый раз, запоминать то, как же там они решили что-то обозвать.

Зачем мне об этом думать, если у меня есть комплишн? Зачем мне что-то искать, если есть поиск. Я хочу жать альтклик.

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

И это основная проблема, люди не осилил нормальную типизацию, люди не видели её - они попробовали это дерьмо - не смогли чего-то и подумали, что это типизация дерьмо - нет, это просто их реализация и уровень осиляторства дерьмо.

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

И в конечном итоге, в чём я виноват? Я пошел и начал писать всё на крестах/для крестов. Специально ли я это сделать? Нет. Для того, чтобы рядовой жс-адепт не смог? Нет. Я бы рад, если бы он смог, но это попросту невозможно там.

И если я решусь выкатывать это в паблик, когда доделаю и обкатаю, то этим будут пользоваться, если будут, полтора человека.

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

И проблема тут не в том, что это «недоступно» - проблема в том, что людей убедили в том, что это сложно, это не нужно. Хотя это, естественно, не так. Либо так, но только на начальном этапе.

vcerloman
()
Ответ на: комментарий от vcerloman

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

И все наконец понимают что ты лалка которая не умеет работать с информацией И публично об этом страдает.
Я таки тоже делал интеграцию с этим говном.

antares0 ★★★★
()
Последнее исправление: antares0 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Эдик, у тебя уже алкогольная деменция. Поработай-ка ты хотя бы с семимерными массивами в C, расскажешь потом, как оно.

unanimous ★★★★★
()
Ответ на: комментарий от anonymous

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

Людям не нужны хелворды, а мне они не интересны. Я никому ничего не докажу хелвордом, а не хелворды - это проекты на десятки лет. Я когда-то хотел делать хелворды, но это не особо интересно.

Вот берём банальный пример - ЯП. Рабочий прототип можно забабахать за год, но это никому, да и мне - не нужно. Мне нужен рабочий инструмент. Для меня тот же язык без ide, а вернее без нормального редактора - это мусор, который никому не нужен. А любой комплишн/асисист слабее того же либшланга - мусор, который не имеет смысла к существованию.

У меня нет тысячи рабов, которые бы мне всё сделали. И тут исход один - либо всё, либо ничего. Третьего не дано.

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

vcerloman
()
Ответ на: комментарий от unanimous

Поработай-ка ты хотя бы с семимерными массивами в C

О кстати. А массивы размерностью > 3 в каких задачах встречаются? А то я 7-мерный массив видел один раз в жизни, его сделал тупенький стажер.

tailgunner ★★★★★
()
Ответ на: комментарий от pftBest

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

Это всё не про раст. Никто из мира ЖС в раст не пойдёт, только под влиянием веры, но это быстро проходит.

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

Ты можешь пойти и почитать мои срачи на хабре в теме, где очередной адепт в очередной раз насрал «не медленнее крестов», правда когда я левой пяткой сделал из его крестового кода х10 - тема заглохла и все слились.

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

Как ты думаешь, почему весь мир сейчас страдает от эпидемии electron приложений? Потому что люди смотрят на Qt, смотрят на gtk, смотрят на плюсы - говорят ну нахрен, и идут обратно на свой уютненький жабаскриптик. А я, как пользователь, из за этого должен мучаться и отдавать гигабайты оперативки на какой-то галимый чатик для skype.

Неверно. Ты всё перепутал - електрон существует только по двум причинам, а жс там даже непричём. Ну и да, кути уже давно жс. Тебе нужна синхронизация с миром, срочно.

Первое - это веб. Веб проще, привычнее и не потому, что это жс, а потому, что там нет а) нативных заморочек, б) нативные интерфейсы вообще не про это.

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

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

Раст не идеален, но это единственный язык, который хоть как-то пытается сделать так, чтобы с одной стороны даже вебмакаки смогли писать код без сегфолтов, а с другой стороны дать unsafe инструменты для тех кто знает как ими пользоваться и может написать (или скопипастить) быстрые библиотеки, которыми смогут пользоваться первые. А выиграют от этого в первую очередь пользователи.

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

Второе - раст не даёт никаких гарантий, всё это - просто разводка и подмена понятий. Такие же гарантии даёт любой крестовый фреймворк, ведь раст это и есть некий фреймворк, который написан на unsafe, а ты просто не можешь без unsafe написать свой.

Всё это работает везде и без всяких unsafe. А если тебе нужно unsafe - пишешь на clang-tidy за месяц присоску, который найдёт любое unsafe в твоём коде. Это можно впихнуть даже в компилятор.

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

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

Это такое же враньё. Я тебе уже сказал, что никто из тех, кто может эти библиотеки писать - не будет их писать на этом супер-языке за просто так, даже не за просто так 80% не будет - их надо дополнительно мотивировать.

Ну и самое главное - раст, суй в него хоть что угодно - никогда не будет конкурентом сишки, да даже крестам. Это жалкая пародия.

Так вот и сейчас, зарелизился wasm, а из языков под него только С, С++ и Rust.

Неверно. Вот это меня всегда удивляло, это ещё одна причина - почему я не люблю расто-адептов. Они постоянно орут «у нас есть wasm» - нет,у тебя его нет. Он есть у ллвм.

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

Ты думаешь побегут школьники разом учить плюсы? очень сомневаюсь,

Никто из них и не побежит на раст. Он им никаких плюсов не даёт. Да и это попросту не язык.

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

Не получат. Приложения тормазят не из-за жаваскрипта, ты опять всё перепутал.

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

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

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

vcerloman
()
Ответ на: комментарий от antares0

И все наконец понимают что ты лалка которая не умеет работать с информацией И публично об этом страдает.

Именно поэтому ты и подобные трепачи множатся мною на ноль без напряга? Ога, вот ведь. У нас есть я, который не может в рабу с информацией и есть те, кто может. А как дело доход до продемонстрировать - все могущие тут же сливаются.

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

Именно поэтому, самым убогим является то, в чём нет логики, и тот же раст - это тому пример. Это просто нагромождение убогих кастылей и мусора, которое понапихано туда просто так - лишь бы было. И именно наличием некой общей логики, которая волей/случаем автора(ов) пронизывает весь язык и делает язык понятным и интуитивным.

И чем примитивнее область - тем меньше в ней людей могущих и больше не могущих, а для тех, кто не может - наличие/отсутвие логики - ни на что не влияет, поэтому они даже не понимают - что это и зачем нужно. А потом они удивляются - почему я видел на жопе 20лет, но ничего не знаю.

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

vcerloman
()
Ответ на: комментарий от tailgunner

Например, я работал в квантовой механике с волновыми функциями, индексированными 5 числами, вычислял матричные элементы (т.е. 10-мерные сущности) с операторами, которые сами были двумерными суммами — в итоге, у меня были формально 12-мерные объекты. Следить за всеми было сущим адом, пока я не ввел лексикографическое упорядочение и массив-словарь, позволяющий переводить четверки в порядковый номер и обратно. Т.о. в итоге работать пришлось максимум с 5-мерными сущностями только. Результат — две статьи в Phys. Rev. A. в 2010 году.

(посмотрел статью, уточнил цифры)

unanimous ★★★★★
()
Последнее исправление: unanimous (всего исправлений: 1)

Ребят, это всё конечно интересно, но тема не про то какой язык лучше и не про то, кто более прав, она про разработку своего языка

russian-turist-2019
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.