mazilla程序就是基于XUL的语言,微软的.NET的思路

*XUL:

NetScape 的mazilla 使用的编程界面语言是基于XML 格式的,它在描述图形界面的XML 语言方面比HTML 强大得多。它使用Css换肤,DTD实现多语言界面,JavasCript实现程序逻辑,从而编写可以轻松自定义界面的跨平台程序。现在这个程序API功能非常强大,整个mazilla程序都是基于XUL的。

* XAML:

MS 在 LongHorn 平台上的最新编程语言将统一 Windows 和 Web 编程以供直接使用。 LongHorn 下的浏览器执行它,类似于 XUL。

5.2 最先进的XML格式GUI程序开发工具——XUL

每个人都知道 NetScape 程序,这是一个仅次于 IE 的浏览器,很多人都知道 Mozilla,即 NetScape 的开源版本。但是很多人只是使用Mozilla,并不知道Mozilla的另一个重要功能——程序开发。 NetScape 开源代码三年后,Mozilla 的 1.0 版本还没有出来。很多人嘲笑他开发速度超慢。事实上,Mozilla已经酝酿出一款超酷的新产品,可以看作是软件开发工具演进的又一里程碑。

现在非常流行基于浏览器的三层开发结构,微软的.NET思想就是基于这种结构。此外,无论服务器结构如何,基于 Web 的 JavaScript 小程序也很有吸引力。这些产品的想法是使用 HTML 作为用户界面,但开发人员经常担心 HTML 过于简陋。而 Mozilla 的 XUL 解决了这个问题。

XUL 是 HTML 的扩展,与 HTML 完全兼容。 XUL 基于 XML 格式扩展了 HTML,实现了完整而强大的图形用户界面设计功能。可以设计复杂的图形界面程序。实际上,mazilla 完全由 XUL 设计。 XUL使用Css控制界面风格,DTD替换字符串,方便本地化,JavasCript响应用户界面操作,提供基本逻辑编程。 JavaScript 使用对象文档界面 DOM 来动态控制用户界面。同时,JavasCript 通过调用 Mozilla 提供的丰富的底层 API 来实现强大的功能。 Mozilla为文件操作、网络操作、图形操作等操作提供了强大的API,而且这个API是完全跨平台的。最后,Mozilla 使用 RDF 格式来存储与接口无关的数据。

总结:XUL由于兼容HTML,提供了最强大的用户界面定制,DTD提供了最方便的本地化。 XUL、JavasCript 和 RDF 提供了显示、逻辑和数据的分离。 Mozilla 的底层 API 提供了强大的跨平台编程能力。我希望每个人都会关心 Mozilla。

5.3.最接近人类语言的编程语言——REBOL

有关详细信息,请参阅 REBOL。这是我的印象。

REBOL 的缺点很明显。它是一家商业公司的产品。它可以像 Java 一样免费使用。但不是开源的。它的数据库连接库是收费的。但它的优势也非常明显。如果你因为不是开源软件而不能放心使用,也可以欣赏和学习它的各种功能,等你了解了REBOL就一定能用上。

首先,REBOL 是 Lisp 的替代品,它实现了 Lisp 的所有功能。具有对Lisp语言数据和程序的特殊处理。

点,还有语句和表达式的统一。但它极大地打破了 Lisp 的局限性。它允许中缀运算符的形式,没有引人注目的括号c语言 脚本解释器,与普通编程语言完全相同。同时拥有丰富的库,完整的图形界面库,完整的网络库。因为是公司的产品,所以也保证了库的统一性。

REBOL自称为网络编程语言,网络编程能力很强。一般情况下,单个语句可以下载文件、下载网页或接收电子邮件。

REBOL 的一个神奇特性是它的图形界面设计。它的接口编程非常简单。它根本不需要语句和函数,只需要像HTML一样表达核心内容。这要归功于 REBOL 的“方言”功能。

REBOL 具有内置的“方言”功能。就是像yacc一样的语言解析能力。子语言可以随时扩展

REBOL内置了几十种数据类型,用它编程,语句一定是最精炼的。

