LINUX.ORG.RU

Golang или Gambit Scheme?

 


1

3

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

Интересен Gambit - трансляция в Си позволяет (попытаться) отлаживать неработающие программы обычным отладчиком для Си. Но есть и интерпретатор. По показателям github (звёзды, форки и пр) - примерно равен ClozureCL и вдвое меньше SBCL.

Но потом посмотрел трекер. Да, Gambit тоже бывает, что падает. А вот golang вроде должен быть понадёжнее. Единственное, мне опять же не нравится отсутствие пошагового отладчика. Похоже, мои неудавшиеся эксперименты на ClozureCL - это более продвинутая технология, чем то, что есть в golang. Но в golang оно зато (вроде бы) работает.

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

Ну и далее, Схема - всё же маргинальщина, а на голанге, если что, можно и на хлеб заработать.

★★★★★

Последнее исправление: den73 (всего исправлений: 3)
Ответ на: комментарий от den73

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

Тебе уже говорили, что ты, с одной стороны, очень капризен (не подходят тебе ни Python, ни его VM, ни Perl6 VM, ни Oberon и BlackBox, ни Erlang VM), а с другой - ты постоянно принимаешь чуднЫе решения (SBCL/CCL)? Хочешь делать язык - делай его поверх специально приспособленной среды (Perl 6, в меньшей степени - Erlang и Python). Хочешь зарабатывать на жизнь - учи мейнстримный язык, вызывающий наименьшее отвращение.

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

Ну, у меня даже с Хаскелем туго. Хотя при случае гляну про эту Агду-Идрис, много про него последнее время упоминают.

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

Я потому и спросил.

Есть мечта сделать хобби работой.

Я же хочу сделать инструмент для себя, а не для всего мира.

Когда что-то делаешь работой, то вся работа делается с другими людьми. Даже если ты весь такой крутой, ходишь по компаниям и сам пишешь им проекты. Они не захотят вендор лок-ин завязаный на одного человека. Ты им предлагаешь подсесть считай на Кобол, который потом деды по 30 лет еще ходят за большие бабки чистить. Проще написать все на Java/Python, а потом если тебя собьет паровоз, то нанять другого чувака. А если ты им впаришь что-то на очередном Яре/Гамбите/Ненужнобите с горячей заменой кода, то им потом все переписывать когда ты подашься во флористы или решишь заниматься фигурным катанием.

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

ты постоянно принимаешь чуднЫе решения (SBCL/CCL)

Не постоянно, а один раз. Ошибся, да. С кем не бывает? Не жалею о времени, проведённом в CL. Или почти не жалею.

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

Моё мнение: консервативная сборка мусора - это негодное решение. Нужно выделить под тег один бит и диапазон возможных значений фикснума будет 2^(размер-слова - 1).

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

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

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

Хочешь делать язык - делай его поверх специально приспособленной среды (Perl 6, в меньшей степени - Erlang и Python). Хочешь зарабатывать на жизнь - учи мейнстримный язык, вызывающий наименьшее отвращение.

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

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

Ладно. Язык с доказательствами - это романтично. Хотя когда это случится - не знаю.

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

А она всегда позарез нужна. Без неё просто нет никакого фана в профессии программиста.

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

Вопрос теперь в качестве, в инструментах, в батарейках.

Для этого тебе надо было писать (или сейчас переписывать) транслятор для какой-то живой VM (.NET, Java, Erlang... или Python). Потому что на трижды прекрасном языке никто не будет писать, если у него нет батареек. А батарейки у тебя писать некому - ты отрезал сообщество синтаксисом.

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

Для ШАЯ не нужен рабочий CL, школоте всего-то нужна среда и транспилятор. Ты их смог сделать. Станешь вторым запилившим среду. Прицепишь к себе ещё какую-нибудь фичу и вменяемую документацию и пропиаришь учителям, mission complete.

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

Я раньше вообще был против VM. Теперь только деградировал. Батареек много не надо.

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

Дошёл даже до анонса «коледы» и всё равно вижу, что стабильности не обещают.

den73 ★★★★★
() автор топика

с CL и перейти на другой язык

Go

Ты умственно отсталый хипстер, пишущий элементарный веб?

Вообще выбор странный, почему го или схема? Если тебе статический язык, то бери скалу или окамл. Если тебе динамический язык, то можно смотреть в сторону рубей или пистона. Схема мертва, пора это признать. Go - тот же пхп, только работы меньше, бери уж пхп тогда.

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

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

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

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

И тебя попросту нет выбора. Есть си и вариации на тему. А далее тебе нужно выбрать вариацию.

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

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

Странные попытки выбора в ситуации, когда выбора нет. Жава мертва - труп не разложился только из-за легаси/ведрода. Остались кресты, либо если уж совсем насрать, то сишарп. Больше ничего и нету.

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

