Jscex项目介绍及上周六使用的幻灯片

29 views
Skip to first unread message

Jeffrey Zhao

unread,
May 16, 2011, 3:02:55 AM5/16/11
to is...@googlegroups.com
大家好,
 
Jscex是一个类库,对JavaScript语言进行了扩展(换句话说就是个用JavaScript编写的JavaScript编译器,从JavaScript生成JavaScript代码),用于简化特定场景下的编程难度(例如异步编程)。它是百分百的JavaScript,可以在任意支持ECMAScript 3的引擎里使用(网页,浏览器扩展,Node.js等等)。Jscex没有额外的编译过程,一切都是在执行过程中进行的,可以说为JavaScript程序员保留了一切开发习惯。
 
上周六我在NodeParty杭州站活动上结合Node.js项目对Jscex进行了简单介绍,包括其设计目的,设计原则,使用方式,高级模式,组成部分等等。以下是幻灯片:
 
 
Jscex项目基于BSD开源协议发布,它的Github页面上有更多详细信息:
 
 
SNDACode上有其中文说明:
 
 
各位能否谈一下对这个项目的感受?我现在也正想推广这个项目。欢迎各种反馈,意见建议等等越多越好。
 
Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

Neo Lee

unread,
May 16, 2011, 4:02:22 AM5/16/11
to is...@googlegroups.com
强烈要求姐夫分享会介绍,不然拒绝学习这个。。。


2011/5/16 Jeffrey Zhao <je...@live.com>



--
No, I will not fix your computer!

neo...@gmail.com

Jeffrey Zhao

unread,
May 16, 2011, 4:36:45 AM5/16/11
to is...@googlegroups.com
个么就这周四……
 
Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

Jeffrey Zhao

unread,
May 16, 2011, 4:39:37 AM5/16/11
to is...@googlegroups.com
发现……已经找不到徐建海了,那么周四分享会的事情应该找谁呢?
 
Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

庄表伟

unread,
May 16, 2011, 4:44:24 AM5/16/11
to is...@googlegroups.com
你可以找我,或者,找唐一丁,李骏,赵真利,刘凯,都可以。

2011/5/16 Jeffrey Zhao <je...@live.com>:

Jeffrey Zhao

unread,
May 16, 2011, 5:16:12 AM5/16/11
to is...@googlegroups.com
ม���

�ڴ˺���ׯ��ΰ������ܷ����İ�����һ��Сʱ�ķ����ʱ�䣿

Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

-----ԭʼ�ʼ�-----
From: ׯ��ΰ
Sent: Monday, May 16, 2011 4:44 PM
To: is...@googlegroups.com
Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ

��������ң����ߣ�����һ������������������������ԡ�

2011/5/16 Jeffrey Zhao <je...@live.com>:
> ���֡����Ѿ��Ҳ����콨���ˣ���ô���ķ���������Ӧ����˭�أ�


>
> Jeffrey Zhao
> Blog: http://blog.zhaojie.me/
> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>
> From: Jeffrey Zhao
> Sent: Monday, May 16, 2011 4:36 PM
> To: is...@googlegroups.com

> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>
> ��ô�������ġ���


>
> Jeffrey Zhao
> Blog: http://blog.zhaojie.me/
> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>
> From: Neo Lee
> Sent: Monday, May 16, 2011 4:02 PM
> To: is...@googlegroups.com

> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>
> ǿ��Ҫ����������ܣ���Ȼ�ܾ�ѧϰ���������
>
> 2011/5/16 Jeffrey Zhao <je...@live.com>
>>
>> ��Һã�
>>
>>
>> Jscex��һ����⣬��JavaScript���Խ�������չ�����仰˵���Ǹ���JavaScript��д��JavaScript����������JavaScript���JavaScript���룩�����ڼ��ض������µı���Ѷȣ������첽��̣������ǰٷְٵ�JavaScript������������֧��ECMAScript
>> 3��������ʹ�ã���ҳ���������չ��Node.js�ȵȣ���Jscexû�ж���ı����̣�һ�ж�����ִ�й���н��еģ�����˵ΪJavaScript����Ա������һ�п���ϰ�ߡ�
>>
>>
>> ����������NodeParty����վ��Ͻ��Node.js��Ŀ��Jscex�����˼򵥽��ܣ����������Ŀ�ģ����ԭ��ʹ�÷�ʽ���߼�ģʽ����ɲ��ֵȵȡ������ǻõ�Ƭ��
>>
>> http://blog.zhaojie.me/2011/05/jscex-write-sexy-javascript-slide.html
>>
>> Jscex��Ŀ����BSD��ԴЭ�鷢�������Githubҳ�����и����ϸ��Ϣ��
>>
>> https://github.com/JeffreyZhao/jscex
>>
>> SNDACode����������˵����
>>
>> http://www.sndacode.com/projects/jscex/wiki
>>
>> ��λ�ܷ�̸һ�¶������Ŀ�ĸ��ܣ�������Ҳ�����ƹ������Ŀ����ӭ���ַ����������ȵ�Խ��Խ�á�

庄表伟

unread,
May 16, 2011, 5:22:07 AM5/16/11
to is...@googlegroups.com
本周分享会是安排在周三的,已经排满了,下周吧。

2011/5/16 Jeffrey Zhao <je...@live.com>:
> 喔……
>
> 在此呼叫庄表伟和李骏,能否本周四安排我一个小时的分享会时间?


>
> Jeffrey Zhao
> Blog: http://blog.zhaojie.me/
> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

> -----原始邮件----- From: 庄表伟


> Sent: Monday, May 16, 2011 4:44 PM
> To: is...@googlegroups.com