REBOL可以实现像Java一样运行网络下载程序的能力,还具有沙盒功能。它比Java更进了一步,有自己的桌面,可以在桌面上任意启动各种REBOL程序,桌面有HTML一样丰富的表达方式和超链接。链接到支持 REBOL 的网站允许您使用各种程序,就像浏览网页一样。因为REBOL语言比Java简洁很多,而且是一种不需要编译的脚本语言,它的程序文件非常小,更适合网络传输。因为 REBOL 有这么神奇的功能,所以它自称为互联网操作系统。因为 REBOL 是一种脚本语言,它本质上是跨平台的。它具有适用于许多操作系统的实现。

还有一个特点是REBOL语言本身只是一个几百公斤的可执行文件,所以REBOL程序的分发非常简单。

5.4.我为什么选择 Python

首先,我声明我只编写应用程序,即代表我工作的小程序。如果您编写系统程序,您将始终使用 C 或 Java。

我喜欢脚本语言。脚本语言无需编译即可运行,非常容易修改,编程是一项常规活动。编程完成后,总会有不断的修改。没必要做的很隆重。编译。此外,使用脚本的每个人都可以轻松修改它,并且无需查找源代码。因此,C/C++ 和 Java 被排除在外。

我喜欢简单的语言。我不喜欢为了写简单的程序而学习很多复杂的规则。需要大量学习的语言不是一门好语言。它像对待机器一样对待人。 C/C++ 和 Java 都有严格但冗长的语法,具有永远无法学习的函数、类和库。一看到就头大。而且 Perl 有各种奇怪的速记符号,程序常常让人眼花缭乱。简单的意思不仅容易学习,而且功能丰富。常用的东西要早点准备好,不用每个人都写同样的数据结构程序。 Python具有丰富的数据类型,完整的面向对象的结构,以及便于编程的各种模块,例如正则表达式。逻辑是程序做的越多,做的人就越少。如果程序做的越少,做的人就越多。这就是界面友好的问题。易于使用、功能丰富是编程的一个非常重要的目标,Windows 就是依靠这个流行起来的。而 Python 也很好地体现了这一点。 Perl 与 Unix 的 emaCs 等其他工具一样,功能强大,但难以学习和理解。这更不人道。

关于性能。现在的CPU非常强大。除了非常大的程序和系统程序,不需要关心性能。

关于功能。如果不是为了编写系统程序和接近系统的程序,则不需要使用操作系统专门提供的功能。 C可以做任何事情,但是编程效率低且复杂。

至于我为什么不用vb,因为vb太大了。我不必实现一个小功能来启动如此庞大的程序。太夸张了。另外,vb没有类继承。虽然是应用程序编程,但如果要编译稍微大一点的程序,总会用到类继承。

Python 的可扩展性非常强,学习 Python 不会浪费。 Python 很简单,可以使用各种 C 和 C++ 库,也可以从 C 和 C++ 调用。 Python可以直接使用Java类,也可以直接被Java调用。这样一来,Python、Java、C的学习和使用经验就不会浪费了,可以相得益彰。 Python可以提高Java和C的编程效率,Java和C可以补充Python功能的不足。 Python 还可以直接与内置的 Tcl 交互。期望 Python 能够轻松调用 Perl 和 PHP 函数。最好能够使用 Lisp 和 prolog。

5.5. 最现代的 Lisp 解释器 DrScheme

Lisp 是一种古老的计算机编程语言。给人的感觉是速度慢,输入输出能力弱,没有图形界面,库太少,很多功能无法实现。这一切都在 DrScheme 的手中发生了变化。

DrScheme拥有大量现代语言所具备的特性,比如嵌入脚本的能力、图形界面编程能力、面向对象能力、组件编程能力、正则表达式能力、XML能力,作为web服务器和客户。输入输出能力等网络能力,生成独立可执行文件的能力。集成的编辑和调试环境。不过它的程序执行速度还是稍慢。

当然,它拥有Scheme的所有优点,语法的宏定义能力,命名空间能力,数据和程序分离的能力,栈内存管理,无限嵌套,用“表”来表示所有的语句和数据简单的方式自然也具有程序环境的永恒存在能力。这些功能似乎正在最新的编程语言中出现。看来目前编程语言的发展趋势是从C语言的方式向更具Lisp特色的方向发展。就像Windows逐渐拥有了越来越多Unix已经实现的功能一样。才知道Lisp的编程环境已经这么好了。

5.6.埃菲尔语言印象

