LINUX.ORG.RU
ФорумTalks

И еще о Российских инновациях. Язык Libretto

 ,


0

4

А вот кому хотел русскую scala(немного покореженную)?

Ъ: суровые мужики из иркутска решили покорежить scala синтаксическим сахарком (стыренным отовсюду), подзакрыть результат (BSD-like, все норм), и зашибать бабло в сколково.

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

class Circle(fix r: Real) {
  def square = 3.14 * r * r
}

class Person(fix name)

ext Person age: Int

def main {
  fix john = Person("John")
  john.age = 16
  println(john.name)
  println(john.age)
  println(john."%{name} is %{age} y.o."!)
}

def fact = if (this == 0) 1 else this * (this-1).fact 

ну вы поняли

http://habrahabr.ru/post/185382/

http://libretto-ru.blogspot.ru/

ролик полный рекламы и булшита: http://youtu.be/VeaiIYRlrmQ

Проект является резидентом сколково. Посему танцпольный вопрос: технических экспертов совсем там нет чтоле?

А за державу как-то обидно становится.

★★★★★
Ответ на: комментарий от yu-boot

Для особо одарённых: эта такая защита от быдлокухацкеров и есть, потому что:

cout<<"Print:



а"<<x;

Что выведет на экран, ась?

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

Если поведение компилятора должно соответствовать вашим представлениям, конечно.

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

Ты про какую строку говоришь то?

Чтобы в коде было через строку, а на выводе программы - целая строка.

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

Чтобы в коде было через строку, а на выводе программы - целая строка.

Я уже два раза привёл один и тот же вариант, олол!

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

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

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

yu-boot ★★★★★
()

Чойта он «динамичный», если там всего лишь неявные типы? Лол, спецы блистают.

cdshines ★★★★★
()
Ответ на: комментарий от yu-boot

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

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

Ты бы ещё сказал, что присваивание в плюсах - лажа, потому что не :=, ага.

хватит воду в ступе толочь.

Действительно

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

Поддержу твоего оппонента. При аналогичном компиляторном вызлопе желательно писать пояснее, а не покороче. Я, конечно, не имею в виду случаи типа FactoryFactoryFactory factoryFactoryFactory = new FactoryFactoryFactory();, но в случае с присвоегием в теле условного оператора ничего не случится, если написать яснее.

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

Ты бы ещё сказал, что присваивание в плюсах - лажа, потому что не :=, ага.

Нет, тут как раз всё ОК. Я сказал уже, что сравнение в виде «==» это гомосексуализм.

yu-boot ★★★★★
()
Ответ на: комментарий от cdshines

Тссс, это не по кулхацкерски, в школе посоны засмеют за такой код :)

yu-boot ★★★★★
()
Ответ на: комментарий от cdshines

FactoryFactoryFactory factoryFactoryFactory = new FactoryFactoryFactory();

Тоже каноничный случай гомосексуализма и идиотии. FactoryFactoryFactory factoryFactoryFactory это, блин, УЖЕ создание объекта класса FactoryFactoryFactory! При котором и так должны отработать конструкторы и прочее.

yu-boot ★★★★★
()
Ответ на: комментарий от rikardoac

