Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Кому нужно изобретать и промоутировать новые языки?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

С учетом планирующегося на выходных NIM WorkShop появился вопрос: кто и с какой целью извращается с придумыванием и последующим пиаром нового языка, в данном случае NIM(aka nimrod)? Ради чего инвестируются деньги в очередной велосипед?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Найкращі коментарі пропустити

Ибо сказано:

1 На всей земле был один язык программирования и один ассемблер.
2 Двинувшись с востока, они нашли в земле Калифорнийской равнину и поселились там.
3 И сказали друг другу: наделаем компов и подведём электричество. И стали у них компы вместо арифмометров, а электричество вместо заводной ручки.
4 И сказали они: построим себе датацентр и башню, высотою до небес, и сделаем себе имя, прежде нежели рассеемся по лицу всей земли.
5 И сошел Господь посмотреть датацентр и башню, которые строили сыны человеческие.
6 И сказал Господь: вот, одни быдлокодеры, и один у всех язык программирования; и вот что зачали они делать, и не отстанут же ж они от того, что задумали делать;
7 сойдем же и смешаем там язык программирования их, так чтобы один модуль не линкался с другим модулем.
8 И рассеял их Господь оттуда по всей земле; и они перестали строить датацентр.
9 Посему дано ему имя: Вавилон, ибо там смешал Господь язык программирования всей земли, и оттуда рассеял их Господь по всей земле.

(Быт. 11:1–9)

Вот щас бы точно Паламарчук пригодился!

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Придумывают ибо программировать на старых слишком дорого и неэффективно. Язык должен соответствовать требованиям человека, а не робота, иначе получается это:
twitter.com/...status/632733807762898944

PR нужен по тем же причинам, что и вашему мобильному оператору, зубной пасте, телевизору, холодильнику, монитору и палке для сэлфи — хотя бы дать возможность выбора, доставить новые возможности потенциальному юзеру. Раньше мир был иным и по FIDO любая полезная фича распространялась мгновенно. Так появился unix, c, html и даже java (как просто первая универсальная vm, но никак жесткий надзиратель соответствия конверсии виртуальных типов и неймспейсов). Однако тогда были считанные миллионы девелоперов (и то начинающих), а сейчас уже миллиарды подключений, целая индустрия, потому нужен PR.

Касаемо истинных побуждений разработки новых языков:
Язык это не проблема, действительно, как сказали ниже, каждый студент может пройти курс по работе с AST и создать парсер собственного языка, базовые навыки есть у многих. Совсем иной вопрос правильности языка в значении тру и его экосистемы. Тут студент наделает множество ошибок по неопытности. А из-за ошибок задача усложняется на порядки и потому каждый день не выходят миллионы языков (как твитов, например. ведь это так просто).
Верно сказано, что язык эволюционирует и должен соответствовать требованиям современных тенденций. Современные тенденции таковы, что все хотят писать программы вообще нативной речью без навыков программирования, а не извращаться в бэктрейсах twitter.com/...status/659248116768645120
Потому попытки создать новые технологии и языки будут повторяться до полного удовлетворения потребностей человека.

Не могу не воспользоваться случаем и не PRопиарить свой язык программирования ACPUL. Язык строится на принципах разработки на мобилах (Tablet, Watch, Glass) и основан на принципе 20к строк. Если вдруг найдется кто-то неравнодушный, то пишите, может что-то созреет.

PS: Против java ничего против не имею, просто картинки такие.

Ибо сказано:

1 На всей земле был один язык программирования и один ассемблер.
2 Двинувшись с востока, они нашли в земле Калифорнийской равнину и поселились там.
3 И сказали друг другу: наделаем компов и подведём электричество. И стали у них компы вместо арифмометров, а электричество вместо заводной ручки.
4 И сказали они: построим себе датацентр и башню, высотою до небес, и сделаем себе имя, прежде нежели рассеемся по лицу всей земли.
5 И сошел Господь посмотреть датацентр и башню, которые строили сыны человеческие.
6 И сказал Господь: вот, одни быдлокодеры, и один у всех язык программирования; и вот что зачали они делать, и не отстанут же ж они от того, что задумали делать;
7 сойдем же и смешаем там язык программирования их, так чтобы один модуль не линкался с другим модулем.
8 И рассеял их Господь оттуда по всей земле; и они перестали строить датацентр.
9 Посему дано ему имя: Вавилон, ибо там смешал Господь язык программирования всей земли, и оттуда рассеял их Господь по всей земле.

(Быт. 11:1–9)

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

Я знала людей которые пришли в ИТ из физики, из учителей, из уборщиков даже. Но бывшие миссионеры — веселее всех:)

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

