﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-IT爱好小子01-文章分类-WEB专业交流</title><link>http://www.cnitblog.com/zhand/category/7988.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 29 Sep 2011 12:27:06 GMT</lastBuildDate><pubDate>Thu, 29 Sep 2011 12:27:06 GMT</pubDate><ttl>60</ttl><item><title>ASP常用函数收集</title><link>http://www.cnitblog.com/zhand/articles/55293.html</link><dc:creator>IT爱好者01</dc:creator><author>IT爱好者01</author><pubDate>Thu, 12 Mar 2009 01:12:00 GMT</pubDate><guid>http://www.cnitblog.com/zhand/articles/55293.html</guid><wfw:comment>http://www.cnitblog.com/zhand/comments/55293.html</wfw:comment><comments>http://www.cnitblog.com/zhand/articles/55293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zhand/comments/commentRss/55293.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zhand/services/trackbacks/55293.html</trackback:ping><description><![CDATA[<div id=Article_View_1_3>2009-3-4 16:08:59　　作者：模板天下收集整理　　来源：未知　网友评论 0 条 <script src="../Hits.asp?ArticleID=12145"></script></div>
<div id=Article_View_1_4>　　
<p>'Oledb方式打开<a href="http://database.jzxue.com/mssqlserver/" target=_blank><font color=#333333><u>SQL</u></font></a>数据连接<br>Sub OpenSqlByOledb&nbsp;<br>&nbsp;&nbsp; on error resume next<br>&nbsp;&nbsp; set conn=server.createobject("adodb.connection")<br>&nbsp;&nbsp; conn.open "Provider=SQLOLEDB.1;Password='sa';Persist Security Info=true;User ID=sa;Initial Catalog=gate;Data Source=(local);"<br>&nbsp; &nbsp;If err.number&lt;&gt;0 Then<br>&nbsp;&nbsp;&nbsp; err.clear<br>&nbsp;&nbsp;&nbsp; Response.Write("&lt;div align='center'&gt;<a href="http://database.jzxue.com/" target=_blank><font color=#333333><u>数据库</u></font></a>连接出错,请联系管理员!&lt;/div&gt;")<br>&nbsp;&nbsp;&nbsp; Response.End()<br>&nbsp;&nbsp; End If<br>End Sub</p>
<p>'数据库操作相关函数<br>'************************************************************<br>'[Sub]openReadRs rs,sql,oType<br>'功能:打开对应类型的数据集,只读操作<br>'参数:<br>'&nbsp;&nbsp;&nbsp; rs 打开的rs集合<br>'&nbsp;&nbsp;&nbsp; sql 执行的SQL语句<br>'************************************************************<br>Sub openReadRs(rs,sql)<br>&nbsp;If Not IsObject(rs) Then<br>&nbsp;&nbsp;Set rs=Server.CreateObject("ADODB.Recordset")<br>&nbsp;&nbsp;rs.open sql,conn,1,1&nbsp;&nbsp;<br>&nbsp;End If<br>End Sub<br>'************************************************************<br>'[Sub]openWriteRs rs,sql<br>'功能:打开对应类型的数据集,可写入操作<br>'参数:<br>'&nbsp;&nbsp;&nbsp; rs 打开的rs集合<br>'&nbsp;&nbsp;&nbsp; sql 执行的SQL语句<br>'************************************************************<br>Sub openWriteRs(rs,sql)<br>&nbsp;If Not IsObject(rs) Then<br>&nbsp;&nbsp;Set rs=Server.CreateObject("ADODB.Recordset")<br>&nbsp;&nbsp;rs.open sql,conn,1,3<br>&nbsp;End If<br>End Sub<br>'************************************************************<br>'[Sub]endRs rs<br>'功能:关闭对应类型的数据集<br>'参数:<br>'&nbsp;&nbsp;&nbsp; rs 打开的rs集合<br>'************************************************************<br>Sub endRs(rs)<br>&nbsp;If IsObject(rs) Then<br>&nbsp;&nbsp;rs.close:Set rs=Nothing<br>&nbsp;End If<br>End Sub<br>'************************************************************<br>'[Sub]endConn<br>'功能:关闭数据库连接<br>'参数:无<br>'************************************************************<br>Sub endConn<br>&nbsp;If IsObject(conn) Then<br>&nbsp;&nbsp;conn.close:Set conn=Nothing<br>&nbsp;End If<br>End Sub<br>'************************************************************<br>'[Sub]execSql sql<br>'功能:执行SQL语句<br>'参数:<br>'&nbsp;&nbsp;&nbsp; sql 执行的SQL语句<br>'************************************************************<br>Sub execSql(sql)<br>&nbsp;conn.execute(sql)<br>End Sub<br>'************************************************************<br>'[]selectAlone sql<br>'功能:单一字段查询<br>'参数:<br>'&nbsp;&nbsp;&nbsp; sql 执行的SQL语句<br>'返回:查询字段值<br>'************************************************************<br>selectAlone(sql)<br>&nbsp;Dim selectAloneRs<br>&nbsp;Set selectAloneRs=conn.execute(Sql)<br>&nbsp;selectAlone=selectAloneRs(0)<br>&nbsp;endRs selectAloneRs<br>End </p>
<p>&nbsp;</p>
<p>'字符串操作相关函数<br>'************************************************************<br>'[]IsSafeStr str<br>'功能:判断是否安全字符串,在注册登录等特殊字段中使用<br>'参数:<br>'&nbsp;&nbsp;&nbsp; str 需检测的字符串<br>'返回:true=安全,false=不安全<br>'************************************************************<br>IsSafeStr(str)&nbsp;<br>&nbsp;Dim s_BadStr, n, i<br>&nbsp;s_BadStr = "'&nbsp;&nbsp; &amp;&lt;&gt;?%,;:()`~!@#$^*{}[]|+-=" &amp; Chr(34) &amp; Chr(9) &amp; Chr(32)<br>&nbsp;n = Len(s_BadStr)<br>&nbsp;IsSafeStr = True<br>&nbsp;For i = 1 To n<br>&nbsp;&nbsp;If Instr(str, Mid(s_BadStr, i, 1)) &gt; 0 Then<br>&nbsp;&nbsp;&nbsp;IsSafeStr = False<br>&nbsp;&nbsp;&nbsp;Exit <br>&nbsp;&nbsp;End If<br>&nbsp;Next<br>End <br>'************************************************************<br>'[]HtmlToEncode str<br>'功能:将<a href="http://webdesign.jzxue.com/html/" target=_blank><font color=#333333><u>HTML</u></font></a>编码<br>'参数:<br>'&nbsp;&nbsp;&nbsp; str 需编码的字符串<br>'返回:编码后的字符串<br>'************************************************************<br>HtmlToEncode(str)&nbsp;'<br>&nbsp;if not isnull(str) and str&lt;&gt;"" then<br>&nbsp;&nbsp;str&nbsp;= Replace(str,"&amp;","&amp;amp;")&nbsp;<br>&nbsp;&nbsp;str = replace(str, "&gt;", "&amp;gt;")<br>&nbsp;&nbsp;str = replace(str, "&lt;", "&amp;lt;")<br>&nbsp;&nbsp;str = Replace(str, CHR(32), " ")<br>&nbsp;&nbsp;str = Replace(str, CHR(9), "&amp;nbsp;")<br>&nbsp;&nbsp;str = Replace(str, CHR(34), "&amp;quot;")<br>&nbsp;&nbsp;str = Replace(str, CHR(39), "'")<br>&nbsp;&nbsp;str = Replace(str, CHR(13), "")<br>&nbsp;&nbsp;str = Replace(str, "", "script")<br>&nbsp;&nbsp;str = Replace(str, "＆#115;", "s")<br>&nbsp;&nbsp;HtmlToEncode = str<br>&nbsp;end if<br>End <br>'************************************************************<br>'[]EncodeToHtml str<br>'功能:将HTML反编码<br>'参数:<br>'&nbsp;&nbsp;&nbsp; str 需反编码的字符串<br>'返回:反编码后的字符串<br>'************************************************************<br>EncodeToHtml(str)<br>&nbsp;if not isnull(str) and str&lt;&gt;"" then<br>&nbsp;&nbsp;str&nbsp;= Replace(str,"&amp;amp;","&amp;")&nbsp;<br>&nbsp;&nbsp;str = replace(str, "&amp;gt;", "&gt;")<br>&nbsp;&nbsp;str = replace(str, "&amp;lt;", "&lt;")<br>&nbsp;&nbsp;str = Replace(str, " ", CHR(32))<br>&nbsp;&nbsp;str = Replace(str, "&amp;nbsp;", CHR(9))<br>&nbsp;&nbsp;str = Replace(str, "&amp;quot;", CHR(34))<br>&nbsp;&nbsp;str = Replace(str, "'", CHR(39))<br>&nbsp;&nbsp;str = Replace(str, "", CHR(13))<br>&nbsp;&nbsp;str = Replace(str, "script", "")<br>&nbsp;&nbsp;str = Replace(str, "s", "＆#115;")<br>&nbsp;&nbsp;EncodeToHtml = str<br>&nbsp;end if<br>End <br>'************************************************************<br>'[]gotTopic str,strlen<br>'功能:<a name=baidusnap1></a><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">截取字符串</strong>strlen长度,汉字算2长度<br>'参数:<br>'&nbsp;&nbsp;&nbsp; str 需截取的字符串<br>'&nbsp;&nbsp;&nbsp; strlen 截取长度<br>'返回:截取strlen长度后的字符串<br>'************************************************************<br>getTopic(str,strlen)<br>&nbsp;if str="" then<br>&nbsp;&nbsp;gotTopic=""<br>&nbsp;&nbsp;exit <br>&nbsp;end if<br>&nbsp;dim l,t,c, i<br>&nbsp;l=len(str)<br>&nbsp;t=0<br>&nbsp;for i=1 to l<br>&nbsp;&nbsp;c=Abs(Asc(Mid(str,i,1)))<br>&nbsp;&nbsp;if c&gt;255 then<br>&nbsp;&nbsp;&nbsp;t=t+2<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;t=t+1<br>&nbsp;&nbsp;end if<br>&nbsp;&nbsp;if t&gt;=strlen then<br>&nbsp;&nbsp;&nbsp;gotTopic=left(str,i) &amp; "&#8230;"<br>&nbsp;&nbsp;&nbsp;exit for<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;gotTopic=str<br>&nbsp;&nbsp;end if<br>&nbsp;next<br>End <br>'************************************************************<br>'[]DateFormatTime Tvar,sType<br>'功能:时间格式化<br>'参数:<br>'&nbsp;&nbsp;&nbsp; Tvar 需要格式化的时间字符串<br>'&nbsp;&nbsp;&nbsp; sType 格式化类型<br>'返回:格式化后的时间字符串<br>'************************************************************<br>DateFormatTime(Tvar,sType)<br>&nbsp;dim Tt,sYear,sMonth,sDay,sHour,sMinute,sSecond<br>&nbsp;If Not IsDate(Tvar) Then DateFormatTime = "" : Exit <br>&nbsp;Tt&nbsp;&nbsp;&nbsp;= Tvar<br>&nbsp;sYear&nbsp;&nbsp;= Year(Tt)<br>&nbsp;sMonth&nbsp;= Right("0" &amp; Month(Tt),2)<br>&nbsp;sDay&nbsp;&nbsp;= Right("0" &amp; Day(Tt),2)<br>&nbsp;sHour&nbsp;&nbsp;= Right("0" &amp; Hour(Tt),2)<br>&nbsp;sMinute&nbsp;= Right("0" &amp; Minute(Tt),2)<br>&nbsp;sSecond&nbsp;= Right("0" &amp; Second(Tt),2)<br>&nbsp;Select Case sType<br>&nbsp;&nbsp;Case 1&nbsp;'2006-3-13<br>&nbsp;&nbsp;&nbsp;DateFormatTime = sYear &amp; "-" &amp; sMonth &amp; "-" &amp; sDay<br>&nbsp;&nbsp;Case 2&nbsp;'2006年3月13日<br>&nbsp;&nbsp;&nbsp;DateFormatTime = sYear &amp; "年" &amp; sMonth &amp; "月" &amp; sDay &amp; "日"<br>&nbsp;&nbsp;case 3&nbsp; '200603131120123<br>&nbsp;&nbsp;&nbsp;DateFormatTime = sYear &amp; sMonth &amp; sDay &amp; sHour &amp; sMinute &amp;sSecond<br>&nbsp;&nbsp;Case Else<br>&nbsp;&nbsp;&nbsp;DateFormatTime = Tt<br>&nbsp;&nbsp;End Select<br>End <br>'************************************************************<br>'[]IsNum str<br>'功能:是否为数字<br>'参数:<br>'&nbsp;&nbsp;&nbsp; str 需要判断的字符串<br>'返回:true=数字,false=非数字<br>'************************************************************<br>IsNum(Str) '<br>&nbsp;if Str&lt;&gt;"" and isnumeric(Str) then<br>&nbsp;&nbsp;IsNum=True<br>&nbsp;else<br>&nbsp;&nbsp;IsNum=False<br>&nbsp;end if<br>End </p>
<p>&nbsp;</p>
<p>'输出调试相关函数<br>'************************************************************<br>'[Sub]mesGoBack str<br>'功能:弹出信息并返回<br>'参数:<br>'&nbsp;&nbsp;&nbsp; str 需要判断的字符串<br>'************************************************************<br>Sub mesGoBack(str)<br>&nbsp;Response.write("&lt; language='java'&gt;alert('"&amp;str&amp;"');history.back();&lt;/&gt;")<br>&nbsp;Response.End()<br>End Sub<br>'************************************************************<br>'[Sub]mesGoUrl str,url<br>'功能:弹出信息并返回<br>'参数:<br>'&nbsp;&nbsp;&nbsp; str 需要判断的字符串<br>'&nbsp;&nbsp;&nbsp; url 跳转地址<br>'************************************************************<br>Sub mesGoUrl(str,url)<br>&nbsp;Response.write("&lt; language='java'&gt;alert('"&amp;str&amp;"');location.href='"&amp;url&amp;"';&lt;/&gt;")<br>&nbsp;Response.End()<br>End Sub<br>'************************************************************<br>'[Sub]Debug Wrong<br>'功能:调试输出<br>'参数:<br>'&nbsp;&nbsp;&nbsp; Wrong 希望输出信息<br>'返回:无返回值<br>'************************************************************<br>Sub Debug(Wrong)&nbsp;'调试输出<br>&nbsp;Response.Write(Wrong)<br>&nbsp;Response.End()<br>End Sub<br><br><br><br>'功能相关函数<br>'************************************************************<br>'[]getIP<br>'功能:获取用户IP<br>'参数:<br>'&nbsp;&nbsp; 无<br>'返回:用户当前IP<br>'************************************************************<br>getIP()<br>&nbsp;Dim userip<br>&nbsp;userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") <br>&nbsp;If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR") <br>&nbsp;getIP=userip<br>End <br>'************************************************************<br>'[]getUrl<br>'功能:获取当前域名<br>'参数:<br>'&nbsp;&nbsp;&nbsp; 无<br>'返回:当前域名<br>'************************************************************<br>getUrl()<br>&nbsp;getUrl=Request.ServerVariables("Server_name")<br>End <br></p>
</div>
<a href="http://www.mbsky.com/InfoView/Article_12145.html"></a>
<img src ="http://www.cnitblog.com/zhand/aggbug/55293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zhand/" target="_blank">IT爱好者01</a> 2009-03-12 09:12 <a href="http://www.cnitblog.com/zhand/articles/55293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>突破IIS上传文件大小200K的限制</title><link>http://www.cnitblog.com/zhand/articles/53835.html</link><dc:creator>IT爱好者01</dc:creator><author>IT爱好者01</author><pubDate>Sat, 17 Jan 2009 08:23:00 GMT</pubDate><guid>http://www.cnitblog.com/zhand/articles/53835.html</guid><wfw:comment>http://www.cnitblog.com/zhand/comments/53835.html</wfw:comment><comments>http://www.cnitblog.com/zhand/articles/53835.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zhand/comments/commentRss/53835.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zhand/services/trackbacks/53835.html</trackback:ping><description><![CDATA[　网站上传文件、图片等是经常的事情，但是IIS默认上传文件的大小限制在200K以下，有些比较大的文件是无法直接上传的，这样就给我们造成了一些不必要的麻烦，今天部落就和大家一起探讨一下如何设置IIS使默认上传文件大小大约200K。
<p>　　其实我们只需要在服务器端对IIS进行一些修改即可突破这个200K的限制，方法如下：</p>
<p>　　<strong>第一步：直接编辑配置数据库设为允许</strong></p>
<p>　　在IIS中右键&#8220;本地计算机&#8221;选择&#8220;属性&#8221;，钩选&#8220;允许直接编辑配置数据库&#8221;。</p>
<p>　　<strong>第二步：关闭&#8220;IIS Admin Service&#8221;服务</strong></p>
<p>　　依次打开&#8220;控制面板--管理工具--服务&#8221;，在其中右边找到&#8220;IIS Admin Service&#8221;，选中该项并点击鼠标右键，选中&#8220;停止&#8221;即可关闭该服务。</p>
<p>　　<strong>第三步：修改&#8220;MetaBase.xml&#8221;文件</strong></p>
<p>　　依次打开&#8220;X:\WINDOWS\system32\inetsrv&#8221;，在该文件夹中找到&#8220;MetaBase.xml&#8221;文件，将&#8220;MetaBase.xml&#8221;用记事本打开，在其中搜索&#8220;AspMaxRequestEntityAllowed&#8221;，将后面的&#8220;204800&#8221;改成&#8220;1024000000&#8221;保存文件。</p>
<p>　　注意：&#8220;X&#8221;为系统盘的盘符，在执行第二步之前请确保第一步已经操作，否则将无法保存修改后的&#8220;MetaBase.xml&#8221;文件。</p>
<p>　　<strong>第四步：开启&#8220;IIS Admin Service&#8221;服务</strong></p>
<p>　　修改完成后再按照第一步的操作将&#8220;IIS Admin Service&#8221;服务开启。</p>
<p>　　经过以上简单的三步设置我们已经将IIS上传文件的大小限制改为了100M，当然你可以随意对上传文件的大小进行修改。</p>
<p>　　<strong>注：</strong>本实例的操作环境为Windows 2003、IIS6.0，其他操作系统下设置类似。</p>
<img src ="http://www.cnitblog.com/zhand/aggbug/53835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zhand/" target="_blank">IT爱好者01</a> 2009-01-17 16:23 <a href="http://www.cnitblog.com/zhand/articles/53835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发人员希望使用的六种脚本语言  </title><link>http://www.cnitblog.com/zhand/articles/53589.html</link><dc:creator>IT爱好者01</dc:creator><author>IT爱好者01</author><pubDate>Thu, 08 Jan 2009 00:57:00 GMT</pubDate><guid>http://www.cnitblog.com/zhand/articles/53589.html</guid><wfw:comment>http://www.cnitblog.com/zhand/comments/53589.html</wfw:comment><comments>http://www.cnitblog.com/zhand/articles/53589.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zhand/comments/commentRss/53589.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zhand/services/trackbacks/53589.html</trackback:ping><description><![CDATA[出处:IT专家网<br>
<div style="BORDER-RIGHT: #666666 1px solid; BORDER-TOP: #666666 1px solid; BORDER-LEFT: #666666 1px solid; BORDER-BOTTOM: #666666 1px solid">
<p>一些新兴的脚本语言，如开源，在软件开发者中日益普及。这些充满活力的编程语言应该在企业软件开发中获得更多关注，即使您致力于Java或.NET的开发。</p>
</div>
<p>　　Lynn Greiner的文章《脚本世界现状》遭到痛批。一些人对文章明显的疏漏表示出了不满，因为文章只涵盖了PHP ，Perl，Python，Ruby，Tcl和JavaScript。Lynn只选择这些语言，因为那她是为三年前的一篇文章做的后续报道。此外，大多数IT经理即使没有亲自编写过代码，也都至少熟悉其中一种脚本语言。</p>
<p>　　然而，尽管我们已经深入了解上述五种语言，但是开发人员使用语言的却不仅限于这五种。由于每种编程语言都是适合于解决某个具体问题的工具，因此每个IT公司都能挑选一个最适合自己的语言。在本文中，我们会分享一些新兴的脚本语言，以提供些指导。</p>
<p>　　<strong>Scala</strong></p>
<p>　　Scala对开发人员而言是别具吸引力的。按照其网站所说：&#8220;Scala...既是对象面向型又是实用型的。它混合了一些现代语言功能，同时与Java保持着密切的兼容性。&#8221;</p>
<p>　　Object Mentor的高级顾问Wampler说：&#8220;Scala是我见到的最好的一体适用的语言。Scala弥补了Java的不足，比方Java为对象面向型编程提供的支持冗繁而有限。此外，Scala支持功能性编程——在学术计算机科学界已存在很长一段时间的一种方法，但现在被证明用来编写强效并行软件非常有用。并行技术对在大型网站和企业扩展软件十分重要。&#8221;</p>
<p>　　Trampoline Systems开发人员David Ritchie Maclver认为，Scala的主要好处是能避开Java。他说：&#8220;就图书库的支持，性能和易于部署而言，我可以匹配Java。&#8221;许多Java工具也推到Scala。他认为，他的公司正为可视化软件的软件采用Scala，随着这一更新，将减少Java和Ruby的使用。</p>
<p>　　但是，Maclver并不推崇Scala的一切。他说：&#8220;为了发挥并行优势，人们会推动Scala的发展。但请不要受制于这种诱惑。因为它不能取代Java。&#8221;</p>
<p>　　<strong>Groovy</strong></p>
<p>　　另一种语言就是Groovy，根据其网站所称，Groovy是为Java虚拟机(JVM)而设计的一种灵活而动态的语言。集Java之长，但受Python ， Ruby和Smalltalk的启发，具备额外的功能和特点。</p>
<p>　　Groovy令人信服之处在哪里呢?首先提出这一问题的开源新闻平台批评家说：&#8220;我感到惊讶的是Groovy没有出现在任何地方。如果有一个动态语言能平衡企业的拥堵，那它就是Groovy。它能汇编进Java字节码，并直接利用庞大的Java库，却省去了繁琐的Java句法。几年的时间后，Python和Ruby被Groovy取代将不会使我感到惊讶。&#8221;</p>
<p>　　Groovy让Java开发的指令有效表达，同时又与Java代码保持相互兼容性。</p>
<p>　<strong>　Closure</strong></p>
<p>　　您的公司可能会采用最新的硬件，但您的软件可以充分利用其多线程功能吗?您可能想看看Clojure，它是一个以虚拟机为目标的动态编程语言。其网站上解释说， Clojure被设计成一个通用语言，它是将高效和强劲的基础设施同脚本语言的可接近性和互动发展相结合的多线程编程。 Clojure是一种直接编辑JVM字节码的语言，却保存了完整的动态特点。每个由Clojure支持功能在运行时也获得支持。 Clojure提供对Java框架的轻松访问，通过可选类型提示和类型推断确保调用的Java可避免映射。</p>
<p>　　小?强大?Java?这三个能并存吗? Clojure是一种体积小，功能强大的语言，它在虚拟机上编辑并运行，因此不需要新的基础设施。此外，它也可以让您以更少的代码处理更多事情。这对发展进程和维护都是好事。特别有益于在缺乏像Java那样足够多的程序员开销时，利用多核硬件。</p>
<p>　　现在软件开发中最紧迫的问题在于如何更好地利用多核CPU ，以提高性能和降低能源成本。就方便与安全性而言，Clojure用于并行要比其他任何语言都要优越。它继承的Lisp极大地提高程序员的生产方式，随着时间的增长，它能实现简单的DSL创建以便商家验证程序的正确性。它能在模拟机上运行并能顺利与数百万行遗留的Java代码融合还仅是其表面现象。&#8221;</p>
<p>　　<strong>Lua</strong></p>
<p>　　正式点说，Lua是一个强大，快速，轻量，可嵌入的脚本语言。Lua结合了简单的程序句法并具备强大的基于关联数组和可扩展的语义的数据描述。Lua是动态型的，它的运行通过为基于寄存器的虚拟机解释字节码来实现，通过增量垃圾收集自动管理内存，非常适合配置，撰写脚本，和快速原型。</p>
<p>　　通俗点说，这只是一个非常小的语言工具用它办事很快。</p>
开发人员RalphHempel将Lua描述为&#8220;编程语言中最棒的小秘密&#8221;,他还说：&#8220;虽然它没有一个正式认可的库分配机制。但却有大量的标准库供文件系统访问，网络连接，数据库访问等等。对我来说，该系统最好的部分是坚如磐石的语言核心和考虑周密的升级和补丁。Lua的发布由从一开始就参与该语言的&#8216;Three Amigos&#8217;控制。&#8221;Hempel已向LEGO Mindstorms NXT移植Lua。
<p>　　Lua的优势在于它的快速敏捷式开发超过了传统的语言。它给你所需要的积木，您可以以任何方式建立你想要的任何东西。惊人的小和快是Lua特点。就技术层面而言，它是杰作。</p>
<p>　　<strong>F#</strong></p>
<p>　　.NET开发社区并非没有一套脚本语言增强功能。其中最突出的是F#，它起先作为微软的编程语言研究，集安全，简洁，性能，表达和脚本于一身，能高品质运行，支持现代运行系统。现在微软把F#转变成.NET平台上的充分支援语言。</p>
<p>　　F#促进编程的功能性不可改变类型，而这适合并行和分布式程序的编写。此外，它支持编程的陈述风格。陈述风格可以让你区分为解决问题开发一些智能库的高级程序员和使用它来解决日常问题的初级程序员。</p>
<p>　　许多编程语言可以很容易地写一些小东西，再扩展成一个较大的应用程序，但当软件需要变成一个真正的有强大逻辑结构的库时，问题就来了。F#就可以让你做得很好，你可以从简单的(就像使用动态类型语言如Python或Ruby那样)开始，最终完成一个非常强大的程序(如同C #或Java )。F#的关键益处是做到过渡完全流利而无须经历任何痛苦的步骤。事实上，你不需要重写任何开始时的代码。</p>
<p>　　F#额外的好处是通过学习F#有助于你成为更好的C#程序员， &#8221;F#有助于人们了解LINQ。如果你未来想平行运行什么东西，它可能是很好的准备。</p>
<p>　　<strong>Boo</strong></p>
<p>　　Boo在其主页上宣布，它是&#8220;为CLI(通用语言基础设施)设计的，一个新的面向对象的静态类型的编程语言，具备Python-inspired句法并特别侧重于语言和编译器的可扩展性。&#8221;</p>
<p>　　这不是一种解释语言，因为它的编纂是为了CLI。由于它在.Net上运行，您拥有.Net的所有权力，只有它更灵活，而且您把它当作一个脚本或编好的程序。Boo也有足够的技术优势，如能在汇编过程中操纵编译器输出。</p>
<p>　　计算机语言是制作软件的一种工具，Boo作为一种计算机语言与其他工具(.Net 生态系统)一样表现出色，但Boo更具竞争力，因它给予开发者空前的力量开发自己的语言工具。大多数语言围绕一套固定的概念工作，Boo赋予开发者制作自己的语言概念的能力。此外，Boo句法也很奇妙，并配备了各种口译以加速发展。</p>
<p>　　该语言在轻量特定领域子语言和微型格式中取得优势。它也是微小的，自我控制和跨平台的，所以在Windows编写代码和在Linux或Mac OS X是一样的。它有一个内置的GUI库，能够发送电子邮件和访问内内置的网络资源。没有包含文件，只有两条简单的线。可执行程序也很小，在Java做同样的事情将有数以百计兆数据，在C将有以吨计的包含文件和许多代码。</p>
<img src ="http://www.cnitblog.com/zhand/aggbug/53589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zhand/" target="_blank">IT爱好者01</a> 2009-01-08 08:57 <a href="http://www.cnitblog.com/zhand/articles/53589.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>