开放源代码的必要性程序有多少,看看字处理程序是多少
2021-10-20
本文原作者为:tomz。tomz的网页:
开源的必要性
在介绍编程语言之前,先说一下开源的必要性。现在,在软件生产领域存在着巨大的智力浪费,每个人都将大量精力花在编写别人已经实现的程序代码上。看看有多少文本编辑器,有多少ftp程序,有多少文字处理程序。尽管这些程序不同,但它们的主要功能是相同的。实现个性化的功能,修改现有软件会节省多少时间!分别编译每个程序会浪费多少时间?如果没有这种重复的工作量,全世界的程序员至少可以节省80%的工作量。同时,开源代码也方便了大家的交流。
要开源代码,以下几点更为重要:
语言统一:如果每个人都使用一种编程语言,相同的功能,相同的库,那么每个人都会有很多共同的语言。每个人只要学会一门语言,一套函数,一套库,就可以阅读理解对方的源码。这样,学习量最少;但是不可能统一语言,因为所有语言都有自己的特点。, 如果利用其中一个优势,通常会牺牲另一个。但是,学习一个新的 API 会浪费程序员大量的时间和精力,尤其是当这个 API 有很多与其他 API 重叠的功能时。
要增加代码的复用性,必须从以下几点入手:
语言功能的强大可以从以下几点看出:
语言友好:
多种语言选择
如果你正在编写一个对性能要求苛刻或与操作系统紧密结合的程序,你必须选择C。
如果您编写的程序可以随处使用,请选择 Java。
如果编写大型程序,可以的话尽量使用Ruby等脚本语言,不行的话就用Java和C。因为脚本语言带来了生产力。
用 Perl 或 Ruby 编写文本处理程序。
用于编写知识处理程序。
用 Lisp 编写最灵活、最晦涩的程序。
使用 vba 编写程序。
编写服务器端程序,PHP、(用你熟悉的语言编写,如Perl、Ruby)、CGI、ASP和(如果你熟悉Java)JSP都是选择。
用vb,或者写数据库程序。
进行算法研究、设计和使用。
多种语言选择
如果要追求性能和程序能力,充分利用操作系统的能力,最好使用C/C++语言。在类 Unix 环境中使用 VC 或 gcc。
如果不是追求与操作系统的完美融合,而只追求性能,还追求跨平台,那么还是选择C,但是可以选择跨平台的库,比如qt、gtk、fox、。如果您想编写游戏,还有一个跨平台选项:SDL。
如果对C领域标准的不一致不满意,对C不满意的人容易出错,对C的面向对象特性不满意的人不透彻。如果不关心跨平台,平台可以选择C#,mac平台选择(-C)。如果需要跨平台,可以选择Java。
如果您需要跨平台和广泛的支持,请选择 Java。
在类 Unix 下,最方便的工具语言是 Perl,它有强大的社区和代码库支持。
如果只是作为简单应用的工具语言,Ruby 是更好的选择。它们的跨平台移植性好,应用广泛。其中比较适合入门和交流,也有利于长期使用。Ruby 是另一种不满的选择,它提供了许多额外的功能。
如果要选择程序的嵌入式语言,以前有Lisp和Java,现在也可以选择Ruby。
如果你要求动态解释执行语言,但又不想学习其他语言,C程序员的选择是pike,Java程序员的选择是。
在Java平台上,如果你想使用脚本语言,你可以使用它。
最正统的基于文档的语言或动态页面语言是。
最专业的服务器端语言是 PHP,当然还有很多其他的选择。
最著名的 XML 语言是 XUL,dtml 也算是其中之一。您还可以将 XML 用作您自己的专用语言。例如,您可以使用 XML 作为模式定制语言。XML 语言是一个比较先进的趋势,在特殊领域比现有语言更高效。
对于易于实现的语言,Lisp 和 Tcl 是选择。
Lisp 集成数据和程序的能力和自由是其他语言所不具备的。现在有一个 Lisp 的现代变体:
如果需要基于事实的编程,那么 sum 是不可避免的。
我为什么选择
首先声明我只编译应用程序,这是一个代替我自己工作的小程序。如果您编写系统程序,您将始终使用 C 或 Java。
我喜欢脚本语言。脚本语言无需编译即可运行,非常容易修改。编程是一项常规活动。程序编译后,一直在修改。没必要认真做和编译。另外,使用该脚本的每个人都可以随意修改它,无需寻找源代码。因此,C/C++ 和 Java 被排除在外。
我喜欢简单的语言。我不喜欢为了编写简单的程序而学习很多复杂的规则。需要大量学习的语言不是一门好语言。它将人视为机器。C/C++ 和 Java 都有严格但 的语法编程语言图案,并且有你永远学不完的函数、类和库。当人们看到它时它很大。而且 Perl 有各种奇怪的速记符号,程序经常让人头晕目眩。简单的含义不仅简单易学,而且功能丰富。常用的东西要早准备好,大家不用写同样的数据结构程序。有丰富的数据类型、完整的面向对象结构、正则表达式等方便的编程模块。逻辑是,如果程序做得更多,人们就会做得更少。如果程序做得更少,人们就会做得更多。这是用户友好性的问题。易于使用和丰富的功能是程序设计的一个非常重要的目标,它很受欢迎。这也很好地反映了这一点。而且 Perl 与 Unix 等其他工具一样强大,但它太难学习和理解。这是非常违背人性的。
关于性能。现在CPU非常强大。除大型程序和系统程序外,无需关心性能。
关于功能。如果你不是在写系统程序和接近系统的程序,就没有必要使用操作系统专门提供的功能。C可以做任何事情,但它的编程效率低且复杂。
至于我为什么不用vb,因为vb太大了。我不需要实现一个小功能来启动这么庞大的程序。太夸张了。另外,VB没有类继承。虽然是应用程序编程,但是如果你想编译一个稍微大一点的程序,你总是会使用类继承。
它必须强大且可扩展,这样正确的学习才不会被浪费。经过简单的处理,可以使用各种C、C++库编程语言图案,也可以被C、C++调用。可以直接使用Java类,也可以直接通过Java调用。这样,yes、Java、C的学习和使用经验就不会浪费了,可以相互补充。可以提高Java和C的编程效率,可以补充Java和C的功能不足。您还可以直接与内置的 Tcl 交互。我期待简单地调用 Perl 和 PHP 函数。可以使用 Lisp 和更好。
Ruby 和 Ruby 的比较
与Ruby类似,相比Ruby的优势,它可以实现列表中的条件语句和循环语句。Ruby 使用“块”来实现这个功能,更加灵活和通用。Ruby 有条件语句、循环语句等,功能类似于 Lisp。句子的表达能力更强。自带一些Unix工具,如raCC等。对比Ruby的缺点
和 Ruby 语言选择
从简单到好,选择就对了。适合寻找简单语言的人,这样很可能会引起更多的人气,所以有更多的支持。但是如果你想追求更强大的语法功能,对编程语言感兴趣,想了解各种编程概念,Ruby 是一个不错的选择。Ruby 和两者都想取代 Perl,解决 Perl 的缺点——面向对象的不足,但方法是混合面向对象和过程式编程语言。Ruby 是一种面向对象的语言,它允许自己伪装成一种过程编程语言。
多种脚本语言的统一与问题
现在脚本语言太多了,有必要整合一下,这是个好主意。.NET 也是一个好主意。为各种脚本提供统一的虚拟机,为各种脚本语言提供基于“类”的相互调用,为各种脚本提供统一的类库。
现在各种脚本语言只给C语言提供交互性,而这种交互性也是费力且无效的。比如Perl、Ruby等,都为C提供了交互功能,脚本语言之间的交流有很多障碍。和 .NET 类似的东西为各种脚本提供了一种非常简单的方法来相互使用,避免了大量的代码重复。这个标准平台的力量是巨大的。为什么这个标准平台没有首先出现在开源领域?众多的脚本是开源的特点和优势。为什么微软要解决这个问题?之前有人问过类似的问题。为什么国内至今没有好用的类似ODBC的东西?
也许只有商业公司才有能力实现这种整合。
我的理解是,如果有创新想法的人会用他的想法来卖钱,那么开源中只剩下模仿者。kde在模仿,在模仿,在模仿Unix,gcc,bash等等都在模仿,如此等等,也在模仿,SDL也在模仿。我想知道开源社区有没有自己的创新?我所知道的创新是zope,但是zope最初是一个商业产品,然后它被开源了。Perl 是创新,创新,但还有什么?开源领域只有一个,不是吗?
.NET介绍
.NET 实现的 Java 功能
代码可控,跨平台虚拟机和伪代码,免费的命令行编译器,纯面向对象语言支持XML和XML web,为jsp对应的asp.NET网页上的程序提供统一的中间件环境。
Asp.NET 和jsp 不是同一级别的Web 技术。Asp.NET 使用完整的事件响应机制。对于类似的技术,只有 JSF 和 Asp.NET 具有可比性。
.NET 中未实现的 Java 功能
免费集成开发环境,多厂商支持,跨平台成熟
免费IDE,#,ASP.NET有MS和免费开源CLR实现,MS自带XP,Mac OS下实现(原理演示不能用于商业应用),版本下的Mono项目已经发布,即将发布2004 年 6 月 30 日;还有一个 .NET 的 GNU 实现!!
.NET 实现的 Java 中不可用的功能
多语言支持强大的集成开发环境。它的速度可与本机程序的速度相媲美。支持 COM,继承与图形和直观的表单、Web 表单和服务器端程序编程。
相对于 vs6 的改进
集成开发环境统一,使C++程序也对vb友好。
XML各种技术介绍:RDF:SVG:::XML-rpC和soap:XUL:xaml:
最先进的XML格式图形界面程序开发工具-XUL
程序大家都知道,仅次于IE的浏览器,很多人都知道它有开源版本。但是很多人只是使用它,并不知道另一个重要的功能——程序开发。开源代码三年后,1.0版本还没有出来。很多人嘲笑他超慢的发展速度。事实上,一个超酷的新产品正在酝酿中,可以算是软件开发工具的开发。一个里程碑。
基于浏览器的三层开发结构现在很流行,微软对.NET的思考就是基于这种结构。此外,无论服务器结构如何,即使是基于网页的小程序也非常吸引人。这些产品的想法是使用 HTML 作为用户界面,但开发人员经常担心 HTML 过于粗糙。而 XUL 解决了这个问题。
XUL 是 HTML 的扩展,与 HTML 完全兼容。XUL 在 XML 格式的基础上对 HTML 进行了扩展,实现了完整而强大的图形用户界面设计功能。可以设计复杂的图形界面程序。其实整体就是XUL设计的。XUL使用Css控制界面风格,DTD替换字符串,方便本地化。用于响应用户界面的操作,提供基本的逻辑编程,通过对象文档界面DOM动态控制用户界面。同时通过调用提供的丰富的底层API实现强大的功能。为文件操作、网络操作、图形操作等操作提供了强大的API,并且这个API是完全跨平台的。最后,
总结: XUL 提供了最强大的用户界面定制,因为它与 HTML 兼容,而 DTD 提供了最方便的本地化。XUL、RDF 提供显示、逻辑和数据的分离。底层API提供强大的跨平台编程能力。
希望大家关心。
最接近人类语言的编程语言——
有关详细信息,请参阅。以下是我的印象。
缺点是显而易见的。它是商业公司的产品。它只能像 Java 一样免费使用。但它不是开源的。并且它的数据库连接函数库是收费的。但它的优势也非常明显。如果因为不是开源软件而不能放心使用,也可以欣赏和借鉴它的各种特点,懂了就忍不住用起来。
第一个是Lisp语言的替代品,可以实现Lisp的所有功能。它具有Lisp语言对数据和程序的处理相同的特点,以及句子和表达的统一性。但它极大地打破了 Lisp 的局限性。它允许中缀运算符的形式没有醒目的括号,这与一般编程语言中的表达式完全相同。同时拥有丰富的库,完备的图形界面库,完备的网络库。因为是公司的产品,所以也保证了库的统一性。
自称为网络编程语言,其网络编程能力很强。一般一句话就可以下载一个文件,或者下载一个网页,或者接收一封邮件。
一个神奇的功能是它的图形界面设计。它的界面编程非常简单。它根本不使用语句和函数,但就像HTML一样,它只需要表达核心内容。这是由于“方言”的能力。
内置“方言”功能。是yacc一样的语言解析能力。“子语言”可以随时扩展。
有数十种内置数据类型。用它编程时,句子绝对是最精炼的。
可以实现运行类似Java的网络下载程序的能力,还具有沙箱功能。它比Java更进了一步,有自己的桌面,可以在上面任意启动各种程序,桌面有丰富的表达和HTML一样的超链接。您可以通过链接到功能性网站来使用各种程序,就像浏览网页一样。因为该语言比Java简洁得多,而且是一种不需要编译的脚本语言,它的程序文件很小,更适合网络传输。因为这个神奇的功能,它自称为操作系统。因为是脚本语言,自然是跨平台的。它有许多操作系统实现。
另一个特点是语言本身只是一个几百k的可执行文件,所以程序的分发非常简单。
最现代的 Lisp 解释器
Lisp 是一种古老的计算机编程语言。给人的印象是速度慢,输入输出能力弱,没有图形界面,库太少,很多功能无法实现。这一切都在手中改变了。
它具有现代语言所具备的大量功能,如嵌入脚本的能力、图形界面编程能力、面向对象的能力、组件编程能力、正则表达式能力、XML能力、作为网络的输入输出能力服务器和客户端,以及其他网络能力,生成独立可执行文件的能力。一个集成的编辑和调试环境。但是,它的程序执行速度还是稍慢了一些。
当然,它具有所有优点,定义语法宏的能力,命名空间的能力,不区分数据和程序的能力,堆栈内存管理,无限嵌套,以及用简单的方式表达所有语句和数据“表”。自然而然地具有在程序环境中存在的永恒能力。这些功能似乎在最新的编程语言中出现。看来目前的编程语言发展趋势是从C语言的方式向更多Lisp特性的方向发展。就像逐渐拥有Unix已经实现的越来越多的功能一样。
我知道 Lisp 的编程环境已经很好了。
语言印象
令人印象深刻的是,它是一门贯穿整个开发周期的语言,并且在开发周期中是可追溯的。它类似于艾达。它是一种类似于 C++ 的编译型面向对象语言,但更简单且能够进行多重继承。它是C语言中面向对象编程的替代品。
盎司语言
oz介绍,它是一种面向对象、逻辑编程、并发分布的语言。oz 给我印象最深的是它的多线程功能。一个简单的 Case 语句可以启动多个线程。此外,它也是编写分布式并发人工智能程序的替代品。
各种语言的选择以及语言之间的关系
一般用什么软件,用的软件语言
以我使用的软件为例:
要使用,只需使用vba编程。
只需使用编程
使用 zope 只使用编程
如果您使用 gimp,请使用或编程
只需使用或编程
只需使用编程
然后看处理的是什么类型的数据
如果您正在处理文件操作,请使用语言。比如bash
如果您正在处理文本文件,请使用 Perl 或 awk。如果您喜欢 Perl 的风格并编译大型程序,您应该使用 Ruby。
如果您正在处理数据库,只需使用 sed。否则,使用 sql。
如果是对象数据库,可以使用+ZODB,或者Lua,fish
如果通用数据库不能满足要求,需要专家系统,使用
如果您正在处理结构化文本,例如 XML,请使用 xslt。
处理HTML,客户端使用,服务器端使用PHP
如果您正在处理类似于语言分析的文本,请使用 yacc
如果处理的结果是打印文件或屏幕文件,使用tex
如果是图像、动画或其他二进制文件,一般使用C语言。
如果处理问题和操作系统底层,使用C语言
在语言特点上
如果对运行多线程的并发性和分布性要求极高,可以考虑oz语言。
如果你很看重文档,希望程序的文档写好,程序差不多完成,那就用Cweb
复杂的程序需要在编写之前用 UML 记录下来。
如果您想编写大型程序或计划只学习一种编程语言,请使用
如果你写一个程序来处理复杂的数据结构和算法,使用Lisp and(类似Lisp的风格,希望更简单,使用)
如果你想把一种语言最简单的实现作为嵌入式语言,就用Tcl,如果Tcl有限制,就用Lua
C语言是最流行的语言,但是C语言有一些缺点,因此产生了很多改进C的语言
因为C写不出大程序,C++诞生了
因为C++也有指针等缺点,所以Java诞生了
如果你不喜欢 C++ 的缺点,想使用编译型语言,选择
C语言的缺点之一是标准库规模小,不能解决所有问题。产生了大量不兼容的库,导致许多不可移植的程序。如果您想要一种与 C 相同级别的可移植编程语言,请选择 Ada。Ada 的图形用户界面库和各种操作系统相关的库是标准化的,您可以选择不同厂商的解决方案。它是军队所需的标准编程语言。
如果你不喜欢C语言的繁琐,并希望你经常做的编程可以简单,那么你可以使用它。为了完成同样的工作,代码行数是 C 的一小部分。
C 风格的脚本语言是 pike
关于图形用户界面的选择
最简单的图形界面是tk,可以在各种平台上使用
如果有更高的要求,使用gtk。Gtk 的可移植性较差。
一个以可移植性为目标的开源 C 库是
如果你想要简单的编程并且不是很苛刻,你可以使用XUL
跨平台的图形用户结构是Java的awt和。如果不是跨平台,还有ibm的Java解决方案。
如果你不排除商业编程语言,你可以使用qt,因为qt的程序需要付费才能用于商业用途。
如果你要写一个全屏的文本界面程序,它是最权威的。我们可以回忆一下,C 的编程环境与图形用户界面一样友好。它是一个全屏文本用户界面。
如果你写一个家庭式的程序,上面的选项也可以考虑。gtk也可以。
>如果您正在处理结构化文本,例如 XML,请使用 xslt。XML 本身也可以计算在内。>处理HTML,客户端,服务端PHP不是唯一的PHP一. >如果处理的结果是打印文档或者屏幕文档,使用tex 。>如果是图像、动画或其他二进制文件,一般使用C语言。>如果是操作系统底层处理的问题,我会在C语言的C/C++中选择C++。>如果对运行多线程的并发性和分布有极高要求,可以考虑oz语言>>语言。20 年后的一门语言。> 如果你写程序来处理复杂的数据结构和算法,使用 Lisp 并且> Lisp 也很流行。
>如果你要写一个全屏的文本界面程序,它是最权威的。我们>> 可以回忆起C 的编程环境和图形用户界面一样友好。It> 是一个全屏文本用户界面。什么,。
或许,语言是用来超越的。许多应用程序需要混合使用不同的语言。我发现将它嵌入到应用程序中非常诱人。
文学编程与CWEB简介
CWEB是tex作者创造的一种编程语言。tex 是主流的文档打印标准和文档生成工具。tex及相关软件都是用Cweb编写的,tex体现了Cweb的编程特点。CWEB的编程思想被称为“文学编程”。事实上,它应该被称为“文章编程”,因为它与文学几乎没有关系,但类似于学术著作。主要思想是:编程应该像写学术著作一样,有一个整体的思路,并以节、章、节、小节、小节的形式逐步丰富。这实际上类似于我们所说的“自顶向下”的编程方法。但是“自顶向下”只是软件工程的一种方式,它是通过编写文档来实现的,不与编程语言结合。在我看来,CWEB在编程语言中实现了“自顶向下”。
CWEB的实现是“宏替换”,就是用更具体的内容逐层替换更一般、更简洁的内容。我们使用的编程工具“”其实是一个宏替换工具(我没用过,只是听说)。Zope 的TAL 语言是替换工具,但不是宏替换工具,因为它的内容是不可执行的。如果内容是可执行的,那么它也可以称为宏替换。