для них придумали позицию евангелиста

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

Если говорить о компиляторах, то лучше по Луговскому — за вечер и под бутылку водки написать Forth на ассемблере, простенький LISP на Forth’е, затем LISP посложнее (подмножество CL, например), а уже на нём — компилятор C.

Нет, с Форта лучше не надо.
Из википедии: Большинство реализаций форта позволяют сделать декомпиляцию программы. Полученный текст мало отличается от исходного.

И чем это плохо для данной задачи?

Может быть тем, что под такой язык в 2015м году сложно будет собрать WorkShop ?

Э. Что?

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

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

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

если говорить о компиляторах, то стоит вспомнить о прекрасном проекте STEPS и его результатах: www.computerra.ru/65749/steps

Да, хороший пример.

Хотя бы грамматику)

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

Nim — если велосипед, то правильный, в отличие от кое-каких конкурентов с пятиугольными несимметричными колёсами и вращением педалей в обратную сторону.

это которые тут?

это, например, какие?

В первую очередь Go.

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

Язык кривой от и до от самых низов, как основы синтаксиса, до верха. Если бы не лейба от гугла, его бы никто не знал.

«ну, если вы не любите Пикассо...» © ...

Якщо го кривий, боюсь уявити що з себе представляє сішка.

Язык кривой от и до от самых низов
ИМХО попрямее многих других будет
Если бы не лейба от гугла, его бы никто не знал.
т.е. имена Кена Томпсона и Роба Пайка ни о чем не говорят?
т.е. имена Кена Томпсона и Роба Пайка ни о чем не говорят?

Говорят. Свадебные генералы, призванные ради имиджа такого же рода, как «новый фильм от режиссёра „Ходячих мертвецов — 15“! спешите в кинотеатры!». Реально ни на что не влияют. Влияют люди второго плана. Например, одного имени Ian Lance Taylor достаточно для понимания всем, кто заглядывал в исходники Taylor UUCP.

ИМХО попрямее многих других будет

Вы явно издеваетесь.

Вы явно издеваетесь.
т.е. Вы считаете, что те компании, что используют в своих проектах Go идиоты, потому, что не выбрали «менее кривой» язык программирования?
или считаете, что создатель языка Си (Кен Томпсон) уже не в состоянии ничего толкового создать?
или как?
Свадебные генералы, призванные ради имиджа такого же рода, как «новый фильм от режиссёра „Ходячих мертвецов — 15“! спешите в кинотеатры!».
«свадебные генералы» в данном случае Гугл ;)
а с ходячими мертвецами сравнивать — так это скорее сравнивать язык типа кобола)) (как раз «ходячий мертвец», который еще где-то юзается тока потому, что так исторически сложилось)
т.е. Вы считаете, что те компании, что используют в своих проектах Go идиоты, что не могут взять «менее кривой» язык программирования?

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

или считаете, что создатель языка Си (Кен Томпсон) уже не в сорстоянии ничего толкового создать?

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

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

1. я читал, что го на данный момент в куда лучшем состоянии, чем раст, который появился примерно тогда же)
2. что Вы понимаете под «доведением до нормального состояния»? чтобы 1-я версия языка «уделывала» все остальные языки программирования по всем статьям (ну гугл же!) ?

У любого есть провальные проекты — более того, их обычно большинство.
если бы Го был бы настолько провальным проектом, то его бы невыгодно было бы пиарить))
и если ним настолько лучше го, то почему гугл не пиарит ним?
что Вы понимаете под «доведением до нормального состояния»? чтобы язык «уделывал» все остальные языки программирования по всем статьям?

Чтобы был цельным логически под свою нишу и на текущем уровне представлений.

я читал, что го на данный момент в куда лучшем состоянии, чем раст, который появился примерно тогда же)

Я читал противоположное. И я за Rust в данном споре. Хотя местами он построен под совсем другую идею (владение объектом в Rust очень специфическое).

если бы Го был бы настолько провальным проектом, то его бы невыгодно было бы пиарить))

При их массе и не такое можно себе позволить.

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

«Решает» — согласен. Но этого недостаточно.

и в будущем
хайп уже закончился, начался откат.
Я читал противоположное. И я за Rust в данном споре.
ну мождет быть) это уже из разряда холиваров больше: «каждый кулик свое болото хвалит»)
и вообще я слышал/читал, что сравнивать Go и Rust не совсем корректно — разные языки под разные задачи.
И думаю их любят сравнивать больше из-за того, что они появились в одно и тоже время и в компаниях, которые выпускают конкурирующие браузеры.
При их массе и не такое можно себе позволить.
значит они могут позволить себе продвигать Nim или купить у Rust у мозилы)
это уже из разряда холиваров больше