Да, и только в тех языках, у которых (AnyType var != 0) => (var == true). До сих пор тянется из темноты прошедших эпох(

cdshines ★★★★★
()
Ответ на: комментарий от yu-boot

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

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

Так компилятор (по крайней мере, gcc) выдаст ворнинг (по крайней мере, на -Wall), молде присваивания в ифе обернуть бы в ещё одни скобки для пущей наглядности

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

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

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

yu-boot ★★★★★
()
Ответ на: комментарий от rikardoac

Да, если оператор присваивания был перегружен, может не прокатить. Но это уже на совести программиста.

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

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

yoghurt ★★★★★
()
Последнее исправление: yoghurt (всего исправлений: 1)
Ответ на: комментарий от yu-boot

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

next_time ★★★★★
()
Ответ на: комментарий от yu-boot

И всё-таки, по поводу вашего примера:

puts("hello

            world");

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

next_time ★★★★★
()
Ответ на: комментарий от yu-boot

Чем же он так хорош? Например, возможность записи нескольких команд с разделением их ":"? ИМХО, читабельности это не прибавляет.

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

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

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

Чем же он так хорош?

Человеческий синтаксис.

Сравнение = вместо ==, отсутствие бесполезных ; в конце строки, возможность по-разному записывать вызовы процедур и функций (со скобками, без скобок, вообще без ничего)... Остальное уже запамятовал.

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

yu-boot ★★★★★
()
Ответ на: комментарий от rikardoac

Например, возможность записи нескольких команд с разделением их ":"? ИМХО, читабельности это не прибавляет.

В Ruby просто обожаю и повсеместно юзаю конструкции

(команда1;команда2) if условие

это так красиво и интуитивно, что просто кайф ловишь когда читаешь/кодишь.

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

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

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

такое уже во всех современных языках, кроме джавы

Не такое, а наоборот. var factoryFactoryFactory = new FactoryFactoryFactory(); что совсем не то же самое

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

Приведи пример языка где присваивание и сравнение это «=»

OCaml, с небольшой натяжкой.

let a = 1 in if a = 0 then 2 else 3
Miguel ★★★★★
()
Ответ на: комментарий от yu-boot

Это абсолютно нечитабельно.

Типо a = b = c стало лучше. Писанина присванивания логического типа через ифы достойна только геев и метросексуалов...

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

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

надо спросить у самого рубиста-бэйсикиста. Эй, yu-boot ты чего имел в виду, когда про фабрикуФабрикуФабрику писал?

а) вот такой способ человекочитаем и великолепен: Factory factory;

б) такой способ лучше, безусловно: var factory = new Factory()

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

Способ а) ничотак, если бы можно было указывать val/var Factory factory, и это было бы эквивалентно вызову умолчального конструктора.

Но б) привычнее и не надо велосипедить.

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

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

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

Ну я так понимаю они не все же разом смотрят каждый проект.

Хотя эти товарищи еще и грант получили, значит их оценивали дважды. Но резидентом они стали не из-за языка, а из-за Libretto Web Platform, если верить тому, что написано на их странице как резидента: https://community.sk.ru/net/1110247/

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

another ★★★★★
()

ролик полный рекламы и булшита:

digit.ru Там их много таких роликов. Регулярно выходят и посвящены именно IT-кластеру Сколково. И таки будут выходить и далее: http://digit.ru/startup/

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

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

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

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

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

Смотря по каким критериям оценивать. Из той скудной информации, что есть(проект закрытый) можно сказать что основная проблема - он ненужный, потому как это клон scala, с небольшим невнятным засахариванием. Ещё одна проблема - не ясно что сделано и какая у проекта цель. Ещё одна очевидная проблема - отсутствие концепции языка, и вольная трактовка терминов создателями. В общем: проект может и неплохой, но этого не видно, а то что видно, похоже на плохой проект

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

Понятно. Будем надеяться, что выглядит плохим он только потому, что все статьи про него писалижурналисты, а не спецы.:-)

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

Типо a = b = c стало лучше. Писанина присванивания логического типа через ифы достойна только геев и метросексуалов...

Hell no. Гомосексуализм это нечитабельное кулхацкерское нагромождение знаков препинания

yu-boot ★★★★★
()
Ответ на: комментарий от RedPossum

про фабрикуФабрикуФабрику

Что factory Factory=new factory это масло масляное. Левая часть команды это УЖЕ создание объекта Factory класса factory. Зачем дополнительно говорить, что это новый объект класса factory? Он им и так является, по определению. Это абсолютно избыточно, и если язык такую запись требует, то это гомосексуализм.

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