emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks

          初識Rhino author:emu(黃希彤)

          Rhino,就是我期盼了多年的java平臺上的javascript。由于這個怪模怪樣的名字和宣傳的不力加上我的孤陋寡聞,居然到這幾天才聽說它。

          前陣子我試用過另一種java平臺上的腳本語言groovy,因為據(jù)說它將會成為標準。確實groovy有很多吸引人的特性,比如數(shù)據(jù)庫訪問、groovlet,gsp,閉包,不需要編譯直接運行、動態(tài)類型都很讓人振奮,可是由于在包引用上的問題運行效率的問題上我都沒有找到合適的解決方案,我暫時對它失去了興趣,期待它以后的版本可以有更好的表現(xiàn),比如可以在其中嵌入java代碼,而不是在java里面嵌入groovy代碼。

          Rhino對我最大的誘惑是,寫javascript多我來說比可能寫中文還要來的簡單。幾乎不用學習什么新的東西(當然有一些以前腳本開發(fā)里面沒有的新東西,比如print語句,可是對于java程序員來說不是問題),除了要配置一下開發(fā)環(huán)境(很多編輯器本來就都支持javascript的高亮顯示,只要添加一個java org.mozilla.javascript.tools.shell.Main 用戶工具就可以很方便的開始編碼調(diào)試了,我用的是editplus),隨便在以前的代碼庫里面拿一段代碼出來放進去,運行起來:

          var q=9 
          var i
          =[] 
          var count
          =0 
          var d 
          = new Date(); 
          scan(
          0
          print(
          "totle results:"+count) 
          print(
          "time used:"+(new Date()-d)) 

          function scan(n)

              
          if (n==q)
                  print(i) 
                  count
          ++ 
                  
          return 
              }
           
              i[n]
          =0 
              
          while(i[n]<q){
                  i[n] 
          = i[n]+1 
                  
          if (check(n)){
                      scan(n
          +1
                  }
           
              }
           
          }
           

          function check(n)

              
          for (var j=0; j<n;j++)
                  
          if (i[j]==i[n] || i[j]-i[n]==j-|| i[j]-i[n]==n-j )
                      
          return false  
              
          return true 
          }
           



          嗯,我要承認我沒什么新意,還是以前在比較groovy運行效率時用的9皇后問題,除了把document.write改成print,其他都沒改。運行一下:

          C:\Documents and Settings\Administrator>java org.mozilla.javascript.tools.shell.Main E:/test/queens.js

          ......
          9,7,4,2,8,6,1,3,5
          totle results:352
          time used:892

          比java慢了,不過groovy快。

          不過注意到,在Rhino的控制臺下面 load ("e:/test/queens.js") 的話運行速度會慢下來一倍,應該是load函數(shù)的問題author:emu(黃希彤)  

           

          posted on 2005-06-22 10:51 emu 閱讀(4104) 評論(3)  編輯  收藏

          評論

          # 為什么不試一下BeanShell? 2005-10-11 12:22 liigo
          BeanShell.org  回復  更多評論
            

          # 為什么不試一下BeanShell? 2005-10-11 12:26 liigo
          BeanShell可以完全兼容JAVA代碼  回復  更多評論
            

          # re: 初識Rhino 2006-11-16 16:36 Lich_Ray
          BeanShell全是Java語法,超級麻煩,還是Groovy好一點,不過有點亂。  回復  更多評論
            


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 阜新市| 奉化市| 浮山县| 正宁县| 慈利县| 绥棱县| 双流县| 阿坝| 呼玛县| 旅游| 安平县| 池州市| 美姑县| 昌江| 喀喇| 元氏县| 辽宁省| 南城县| 偃师市| 通榆县| 永泰县| 武强县| 扶绥县| 潼南县| 黄平县| 旌德县| 勐海县| 仪征市| 永昌县| 新昌县| 静安区| 巴中市| 长汀县| 天全县| 正宁县| 富蕴县| 怀仁县| 拜泉县| 烟台市| 沂水县| 察隅县|