> Subject: Re: Jscex项目介绍及上周六使用的幻灯片


>
> 你可以找我,或者,找唐一丁,李骏,赵真利,刘凯,都可以。
>
> 2011/5/16 Jeffrey Zhao <je...@live.com>:
>>
>> 发现……已经找不到徐建海了,那么周四分享会的事情应该找谁呢?
>>

>> Jeffrey Zhao
>> Blog: http://blog.zhaojie.me/
>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>
>> From: Jeffrey Zhao
>> Sent: Monday, May 16, 2011 4:36 PM
>> To: is...@googlegroups.com

>> Subject: Re: Jscex项目介绍及上周六使用的幻灯片
>>
>> 个么就这周四……


>>
>> Jeffrey Zhao
>> Blog: http://blog.zhaojie.me/
>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>
>> From: Neo Lee
>> Sent: Monday, May 16, 2011 4:02 PM
>> To: is...@googlegroups.com

>> Subject: Re: Jscex项目介绍及上周六使用的幻灯片
>>
>> 强烈要求姐夫分享会介绍,不然拒绝学习这个。。。
>>
>> 2011/5/16 Jeffrey Zhao <je...@live.com>
>>>
>>> 大家好,
>>>
>>>
>>>
>>> Jscex是一个类库,对JavaScript语言进行了扩展(换句话说就是个用JavaScript编写的JavaScript编译器,从JavaScript生成JavaScript代码),用于简化特定场景下的编程难度(例如异步编程)。它是百分百的JavaScript,可以在任意支持ECMAScript
>>>
>>> 3的引擎里使用(网页,浏览器扩展,Node.js等等)。Jscex没有额外的编译过程,一切都是在执行过程中进行的,可以说为JavaScript程序员保留了一切开发习惯。
>>>
>>>
>>>
>>> 上周六我在NodeParty杭州站活动上结合Node.js项目对Jscex进行了简单介绍,包括其设计目的,设计原则,使用方式,高级模式,组成部分等等。以下是幻灯片:
>>>
>>> http://blog.zhaojie.me/2011/05/jscex-write-sexy-javascript-slide.html
>>>
>>> Jscex项目基于BSD开源协议发布,它的Github页面上有更多详细信息:
>>>
>>> https://github.com/JeffreyZhao/jscex
>>>
>>> SNDACode上有其中文说明:
>>>
>>> http://www.sndacode.com/projects/jscex/wiki
>>>
>>> 各位能否谈一下对这个项目的感受?我现在也正想推广这个项目。欢迎各种反馈,意见建议等等越多越好。
>>>

Jeffrey Zhao

unread,
May 16, 2011, 5:31:58 AM5/16/11
to is...@googlegroups.com
�õġ�


Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

-----ԭʼ�ʼ�-----
From: ׯ��ΰ

Sent: Monday, May 16, 2011 5:22 PM
To: is...@googlegroups.com


Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ

���ܷ�����ǰ���������ģ��Ѿ������ˣ����ܰɡ�

2011/5/16 Jeffrey Zhao <je...@live.com>:


> ม���
>
> �ڴ˺���ׯ��ΰ������ܷ����İ�����һ��Сʱ�ķ����ʱ�䣿
>

> Jeffrey Zhao
> Blog: http://blog.zhaojie.me/
> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

> -----ԭʼ�ʼ�----- From: ׯ��ΰ

> Sent: Monday, May 16, 2011 4:44 PM
> To: is...@googlegroups.com

> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>
> ��������ң����ߣ�����һ������������������������ԡ�
>
> 2011/5/16 Jeffrey Zhao <je...@live.com>:
>>
>> ���֡����Ѿ��Ҳ����콨���ˣ���ô���ķ���������Ӧ����˭�أ�
>>

>> Jeffrey Zhao
>> Blog: http://blog.zhaojie.me/
>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>
>> From: Jeffrey Zhao
>> Sent: Monday, May 16, 2011 4:36 PM
>> To: is...@googlegroups.com

>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>
>> ��ô�������ġ���
>>

>> Jeffrey Zhao
>> Blog: http://blog.zhaojie.me/
>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>
>> From: Neo Lee
>> Sent: Monday, May 16, 2011 4:02 PM
>> To: is...@googlegroups.com

>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>
>> ǿ��Ҫ����������ܣ���Ȼ�ܾ�ѧϰ���������
>>
>> 2011/5/16 Jeffrey Zhao <je...@live.com>
>>>
>>> ��Һã�
>>>
>>>
>>>
>>> Jscex��һ����⣬��JavaScript���Խ�������չ�����仰˵���Ǹ���JavaScript��д��JavaScript����������JavaScript���JavaScript���룩�����ڼ��ض������µı���Ѷȣ������첽��̣������ǰٷְٵ�JavaScript������������֧��ECMAScript
>>>
>>> 3��������ʹ�ã���ҳ���������չ��Node.js�ȵȣ���Jscexû�ж���ı����̣�һ�ж�����ִ�й���н��еģ�����˵ΪJavaScript����Ա������һ�п���ϰ�ߡ�
>>>
>>>
>>>
>>> ����������NodeParty����վ��Ͻ��Node.js��Ŀ��Jscex�����˼򵥽��ܣ����������Ŀ�ģ����ԭ��ʹ�÷�ʽ���߼�ģʽ����ɲ��ֵȵȡ������ǻõ�Ƭ��
>>>
>>> http://blog.zhaojie.me/2011/05/jscex-write-sexy-javascript-slide.html
>>>
>>> Jscex��Ŀ����BSD��ԴЭ�鷢�������Githubҳ�����и����ϸ��Ϣ��
>>>
>>> https://github.com/JeffreyZhao/jscex
>>>
>>> SNDACode����������˵����
>>>
>>> http://www.sndacode.com/projects/jscex/wiki
>>>
>>> ��λ�ܷ�̸һ�¶������Ŀ�ĸ��ܣ�������Ҳ�����ƹ������Ŀ����ӭ���ַ����������ȵ�Խ��Խ�á�
>>>

