emu in blogjava

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

          初識Rhino author:emu(黃希彤)

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

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

          Rhino對我最大的誘惑是,寫javascript多我來說比可能寫中文還要來的簡單。幾乎不用學習什么新的東西(當然有一些以前腳本開發里面沒有的新東西,比如print語句,可是對于java程序員來說不是問題),除了要配置一下開發環境(很多編輯器本來就都支持javascript的高亮顯示,只要添加一個java org.mozilla.javascript.tools.shell.Main 用戶工具就可以很方便的開始編碼調試了,我用的是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函數的問題author:emu(黃希彤)  

           

          posted on 2005-06-22 10:51 emu 閱讀(4103) 評論(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好一點,不過有點亂。  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 大埔县| 滦南县| 博客| 铜陵市| 富顺县| 福建省| 宜章县| 星座| 宜宾市| 武强县| 土默特左旗| 临湘市| 黑水县| 平利县| 丹寨县| 榆林市| 德庆县| 灵宝市| 巴林左旗| 桦川县| 镇江市| 辉南县| 正蓝旗| 雅安市| 淮南市| 棋牌| 泸定县| 金坛市| 兴化市| 宜州市| 库伦旗| 濮阳县| 和田市| 长治县| 商河县| 井研县| 通江县| 陇南市| 冀州市| 定兴县| 新乡市|