ИМХО учителям что-то впарить ещё сложнее, чем ИТ-шникам. Да и зачем этот ШАЯ, если уже есть один?

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

Мне кажется, голанг - это просто ЯП общего назначения, бедный выразительными средствами. Где в нём специфика веба? И он статически типизированный, гораздо быстрее PHP.

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

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

Пистон пускалка сишного рантайма для студентоты. Руби уже давно сдох. Скала - маня-мирок жаба-хипстеров. Окамал такой же мирок хипстеров, который никому не нужен.

Из всего это как раз-таки именно го и выигрывает.

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

Странные попытки выбора в ситуации, когда выбора нет.

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

Только вот сам язык просто ужасен

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

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

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

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

Мне нужен не язык, а бекенд. Даже если это будут коды какой-нибудь виртуальной машине.

А зачем тебе вм? Что ты вообще хочешь сделать? Динамическую скриптуху?

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

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

У голанга примитивный недокомпилятор. Зачем его использовать, если он мусорный? Чем его использование принципиально лучше си? Си у тебя всегда будет, так всегда будет лучший компилятор и много готовой лапши.

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

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

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

Ты никогда в этом мире на халяву понимающего в твоей теме человека не найдёшь.

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

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

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

Жава мертва - труп не разложился только из-за легаси/ведрода.

Лол :-) Да что ты глупости говоришь? :-)

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

бедный выразительными средствами. Где в нём специфика веба?

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

https://medium.com/@arschles/go-experience-report-generics-in-kubernetes-25da...

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

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

пистона

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

го и выигрывает

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

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

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

Но ведь автор топика - динамико... хм... поклонник.

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

В итоге система типов в го
В итоге если в твоей программе много типов
В итоге это годится только для простого вэба

Итого в итоге итог закономерен :-)

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

А зачем тебе вм? Что ты вообще хочешь сделать? Динамическую скриптуху?

Что-то типа C#, если выкинуть из него ООП. Но с возможностью менять всё на ходу. ВМ мне просто затем, что компиляторов в нативный код мало. С горячей заменой совсем мало. Живых вообще не знаю. Вообще я против ВМ и на это иду только от осознания несовершенства мира :)

рано или поздно ты заимеешь сишные

Я бы вообще предпочёл обойтись в своей жизни без Си и его родственников. Лучше уж тогда сразу на ассемблере писать :) Ассемблер + макросы из лиспа - думаю, будет лучше, чем Си.

У голанга примитивный недокомпилятор

Он достаточно шустр, не хуже того же SBCL, зато работает. Да, С++ ещё быстрее, ну и ладно. Кремний нынче дёшев.

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

Что-то типа C#, если выкинуть из него ООП. Но с возможностью менять всё на ходу. ВМ мне просто затем, что компиляторов в нативный код мало. С горячей заменой совсем мало. Живых вообще не знаю. Вообще я против ВМ и на это иду только от осознания несовершенства мира :)

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

Я бы вообще предпочёл обойтись в своей жизни без Си и его родственников. Лучше уж тогда сразу на ассемблере писать :) Ассемблер + макросы из лиспа - думаю, будет лучше, чем Си.

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

Ты просто не понимаешь, что такое си. Си - это синтаксис, система типов и базовая семантика. Всё, что тебе про него рассказывали -это не свойства си, и не сложности си - это сложности лоулевела и сложности написания базовой логики.

Ассемблер это совершенно не язык.

Он достаточно шустр, не хуже того же SBCL, зато работает. Да, С++ ещё быстрее, ну и ладно. Кремний нынче дёшев.

Шустр по сравнению с пхп? По сравнению с си/крестами - это мусор убогий.

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

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

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

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

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

Ты опять здесь, долбоёб? :-) Лол

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

Лол :- )А ты в курсе, что кресты - это паста с с, в который добавили сахарку? :-)

Лол :-)

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

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

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

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

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

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

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

ШАЯ

А ведь что-то в этом есть. Судя по статье в вики там даже есть какие-то зачаточные предикаты (которые, наверное, можно расширить).

Но опять эти «алг», «нач», «нц», «кц» в яр-стиле. В 2018 экономить буквы - ну, как-то не очень понятно зачем.

Теоретически можно вообще сделать возможность перевода ключевых слов на разные языки. Каким-нибудь особым indent-ом (или IDE). А может быть получится переводить и часть идентификаторов. Не зацикливаться на русском, а сделать такой интернациональный продвинутый алгол.

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

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

Какие еще библиотеки и комьюнити у окамла?

Лет ми гугл фо ю

https://opam.ocaml.org/packages/index-date.html

Даже у хаскеля всё лучше.

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

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

Лол :-) Да что ты глупости говоришь? :-)

Типичный голангер из-за которых и не любят комьюнити этого языка заглянул на лор

ertgblasd ★★
()

На Яре попробуй написать.

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