Не холивар то, что язык, разработанный в какое-то время, должен соответствовать уровню этого времени, а не десятков лет назад. И таки да, требовать от Go надо больше, чем от Си. А он сляпан дико наспех на всех уровнях, начиная от основ синтаксиса и до концепций на самом верху.
Например, исключения. Извините, позиция «сегодня потребности в колбасе нет» меня лично не устраивает. Это не Си и не ассемблер.
Горутины — разрешили создавать, спасибо великим вождям. А проверить создание? А проверить количество текущих и возможность порождения новых? А какое её состояние? Получить подтверждение, что горутина не создалась или упала по недостатку ресурсов? (авторы, наверно, живут в мире, где принцессы на единорогах, и им ресурсов всегда и во всём хватает) Как мне определить в динамике, где начинаются реальные ограничения исполняемой системы? В результате единственный критерий неожиданного падения горутины — таймаут ответа от неё. Ну спасибо, вернулись в 60-е годы.
Да даже самые основы синтаксиса. Восьмеричные константы с префиксом 0? Вы в каком вообще веке язык создаёте? Конец строки заканчивает оператор, спасибо. Но в языках, где так сделано (Python, Basic, Fortran), есть средства явного продолжения оператора. Игде? Заглавная буква как признак экспорта? А если меняется экспортируемость — все потроха тут же переписывать? Идентификаторы в юникоде? А как же языки, у которых нет заглавных букв? Там всё экспортируется? (Авторы ещё 5 лет назад послушали эту жалобу и сказали «мы подумаем». Так и думают до сих пор.) Почему для импорта модуля нужны кавычки, а для использования импортированного — нет? Откровенный же костыль.

Да, хорошие свойства есть. Но всё новое — кривое, а всё некривое — не новое. select с потоками уже только ленивый не вводил в свои языки, хотя именно такого формата, как в Go, мне дико не хватало в Erlang (и то потому, что авторы Erlang упрямятся на ровном месте). В общем-то я в нём больше ценных фишек и не нашёл. Итого — 1 (прописью: одно) преимущество перед конкурентами. И то испорчено кривизной механизма горутин.

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

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

А давайте обобщим вопрос: А зачем вообще придумывать что-то новое, если есть работающее старое? Ответ один: потому что можем. Тем кому повезло(или не повезло смотря с какой стороны посмотреть) родиться с геном творца знают что это настоящий ответ. Ген творца заставляет творить носителей — и этот творческий порыв не задушить в человеке — заберите у человека все, поместите в пустую камеру оставив ему кружку воды и вдень и кусочек хлеба и он будет лепить из мякиша фигурки перед тем как их съесть. Таких людей не большой процент — но они двигают человечество вперед, благодаря им и случился весь этот технический прогресс благодаря которому вообще появилась такая профессия как программист. А тот кто спрашивает «А зачем?» явно ребята из другой лиги. Так вот радуйтесь тому, что у вас есть интернет и компьютеры, и возможность заработать на велосипеды и сыры попятсот — и не задавайте творцам дурацких вопросов «А зачем?»

Какие люди, однако.

Привет, рада тебе видеть :)

думаю, что если вы задумаетесь над тем, почему набор команд для общения с компьютером, называется ЯЗЫК и вспомните историю (если у вас нет друзей лингвистов) — вам все станет понятно. А если нет — поясню.
Языки разных народов и континентов никогда не стояли на месте, они эволюционируют постоянно (с тех пор как человек начал произносить звуки для попыток вербального общения с соплеменниками).

Так и ЯЗЫКИ программирования. Они эволюционируют. То-есть находятся люди, которые изучив какой-то набор языков программирования, им не удовлетворяются и стремяться придумать тот, который будет удовлетворять ИХ потребностям. Если людей с такими потребностями окажется много — язык получит свою нишу для дальнейшего развития. А реклама языка позволяет донести этот язык до широкой аудитории потенциальных «носителей».

Как-то так.

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

Я и сам на досуге пишу небольшой функциональный язык программирования с довольно извращённым JIT’ом. На самом деле причин для реализации новых языков программирования немного больше, чем может показаться на первый взгляд: начиная с жадного решения NP-полных задач при применении оптимизаций в компиляторах, заканчивая шедулингом, работой с памятью и различной wait-free/lock-free ересью. Я и сам думал написать что-то похожее на NIM лет 7 тому назад, но сейчас считаю что путь AST процессоров довольно поверхностен и ограничен особенностями целевых платформ — это моё личное мнение.