Neo Lee

unread,
May 16, 2011, 6:16:13 AM5/16/11
to is...@googlegroups.com
分享会还是刘凯负责吧,不行就找他领导唐一丁同学。



2011/5/16 Jeffrey Zhao <je...@live.com>
好的。



Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
-----原始邮件----- From: 庄表伟
Sent: Monday, May 16, 2011 5:22 PM

To: is...@googlegroups.com
Subject: Re: Jscex项目介绍及上周六使用的幻灯片


本周分享会是安排在周三的,已经排满了,下周吧。

2011/5/16 Jeffrey Zhao <je...@live.com>:
喔……

在此呼叫庄表伟和李骏,能否本周四安排我一个小时的分享会时间?

Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
-----原始邮件----- From: 庄表伟

Sent: Monday, May 16, 2011 4:44 PM
To: is...@googlegroups.com
Subject: Re: Jscex项目介绍及上周六使用的幻灯片

你可以找我,或者,找唐一丁,李骏,赵真利,刘凯,都可以。

2011/5/16 Jeffrey Zhao <je...@live.com>:

发现……已经找不到徐建海了,那么周四分享会的事情应该找谁呢?

Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

From: Jeffrey Zhao
Sent: Monday, May 16, 2011 4:36 PM
To: is...@googlegroups.com
Subject: Re: Jscex项目介绍及上周六使用的幻灯片

个么就这周四……


Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

From: Neo Lee
Sent: Monday, May 16, 2011 4:02 PM
To: is...@googlegroups.com
Subject: Re: Jscex项目介绍及上周六使用的幻灯片

强烈要求姐夫分享会介绍,不然拒绝学习这个。。。

2011/5/16 Jeffrey Zhao <je...@live.com>

大家好,



Jscex是一个类库,对JavaScript语言进行了扩展(换句话说就是个用JavaScript编写的JavaScript编译器,从JavaScript生成JavaScript代码),用于简化特定场景下的编程难度(例如异步编程)。它是百分百的JavaScript,可以在任意支持ECMAScript

3的引擎里使用(网页,浏览器扩展,Node.js等等)。Jscex没有额外的编译过程,一切都是在执行过程中进行的,可以说为JavaScript程序员保留了一切开发习惯。



上周六我在NodeParty杭州站活动上结合Node.js项目对Jscex进行了简单介绍,包括其设计目的,设计原则,使用方式,高级模式,组成部分等等。以下是幻灯片:

http://blog.zhaojie.me/2011/05/jscex-write-sexy-javascript-slide.html

Jscex项目基于BSD开源协议发布,它的Github页面上有更多详细信息:

https://github.com/JeffreyZhao/jscex

SNDACode上有其中文说明:

http://www.sndacode.com/projects/jscex/wiki

各位能否谈一下对这个项目的感受?我现在也正想推广这个项目。欢迎各种反馈,意见建议等等越多越好。

Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)


--
No, I will not fix your computer!

neo...@gmail.com

LEE xueyu

unread,
May 19, 2011, 10:14:40 AM5/19/11
to is...@googlegroups.com
今天下午死胖子大概介绍了下Jcex,为了解决异步调用的时候,有太多回调函数嵌套极不悠雅,阅读体验极差的问题,理念极好,但是eval and
compiler看上去还是有点让人不爽(虽然已经好多了)。不过想到这个是通常问题,就回家搜了下,看看别人是怎么解决,果不其然,发现许多,挑两个我自己喜欢的:

1、http://www.neilmix.com/narrativejs/narrativejs-beta1.zip
这个原理似乎和胖子的差不多,也是转换源代码方式,但是看上去比胖子的悠雅:
Narrative JavaScript 通过建立一个新的Yeilding操作符来实现:->.
比如xmlhttp取数据: document.getElementById("myElem").innerHTML =
fetch->("http://www.url.com/");

再比如动画(这样的例子才更简单):
for (var left = 0; left <= 300; left += 10) {
left += 10;
document.getElementById("myElem").style.left = left;
sleep->(30);
}

以前就必须写成:
v ar left = 0;
function onTimer() {
left += 10;
if (left <= 300) {
document.getElementById("myElem").style.left = left;
setTimeout(onTimer, 30);
}
}
onTimer();

2、http://onilabs.com/docs
这个更夸张,支持跨域模块,不过它的风格也还不坏:
require('apollo:google').translate('Hello, world!', 'ja');
这个语句是调用google的翻译服务,返回json对象。它有联机console, 可以在线试下。

另外一个例子,点击下载按钮,下载数据,中间可以取消,并有超时。混合了用户输入和http请求:
require("apollo:jquery-binding").install();
var http = require("apollo:http");
$("#download").$click();
waitfor {
var data = http.get("lotsofdata");
}
or {
$("#cancel").$click();
throw "download cancelled!";
}
or {
hold(10000);
throw "download timed out after 10s!";
}
use_data(data);

这个值得深入看看。

2011/5/16 Neo Lee <neo...@gmail.com>:

Neo Lee

unread,
May 19, 2011, 10:41:29 AM5/19/11
to is...@googlegroups.com
是”Jscex“啦,这么说下周姐夫来讲的话,xueyu 已经准备了充足板砖?