令人印象深刻的是它是一个完整的开发周期语言,并且在开发周期中具有追溯性。它的ContractCt 类似于Ada。 eiffel 是一种类似于 C++ 的编译型面向对象语言,但更简单并且能够进行多重继承。 eiffel 是 C 语言中面向对象编程的替代方案。

5.7. 莫扎特 oz 语言

oz 将其介绍为一种面向对象、逻辑可编程、并发分布式的语言。 oz 给我印象最深的是它的多线程功能。一个简单的 Case 语句可以启动多个线程。另外,它也是prolog的替代品,可以编写分布式并发的人工智能程序。

6.语言的选择以及语言之间的关系

* 如果您编写的程序对性能要求高或与操作系统紧密集成,则必须选择 C。

* 如果编写的程序随处可用,请选择 Java。

* 如果编写大型程序,尽量使用脚本语言,如 Python 和 Ruby,如果不可能,尽量使用 Java 和 C。因为脚本语言带来生产力。

* 用 Perl 或 Ruby 编写文本处理程序。

* Prolog 用于编写知识处理器。

* 用 Lisp 编写最灵活和最晦涩的程序。

* 使用 vba 编写办公程序。

* 要编写服务器端程序,PHP(用您熟悉的语言编写,例如 Perl、Python、Ruby)CGI、ASP 和 JSP(如果您熟悉 Java)都是可选的。

* 用vb或delphi编写数据库程序。

* 如果要追求性能和程序能力,要充分利用操作系统的能力,使用C/C++语言是合适的。在 Windows 环境中使用 VC,在类 Unix 环境中使用 gcc。

* 如果不是追求与操作系统的完美结合,而只追求性能和跨平台,那还是选择C,但是可以选择跨平台的库,比如qt、gtk、狐狸,wxWindows。如果你想写一个游戏,还有一个跨平台的选择:SDL。

* 如果你对C领域标准的不一致不满意,你对C不满意,很容易出错,如果你对C的面向对象特性不满意,那就不彻底。

* 如果不关心跨平台,Windows平台可以选择C#,maC平台可以选择CoCo。如果需要跨平台,可以选择Java。

* 如果您需要跨平台和广泛的支持,请选择 Java。

* 在类Unix下,最方便的工具语言是Perl,它有强大的社区和代码库支持。

* 如果仅作为简单应用程序的工具语言,Python 和 Ruby 是更好的选择。它们具有良好的跨平台可移植性,应用广泛。其中Python比较适合入门和交流,也适合长期使用。 Ruby 是对 Python 不满意的另一个选择,它提供了很多额外的功能。

* 如果您想为程序选择嵌入式语言,您可以选择 Lisp、Basic 和 Java,但现在选择 Python 和 Ruby。

* 如果需要动态解释执行语言又不想学习其他语言,C程序员的选择是pike,Java程序员的选择是beanshell。

* 在Java平台上,如果要使用脚本语言,可以使用Python。

* 最正统的基于文档的语言或动态页面语言是 JavaScript。

* 最专业的服务器端语言是 PHP,尽管还有许多其他选项。

* 最著名的 XML 语言是 XUL,dtml 也是其中之一。您还可以将 XML 用作您自己的专用语言。例如,jedit 使用 XML 作为模式定制语言。 XML语言是一种比较先进的趋势,在特殊领域比现有语言效率更高。

* 对于易于实现的语言,Lisp 和 Tcl 是选择。 Lisp 具有集成其他语言所没有的数据和程序的能力和自由。现在有一个现代化的 Lisp 变体:REBOL。

* 如果需要基于事实的编程,Prolog 和 Clips 是必须的。

6.1 一般用什么软件,用的软件的语言

以我使用的软件为例:

用excel,用vba编程就行了。

使用 autoCad 使用 autoLisp 进行编程

使用 zope 在 Python 中编程

如果使用 gimp,则使用 Python 或 sCheme 编程

使用 gnome office 在 Python 或 Basic 中编程

使用blender在Python中编程

6.2然后看看处理的是什么类型的数据

如果您正在处理文件,请使用 shell 语言。比如bash

如果您正在处理文本文件,请使用 Perl 或 awk。如果你喜欢 Perl 的风格并且喜欢编写大型程序,那么你会使用 Ruby

