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
>>
>> ��λ�ܷ�̸һ�¶������Ŀ�ĸ��ܣ�������Ҳ�����ƹ������Ŀ����ӭ���ַ����������ȵ�Խ��Խ�á�
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)
-----ԭʼ�ʼ�-----
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
>>>
>>> ��λ�ܷ�̸һ�¶������Ŀ�ĸ��ܣ�������Ҳ�����ƹ������Ŀ����ӭ���ַ����������ȵ�Խ��Խ�á�
>>>
-----原始邮件----- From: 庄表伟
Sent: Monday, May 16, 2011 5:22 PM
喔……
在此呼叫庄表伟和李骏,能否本周四安排我一个小时的分享会时间?
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
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>:
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
>>>>>
>>>>> ��λ�ܷ�̸һ�¶������Ŀ�ĸ��ܣ�������Ҳ�����ƹ������Ŀ����ӭ���ַ����������ȵ�Խ��Խ�á�
>>>>>
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
>>>>>>
>>>>>> 各位能否谈一下对这个项目的感受?我现在也正想推广这个项目。欢迎各种反馈,意见建议等等越多越好。
>>>>>>
�ο�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
>>>>>>
>>>>>> ��λ�ܷ�̸һ�¶������Ŀ�ĸ��ܣ�������Ҳ�����ƹ������Ŀ����ӭ���ַ����������ȵ�Խ��Խ�á�
>>>>>>