2011/5/19 LEE xueyu <snowy...@gmail.com>

Jeffrey Zhao

unread,
May 19, 2011, 10:44:32 AM5/19/11
to is...@googlegroups.com
NarrativeJS��StratifiedJS��������ϸ�۲�ͷ�����ģ�����Jscex�����ǵĶԱȶ�д��wiki�Ϻþ��ˣ�˵�����������һ�㶼û��������

http://www.sndacode.com/projects/jscex/wiki#��������Ŀ�ıȽ�

���ǵ���Ҫ������ǣ������������ԣ���Ȼ������Ƶġ�û�м��Ӵ��롱����������һ�������ǾͲ���JavaScript�ˣ��޷���JavaScript�༭����ʹ�ã��޷���д��ֱ��ˢ�¿���Ч����Ҫ��������̣�����˸ı���JavaScript����Ա��ϰ�ߡ�Jscex����Ҫ���ԭ���ǡ�����JavaScript����Աһ��ϰ�ߡ������ڼ����ǡ���ѧϰ������ʹ�ã��õ� eval(Jscex.compile()) �Ѿ�����ѵ�Ч���ˣ��ο���ʵ��ʮ��
�����Ϊʲô eval(Jscex.compile(...)) ����һ��û���κα仯����������ȥ����京��ļ��Ӵ�������˲���ִ����������̶�����һ�Ÿ�JavaScript�и�಻ͬ�ģ��������ϰ�߶��ı�����ԡ�

���ܷ�����һ��ٽ�һ��Jscex������Ҫ����ǿ��Jscex�����ԭ���Լ�����������Ŀ�ĶԱȡ��ˣ��Ǻǡ�

��������ϸ˵�����������ȿ�һ�£��Ǻǡ�

Jeffrey Zhao
Blog: http://blog.zhaojie.me/

Twitter: @jeffz_cn (Chinese) | @jeffz_en (English)


-----Original Message-----
From: LEE xueyu
Sent: Thursday, May 19, 2011 10:14 PM
To: is...@googlegroups.com

Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ

�������������Ӵ�Ž�������Jcex��Ϊ�˽���첽���õ�ʱ����̫��ص�����Ƕ�׼������ţ��Ķ����鼫������⣬����ã�����eval and
compiler����ȥ�����е����˲�ˬ����Ȼ�Ѿ��ö��ˣ��������뵽�����ͨ�����⣬�ͻؼ������£�������������ô���������Ȼ��������࣬���������Լ�ϲ���ģ�

1��http://www.neilmix.com/narrativejs/narrativejs-beta1.zip
���ԭ���ƺ������ӵIJ�࣬Ҳ��ת��Դ���뷽ʽ�����ǿ���ȥ�����ӵ����ţ�
Narrative JavaScript ͨ����һ���µ�Yeilding��������ʵ�֣�->.
����xmlhttpȡ���: document.getElementById("myElem").innerHTML =

�ٱ��綯������������ӲŸ�򵥣���


for (var left = 0; left <= 300; left += 10) {
left += 10;
document.getElementById("myElem").style.left = left;
sleep->(30);
}

��ǰ�ͱ���д�ɣ�


v ar left = 0;
function onTimer() {
left += 10;
if (left <= 300) {
document.getElementById("myElem").style.left = left;
setTimeout(onTimer, 30);
}
}
onTimer();

2��http://onilabs.com/docs
�������ţ�֧�ֿ���ģ�飬������ķ��Ҳ��������


require('apollo:google').translate('Hello, world!', 'ja');

�������ǵ���google�ķ�����񣬷���json������������console, �����������¡�


����һ�����ӣ�������ذ�ť��������ݣ��м����ȡ���г�ʱ��������û������http����


require("apollo:jquery-binding").install();
var http = require("apollo:http");
$("#download").$click();
waitfor {
var data = http.get("lotsofdata");
}
or {
$("#cancel").$click();
throw "download cancelled!";
}
or {
hold(10000);
throw "download timed out after 10s!";
}
use_data(data);

���ֵ�����뿴����

2011/5/16 Neo Lee <neo...@gmail.com>:
> ����ỹ����������ɣ����о������쵼��һ��ͬѧ��
>
>
> 2011/5/16 Jeffrey Zhao <je...@live.com>
>>
>> �õġ�


>>
>>
>> Jeffrey Zhao
>> Blog: http://blog.zhaojie.me/
>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

>> -----ԭʼ�ʼ�----- From: ׯ��ΰ

>> Sent: Monday, May 16, 2011 5:22 PM
>> To: is...@googlegroups.com

>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>
>> ���ܷ�����ǰ���������ģ��Ѿ������ˣ����ܰɡ�
>>
>> 2011/5/16 Jeffrey Zhao <je...@live.com>:
>>>
>>> ม���
>>>
>>> �ڴ˺���ׯ��ΰ������ܷ����İ�����һ��Сʱ�ķ����ʱ�䣿
>>>

>>> Jeffrey Zhao
>>> Blog: http://blog.zhaojie.me/
>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

>>> -----ԭʼ�ʼ�----- From: ׯ��ΰ

>>> Sent: Monday, May 16, 2011 4:44 PM
>>> To: is...@googlegroups.com

>>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>>
>>> ��������ң����ߣ�����һ������������������������ԡ�
>>>
>>> 2011/5/16 Jeffrey Zhao <je...@live.com>:
>>>>
>>>> ���֡����Ѿ��Ҳ����콨���ˣ���ô���ķ���������Ӧ����˭�أ�
>>>>