Единственный прямой конкурент NIM’у — это Rust.
Работа с памятью у них на самом деле «под капотом не особо отличается» — те же арена аллокаторы. У NIM’a проще синтаксис и меньше порог вхождения, уже есть решения которые можно использовать для построения вэб-приложений. В Rust’e полно детских болезней, и стандартную библиотеку до вменяемого состояния допилят не скоро, чего уж не скажешь про NIM, а пока не допилят — в продакшене использовать очень рисковано. Остаётся надеяться и верить...

Коментар порушує правила спільноти і видалений модераторами.

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

он сдох не потому, что его не пиарили

После «А» ожидается «Б». Почему же он сдох?

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

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

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

Очевидно, что не только из-за голословного пиара. Главным образом потому, что не поддержан в своих продуктах гигантами индустрии: Microsoft, Google, Adobe, ну и Borland. Потому что применяться он может на той же нише, где обитает C++ (управляемый или нативный), ну а вытеснить C++ ему всё равно не светит. Да и смысла в нём нет, никаких кардинально новых подходов и преимуществ там всё равно нет.

преимуществ там всё равно нет

Уже нет. На момент появления он решал ряд существенных родовых болезней C++.

действительно ради чего? счас бы все писали на ASM — никакого ООП, все предельно просто!

никакого ООП
до чего же классный был бы мир

И на асме ООП-подобные костыли встречались

Якщо людину не влаштовують існуючи мови, то вона придумає власну. Якщо таких людей багато, то виникає товариство.

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

Если бы не языки программирования, ты бы до сих пор занималась танцами. Или нет — век танцовщицы недолог.

Зато на тебя бы это никак не повлияло, троль — он как таракан, подстраивается под любые условия.

Ну почему, повлияло бы. Я бы работал бандитом и работал бы долго — для оружия не надо особой физической силы.

Бандитам и долго? Очень самонадеянно.

Не репрезантивная выборка. Все депутаты — бандиты, но не все бандиты — депутаты.

Не все программисты получают пять тысяч долларов

Получают не все, но надо стремиться

Бандиты подвержены острому проф.заболеванию

Гораздо больше проф. заболеванию подвержены те, кого в прошлом году тащили пушечным мясом воевать на Донбасс. Логично?

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

Ну и они сцуко сильные и злопамятные. Программистам кроноса мои соболезнования.

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

Звичайно. В Cronos LTD сидять ізвращєнци трошки іншого порядку, які ніяк не навчаться відрізняти одну мову від іншої.

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

вы не поверите — разные задачи требуют разных инструментов

Ну понятно, что должен быть молоток и должны быть плоскогубцы. Но зачем 40 моделей молотков, если достаточно 3-4 разных размеров? И зачем к каждому молотку по 5-6 сменных ручек?

Программирования можно рассматривать как процесс описания/моделирования работы реальных систем, процессов.

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

Вы просто очень узко смотритет на процесс программирования.

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

Области же применения разных языков пересекаются на 90%
а можно пруф?

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

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

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

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

совершенно не схожее с другими

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

Мы говорим об автомобилях, а не о комбайнах и проч. У всех автомобилей управление одинаковое. Если умеешь водить — сможешь водить любой. В отличие от ЯП.

Если умеешь водить — сможешь водить любой.
Хочу подивитися як ви сядете в Камаз і обісретеся (вибачте за каламбур) на першому ж світлофорі.
У всех автомобилей управление одинаковое. Если умеешь водить — сможешь водить любой.
а почему тогда есть разные категории водителей — для легковых автомобилей, грузовиков, для мотоциклов?
или в данном случае рассматриваются исключительно легковые авто?

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

а если просто сел и поехал — эьто ИМХО уровень блондинки, которой только дай порулить) это как если человек написал хэллоуворд и уже считает себя программистом) так в этом случае да — хэллоуворды во всех языках программирования практически одинаковые)

Знание устройства автомобиля на качество вождения никак не влияет. Ремонт — это побочные моменты, притянутые за уши.

ну ездить на поломанной машине думаю Вы вряд ли сможете)
а так да — чтобы создать, допустим, блог на пхп — не обязательно вникать в работу сервера и браузера — достаточно просто установить денвер и вордпресс)
а то действительно — вместо того, чтобы юзать вордпресс, понапридумывали разные симфони и джанги с рельсами — оборзели вообще)))

«Понапридумывали» началось на три уровня ниже. Всегда недоумевал — если есть язык C, на фига все остальное?