如果处理数据库,只需使用 sed。否则使用sql。

如果是对象数据库,可以使用Python+ZODB,或者Lua,fish

如果通用数据库不能满足要求,需要是专家系统,使用prolog

如果处理结构化文本,例如 XML,请使用 xslt。

处理 HTML,客户端的 JavasCript,服务器端的 PHP

如果您要处理诸如语言分析之类的文本,请使用 yacc

如果处理的结果是打印文档或屏幕文档,使用tex

如果是图片、动画或其他二进制文件,一般使用C语言。

如果处理的问题是操作系统底层,使用C语言

6.3 在语言特征方面

如果对运行多线程的并发和分布式要求非常高,可以考虑oz语言。

如果你很重视文档,想写程序的文档,而且程序已经差不多完成了,那就用Cweb

复杂的程序在编写之前需要 uml 文档。

如果您想编写大型程序或计划只学习一种编程语言,请使用 Python

如果您编写程序来处理复杂的数据结构和算法,请使用 Lisp 和 sCheme(喜欢 Lisp 风格,但希望它更简单,请使用 REBOL)

如果您想以最简单的方式将一种语言实现为嵌入式语言,请使用 Tcl。如果 Tcl 有限制,请使用 Lua

6.4 C 语言改进

C语言是最流行的语言,但是C语言也有一些不足,因此有很多语言对C进行了改进。

因为C不能写大程序,C++就诞生了;因为C++有指针等缺点,Java就诞生了;

如果你不喜欢 C++ 的缺点并想使用编译语言,请选择 eiffel。 C语言的一个缺点是标准库体积小,不能解决所有问题,导致大量不兼容的库,导致很多不可移植的程序。如果您想要一种与 C 级别相同的可移植编程语​​言,请选择 Ada。 Ada的GUI库和各种操作系统相关库都是标准化的,可以选择不同厂商的解决方案。是军队所需的标准编程语言。如果你不喜欢 C 语言的单调乏味,并且想让你经常做的事情更容易编程,你可以使用 Python。做同样的工作,Python 的代码行只是 C 的一小部分。

C风格的脚本语言是JavasCript, pike

6.5 关于 GUI 选项

* 最简单的 GUI 界面是 tk,可在各种平台上使用

* 对更高要求使用 gtk。 gtk 的便携性较差。

* 针对可移植性的开源 C 库是 wxwindow

* 如果想要简单的编程,要求不是很高,可以使用XUL

* 跨平台的 GUI 架构是 Java 的 awt 和 swing。如果不是跨平台,还有ibm的Java方案。

* 如果不排除商业编程语言,可以使用qt,因为qt程序是为商业使用付费的。

* 如果要写全屏文本界面程序,emaCs是最权威的。我们可以回想一下,turbo C 的编程环境和 GUI 一样友好。这是一个全屏文本用户界面。

* 如果你写一个类似office家族的程序,也可以考虑在openoffice上的一个选项。 gtk 也可以。

6.6.Ruby 和 Python 比较

6.6.1.Python和Ruby的相似之处

* 都强调语法的简单性,并且都有更通用的表达方式。 Python 是缩进,Ruby 是类似 Basic 的表达式。两者都显着减少了符号。

* 都是动态数据类型。都有丰富的数据结构。

* 都有C语言扩展,可移植,比Perl的可移植性好。两者都可以用作嵌入式语言。

*都是面向对象的语言,可以作为大型项目的开发工具。

* 都有丰富的库支持。

* 也拥有最宽松的版权许可,除了一些工具属于 GNU 世界。

* 所有 Lisp 特定的 eval 函数也可以将函数作为参数。

* Ruby 也有专门的带有图形界面的编辑器。

* 受到广泛的 C 库的支持。如qt、gtk、tk、SDL、FOX等,Ruby计划实现SWIG接口。

* 有据可查。

6.6.2.Ruby 相对于 Python 的优势

* 具有正则表达式和嵌入 HTML 的能力。 Python 也有正则表达式,但不如 Ruby 方便和广泛使用。 Python 的嵌入 HTML 项目才刚刚开始。 Ruby 还有一个用于 apaChe 的 mod 模块。 Ruby 本身也实现了许多 Unix 工具,例如 raCC、doCtools。比 Python 更接近 Linux。

