Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Coffee++ (Рождение легенды) (https://javascript.ru/forum/offtopic/59326-coffee-rozhdenie-legendy.html)

Mаxmaxmаximus 06.11.2015 00:05

Coffee++ (Рождение легенды)
 
Репозиторий транслятора https://github.com/Maxmaxmaximus/coffeepp

Да, такое будет название у нового языка). Ршил я тут написать сахар для С++ а ля кофескрипт, и назвать его coffee++, вот сижу синтаксис придмываю, зацените ка, что думаете? и что думаете на счет идеи в целом? Так же предлагаю тут обсуждать развитие языка и начать с синтаксиса.

п.с. coffee++ можно будет транслировать в С++ а С++ в asm.js через транслятор emscripten, а по скольку виртуальная машина emscripten позволяет работать и с файлаими и с тактами и с сокетами прям в браузере, то все это будет уметь и coffee++, да собственно он будет уметь все то что умеет С++.

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


cyber 06.11.2015 00:24

мне кажется у тебя слишком много свободно времени:lol:

Mаxmaxmаximus 06.11.2015 00:29

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

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

То ест например вот здесь, блок уже кончился, или там внизу еще что-то есть?



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

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




я думаю что подбное все е должно решаться на уровне подсветки синтаксиса, то есть должны рисоваться вот эти линии редактором, чтобы визуально было что код влево сместился и мы вышли из блока, так же мне кажется если линии тянутся высоко вверх то они должны быть как-то подписаны штоле я хуй знат.
чтобы ты такой печатаешь а у тебя вверху показывается что ты в блоке
[class Cat] [private]

ты курсор влево переместил, вышел из блока приват а он тебе [class Cat]
ты еще раз влево переместил а он тебе [global] ну или типа того


Так же конец блока может тупо подсвечивться полосочкой вбок типа (тут хреного видно)


Mаxmaxmаximus 06.11.2015 01:25

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

он вначале думает имя переменной а потом уже думает какого она будет типа!! К тому же посмотрите как у меня выглядит функция main




Всем функциям если тип не задан автоматически подставляется void а этой функции int
Так же эта функция если ничего не возвращаетсчя автоматически возвращает 0

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

cat1 Cat(11, 'Ашот')

так же у меня можно писать
cat1 = Cat(11, 'Ашот')

это идентичные записи

а в С++ это выглядит как бредовый нелогичный ад:
Cat cat1(11, 'Ашот')


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

cyber 06.11.2015 01:26

Цитата:

Сообщение от Mаxmaxmаximus
совсем нет, завтра дедлайн но я лучше буду голодать чем не заниматься любимым делом. я не раб.

Если бы ты занимался чем то полезным я еще могу понять, но ты страдаешь фигней)

Mаxmaxmаximus 06.11.2015 01:34

Цитата:

Сообщение от cyber
но ты страдаешь фигней)

То есть coffeescript никому не полезен и его создатели занимаются фигней)? я верно понял мысль?
То есть создание синтаксического сахара на С++ ни кому не полезно и является фигней???))) ты в своем уме?

l-liava-l 06.11.2015 02:05

Цитата:

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

cyber 06.11.2015 10:25

Цитата:

Сообщение от Mаxmaxmаximus
То есть coffeescript никому не полезен и его создатели занимаются фигней)? я верно понял мысль?

т.е ты еще не один проект не довел до релиза ;)

kobezzza 06.11.2015 11:20

Цитата:

То есть создание синтаксического сахара на С++ ни кому не полезно и является фигней???))) ты в своем уме?
Дык есть современные аналоги C++: Rust, D (т.к. GC там опциональный) и Swift как минимум.

Mаxmaxmаximus 06.11.2015 11:26

kobezzza, у тебя есть их компилятор в asm.js? А у меня есть компилятор С++ в asm.js уже сейчас. Я планирую закончить этот язык через месяц и уже юзать в продакшене и писать на нем юишку.

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

Цитата:

Ну да да, я так же думал, это логично, но те новички которые будут изучать язык будут дивиться че это функции не видятся. Но я подумал ДА ССАТЬ НА ТАКИХ С БОЛЬШОЙ ГОРЫ! По умолчанию должно быть все ПРИВАТНЫМ! И ТОЧКА! И должно быть что то веское чтобы заставить тебя опубликовать их, ты ЯВНО ДОЛЖЕН ЗАХОТЕТЬ это сделать, ПРИОТКРЫТЬ дверь. К тому же, не все методы подготовлеы для наследвоания и перекрытия, многие из них могут быть частью реализации или иметь возможность менять свои названия и ты ЯВНО ДОЛЖЕН ЗАХОЕТЬ СКАЗАТЬ ЧТО МОЛ Вот этот метод я открываю для наследования, делаю протектед, он не будет менять ни название ни параметры, можете его наследовать и оверрайдить.

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


Часовой пояс GMT +3, время: 23:25.