Всегда недоумевал — если есть язык C, на фига все остальное?
без С понятное дело никуда не денешься, но и многие другие нужны)
хотя часть языков действительно не нужна)
Всегда недоумевал — если есть язык C, на фига все остальное?

Решите на C без применения любых других языков две задачи:
1. Написание операционной системы. Хотя бы крошечной, на пару задач без файловой системы и тому подобного. Загрузочные блоки и код шлюзов обработки прерываний тоже написать на C.
2. Систему логического вывода на основании заданных параметризуемых обобщённых правил. Например, чтобы она была способна доказать равенство углов при основании равнобедренного треугольника (хрестоматийный пример). Сделав, прочитайте, что такое «10-е правило Гринспуна».

Я такое в качестве курсовой работы делал на асме. С вытесняющей многозадачностью

На асме — кто ж спорит.

Написание операционной системы

А на чем по-вашему написан Unix/Linux? Или к примеру, сервер БД Oracle?

Вы фразу «без применения других языков» в моём сообщении прочитали? Если нет, почему? Если да, то какие возражения?

Сделав, прочитайте, что такое «10-е правило Гринспуна».

Замечу, что для проектов с интегрированными lua, python и тд это правило не работает (если, конечно, не относиться так пренебрежительно к самим этим языкам)

Да, возможность конструировать исполняемый код там присутствует, хоть и по-разному (eval() требует формирования синтаксиса по нормам данного языка, построение AST — модулей работы с AST, а построение дерева callable объектов — подстановки целевых базовых функций в качестве call-методов). В целом это всё получается корявее лиспа, у которого и напечатать текущее в человеко-читаемом виде — часть самой базовой функциональности.

Да, возможность конструировать исполняемый код там присутствует,

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

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

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

Потому что в категорию C входит, например, отработка навыков типа «вслепую завезти задом фуру с поворачивающимся сцеплением с контейнерным прицепом в узкий проход, где остаётся по 30 см с каждой стороны» (если непонятно — каждый день увидишь на вашем Привозе такой заезд, где-то в дальней части возле зоопарка. или в Киеве в местах типа Куренёвского оптового, Троещинского рынков.), а на легковых таким не занимаются. У мотоциклистов требуются свои специфические навыки. И так далее.

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

Потому что в категорию C входит, например, отработка навыков типа «вслепую завезти задом фуру с поворачивающимся сцеплением с контейнерным прицепом в узкий проход, где остаётся по 30 см с каждой стороны»
У мотоциклистов требуются свои специфические навыки. И так далее.
ну вот это я как раз и имел ввиду — не просто ж так разделение на категории есть)

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

Я понимаю что вы считаете себя умнее всех программистов, и вам виднее, с вашим опытом.

Но может на секунду проанализируете ситуацию?

Очень даже корректно. Гвозди забиваются молотком. И не важно, дом вы строите или скворечник.

Правда? А вы сможете при помощи молотка и пласткогубцев, дом построить? Целых два инструмента, в 2 раза больше чем надо по вашему.

Вот ТЗ: kachestvo.ru/...at_files/Image/дом.1.jpeg
Срок — 1 год (кстати срок более чем реальный, знаю многих кто успел построить за год дома на подобе этого с внутренними работами).

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

Можете привлечь команду до 10 людей. За большее кол-во людей платить не буду.

Она наверное 3D принтер использует :)
www.youtube.com/watch?v=cJAE13Ysigw

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

И зачем к каждому молотку по 5-6 сменных ручек?
на вкус и цвет как говориться — одному нравиться деревянная ручка, другому железная, третьему — пластмассовая) кому-то вообще молотки не нравятся и он забивает гвозди кирпичом) (ну или нет денег на покупку хорошего молотка). :)
вот так же и с языками, фреймворками и редакторами)

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

одному нравиться... другому...

Да кто их спрашивает? В большинстве случаем инструмент навязан заказчиком или PM-ом.

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

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

И сказала Алеся: да пребудет с вами 3-4 молотка разных размеров и незачем вам боле во поле предметной области забивания =D
Размер 1й — для забивания гвоздя весом менее 0,00000004419 грамма.
Размер 4й — для забивания 5ти и более тонных свай.
Ну и еще 2 размера остаются, для забивания всего и вся весовых промежутков 4.4*10^-8 грамм — 2.5 тонн, 2.5 тонн — 5 тонн.

Конечно же, в случае крайних крайностей, когда к примеру кому нужно забить в бактерию кусок днк, или забить на что там будет с экономикой через пару-тройку лет — тогда уже и плоскогубцы можно в ход пустить (осталось только дождаться ответа Алеси чтобы понять — как? =)

Но зачем 40 моделей молотков, если достаточно 3-4 разных размеров?