>>>> Jeffrey Zhao
>>>> Blog: http://blog.zhaojie.me/
>>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>>>
>>>> From: Jeffrey Zhao
>>>> Sent: Monday, May 16, 2011 4:36 PM
>>>> To: is...@googlegroups.com

>>>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>>>
>>>> ��ô�������ġ���
>>>>

>>>> Jeffrey Zhao
>>>> Blog: http://blog.zhaojie.me/
>>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>>>
>>>> From: Neo Lee
>>>> Sent: Monday, May 16, 2011 4:02 PM
>>>> To: is...@googlegroups.com

>>>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>>>
>>>> ǿ��Ҫ����������ܣ���Ȼ�ܾ�ѧϰ���������
>>>>
>>>> 2011/5/16 Jeffrey Zhao <je...@live.com>
>>>>>
>>>>> ��Һã�
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Jscex��һ����⣬��JavaScript���Խ�������չ�����仰˵���Ǹ���JavaScript��д��JavaScript����������JavaScript���JavaScript���룩�����ڼ��ض������µı���Ѷȣ������첽��̣������ǰٷְٵ�JavaScript������������֧��ECMAScript
>>>>>
>>>>>
>>>>> 3��������ʹ�ã���ҳ���������չ��Node.js�ȵȣ���Jscexû�ж���ı����̣�һ�ж�����ִ�й���н��еģ�����˵ΪJavaScript����Ա������һ�п���ϰ�ߡ�
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ����������NodeParty����վ��Ͻ��Node.js��Ŀ��Jscex�����˼򵥽��ܣ����������Ŀ�ģ����ԭ��ʹ�÷�ʽ���߼�ģʽ����ɲ��ֵȵȡ������ǻõ�Ƭ��
>>>>>
>>>>> http://blog.zhaojie.me/2011/05/jscex-write-sexy-javascript-slide.html
>>>>>
>>>>> Jscex��Ŀ����BSD��ԴЭ�鷢�������Githubҳ�����и����ϸ��Ϣ��
>>>>>
>>>>> https://github.com/JeffreyZhao/jscex
>>>>>
>>>>> SNDACode����������˵����
>>>>>
>>>>> http://www.sndacode.com/projects/jscex/wiki
>>>>>
>>>>> ��λ�ܷ�̸һ�¶������Ŀ�ĸ��ܣ�������Ҳ�����ƹ������Ŀ����ӭ���ַ����������ȵ�Խ��Խ�á�
>>>>>

LEE xueyu

unread,
May 19, 2011, 8:56:48 PM5/19/11
to is...@googlegroups.com
嗯,那是必须的 讲。

Sorry, 怪我不认真,又看了下wiki,的确有提到。不过说得不细。

jscex 和 narrativejs 有可比性,最初是不是参考它?主要的区别就是 jscex
可以在html页面上混用,和一般的js没有区别,而narrativejs
必须写在独立的文件中。其他都一样,动态编译,静态编译什么的都有。但是narrativejs一直没有更新了。

初步感觉,目前对于 js async 问题的解决,大致分为两类,
一类就是在语言层面上解决(希望某一天能成为js语法的一部分),jscex, narrativejs, ...
比较 coffescript 和 apollo(StratifiedJS),我更喜欢 StratifiedJS 一点。
另一类就是直接在现有的js语法基础上做 如 async, step, do ....

有空再细说.

2011/5/19 Jeffrey Zhao <je...@live.com>:
> NarrativeJS和StratifiedJS都是我仔细观察和分析过的,而且Jscex跟它们的对比都写在wiki上好久了,说明大哥您真是一点都没看啊......
>
> http://www.sndacode.com/projects/jscex/wiki#与其他项目的比较
>
> 它们的主要问题就是:它们是新语言,自然可以设计的"没有架子代码"。但是这样一来,它们就不是JavaScript了,无法在JavaScript编辑器里使用,无法编写后直接刷新看到效果(需要额外编译过程),因此改变了JavaScript程序员的习惯。Jscex的首要设计原则是"保留JavaScript程序员一切习惯",现在几乎是"零学习"就能使用,用到
> eval(Jscex.compile()) 已经是最佳的效果了,何况其实我十分 不理解为什么 eval(Jscex.compile(...))
> 这样一个没有任何变化,甚至不用去理解其含义的架子代码会让人产生"抵触"情绪,继而倾向一门跟JavaScript有更多不同的,甚至编程习惯都改变的语言。
>
> 下周分享会我会再讲一次Jscex,看来要着重强调Jscex的设计原则,以及"与其它项目的对比"了,呵呵。
>
> 上面是详细说明,大伙可以先看一下,呵呵。


>
> Jeffrey Zhao
> Blog: http://blog.zhaojie.me/
> Twitter: @jeffz_cn (Chinese) | @jeffz_en (English)
> -----Original Message----- From: LEE xueyu
> Sent: Thursday, May 19, 2011 10:14 PM
> To: is...@googlegroups.com

> Subject: Re: Jscex项目介绍及上周六使用的幻灯片


>
> 今天下午死胖子大概介绍了下Jcex,为了解决异步调用的时候,有太多回调函数嵌套极不悠雅,阅读体验极差的问题,理念极好,但是eval and
> compiler看上去还是有点让人不爽(虽然已经好多了)。不过想到这个是通常问题,就回家搜了下,看看别人是怎么解决,果不其然,发现许多,挑两个我自己喜欢的:
>
> 1、http://www.neilmix.com/narrativejs/narrativejs-beta1.zip
> 这个原理似乎和胖子的差不多,也是转换源代码方式,但是看上去比胖子的悠雅:
> Narrative JavaScript 通过建立一个新的Yeilding操作符来实现:->.

