Как стать автором
Обновить

Комментарии 43

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

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

полагаю, из-за названия модного Питон-подобного интерпретатора?

Подозреваю подразумевается строгая проверка типов и поддержка форсирования некоторых поведений (по аналогии с ржавым borrowc). Ну и более приятная система типов лучше чем `(*(whatever*)(void*)(const char*)data)->callme();`. Система наследования конечно под вопросом, но это уже тема о фломастерах.

Интересно подробнее послушать о вопросах по системе наследования.

Пока не совсем понятно как именно оно устроено. Также как в плюсах - тащит vtable с функциями и их перегрузками, данными (членами класса) и деструкторами, или оно как композиция интерфейсов - аналогчно трейтам в Rust, протоколам в Swift и интерфесам в C sharp. Будет ли наследование субтипов по аналогии с Jai/Odin?

Entity :: struct {
    using position: Vector3, // this
    orientation: quaternion128,
}

Colour :: struct {r, g, b, a: u8}
Frog :: struct {
    ribbit_volume: f32,
    using entity: Entity, // this
    colour: Colour,
}


frog.x = 123 // this

Или как Swift/Kotlin будут поддержаны оба три варианта через разный синтаксис

struct A : B { // отнаследовать поля и методы
  fn blabla() { ... }
}
struct A extends Iterator { // поддержать интерфейс
  fn next() -> ...
}

Есть типаж как в Rust, которым можно ограничить переменную типа. Есть интерфейс как в CSharp, к которому можно привести объект. Наследования с созданием поля как в Jai/Odin я не рассматривал. Отдельного синтаксиса для реализации интерфейса нет, нужно его унаследовать, после чего определить методы.

Перегузки/дефолтные имплементации будут?

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

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

Хочется спросить - чем сложно? Почему не F/C++/CS/Java/Kotlin и сотня других? Как минимум, они все обосновывают концепцию, почему и зачем еще один самокат...

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

Писать код однозначно будет проще с дженериками, нормальными строками и т.д.

А зеркало будет? Что с лицензированием? Где смотреть спеку по языку/стандартной библиотеке? Где тесты? Что по примерам интероперабельности с теми же сями? Что там по CI/CD stable/dev/nightly?

О зеркалах не думал. Вероятно будет общественное достояние, не вижу пользы от лицензий. Документации пока нет. По взаимодействию с С вскоре будет статья. CI рано.

Спасибо , интересно. Учу ребенка 7 лет программированию. Есть что нибудь на русском, кроме дракона. И с чего начать чтобы максимально близко к питону подойти

а почему не сразу с питона? английский сейчас вроде с первого класса учат - будет мотивация и практика.

А ребёнок сам хочет учить программирование?)

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

Игра для тех, кто учится программировать: Colobot

До 11 лет (-/+ 1 год) только визуальное программирование. Раньше мозг ребенка ещё не готов соотносить слова с реальной реализацией, есть уникумы конечно… но это обычно с очень переразвитым математическим аппаратом. В вашем случае только визуальное (тот же скретч на реализацию визуальных действий - передвижений объекта, разделения и т.п.) с упором на решение алгоритмических задач визуально. + Можно научить правилам шахмат и решать шахматные задачи на логику. В виде доп задания на платформах обучения это уже 1 классе дают.

А почему не сосна? )

Кедр это сосна) это Петр первый велел кедр называть сосну сибирскую кедром

Даже тот кедр, который кедр, немножко сосна)

Не видел, не знаю. Но кедр у Сибири отличается от сосны.

кедр, который кедр - это ливанский кедр, истребленный в свое время в целях постройки кораблей. Современный кедр, который произрастает в Сибири - это кедровая сосна. Род сосен включает в себя более 100 видов, причем "сосна кедровая" действительно отличается от "сосны обыкновенной".

Да, что-то в школе проходили про это

Правильно сделал)

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

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

Развитые языки с DSL: Elixir, Kotlin, Nim.

И зачем типы? Почему не просто функции и данные, ну или записи? Как в clojure например?

Выглядит любопытно.

Хотелось бы прояснить ряд технических моментов. На каком языке написан компилятор? Используется ли LLVM?

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

Надо было назвать πdr: пи-по-дээр, вполне математично)

Коль уж "кедр" - так и язык русский. А то опять русско-вражеское получается. Хотел, как лучше, а сделал -как всегда...

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

Но да, название - на любителя.

НЛО прилетело и опубликовало эту надпись здесь

А почему свой редактор, а не расширение к VSCode или др. редакторам/IDE?

Блоки кода будут индентацией определяться? А как будет работать автоформатирование при рефакторинге с переносом больших кусков кода?

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

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

давайте я расскажу как правильно:

какие задачи решает язык?

по каким параметрам этот язык лучше чем язык Х.

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

вот смотрите бенчмарк тесты на таких то и таких задачах.

вот тут репозиторий (если это опенсорс) а вот тут формируется сообщество (если нет), все сюда!

а вот тут репозиторий проекта (достаточно крупного чтобы оценить удобство) на этом языке.

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

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

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории