Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   CoffeeScript vs ES6 (https://javascript.ru/forum/offtopic/58349-coffeescript-vs-es6.html)

Lemme 28.09.2015 23:46

ТОТ_САМЫЙ, ты явно под чем то. Ибо так тупить нереально,сори)

ТОТ_САМЫЙ 28.09.2015 23:46

Пасоны, я тут модули юишки переписал на commonjs. И написал враппер файлов для этого https://www.npmjs.com/package/gulp-commonjs-wrapper

Смотрите в чем дело, почему не браузерифай? потму что он подключает компилит толко те модули которые реквайрятся, а в юишке мы зарание не знаем что будет реквайрится потому что когда свойство запрашивается в скоупе и доходит до корня и не находится, юишка пытается подгрузить и инициализировать контроллер с таким именем, делается это при помощи геттеров, следовательно мы зарание должны знать список всех контроллеров которые реквайрим. браузеривай этого не делает по этому я напсиал этот плагин. НО я подумал что он лишен той фитчи браузерифая, например если мы вайл не указали в gulp.src то он его не подгрузит и не подключит, я подумал а не добавить ка ли мне функционал браузерифая)??? что думаете? может оно вообще кому-то понадобиться? получается на выходе мы будем иметь что-то вроде браузерифая с несколькими "точками входа" (файлами которые мы укажем в src). А потом они все будут либо склеиваться либо транслироваться либо просто сохранятьяс в общем все что захочит пользователь плагина. КАК думаете нужная это фитча?

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

Erolast 29.09.2015 08:52

Цитата:

То есть нативная система модулей ES6 НЕ выигрывает у кофескрипта, потому как и те и те модули нужно прогонять через транслятор и оборачивать во врапперы)
Ты невнимателен. Модули es6 - это еще и выделенный синтаксис. Сахар. Чего нет в кофи.

Цитата:

Так а где "блин, классно придумали) и удобно и красиво, зачет"? Почему я вместо этого получаю попытки в стиле "это НЕ ОБЯЗАТЕЛЬНО!! МОЖНО И БЕЗ ЭТОГО ПСИАТЬ ПО ЭТОМУ НЕ СЧИТАЕТСЯ ЗА ПЛЮС111"
Успокойся, чувак, я не говорил, что cofeescript - плохо. Да, красиво, да, зачет. Лаконичность неплоха, хотя, например, неявное объявление - уже перебор, как по мне.

Цитата:

Я не собираюсь этого [перечислить 20 преимуществ] делать)
Ясно все с тобой)

ТОТ_САМЫЙ 29.09.2015 09:05

Мнп ясно что ты дибил которому не хватает мозга зайти на кофескрии ком где на голавной прризводится сравнение. Мне яснь чтт ты дибил раз мои слова вызывпют у тебя срмнение. Тут даже вопроса по поводу этих 20 пренмуществ не стоит. То есть я даже не нес мысль чоо вот мол вы не зпали поо эти 20 преемуще та. А они есть.ОЧЕВИДНО что ссп знмют про них.


Ну окей раз ту появился такой даун как ты. Я погуглю за тебя: http://coffeescript.org

Крути коолесиео мпльчик ситай буковки. А если у тебя еще и хапти мозга заявить "их тааам ри дваацать" то ты реально конченый. И Я ПОПРОШУ тебя удалиться с трада. Тут дяди кофескрипт и яваскрипт сравнивают. Аты не знаеш кофескрипт. Вначале выучи все его плюсы. Потом пииходи. Иначе как ты сраанивать собрался.

Erolast 29.09.2015 09:13

Извини, ты это мне сейчас?)

Erolast 29.09.2015 09:21

Цитата:

на голавной прризводится сравнение
Я вижу там только сравнение с ES3.

Цитата:

Иначе как ты сраанивать собрался.
Я не сравниваю лол. И не собирался.

ТОТ_САМЫЙ 29.09.2015 09:54

Цитата:

Сообщение от Erolast
Извини, ты это мне сейчас?)

Ой блин, ты уже другой жи) Я в туалете с телефона писал там непонятно ни че и запятой на андройде нет. Короче я решил писать форк кофи с поддержкой типов, с поддержкой отрицательных интексов у массивов [-1] возвращает последний элемент. с поддержкой генераторов и возможностю компиляции как в es6 так и в es5. Ну и синтаксис модулей дефолтный будет файлы подцеплять и во враппер оборачивать как браузерифай)

Это короче будет ES6 + Typescript + Coffeescript

Erolast 29.09.2015 10:17

Цитата:

форк кофи с поддержкой типов, с поддержкой отрицательных интексов у массивов [-1] возвращает последний элемент. с поддержкой генераторов и возможностю компиляции как в es6 так и в es5. Ну и синтаксис модулей дефолтный будет файлы подцеплять и во враппер оборачивать как браузерифай)
Годно.

ТОТ_САМЫЙ 29.09.2015 10:31

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


AST.token 'dot', '\.'
AST.token 'word', '[$\w]+'
AST.token 'bracket-open', '\['
AST.token 'bracket-close', '\]'

AST.structure 'EXP', 'описание выражений'
AST.structure 'IDENTIFER', '[word]'
AST.structure 'PROP_ACCESS', '[dot][word]'
AST.structure 'DYNAMIC_ACCESS', '[bracket-open] EXP [bracket-close]'
AST.structure 'PATH', 'IDENTIFER (PROP_ACCESS|DYNAMIC_ACCESS)*'

code = 'User.name[user.soname]'

ast = [
	{
		type: 'PATH'
		value: 'User.name[user.soname]'
		contents: [
			[
				{
					type: 'IDENTIFER'
					value: 'User'
				},
				{
					type: 'PROP_ACCESS'
					value: '.name'
					contents: [
						{
							type: 'word'
							value: 'name'
						}
					]

				},
				{
					type: 'DYNAMIC_ACCESS'
					value: '[user.soname]'
					contents: [
						{
							type: 'exp'
							value: 'user.soname'
							contents: [
									#...
							]
						}
					]
				},

			]
		]
	}
]



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

Будетекрасиво описывать в стиле регулярок что ожидаете на входе и как оно должн выводится. Красота??
Таким образом можно будет например написать препроцессор для css или компилятор из С++ в яваскрипт. Все что угодно. Максимум что я НЕ придумал это как задать универсальный формат AST... Языки то разные.


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