> 比如xmlhttp取数据: document.getElementById("myElem").innerHTML =


> fetch->("http://www.url.com/");
>

> 再比如动画(这样的例子才更简单):


> for (var left = 0; left <= 300; left += 10) {
> left += 10;
> document.getElementById("myElem").style.left = left;
> sleep->(30);
> }
>

> 以前就必须写成:


> v ar left = 0;
> function onTimer() {
> left += 10;
> if (left <= 300) {
> document.getElementById("myElem").style.left = left;
> setTimeout(onTimer, 30);
> }
> }
> onTimer();
>
> 2、http://onilabs.com/docs

> 这个更夸张,支持跨域模块,不过它的风格也还不坏:


> require('apollo:google').translate('Hello, world!', 'ja');

> 这个语句是调用google的翻译服务,返回json对象。它有联机console, 可以在线试下。
>
> 另外一个例子,点击下载按钮,下载数据,中间可以取消,并有超时。混合了用户输入和http请求:

> require("apollo:jquery-binding").install();
> var http = require("apollo:http");
> $("#download").$click();
> waitfor {
> var data = http.get("lotsofdata");
> }
> or {
> $("#cancel").$click();
> throw "download cancelled!";
> }
> or {
> hold(10000);
> throw "download timed out after 10s!";
> }
> use_data(data);
>

> 这个值得深入看看。
>
> 2011/5/16 Neo Lee <neo...@gmail.com>:
>>
>> 分享会还是刘凯负责吧,不行就找他领导唐一丁同学。
>>
>>
>> 2011/5/16 Jeffrey Zhao <je...@live.com>
>>>
>>> 好的。
>>>
>>>

>>> Jeffrey Zhao
>>> Blog: http://blog.zhaojie.me/
>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

>>> -----原始邮件----- From: 庄表伟


>>> Sent: Monday, May 16, 2011 5:22 PM
>>> To: is...@googlegroups.com

>>> Subject: Re: Jscex项目介绍及上周六使用的幻灯片
>>>
>>> 本周分享会是安排在周三的,已经排满了,下周吧。
>>>
>>> 2011/5/16 Jeffrey Zhao <je...@live.com>:
>>>>

>>>> 喔......
>>>>
>>>> 在此呼叫庄表伟和李骏,能否本周四安排我一个小时的分享会时间?


>>>>
>>>> Jeffrey Zhao
>>>> Blog: http://blog.zhaojie.me/
>>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

>>>> -----原始邮件----- From: 庄表伟


>>>> Sent: Monday, May 16, 2011 4:44 PM
>>>> To: is...@googlegroups.com

>>>> Subject: Re: Jscex项目介绍及上周六使用的幻灯片
>>>>
>>>> 你可以找我,或者,找唐一丁,李骏,赵真利,刘凯,都可以。
>>>>
>>>> 2011/5/16 Jeffrey Zhao <je...@live.com>:
>>>>>

>>>>> 发现......已经找不到徐建海了,那么周四分享会的事情应该找谁呢?


>>>>>
>>>>> Jeffrey Zhao
>>>>> Blog: http://blog.zhaojie.me/
>>>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>>>>
>>>>> From: Jeffrey Zhao
>>>>> Sent: Monday, May 16, 2011 4:36 PM
>>>>> To: is...@googlegroups.com

>>>>> Subject: Re: Jscex项目介绍及上周六使用的幻灯片
>>>>>
>>>>> 个么就这周四......


>>>>>
>>>>> Jeffrey Zhao
>>>>> Blog: http://blog.zhaojie.me/
>>>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>>>>
>>>>> From: Neo Lee
>>>>> Sent: Monday, May 16, 2011 4:02 PM
>>>>> To: is...@googlegroups.com

>>>>> Subject: Re: Jscex项目介绍及上周六使用的幻灯片
>>>>>
>>>>> 强烈要求姐夫分享会介绍,不然拒绝学习这个。。。
>>>>>
>>>>> 2011/5/16 Jeffrey Zhao <je...@live.com>
>>>>>>
>>>>>> 大家好,
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Jscex是一个类库,对JavaScript语言进行了扩展(换句话说就是个用JavaScript编写的JavaScript编译器,从JavaScript生成JavaScript代码),用于简化特定场景下的编程难度(例如异步编程)。它是百分百的JavaScript,可以在任意支持ECMAScript
>>>>>>
>>>>>>
>>>>>>
>>>>>> 3的引擎里使用(网页,浏览器扩展,Node.js等等)。Jscex没有额外的编译过程,一切都是在执行过程中进行的,可以说为JavaScript程序员保留了一切开发习惯。
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 上周六我在NodeParty杭州站活动上结合Node.js项目对Jscex进行了简单介绍,包括其设计目的,设计原则,使用方式,高级模式,组成部分等等。以下是幻灯片:
>>>>>>
>>>>>> http://blog.zhaojie.me/2011/05/jscex-write-sexy-javascript-slide.html
>>>>>>
>>>>>> Jscex项目基于BSD开源协议发布,它的Github页面上有更多详细信息:
>>>>>>
>>>>>> https://github.com/JeffreyZhao/jscex
>>>>>>
>>>>>> SNDACode上有其中文说明:
>>>>>>
>>>>>> http://www.sndacode.com/projects/jscex/wiki
>>>>>>
>>>>>> 各位能否谈一下对这个项目的感受?我现在也正想推广这个项目。欢迎各种反馈,意见建议等等越多越好。
>>>>>>