* 比 Python 功能更完整的面向对象语法。

* Ruby 的整个库都采用类继承结构。

* 他的基本数据类型和运算符可以重载。

* Ruby 的主要功能是通过对象方法调用实现的,而不是函数。 Python 也在朝这个方向发展,但不如 Ruby 彻底。

* Ruby 的类更标准化的单继承,以及接口等概念的实现。

* Python 可以在列表中实现条件语句和循环语句,而 Ruby 使用“块”来实现这个功能,比 Python 更加灵活和通用。

* Ruby 对条件、循环等有一种类似于 Lisp 的全面函数式方法。句子更具表现力。

* 附带一些 Unix 工具,如 raCC 等。

6.6.3.Ruby 相比 Python 的缺点

* 最大的缺点正是因为 Ruby 的强大。它没有 Python 的简单性。更复杂的面向对象语法,“块”语法的引入,正则表达式的引入,以及一些简写符号都增加了语言的复杂度。

* Python 的缩进表达式比 Ruby 的 Basic 表达式更赏心悦目,Ruby 程序醒目的结尾让人不舒服。当然,Ruby 认为 end 的方式比 Python 更高级。

* Ruby 尚不具备 Python 的“自省”功能,即从程序文件生成文档的能力。

* Ruby 不像 Python 那样被广泛支持。计划为 Ruby 提供国际化支持。这是因为 Ruby 的历史比 Python 短。

6.6.4.Python 和 Ruby 语言选择

简单就是好,Python 是正确的选择。 Python 适合寻找一种简单语言的人,这可能会使 Python 更受欢迎,因此得到更多支持。但是如果你正在寻找更强大的语法,对编程语言感兴趣c语言 脚本解释器,并且想了解各种编程概念,Ruby 是一个不错的选择。 Ruby 和 Python 都想取代 Perl,解决 Perl 的缺点——缺乏面向对象,但 Python 的做法是把面向对象和过程编程语言混合起来。 Ruby 允许自己,面向对象的语言,伪装成一种过程编程语言。方向非常不同。

6.7 讨论

语言的选择和语言之间的关系:

如果处理结构化文本,例如 XML,请使用 xslt。 XML 本身也很重要。处理HTML,客户端使用JavasCript,服务端使用PHP。 PHP 不是唯一的。如果处理的结果是打印文档或屏幕文档,请使用 tex super。如果是图片、动画或其他二进制文件,一般使用C语言。如果处理的问题是处理操作系统的底层,使用C语言,我会选择C/C++中的C++。如果对运行多线程的并发性和分布要求非常高,可以考虑oz语言。 20年后的语言。如果您正在编写程序来处理复杂的数据结构和算法,Lisp 和 sCheme Lisp 也是您的最爱。

如果要写全屏文本界面程序,emaCs是最权威的。我们可以回想一下,turbo C 的编程环境和 GUI 一样友好。这是一个全屏文本用户界面。哈,EmaC。

或许,语言是用来超越的。许多应用程序需要混合使用不同的语言。我发现将 Python 嵌入到应用程序中很诱人。

7。文学编程与CWEB导论

CWEB 是 tex 的作者创建的一种编程语言。 tex 是主流的文档打印标准和文档生成工具。 tex及相关的metafont是Cweb编写的软件,tex体现了Cweb的编程特点。 CWEB的编程思想被称为“文学编程”。它其实应该叫做“文章编程”,因为它和文学没什么关系,而类似于学术著作。主要思想是:编程应该像写一本学术书籍,有一个整体的概念,并通过节、章、节、小节、小节来丰富。这实际上类似于我们所说的“自顶向下”编程。但“自顶向下”只是软件工程的一种方式,它是以编写文档的方式实现的,而不是与编程语言相结合。 CWEB 在我所说的编程语言中是“自上而下”的。

CWEB的实现方式是“宏替换”,就是用更具体的内容替换更笼统、更简短的内容。我们使用的编程工具“maker”实际上是一个宏替换工具(我没用过maker,只是听说过)。 zope的TAL语言是替换工具,但不是宏替换工具,因为它的内容是不可执行的,如果内容是可执行的,那么也可以称为宏替换。

© 版权声明
THE END
喜欢就支持一下吧
点赞182赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容