40 и нет, реально как раз 3-4, иногда до 6. Например, ниша общескриптового языка без встраивания — Perl, Python, Ruby. Со встраиванием — добавляется Lua, но доля остальных сокращается. Если нужен string-only — bash, Tcl. И так далее в каждой области. Если вам кажется, что их 40, это как раз аберрация восприятия от того, что не понимаете специфику каждого.

Сейчас, да, взрыв в области компилируемых языков с максимально возможной статической типизацией, улучшением управления памятью (или managed + явные unmanaged «дырки» в механизме, или свои специфические подходы, как в Rust с передачей владения) и расширением применения функционального подхода. Из новых Go, D, Rust, Nim, пытаются догонять C# и Java. И опять-таки нет 40, я назвал 6. Кто выживет — посмотрим.

ниша общескриптового языка без встраивания — Perl, Python, Ruby. Со встраиванием — добавляется Lua, но доля остальных сокращается
ну тут как бы все относительно — Lua вполне может применяться и как самостоятельный скриптовый язык, а питон или руби вполне могут быть встраиваемыми) вот кстати и джаваскрипт тоже позарился на общескриптовость (несмотря на то, что он больше для веба), так что я бы к общесткиптовым отнес: джаваскрипт, питон, руби и луа.
а вот доля перла как-мне кажеться куда меньше счас и его к общескриптовым языкам наверное уже не отнести — он скорее из разряда «для админов» (туда же баш и тикль).

А так в целом верно подмечено — реально популярны и применяемы где-то языков 10 всего.

Lua вполне может применяться и как самостоятельный скриптовый язык

Может, и не только он. Например, я был знаком с человеком, который из скриптовых языков признавал только bash, и писал на нём реально серьёзные для конца 90-х сайты :) Но реальных примеров такого использования для Lua я видел слишком мало.

вот кстати и джаваскрипт тоже позарился на общескриптовость (несмотря на то, что он больше для веба)

Тут, боюсь, проблемы. «Общескриптовость» предполагает лёгкие методы реализации простейших задач типа «прочитать два файла, записать три выходных, сделать пометку ещё в одном, пнуть удалённый сервер по telnet/http/etc.». Лёгкие — это, в частности, синхронные, с ожиданием ответа. Реализации JS в основном жёстко ориентированы на асинхронную работу. Смотрю на node.js для примера. Уже необходимость писать на каждый метод readSync() вместо read() и т.п. — приводит к возможности ошибочного написания. Для net.connect(), аналогичных вызовов http уже нет синхронного варианта, значит, рисовать коллбэки и промисы. А это уже требует уровня сильно выше — я как-то не хочу скриптовать на таком языке, когда есть чисто синхронная альтернатива в виде Python & etc.

а вот доля перла как-мне кажеться куда меньше счас и его к общескриптовым языкам наверное уже не отнести — он скорее из разряда «для админов» (туда же баш и тикль).

И сейчас есть места, где этого перла выше крыши, и в Киеве, и не только. Хотя новых проектов на нём мало порождают, да.

А так в целом верно подмечено — реально популярны и применяемы где-то языков 10 всего.

Ну так это неизбежно. Слишком много вариантов чего-то просто не будет создаваться в пределах одной ниши (крайне важное уточнение). Та картинка с xkcd «теперь у нас 15 конкурирующих стандартов» не совсем адекватна — реально уже при 5 народ виртуально лезет в петлю.

компилируемых языков с максимально возможной статической типизацией

Не то, чтобы я был не согласен с самим сообщением, но вот эта фраза несколько удивила. Максимально возможной статической типизацией? Вот HoTT в качестве системы типов — это уже максимум, или ещё нет?

Тогда поправка — максимально практически полезной в текущих условиях. Не думаю, что HoTT подойдёт.:)

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

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

Ой, ладно. В программировании все гораздо проще, чем в визаже. Все сложности искусственные, чтобы увеличить «ценность».

Толще некуда. Вы уже вытекаете из треда.

ОУ! Тролль детектед!

Алеся — я так понимаю, что у вас штат сотрудников укомплектован и совсем нет текучки :)

А то я смотрю, что кроме как на DOU всякую фигню писать — вам делать больше нечего :)

Почему ты не обкусываешь ногти плоскогубцами? Зачем ещё какая то пилочка?

Некоторым и зубов достаточно. Особенно среди программистов таких много.

Пилочек кстати не одна: есть для пиляния, есть для полировки

Є кілька речей, які люди намагаються зрозуміти і які неможливо обманути: одна з них — це економіка. Так от вона і вирішить — треба ця мова чи ні. І ніхто інший це питання не закриє, особливо, якась дівчинка, яка думає, що без неї світ зупиниться.

