<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    wadise

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      22 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks
    江南白衣 10:00:26
    JetBrains opens Meta Programming System for Early Access

    http://www.theserverside.com/news/thread.tss?thread_id=34619
    江南白衣 10:00:46
    JetBrains那個DSL制造器終于放出來溜達了
    magicgod 10:00:55
    是不是以idea為依靠?
    江南白衣 10:01:09
    an IDE-like language workbench for creating domain-specific languages (DSLs) and programs. It includes a plugin for IntelliJ IDEA which helps to generate Java code from your DSLs.
    ?
    magicgod 10:01:15
    dsl跟rules有什么區別?
    江南白衣 10:02:39
    Martin Flower最近出來湊熱鬧,寫了一篇關于Language workbench的blog阿,非常綜合的總結了面向語言編程,你看他的好了
    http://martinfowler.com/articles/languageWorkbench.html
    江南白衣 10:03:44
    不是說,面向對象的封裝不能真的一一映射現實世界.
    而面向人類語言習慣的封裝,從邏輯學上,更能影射人類的思維.
    magicgod 10:04:00
    看了一下,真的有點奇怪
    江南白衣 10:04:43
    他那篇blog,一開始舉的例子太長太無聊了,搞得大家頻頻起身吃零食,去廁所....
    buaawhl 10:04:43
    LOP.
    magicgod 10:05:22
    哈哈,是的
    magicgod 10:05:41
    但我總覺得還是有點隱隱不對勁
    buaawhl 10:06:07
    groovy, beanshell, js, python, ruby 不都是 LOP嗎?
    ?
    江南白衣 10:06:18
    不是吧 ....
    buaawhl 10:06:18
    LOP的一個例子
    magicgod 10:06:20
    這又回到了五六十年代人工智能和專家系統的方向了


    ?
    buaawhl 10:06:43
    Lisp允許自定義 語法規則
    magicgod 10:06:43
    lisp是恐怖的
    buaawhl 10:06:56
    對。最終的出路就是 人工智能
    magicgod 10:07:02
    學autocad的時候,真是要暈死了
    magicgod 10:07:24
    不見得是自然的,應該有一種類自然語言先出現
    buaawhl 10:07:28
    autocad用Lisp ?
    江南白衣 10:07:28
    Lisp按MF的分類,屬于Internal DSL.用自己來表達DSL
    而其他的都屬于External DSL,需要轉譯器
    magicgod 10:07:40
    我看了ilog的語言,看上去不錯
    江南白衣 10:07:52
    MPS這種是用轉譯器的阿,不同LISP.
    江南白衣 10:08:50
    JetBrains的MPS,優點在幫你制造語言的同時,制作這種語言的IDE...
    magicgod 10:10:01
    應該是為了讓這種語言給用戶或低級實施人員用吧
    江南白衣 10:11:18
    周末試用一下再說了,這年頭,總是廣告做得好,實際沒什么用.
    buaawhl 10:11:43
    MPS is a Java Code generator ?
    ?
    magicgod 10:12:16
    是不是這樣的理想:創建一種語言適合客戶直接使用
    buaawhl 10:12:23
    http://www.jetbrains.com/mps/start_mps3.html? look its sample
    magicgod 10:12:29
    那么就相當于把域邏輯的功能放給用戶來用
    magicgod 10:12:49
    這個hello world是有點復雜的,我覺得他舉的例子不對
    buaawhl 10:12:52
    客戶直接使用 自然語言。比如,漢語
    magicgod 10:13:48
    而且更好規范,適合計算機來識別
    江南白衣 10:14:25
    舉個例子吧,SQL屬于DSL....你如果不用SQL,也可以用一堆API來進行查詢,像hibernate的critexx.....
    但SQL明顯更易讀.

    so,把代碼封裝成語言,在某些情況下比封裝成OO的lib更好.

    ?
    magicgod 10:15:13
    是的,那如果封裝成OO的語言呢?
    magicgod 10:15:56
    一個用戶寫好的DSL代碼,繼承給另一個用戶去使用,豈不是很方便
    buaawhl 10:16:57
    SQL能夠做到的事情很少啊。where = if.?
    江南白衣 10:17:03
    可繼承的語言?這不是我的知識范圍內了...
    buaawhl 10:17:08
    if( a = 1) b = 3;
    buaawhl 10:17:25
    select * from A where b = 3
    buaawhl 10:17:43
    難度差不多啊
    ?
    江南白衣 10:17:57
    MF說,DSL就是不是不符合圖靈XXX的語言,不自足的,只能成為程序的某一方面,而主體必須要General Language(like java)完成.
    magicgod 10:18:25
    是的,DSL就是要簡單
    江南白衣 10:18:40
    靠,打字太快,
    MF說,DSL就是不符合圖靈XXX的語言
    ?
    buaawhl 10:18:43
    問題是在于,General Language(like java) 表達 程序的某一方面(簡單)的時候, 也相當簡單。和DSL一樣簡單
    magicgod 10:18:53
    目標不是程序員,而是行業用戶
    江南白衣 10:19:08
    而且,簡單的時候你可以不封裝阿.
    magicgod 10:19:09
    如果要到DSL的程度就可以視為DSL
    buaawhl 10:19:11
    那么,有必要用另一個簡單,來定義 本來就簡單的東西嗎?
    buaawhl 10:19:41
    行業用戶?:-) for example? what they realy need?
    江南白衣 10:19:41
    不是這個意思啊.
    buaawhl 10:19:58
    前一段時間,看了一下 Rule Engine
    江南白衣 10:20:00
    ilog的規則語言就可以讓電信的mm自定義收費規則
    magicgod 10:20:26
    是的,就是要夠簡單,這只是一個模糊概念

    ?
    buaawhl 10:21:10
    yes. i know iLog. 怎么說呢.那是商業的成功.另外也是業務模塊的成功.
    magicgod 10:21:54
    而且實際上DSL應該是面向實際人群的,比如:電報碼是一個非常復雜的編碼,可是仍然有大批的業務人員直接操作
    江南白衣 10:22:01
    其實也不一定直接面對行業用戶
    只是把某些面向OO的lib ,轉為面向語言的封裝,產生更多的藍領.
    但我覺得這個方向還有太多東西要研究,MPS只是一次探索
    buaawhl 10:22:24
    誰能給出一個 具體的 ilog sample ?? MPS可以說是 MDA。
    ?
    buaawhl 10:22:33
    Model Graph -> Code
    buaawhl 10:23:16
    iLog和JRules是同一個產品嗎?
    ?風之子 10:23:19
    Ilog是rule->Fuction
    magicgod 10:24:27
    If??? the call destination number is the preferred numberThen???? apply the preferred number rate
    江南白衣 10:24:27
    MPS的內涵一定不只Model Graph -> Code ,看他的那篇總領性的文章,不只如此的.
    不過可能第一版只做到這樣.
    magicgod 10:24:41
    If??? the call destination number is the preferred numberThen???? apply the preferred number rate
    magicgod 10:24:44
    If
    ??? the call destination number is the preferred number
    Then????
    ??? apply the preferred number rate
    magicgod 10:24:53
    ilog's bal
    莊表偉 10:25:02
    這是ilog的代碼?
    magicgod 10:25:02
    已經比較接近自然語言了
    莊表偉 10:25:08
    讓我想起了cobol
    buaawhl 10:25:10
    yes. i c. 江南白衣(228013) 10:20:00
    ilog的規則語言就可以讓電信的mm自定義收費規則 。??
    電信的mm寫這個?
    magicgod 10:25:13
    google上抄來的
    buaawhl 10:25:26
    是啊。Pascal, VB 也是這樣
    magicgod 10:25:26
    是的,有點象,所以cobol至今還有生命力
    magicgod 10:25:43
    destination number

    ?
    magicgod 10:29:09
    這應該就是DSL的好處,用戶很快搞懂了SQL的基本方法,以后做報表就簡單了
    buaawhl 10:29:15
    可以自定義語言規則。
    buaawhl 10:29:27
    其實,就是關鍵字替換了。
    江南白衣 10:29:40
    不會的,ilog的規則語言也是綁定IDE的,你打個節字,會出來一個下拉選擇框,只能選節假日
    phalanger 10:29:50
    自然語言太自然了不是什么好事,到最后還是要一個語言規則,發展到最后,其實還是要小mm掌握一門“電腦語言”
    magicgod 10:30:10
    http://blog.csdn.net/calvinxiu/archive/2005/05/27/382372.aspx
    magicgod 10:30:20
    做了一個比較
    江南白衣 10:30:49
    就像我們用dtd,xsd限制 xml一樣.
    magicgod 10:31:32
    既然用戶需求這么多變,好!干脆開放給你們,自己寫去吧!這總算好了吧
    buaawhl 10:31:41
    對,XML表示邏輯,沒有一點優勢。iLog采用的是script方式。好多了。
    buaawhl 10:32:18
    不過,難道iLog要為每一個國家行業定制一種 解釋引擎/IDE?
    ?
    莊表偉 10:33:03
    看了你的blog,和我的思路,有很多可以相互參照之處
    buaawhl 10:33:13
    iLog能夠流行起來,完全靠的是,行業經驗。和 DSL的優勢 沒有關系
    莊表偉 10:33:40
    我現在在寫的對于OO的分析,就是認為它事實上無法準確的描述真實世界
    莊表偉 10:33:51
    而要描述需求世界,OO又是不足的
    buaawhl 10:33:54
    假設我也是iLog公司,我用支持 中文變量的 VB,一樣可以做到這樣的程度
    江南白衣 10:34:14
    ilog但如果不靠DSL ,而是一堆 API,想必大打折扣。
    buaawhl 10:34:22
    只要把業務模塊做好了。
    magicgod 10:34:48
    關鍵在于要讓用戶來寫這個東西最好了
    buaawhl 10:34:53
    是啊,VB 的 function 也可以不帶 ( )

    ?
    莊表偉 10:35:05
    要更好的描述需求世界,應該要將真實經驗轉換為需求世界中的規范定義,然后需要另外的、特定的、描述需求的語言
    magicgod 10:35:19
    動態語言更好,這其實就是向人工智能的發展
    buaawhl 10:35:26
    用戶用iLog從來就不會定義 function。從來只是調用 function.
    莊表偉 10:35:27
    這樣的語言,究竟是不是要類似自然語言,我卻有不同的看法
    magicgod 10:35:49
    再下去用戶就會提要求了,能不能搞懂自己的意思啊
    莊表偉 10:35:52
    可能類似于model graph這樣的圖形表示會更加好
    buaawhl 10:35:56
    那么,VB也是一樣。我就給你一本關鍵字手冊,而不是API手冊。有什么區別?
    magicgod 10:36:27
    正是如此,DSL就是領域內的一種語言啊
    magicgod 10:36:51
    定好語法,函數,然后用戶你去寫吧,最多給你一個IDE可以調試一把
    buaawhl 10:37:07
    不是一種。而是多種。:-) ilog 一種,jrules一種,drools一種,
    江南白衣 10:37:10
    我還是認為語言和API之間的差別是巨大的。
    而且APi還受很多繼承阿,多重繼承阿之類的編程語言本身的限制。

    ?
    莊表偉 10:37:19
    如果我的思路沒錯的話,那么我的那篇文章,最后會自然的接上DSL這樣的語言
    莊表偉 10:37:27
    ?
    magicgod 10:37:33
    是的,聽了阿飛介紹的GP確實感觸比較大
    magicgod 10:38:04
    就是又回到了原來的世界,語言要定義得簡單,讓客戶能使用,不要設計包羅萬象的東西
    buaawhl 10:38:07
    江南白衣(228013) 10:37:10
    我還是認為語言和API之間的差別是巨大的。
    而且APi還受很多繼承阿,多重繼承阿之類的編程語言本身的限制。

    應該說 是? 關鍵字? 和? API之間的差別吧
    江南白衣 10:38:18
    MF說,LOP== GP,微軟軟件工廠,JetBrains MPS三線發展...
    magicgod 10:38:23
    甚至對于一個項目就設計一種語言
    magicgod 10:38:41
    然后實際上的軟件開發核心讓用戶來開發,哈哈,完美啊
    莊表偉 10:39:20
    哪有這么簡單,最為困難的部分,就是將真實世界,抽象、界定為含義清晰的需求世界的工作。

    ?
    buaawhl 10:39:18
    magicgod(2240529) 10:38:23
    甚至對于一個項目就設計一種語言
    magicgod(2240529) 10:38:41
    然后實際上的軟件開發核心讓用戶來開發,哈哈,完美啊?

    LOP文章就是這么鼓吹的。:-)
    magicgod 10:39:25
    把需求變更的事轉嫁到用戶上去,干脆我也不用了解業務了,你自己玩去吧,
    江南白衣 10:39:26
    to buaawhl:哈哈,得找些語言學家和你聊聊天了:)
    即使目前是關鍵字==API,也只是現狀,明天會更好
    magicgod 10:39:53
    在一個小范圍的功能中讓客戶來方便定制,象家電一樣
    莊表偉 10:39:59
    這是需要長期的經驗積累的
    buaawhl 10:40:15
    :-) 明天,當然。我只是力圖破除 商業概念的 迷信。
    江南白衣 10:40:22
    微軟那個work beach,又有人試了沒有?
    magicgod 10:40:39
    其實DSL也不是什么先進的概念,只是老調重彈而已
    magicgod 10:41:02
    IT界需要這樣的東西,快被用戶逼瘋了,項目已經成為人際關系的產物
    buaawhl 10:41:02
    不要被誤導了。這些廠家 的成功決不是因為什么DSL。完全是行業經驗的積累。 DSL只是他們炮制出來的壁壘和規則。
    buaawhl 10:41:34
    用戶的培訓也是一大筆費用呢
    magicgod 10:41:57
    那是,DSL是幫助廠家來專注到業務上的
    江南白衣 10:42:11
    Domain Specific Tools CTP Released for Visual Studio 2005 Beta 2
    http://www.theserverside.net/news/thread.tss?thread_id=34253
    buaawhl 10:42:20
    就說那個電信的例子。不經過培訓,MM怎么懂 DSL?
    magicgod 10:42:28
    用不著再追新技術,到此為止了,框架也不需要了,干脆,咱們上DSL吧,哈哈
    buaawhl 10:42:51
    而且,那些DSL的邏輯語法極其簡單,其實是起著 數據的作用
    magicgod 10:42:51
    只要培訓成本與原來持平即可
    江南白衣 10:43:13
    微軟不是傻子,如果別人是學院派的亂試,微軟的加入至少說明點問題。
    buaawhl 10:43:41
    不可能啊。DSL只有 MS, iLog這樣的大公司才搞得起。那屬于規則制定啊
    ?
    buaawhl 10:44:02
    小公司 不要想著 定義自己的 DSL
    ?

    ?
    magicgod 10:44:03
    行不行的拉出來溜溜,目前成功的DSL已經有了,就看各軟件公司如何制定DSL
    江南白衣 10:44:22
    MS提供的是工具噢.....
    magicgod 10:45:00
    術語,規則都可以直接制定,那么支持DSL開發的廠商顯然是成本更低了
    buaawhl 10:45:08
    白衣再把那個ms dsl發來,我仔細看看?
    magicgod 10:45:18
    各行業應該都會干這事的
    buaawhl 10:45:40
    我先詳細了解一下 MS DSL的用法??
    江南白衣 10:47:05
    那要先裝vs2005b2,我機上只有vs2003,一直沒試呢。
    江南白衣 10:47:20
    http://www.theserverside.net/news/thread.tss?thread_id=34253
    buaawhl 10:49:11
    這就是剛才那個連接,我還有。我是說,你前幾天發來的新聞。?? 是啊,我也沒有2005。沒辦法試驗。也看不到 demo
    江南白衣 10:49:31
    what新聞?
    江南白衣 10:49:47
    今天另一個比較好的發布信息是
    Backport175 1.0 released: Annotations for Java 1.3 & 1.4 ,codehaus出的。
    buaawhl 10:50:08
    MS DSL Tool 發布的新聞。好像有用戶體驗
    莊表偉 10:50:10
    有沒有Flash這樣的動態演示呢?
    江南白衣 10:51:01
    俺那個針對舊項目的ORM,可以用annotation了:)
    之前要包含一個meta class,像groovy那樣。
    buaawhl 10:50:59
    其實,從我內心的感覺,DSL Tool = Javacc
    ?
    江南白衣 10:51:28
    是超級加強版的javacc
    buaawhl 10:51:32
    iLog 那套簡單的 if ... then? ....?? 我用javacc也能做出來。
    buaawhl 10:52:05
    當然有IDE支持
    ?風之子 10:52:10
    iLOG的關鍵是動作語義
    ?風之子 10:52:19
    不是if..then

    ?
    江南白衣 10:52:25
    看hibernate里用antlr翻譯Hql,用EBNF語法慢慢表示,累死了,而且還有很多不如意的地方,他自己注釋起來很多todo...
    ?風之子 10:52:48
    Action Semantics
    buaawhl 10:53:03
    但你這里看到,DSL IDE里面,關鍵字都在下拉框里面。這里的關鍵字 就相當于 數據了。
    buaawhl 10:53:09
    Action Semantics?
    江南白衣 10:56:24
    Quality-focused Groovy 1.0 pre-release 2 is out
    http://www.theserverside.com/news/thread.tss?thread_id=34587
    這篇文章的討論很搞笑...大部分人都在講
    i use groovy for
    1. ...
    2. ...
    很像槍手們在旺場
    buaawhl 10:56:42
    ?風之子(17256936) 10:52:10
    iLOG的關鍵是動作語義

    啥叫動作語義?for example??? 我將來的一個主要理想,就是肅清 buzz word的迷信。?
    江南白衣 10:56:54
    不過的確列舉了動態語言一些可用的地方。
    莊表偉 10:57:01
    是啊是啊,新詞太多,暈
    buaawhl 10:57:10
    http://www.brics.dk/Projects/AS/?? Action Semantics
    Home Page?
    莊表偉 10:57:16
    ?
    buaawhl 11:03:16
    3.2 ILog的BAL(Business Action Language)--最完美的王者?
    ?? 沒有實際用過,只能看文檔過過癮。從文檔來看,配合Ilog的編輯器,的確就是最完美的規則語言了。

    If??? the call destination number is the preferred numberThen???? apply the preferred number rate
    ?
    江南白衣 11:05:12
    to buaawhl:
    關鍵字==API,我覺得你抓得很對,很快抓住了Ilog的本質.
    但是,抓得太快會忽略了語言的中間過程.
    江南白衣 11:05:28
    請看下面這段:
    ?
    江南白衣 11:06:00
    如果我們有一輛購物車

    并且購物車里面至少有兩件物品

    并且購物車里面的物品不超過四件

    并且如果購物車里面的商品價值至少是100美元

    并且如果客戶是黃金客戶

    那么就為該客戶打八五折

    并且顯示信息“我們為您黃金客戶打了八五折”
    ?
    buaawhl 11:06:46
    這是一個? and? 邏輯
    buaawhl 11:07:02
    沒有 or ,? 很簡單。
    江南白衣 11:07:04
    這就是一段規則語言.
    如果我們先不抓ilog,而是自己也做一次語言分析的練習,那你分析出這門語言有什么要素呢?
    莊表偉 11:07:39
    這樣的規則語言?
    buaawhl 11:07:47
    要素?what do you mean ????
    莊表偉 11:07:49
    我編一個,你看看算不算:

    ?
    莊表偉 11:07:57
    我們給他100塊
    莊表偉 11:08:10
    如果他覺得夠了,我們就不再給了
    莊表偉 11:08:21
    如果他覺得不夠,我們就再給100
    莊表偉 11:08:33
    如果他覺得夠了,我們就不再給了
    莊表偉 11:08:41
    如果他覺得不夠,我們就再給100?
    femto 11:08:42
    。。。。
    莊表偉 11:08:46
    如果他覺得夠了,我們就不再給了
    ?
    莊表偉 11:08:47
    如果他覺得不夠,我們就再給100??
    femto 11:08:49
    他覺得夠不夠的標準是什么
    femto 11:08:51
    。。。。
    femto 11:08:59
    老莊繞口令阿。。
    莊表偉 11:09:06
    夠不夠是一個用戶輸入呀
    femto 11:09:10
    呵呵
    buaawhl 11:09:19
    condtions to meet = { 我們有一輛購物車

    購物車里面至少有兩件物品

    購物車里面的物品不超過四件

    如果購物車里面的商品價值至少是100美元
    客戶是黃金客戶
    ?? }


    就為該客戶打八五折
    顯示信息“我們為您黃金客戶打了八五折”
    ?
    江南白衣 11:09:45
    我的分析上面那段規則語言的要素有
    if ,then, and ,or
    > ,=,>=,<=, is ,數值,一些關鍵字,如黃金客戶, 單位(美金),購物車,物品...
    buaawhl 11:09:58
    where is Or ?
    femto 11:10:03
    以規則語言為中心的應用應該是
    femto 11:10:07
    一對邏輯
    江南白衣 11:10:07
    好,這段沒有.
    femto 11:10:14
    一堆邏輯

    ?
    femto 11:10:16
    經常修改
    femto 11:10:28
    這樣使用才有必要
    femto 11:10:39
    否則傳統的編程足夠解決了
    莊表偉 11:10:42
    白衣,那我剛才的那段,算不算規則語言?
    buaawhl 11:11:03
    算,簡單的條件循環
    phalanger 11:11:19
    可以用數理邏輯證明一組規則是否完備,問題是所謂的完備的邏輯系統,就是現在目前大多數語言所擁有的那樣子了
    江南白衣 11:11:47
    so,ilog的語言就是 這些if,then,and ,>,<,is加上一些關鍵字的支持,這就是ilog的DSL了。
    你可以說它簡單,但他就需要這樣。
    然后,我們還可以分析用這個思路,其他的領域的DSL
    ?
    莊表偉 11:12:04
    還要正常的取款機邏輯中,還要包括(三次以內,金額足夠,每次取款限制)
    莊表偉 11:12:41
    要表達這種“復雜邏輯”,while語句是很自然需要的
    莊表偉 11:12:46
    ilog里有沒有?
    buaawhl 11:12:51
    是的。我同意,iLog的語法很清楚。:-)
    buaawhl 11:13:40
    我的意思是說,VB等,一樣可以這么清楚
    buaawhl 11:13:51
    或者,我用 Javacc也可以作出這么清楚地。
    phalanger 11:14:09
    很多語言一開始的時候都是很清楚的,慢慢發展越來越不清楚而已
    magicgod 11:14:30
    我懷疑DSL的走向會不會象普通語言一樣
    buaawhl 11:15:02
    我懷疑DSL有沒有必要。簡單的東西,用什么表達都是簡單的。
    江南白衣 11:15:14
    不要只抓著ilog不放嘛,從ilog看DSL的整個思路,從java,VB這些通用語言中分離出來,只有自己最關鍵的關鍵字,還有行業特有的關鍵字.....
    buaawhl 11:15:29
    行業特有的關鍵字
    ?
    buaawhl 11:15:42
    對。這才是關鍵
    莊表偉 11:15:45
    是不是還會有項目特有的關鍵字?

    ?
    phalanger 11:15:53
    一開始大家都只會有條件,循環,布爾邏輯,基本四則運算幾個簡單東西。但慢慢什么函數,子過程什么亂七八糟的東西就會因需求而產生,慢慢就會變得龐大
    buaawhl 11:16:15
    最重要的積累就在這里。一個行業的業務規則變化很小。
    buaawhl 11:16:41
    iLog的成功,完全是 行業關鍵字(行業API)的積累。
    magicgod 11:17:00
    DSL是要用客戶熟悉的關鍵字而不是程序員
    buaawhl 11:17:14
    和DSL關系不大。DSL是用來圈地的。但是,給人一種印象,DSL是成功的關鍵。
    magicgod 11:17:28
    這就是區別吧,DSL要讓業務專家來設計的,而不是程序員
    magicgod 11:17:43
    實現估計還是用傳統程序來實現
    buaawhl 11:18:31
    magicgod(2240529) 11:17:28
    這就是區別吧,DSL要讓業務專家來設計的,

    你的意思是說,業務專家來定義 業務關鍵字?
    buaawhl 11:18:52
    還是說,業務專家 用DSL 輸入那些規則?
    phalanger 11:19:10
    業務專家的思維方式也會慢慢遵循程序員的發展過程慢慢變化的。例如某天他們會發現某著業務邏輯幾個地方都會用到,于是函數/子過程的需求就會應運而生
    magicgod 11:19:16
    是業務專家來描述DSL
    magicgod 11:19:28
    所以業務專家必須保證純正的業務專家
    buaawhl 11:19:40
    你是說,業務專家來定義DSL?
    magicgod 11:19:43
    業務專家要貼近的是最終用戶而不是程序員
    phalanger 11:19:55
    不能因為別人是業務專家就扼殺別人的邏輯能力的
    magicgod 11:19:55
    是的,其實這就是一種定義業務標準的過程
    一劍傾心 11:19:59
    莊表偉,關于OO的哲學
    http://canonical.blogdriver.com/canonical/761080.html
    莊表偉 11:20:05
    不懂編程的業務專家,也定義不好DSL的吧
    magicgod 11:20:16
    不是的,業務專家不應該懂編程
    magicgod 11:20:44
    編程是一種附加,業務專家就象定義需求一樣,根本不考慮實現的問題

    ?
    magicgod 11:21:03
    而只提出要什么,并且用什么來描述對行業內某部分客戶是最適合的
    buaawhl 11:21:10
    DSL Tool 就是給 業務專家用來定義DSL的?
    phalanger 11:21:19
    例如沒有函數,業務專家會發現有些東西改了,他就會很辛苦的逐個去該每一個邏輯。雖然他不一定會提出“函數”這么抽象的東西,但實際上它還是有這樣的需求
    magicgod 11:21:48
    估計還得找人翻譯一把,dsl tool還沒這么強
    buaawhl 11:21:58
    yes. 如果邏輯復雜到一定程度,那么dsl就失去了用武之地。
    phalanger 11:22:00
    慢慢得當函數不能滿足需求的時候,業務專家同樣會提出很多很多類似于程序員需要的東西,慢慢得OO也就會出來了
    magicgod 11:22:08
    實際上業務內的邏輯并沒有相象得這么復雜
    莊表偉 11:22:09
    突然聯想到Hibernate的數據庫冬眠理想,事實上是,如果不能深刻理解數據庫,根本用不好Hibernate
    江南白衣 11:22:12
    我已經決定try一把之前先不討論了:)
    magicgod 11:22:25
    DSL的目的就是為了讓邏輯簡單下來
    buaawhl 11:22:41
    而簡單的情況,一般的腳本描述起來也很簡單。? yes. support 白衣' try. thanks.
    ?
    magicgod 11:22:44
    阿飛給我看一下某牛人分析的WEB,其實是一張大圖,象非常簡單
    一劍傾心 11:22:53
    誰先舉一個現實的例子出來,認為DSL好的人拿出一個實際的例子
    phalanger 11:23:05
    事務是會發展的,java出來的時候也沒有想過后來會這么復雜
    magicgod 11:23:17
    java出來的時候已經是一個復雜的類庫了
    magicgod 11:23:36
    因為計算機語言出來大多是解決所有問題的,而不是解決小范圍問題
    magicgod 11:23:50
    現在的DSL就是為了解決小范圍問題,而省去OO,甚至省去函數
    江南白衣 11:24:02
    DSL現在一直以SQL做例子.....這是對API論最好的打擊?
    buaawhl 11:24:08
    to zhuang : O R 的目的,是為了把 relation db 作為OODB來用。
    magicgod 11:24:23
    程序員以為自己的計算機語言可以解決所有的問題,但是實際上僅僅是理論上可以解決

    ?
    buaawhl 11:24:33
    SQL里面還有函數呢?:-)
    magicgod 11:24:42
    實際上外部限制太多了,根本無法解決所有問題
    江南白衣 11:24:53
    但它是基于sql語言框架下的函數
    buaawhl 11:24:56
    decode(),? to_chart()??? sql需要這些API做什么?
    magicgod 11:24:57
    所以DSL提出就解決少數問題來創建一種語言
    江南白衣 11:25:12
    但它是基于sql語言框架下的函數?
    magicgod 11:25:18
    實際上整個SQL定義是非常簡單的,相比于JDK來說
    buaawhl 11:25:20
    ? java function 也是基于 java語言框架下的函數
    buaawhl 11:25:39
    sql能表達的東西也很簡單:-)
    magicgod 11:25:39
    我覺得應該把SQL與整個JDK相比吧
    magicgod 11:25:51
    是的,就是用簡單的東西來解決簡單的事
    buaawhl 11:26:05
    比較一下功能好了。SQL可以實現 剛才 白衣給出的 規則嗎?
    ?
    magicgod 11:26:08
    因為計算機語言面向所有問題,但是客戶只面向子集
    莊表偉 11:26:10
    亂了,亂了,我們在縷一縷?
    江南白衣 11:26:18
    但java語言本身沒有辦法很直觀的表達 select xxx from的語言。問問你喜歡用hibernate的Critera APi還是用hql?
    magicgod 11:26:21
    我們需要非常方便的子集來面向客戶的子集
    莊表偉 11:26:24
    SQL與JDK是一回事
    莊表偉 11:26:37
    數據庫與領域又是另外一回事
    莊表偉 11:26:52
    從概念來說,我支持magicgod的我們需要非常方便的子集來面向客戶的子集
    ?
    magicgod 11:26:55
    DSL并不是什么創新, 其實很象HTML

    ?
    江南白衣 11:26:58
    數據庫查詢就是一個領域阿
    buaawhl 11:27:03
    DSL如何表達? select ... where ?
    莊表偉 11:27:14
    但是從實際的語法來說,我認為ilog這樣的語法,是cobol的復辟
    magicgod 11:27:19
    有沒有覺得?HTML是XML的一個子集,用來解決瀏覽的問題
    江南白衣 11:27:36
    SQL語言啊, select where是SQL DSL的關鍵字和特定語法。
    莊表偉 11:27:37
    吃飯去了
    buaawhl 11:27:50
    filter( collection,? { a = 1;} )
    buaawhl 11:28:18
    這個 STL-like 就是 select ... where
    magicgod 11:28:25
    所以HTML流行了
    江南白衣 11:28:34
    對阿,但是怎么大部分程序員習慣 where a=1多于
    filter(collection,{a=1})呢
    magicgod 11:28:40
    但后來人們要讓HTML來解決所有問題,所以XML流行了
    magicgod 11:29:15
    感覺還是要從客戶和低水平人員的角度來考慮
    magicgod 11:29:27
    idea會過期?
    江南白衣 11:29:39
    是阿,html,sql, DSL其實早就無處不在了。
    只是現在明確提出了,制造 DSL的工具。
    buaawhl 11:29:42
    I c your point. 你是說,某個特定領域,就是某種語言才適合
    magicgod 11:30:02
    應該是這個意思
    buaawhl 11:30:12
    問題是我說的,那些規則表達的領域,DSL并沒有表現出SQL這樣的優勢
    buaawhl 11:30:27
    并沒有顯示出來他們特有的 適合度
    buaawhl 11:30:42
    因為這些DSL在表達 if , then, else.
    magicgod 11:30:42
    應該說DSL總是適合的

    ?
    magicgod 11:31:13
    因為DSL非常狡猾,如果領域擴大了,那么DSL就可以擴大為某種計算機語言,比如JAVA
    buaawhl 11:31:12
    比如,VB, pascal 等,優勢不是很明顯。
    magicgod 11:31:24
    這也是DSL,只不過用來解決的領域擴大了
    buaawhl 11:31:34
    不覺得,DSL 有表達 if, else, then 的優勢。
    江南白衣 11:31:32
    有可能, ilog的關鍵字太少,語法太貼近通用語言,所以優勢不明顯:0
    magicgod 11:31:50
    DSL就是貼近用戶來描述啊,讓用戶的學習成本下降
    buaawhl 11:32:00
    yes. :-)
    buaawhl 11:32:23
    業務用語? 成為 DSL關鍵字。
    magicgod 11:32:24
    畢竟出發點不同,所以在細節使用方面,DSL就顯示出優勢
    magicgod 11:32:37
    更重要的是DSL是業務專家來設計的,而不是計算機專家
    magicgod 11:32:43
    我希望的是這樣...
    buaawhl 11:32:53
    業務用語? 成為 DSL關鍵字。 這才是 真正的優勢。
    ?
    共筑佳話 11:33:04
    業務專家來設計DSL,估計也賊費盡
    共筑佳話 11:33:09
    夠嗆
    江南白衣 11:33:14
    但總有語法不貼近通用語言的領域的,SQL是其一,我們平時的領域就更加了。V
    magicgod 11:34:13
    只能由業務專家來設計,因為領域內的語言由業務專家最熟
    magicgod 11:34:23
    就象SQL是數據庫領域內一樣
    buaawhl 11:34:27
    yes. 有些理解了。? 同樣,這些領域的特點就是 邏輯足夠簡單。而業務用詞足夠特殊
    magicgod 11:34:58
    是的,因為就是要解決特殊的問題,沒必要用解決所有問題的語言啊
    magicgod 11:35:13
    實際上根本不存在要解決所有問題的客戶

    ?
    magicgod 11:35:36
    其實客戶是不需要JAVA和JDK,只需要DSL類似描述
    buaawhl 11:36:22
    DSL Tool能夠提供這樣的定義能力?不同領域的用戶,都可以用同一個DSL tool 創建自己的 DSL?
    magicgod 11:36:32
    就是看清楚了這種事,才提交DSL,并且每一個項目來創建一種DSL
    buaawhl 11:36:38
    還是說,每個行業一套 DSL?
    magicgod 11:37:09
    都可以,看你實施了
    江南白衣 11:37:09
    DSL Tool,就是GP,JetBrains, MS努力的夢想。
    buaawhl 11:37:24
    每個項目?這太可怕了吧? 學習成本再低,也不能這么折騰啊
    magicgod 11:37:28
    而DSL總是業務專家這個角色來設計了
    magicgod 11:37:57
    其實也是這樣,第一個項目設計一個DSL,第二個項目改一把就行了
    buaawhl 11:38:19
    DSL Tool的關鍵還是要深入 各業務領域的通用方面。
    江南白衣 11:38:43
    內里的實現還是java,c#的lib
    magicgod 11:38:56
    是的,現在就是將真正的業務應用上去的時候了
    magicgod 11:39:10
    拋開亂七八糟的框架和平臺,用戶和專家不關心這些
    magicgod 11:39:36
    誰能直接面向需求,誰就有主動權
    buaawhl 11:39:38
    用戶和專家本來就不關心這些 ,:-)
    magicgod 11:39:51
    IBM的隨需而動是有點道理的
    buaawhl 11:40:04
    不用DSL, 他們也從來不關心這些。:-)
    magicgod 11:40:06
    但是現在程序員限制了用戶和專家,必須來考慮這些問題了
    buaawhl 11:40:27
    用了DSL,他們反而要關心這些,
    buaawhl 11:40:45
    江南白衣(228013) 11:38:43
    內里的實現還是java,c#的lib

    ?
    magicgod 11:40:55
    不會吧,DSL本來是沒有這些細節的
    buaawhl 11:41:12
    如果以前要關心java, c#,那么現在不僅要關心java, c#,還要關心 DSL.
    buaawhl 11:41:41
    那你說,以前業務專家為什么要關系 java, c# ?
    buaawhl 11:42:01
    他們只是做業務分析。
    magicgod 11:43:07
    因為程序員要關心
    magicgod 11:43:31
    程序員反饋給業務專家說這個java不支持
    magicgod 11:44:00
    而現在DSL希望能完全解決行業問題吧
    buaawhl 11:44:40
    DSL下面的實現不還是java嗎?程序員反饋給業務專家說這個java不支持

    ?
    江南白衣 11:44:42
    DSL是需要轉譯成Java,C# lib的,天上暫時還沒餡餅下來?
    magicgod 11:44:55
    本來也就是這樣的
    magicgod 11:45:17
    就算編譯了,也是要轉成硬件代碼的嘛
    buaawhl 11:45:26
    所以,專家定義DSL的同時,還要考慮java是否支持
    江南白衣 11:46:20
    有直接翻譯成機器碼和翻譯成java,c#的選擇,
    顯然直接翻譯成機器碼的難度大NN倍。
    magicgod 11:46:36
    估計是假定java全支持了吧
    magicgod 11:46:37
    因為畢竟DSL是子集
    buaawhl 11:47:08
    yes. :-)?
    magicgod 11:47:09
    正在試用mps
    buaawhl 11:47:49
    如果DSL Tool考慮了Java支持。那么專家就不用考慮了。
    magicgod 11:48:29
    是的,估計是這樣想的
    magicgod 11:48:53
    DSL是樸素的經驗主義向理論發展的產物

    ?
    magicgod 11:49:51
    定義一個DSL真是復雜啊,非得有人輔助不可啊
    共筑佳話 11:50:12
    專家應該知道些什么呢,達到了什么層次的知識?
    buaawhl 11:50:45
    DSL可以看作是一種數據格式,一種配置文件的格式定義。
    magicgod 11:50:47
    這個概念定義跟類定義不是一樣啊?ft
    magicgod 11:51:07
    專家角色應該只知道業務知識,其他不懂,假定,哈哈
    buaawhl 11:51:35
    一開始,DSL還是擺脫不了 Programm Languange的框子,明天會更好!!!!
    共筑佳話 11:51:51
    什么層次的知識?是元層次?元元層次?
    magicgod 11:52:29
    見鬼了,這東西一定是給程序員用的
    magicgod 11:52:34
    干脆定義類算了
    buaawhl 11:52:46
    一開始,DSL還是擺脫不了 Programm Languange的框子,明天會更好!!!!??
    江南白衣 11:54:27
    另外magic god可以留意一下MPS同時定制IDE方面的功能,這是以前yacc沒有的
    buaawhl 11:55:37
    我們還是要忙著寫API, 到時候,用DSL包裝成關鍵字 就行了
    江南白衣 11:56:54
    magic god可以上班時間試mps,太爽了
    江南白衣 11:57:02
    一定是PM以上級別:)
    江南白衣 11:57:59
    還有那些11點就喊著去吃飯的.....
    magicgod 12:03:58
    恐怖,這個操作太可怕了
    magicgod 12:05:32
    rubyWeb?
    magicgod 12:08:41
    代碼生成居然有錯?!
    江南白衣 12:15:47
    加油



    magicgod(2240529) 12:49:15
    ?更象一個代碼生成器
    magicgod(2240529) 12:49:46
    還把我的ctrl+space給廢了
    magicgod(2240529) 12:50:19
    這個生成器好象有點太直接了一點
    magicgod(2240529) 12:50:53
    舉的例子實在不恰當啊,這回JETBRAINS有點亂了
    magicgod(2240529) 12:51:49
    BUG也太多了一點,需要寫一些行業例子,這樣就有代表性了

    magicgod(2240529) 12:56:28
    至少比PETSTORE更高一級的案例,然后用這個案例來套各種方案和工具比較好一點
    magicgod(2240529) 12:56:52
    這個HELLOWORLD 最后生成了JAVA代碼,有點恐怖
    posted on 2006-04-19 19:16 wadise 閱讀(646) 評論(0)  編輯  收藏 所屬分類: 軟件工程

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 人碰人碰人成人免费视频| 日本免费大黄在线观看| 在线播放国产不卡免费视频| 男女超爽刺激视频免费播放| 国产一区二区免费在线| 亚洲成人中文字幕| 国产免费一区二区视频| 久久久久久久久亚洲| 日本中文字幕免费高清视频| 亚洲人成网站在线播放影院在线| 国内永久免费crm系统z在线 | 波多野结衣一区二区免费视频| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 亚洲AV无码AV日韩AV网站| 最新69国产成人精品免费视频动漫| 亚洲av中文无码| 又粗又长又爽又长黄免费视频| 亚洲成a人一区二区三区| 精品国产免费人成网站| 日韩精品免费电影| 曰批免费视频播放免费| 成年人视频在线观看免费| 色偷偷亚洲第一综合网| 永久亚洲成a人片777777| 午夜免费啪视频在线观看| 亚洲国产综合自在线另类| 在线观看免费精品国产| 国产免费人成视频尤勿视频| 亚洲AV乱码久久精品蜜桃| 一个人看的www在线观看免费| 99亚洲精品卡2卡三卡4卡2卡| 亚洲精品视频在线看| 四虎影视在线影院在线观看免费视频| 久久亚洲sm情趣捆绑调教| 在线观着免费观看国产黄| 免费看无码特级毛片| 亚洲一区二区三区高清不卡| 青娱乐免费在线视频| 日亚毛片免费乱码不卡一区| 亚洲视频欧洲视频| 免费女人18毛片a级毛片视频|