Jeffrey Zhao

unread,
May 19, 2011, 10:16:19 PM5/19/11
to is...@googlegroups.com
��ʵ�Ҿ��ã���ʵJscexΨһ�ο��ľ���F#�˰ɣ���ΪJscex��ͬ���Ʒ��ĿǰΨһ����������ϰ�ߡ��ģ������㲻̫һ��������ܶණ����̫���ײο�����Ȼ��Ҳ����˵�Ӻܶ�������Ŀ�����˺ܶ��Ҿ��á���ˬ���ĵط���Ȼ����취ȥ���⡣

�ο�F#��ָ������Monadic��ʽ���������ջ���ΪJavaScript��Ƶģ���ΪJS������ʽ���ԣ�ijЩ�����F#�����ӣ�����Ҫ����thisָ�루JS�ص�ʱ���鷳������֮һ��������break��continue��return���ִ��ִ��������䣬����F#���ֺ���ʽ���������ù�ע�ġ�

CoffeeScript��StratifiedJS��Ŀ��Ҳ��һ��ǰ����һ�Ÿ���õ����ԣ�����Ruby���������ǿ�ģ���û�н���첽��̵����⡣��StratifiedJS�أ����Ǻ�Jscex��Ŀ��ӽ�Ϊ�˽���첽������⡣

Jscex�ڸ���ѡ��Ȩ�Ⱑ���Ǻܶ࣬����̫�鷳�����������˶��ϸ̸�ɣ��Ǻǡ�


Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

-----ԭʼ�ʼ�-----
From: LEE xueyu
Sent: Friday, May 20, 2011 8:56 AM


To: is...@googlegroups.com
Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ

�ţ����DZ���� ����

Sorry�� ���Ҳ����棬�ֿ�����wiki����ȷ���ᵽ������˵�ò�ϸ��

jscex �� narrativejs �пɱ��ԣ�����Dz��Dzο�����Ҫ�������� jscex
������htmlҳ���ϻ��ã���һ���jsû����𣬶�narrativejs
����д�ڶ������ļ��С�����һ��̬���룬��̬����ʲô�Ķ��С�����narrativejsһֱû�и����ˡ�

�����о���Ŀǰ���� js async ����Ľ�������·�Ϊ���࣬
һ����������Բ����Ͻ����ϣ��ijһ���ܳ�Ϊjs����һ���֣���jscex,
narrativejs, ...
�Ƚ� coffescript �� apollo��StratifiedJS�����Ҹ�ϲ�� StratifiedJS һ�㡣
��һ�����ֱ�������е�js�������� �� async, step, do ....

�п���ϸ˵.

2011/5/19 Jeffrey Zhao <je...@live.com>:
> NarrativeJS��StratifiedJS��������ϸ�۲�ͷ�����ģ�����Jscex�����ǵĶԱȶ�д��wiki�Ϻþ��ˣ�˵�����������һ�㶼û����......
>
> http://www.sndacode.com/projects/jscex/wiki#��������Ŀ�ıȽ�
>
> ���ǵ���Ҫ������ǣ������������ԣ���Ȼ������Ƶ�"û�м��Ӵ���"����������һ�������ǾͲ���JavaScript�ˣ��޷���JavaScript�༭����ʹ�ã��޷���д��ֱ��ˢ�¿���Ч����Ҫ��������̣�����˸ı���JavaScript����Ա��ϰ�ߡ�Jscex����Ҫ���ԭ����"����JavaScript����Աһ��ϰ��"�����ڼ�����"��ѧϰ"����ʹ�ã��õ�


> eval(Jscex.compile()) �Ѿ�����ѵ�Ч���ˣ��ο���ʵ��ʮ�� �����Ϊʲô
> eval(Jscex.compile(...))
> ����һ��û���κα仯����������ȥ����京��ļ��Ӵ�������˲���"�ִ�"�������̶�����һ�Ÿ�JavaScript�и�಻ͬ�ģ��������ϰ�߶��ı�����ԡ�
>

> ���ܷ�����һ��ٽ�һ��Jscex������Ҫ����ǿ��Jscex�����ԭ���Լ�"��������Ŀ�ĶԱ�"�ˣ��Ǻǡ�
>
> ��������ϸ˵�����������ȿ�һ�£��Ǻǡ�
>


> Jeffrey Zhao
> Blog: http://blog.zhaojie.me/
> Twitter: @jeffz_cn (Chinese) | @jeffz_en (English)
> -----Original Message----- From: LEE xueyu
> Sent: Thursday, May 19, 2011 10:14 PM
> To: is...@googlegroups.com

> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>
> �������������Ӵ�Ž�������Jcex��Ϊ�˽���첽���õ�ʱ����̫��ص�����Ƕ�׼������ţ��Ķ����鼫������⣬����ã�����eval and
> compiler����ȥ�����е����˲�ˬ����Ȼ�Ѿ��ö��ˣ��������뵽�����ͨ�����⣬�ͻؼ������£�������������ô���������Ȼ��������࣬���������Լ�ϲ���ģ�
>
> 1��http://www.neilmix.com/narrativejs/narrativejs-beta1.zip
> ���ԭ���ƺ������ӵIJ�࣬Ҳ��ת��Դ���뷽ʽ�����ǿ���ȥ�����ӵ����ţ�
> Narrative JavaScript ͨ����һ���µ�Yeilding��������ʵ�֣�->.

> ����xmlhttpȡ���: document.getElementById("myElem").innerHTML =


> fetch->("http://www.url.com/");
>

> �ٱ��綯������������ӲŸ�򵥣���


> for (var left = 0; left <= 300; left += 10) {
> left += 10;
> document.getElementById("myElem").style.left = left;
> sleep->(30);
> }
>

> ��ǰ�ͱ���д�ɣ�


> v ar left = 0;
> function onTimer() {
> left += 10;
> if (left <= 300) {
> document.getElementById("myElem").style.left = left;
> setTimeout(onTimer, 30);
> }
> }
> onTimer();
>
> 2��http://onilabs.com/docs

> �������ţ�֧�ֿ���ģ�飬������ķ��Ҳ��������

> require('apollo:google').translate('Hello, world!', 'ja');

> �������ǵ���google�ķ�����񣬷���json������������console, �����������¡�
>
>
> ����һ�����ӣ�������ذ�ť��������ݣ��м����ȡ���г�ʱ��������û������http����

> require("apollo:jquery-binding").install();
> var http = require("apollo:http");
> $("#download").$click();
> waitfor {
> var data = http.get("lotsofdata");
> }
> or {
> $("#cancel").$click();
> throw "download cancelled!";
> }
> or {
> hold(10000);
> throw "download timed out after 10s!";
> }
> use_data(data);
>

> ���ֵ�����뿴����
>
> 2011/5/16 Neo Lee <neo...@gmail.com>:
>>
>> ����ỹ����������ɣ����о������쵼��һ��ͬѧ��
>>
>>
>> 2011/5/16 Jeffrey Zhao <je...@live.com>
>>>
>>> �õġ�
>>>
>>>

>>> Jeffrey Zhao
>>> Blog: http://blog.zhaojie.me/
>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

>>> -----ԭʼ�ʼ�----- From: ׯ��ΰ

>>> Sent: Monday, May 16, 2011 5:22 PM
>>> To: is...@googlegroups.com

>>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>>
>>> ���ܷ�����ǰ���������ģ��Ѿ������ˣ����ܰɡ�
>>>
>>> 2011/5/16 Jeffrey Zhao <je...@live.com>:
>>>>

>>>> �......


>>>>
>>>> �ڴ˺���ׯ��ΰ������ܷ����İ�����һ��Сʱ�ķ����ʱ�䣿
>>>>

>>>> Jeffrey Zhao
>>>> Blog: http://blog.zhaojie.me/
>>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)

>>>> -----ԭʼ�ʼ�----- From: ׯ��ΰ

>>>> Sent: Monday, May 16, 2011 4:44 PM
>>>> To: is...@googlegroups.com

>>>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>>>
>>>> ��������ң����ߣ�����һ������������������������ԡ�
>>>>
>>>> 2011/5/16 Jeffrey Zhao <je...@live.com>:
>>>>>

>>>>> ����......�Ѿ��Ҳ����콨���ˣ���ô���ķ���������Ӧ����˭�أ�


>>>>>
>>>>> Jeffrey Zhao
>>>>> Blog: http://blog.zhaojie.me/
>>>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>>>>
>>>>> From: Jeffrey Zhao
>>>>> Sent: Monday, May 16, 2011 4:36 PM
>>>>> To: is...@googlegroups.com

>>>>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>>>>

>>>>> ��������......


>>>>>
>>>>> Jeffrey Zhao
>>>>> Blog: http://blog.zhaojie.me/
>>>>> Twitter: @jeffz_cn (Chinese) | @jeffz_cn (English)
>>>>>
>>>>> From: Neo Lee
>>>>> Sent: Monday, May 16, 2011 4:02 PM
>>>>> To: is...@googlegroups.com

>>>>> Subject: Re: Jscex��Ŀ���ܼ�������ʹ�õĻõ�Ƭ
>>>>>
>>>>> ǿ��Ҫ����������ܣ���Ȼ�ܾ�ѧϰ���������
>>>>>
>>>>> 2011/5/16 Jeffrey Zhao <je...@live.com>
>>>>>>
>>>>>> ��Һã�
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Jscex��һ����⣬��JavaScript���Խ�������չ�����仰˵���Ǹ���JavaScript��д��JavaScript����������JavaScript���JavaScript���룩�����ڼ��ض������µı���Ѷȣ������첽��̣������ǰٷְٵ�JavaScript������������֧��ECMAScript
>>>>>>
>>>>>>
>>>>>>
>>>>>> 3��������ʹ�ã���ҳ���������չ��Node.js�ȵȣ���Jscexû�ж���ı����̣�һ�ж�����ִ�й���н��еģ�����˵ΪJavaScript����Ա������һ�п���ϰ�ߡ�
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ����������NodeParty����վ��Ͻ��Node.js��Ŀ��Jscex�����˼򵥽��ܣ����������Ŀ�ģ����ԭ��ʹ�÷�ʽ���߼�ģʽ����ɲ��ֵȵȡ������ǻõ�Ƭ��
>>>>>>
>>>>>> http://blog.zhaojie.me/2011/05/jscex-write-sexy-javascript-slide.html
>>>>>>
>>>>>> Jscex��Ŀ����BSD��ԴЭ�鷢�������Githubҳ�����и����ϸ��Ϣ��
>>>>>>
>>>>>> https://github.com/JeffreyZhao/jscex
>>>>>>
>>>>>> SNDACode����������˵����
>>>>>>
>>>>>> http://www.sndacode.com/projects/jscex/wiki
>>>>>>
>>>>>> ��λ�ܷ�̸һ�¶������Ŀ�ĸ��ܣ�������Ҳ�����ƹ������Ŀ����ӭ���ַ����������ȵ�Խ��Խ�á�
>>>>>>

Reply all
Reply to author
Forward
0 new messages