Є такий відомий фізик Файнман, встиг попрацювати з Ейнштейном, був лауреатом Нобелівської премії. Так от у нього є дуже відома лекція 196? року, де він пояснює на пальцях прямий зв’язок між питанням «Земля і Сонце — хто навколо кого крутиться» до квантової фізики і теорії відносності. І показує скільки всього цікавого відкрили «по ходу діла», хоча спочатку люди і думати не могли, що це комусь потрібно.

www.youtube.com/watch?v=MWbGiV1_ZOU

До чого я все це? До того, що ви дуже мало знаєте і дуже багато намагаєтеся всім пояснювати.

Алеллуя!

Господа!
Я вообще не понимаю — зачем вы РЕКРУТЕРУ пытаетесь это объяснить. Если ей не объяснили ее коллееги в Cronos — то это клиника. Забейте :)

Умение пользоваться инструментами — это еще не гениальность.

А зачем мне знать, как устроен телефон, чтобы им пользоваться?

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

Да такой красавец должен быть нарасхват у работодателей

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

Поздоровляю, ви відкрили кришнаїзм.

Ні, Віктор просто знає хто це такі, а ви показали себе малограмотною неосвіченою особою, інакше б ніколи не додумалися таку фігню зморозити. Власне, за це і любимо:-)

Вова, мальчик мой, да что вы знаете о пиаре?

Вова, да что Вы вообще знаете о стилистике?

Полагаю, вам стоит проследовать, с этим пиаром, на двач.

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

Может скандалы — их способ пиариться, как у Ксении Собчак.

Подверждаю! (Из личного опыта работы с Виктором)

Программисты в массе своей в айти лезут за зарплатами в баксах

Особенно в США. Зарплата в баксах делает их там просто-таки богами.

У нас мови нові не придумують. Це роблять на Заході, де немає такого перекосу зарплат.

Насрать им только в определённых компаниях, евпочя.

Тут тонкий момент,

если от этого напрямую не зависит их зарплата.
 то программист вряд ли будет рвать .опу на работодателя, но вполне может по собственной инициативе изучать и делать новое — хотя бы для того, чтоб перейти на более высокооплачиваемую (да и интересную) работу.
По крайней мере, моему первому работодателю в Германии были явно неитересны мои инициативы с QuantLib. Хотя я предлагал вполне конкретную финансовую выгоду от ее использования. Что же, я бросил изучать эту замечательную библиотеку финансовой математики?!
Нет, я просто поменял работодателя с хорошей прибавкой к з.п. (а смог это сделать в т.ч. благодаря знанию QuantLib’а).

Так спамить в линкедин тоже может аж 1 HR или даже скрипт.

Я думаю скрипт в состоянии правильно вставить имя кандидата в начале спама письма.

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

Если язык то только Фортран, если БД то только Clipper ?

Если Фортран, то БД — Adabas. Какой нафиг клиппер.

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

:)

А вообще-то Clipper и сейчас жив. Как legacy и для любителей :) есть развивающиеся себе разработки, переносимые.
А на Фортране продолжают клепать расчётный софт. Я с таким года 3 назад сталкивался.

:) Ага. В пенсионном фонде, например, клиппер даже щас юзается. Бабця — менеджер пишет огромную пояснительную, что ей надо вытащить из файла (применить пару логических условий). Это все «затверджується» руководством и , вместе с прикрепленным dbf-ным файлом отсылается бабце фул-стек-клиппер-инжИнеру (от слова инжИр) . Ну и такая же обратная процедура. В общем, бабця — манагер от бабци -прогера получит отфильтрованый файл с нужными ей пенсами через 2 месяца минимум.
Это 2015 год.

Ну а в общем, конечно есть некрофилы (ну или в мягком случае те, кто в детстве мечтал стать некромантом).

А на Фортране продолжают клепать расчётный софт. Я с таким года 3 назад сталкивался.

Fortran не умрёт, пока на что-то другое не перепишут, скажем, Gamess; а с учётом объёма исходников, это произойдёт где-то никогда.

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

У меня перед глазами нет примеров успешного перевода подобного софта.

У меня были, код после автопереводчика, конечно, странноватый, но совершенно понятный и легко приводится к локальным стандартам. Из специфики, которую он переводил, но не разгребал, были NAMELIST’ы — реализовывались его библиотекой, как и все случаи FORMAT сложнее некоей базовой простоты.

Были случаи, когда автопереводчик посылал нафиг. Например, не реализовывались ENTRY — это вообще, считай, невозможно перевести на современные языки; метки нештатного выхода — это просто никто не просил; назначенный GOTO — из компиляторов C, например, есть только в gcc с клонами, как своё расширение. EQUIVALENCE сложнее некоторого условного барьера — тоже было причиной послать — хотя оно и собственно в Фортране может порвать логику компилятора, как тузик грелку.

При поддержке грустнее всего было смотреть на индексы (был бы целевым C++ - сделали бы типы «массив, индексируемый от 1» — но там был целевой C, и в результате −1 на всех индексациях). Но современные компиляторы это отлично оптимизируют.

Та он уже сдох в перспективе. Если что-то расчетное в совте ЦЕРНА не переписали, так это не значит что он жив. Просто «работает да и йух с ним». Язык жив если на нем создают что то новое. Фортран умер. (кроме «проффесора»)

зачем фортран, если есть Forth?))) если уж разговор о мертвячине зашел)))

Хм. Forth совсем не мёртв — вон Curiosity по Марсу на нём ездит. Он катастрофически неэффективен для обычной современной техники (процессоры с OoO выполнением команд), неудобен для программиста (задолбёшься наблюдать за стеком в сколь-нибудь сложной функции), но для техники, где даже просто кэш тебе не будет, тактовая — несколько мегагерц, но код должен быть предельно понятен тому, кто в теме, и гарантирован от проблем компиляции — он идеален. Почему и используется в таких местах. Но если писать на Java/etc. даёт с ходу код в несколько десятков раз быстрее — то всяко обойдутся без Forth.
У Fortran другая беда — грубо говоря, его современные версии (по стандартам 95, 2003) имеют уровень общей функциональности где-то на уровне Object Pascal (или C++ последних периодов до введения шаблонов), плюс математическую специфику, реализованную на уровне numpy+scipy, а то и выше. Но писать на нём человеку, привыкшему к ходовым сейчас языкам, будет дико неудобно, начиная со странностей синтаксиса.

Он катастрофически неэффективен для обычной современной техники (процессоры с OoO выполнением команд)
точнее он просто устаревший для большинства видов современной техники)
Но если писать на Java/etc. даёт с ходу код в несколько десятков раз быстрее — то всяко обойдутся без Forth.
я как-то читал, что у форта один из самых быстрых компиляторов (точнее, насколько знаю — это виртуальная машина) — по скорости где-то сравним с ассемблером.
У форта ИМХО две основные проблемы из-за которых он и не получил широкого применения: очень необычный синтаксис (возможно даже более странный, чем лисповый и фортрановый) и видимо очень малое количество библиотек для него.
Но у него есть один плюс — он очень маленький и поэтому он и нашел свою нишу в разных космических аппаратах и т.п. вещах, где маленький размер и легковесность имеют чуть ли не принципиальное значение. :)
я как-то читал, что у форта один из самых быстрых компиляторов (точнее, насколько знаю — это виртуальная машина) — по скорости где-то сравним с ассемблером.

Ещё быстрее :) Ассемблер может быть макро, может держать несколько проходов на предмет решения вопроса, нужно ли тут вставлять длинный переход или хватит короткого, может разбирать сложные синтаксические конструкции типа dword ptr [eax*3+ebx+16]... В Форте все эти сложности игнорируются.

и видимо очень малое количество библиотек для него.

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

Но у него есть один плюс — он очень маленький и поэтому он и нашел свою нишу в разных космических аппаратах и т.п. вещах, где малоенький размер и легковесность имеют чуть ли не принципиальное значение. :)

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

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

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

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

Синтаксис там не напрягает — во всяком случае, не так, как разрешение имён и сообщения об ошибках.

Синтаксис там не напрягает

Конструкции типа DATA A/1.0/ убьют на месте привыкшего к чему-то вроде JS.

не так, как разрешение имён и сообщения об ошибках.

Сообщения об ошибках — я не видел невменяемых вариантов.
Разрешение имён — это отсутствие пространств имён, или что?

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

ради ЧСВ конечно)))

а если серъезно — разраб начинает изобретать свой язык и вбухивать в него средства скорее всего по причине того, что другие языки под его задачи не подошли (или не понравились), а его новоиспеченный язык подошел, он с ним доволен (возможно доволен как слон), и хочет, чтобы с его языком были довольны нелегкими программерскими буднями и другие разрабы)
как-то так. :)

ах да, иногда превалирует желание разраба срубить бабла на пиаре его детища)

З.Ы. а вот какой целью пиарят Nim — хз (может Паламарчук в курсе хDD?)...

Вот щас бы точно Паламарчук пригодился!

Підписатись на коментарі