Shell 已经很强大了,为什么在 Linux 操作还需要 Python,Ruby

Python011

Shell 已经很强大了,为什么在 Linux 操作还需要 Python,Ruby,第1张

你拿 Bash Shell Script 给我写个图形界面的程序试试?写个网站服务器试试?

Python、Ruby 这些都是独立的高级语言,和 Shell 或者 Linux 没有必然联系。

因为shell是工具型的东西,工具就是工具,要干工具的事情,工具就是要方便,要简单,要糙快猛,但是不用面面俱到,不用严谨有序,计算浮点数?性能嗷

嗷快?内存操作?严谨的逻辑?高级的抽象?……

统统不需要,它需要的,就是方便地让我搭起架子,让我迅速地发出指令,至于具体的事情,应该让其他程序来做.

比如你在shell里

export个环境变量,这就是个很容易的事情,那在这个shell里就变成个全局的东西了(谁都能改),这是方便的(工具干的事情),但问题是这个东西

可能被其他程序改了,被谁改了你是不知道,这就是个不严谨的东西,那我要实现一个严谨的,带命名空间的,所有环境变量都有命名空间,命名空间有权限,权限

需要验证,这就麻烦了,这套东西就是程序该做的事情.我只是举个例子.

目前比较流行的编程语言:

1、Ruby

Ruby于1993年2月24日开始编写至1995年12月才正式公开发布,一种为简单快捷面向对象编程而创的脚本语言,Ruby是一个语法像Smalltalk一样完全面向对象、脚本执行、又有Perl强大的文字处理功能的编程语言。

2、Perl

Perl ,一般被称为“实用报表提取语言”(Practical Extraction and Report Language)。他于1987年12月18日发表。Perl借取了C、sed、awk、shell ing以及很多其他程序语言的特性。其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。简而言之,Perl像C一样强大,象awk、sed等脚本描述语言一样方便。

3、SWIFT

SWIFT,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Object-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。

4、php

PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用,目前版本已经更新到5.4.23,由于其学习成本低,开发效率高,扩展函数丰富,成为了最流行的服务器端脚本语言。

5、Python

Python(KK 英语发音:/ˈpaɪθən/)是一种面向对象、直译式计算机程序设计语言。也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。 Python语法简捷而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。Python的名字来源于一个喜剧。也许最初设计Python这种语言的人并没有想到Python会在工业和科研上获得如此广泛的使用。

6、c#

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。

7、java

ava是一ava是一种由Netscape的Live发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Java,提供了数据验证的基本功能。所以,Java 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。

推荐下我的前端群:524262608,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的前端资料和零基础入门教程,欢迎初学和进阶中的小伙伴。

8、C++

C++是一种面向对象的计算机程序设计语言。C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。

9、C

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

10、java

Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

有一天我跟在 DUMBO 的一个非常棒的创业公司的老板聊天 谈到为什么非PHP界的开发人员普遍轻视PHP和PHP相关社区 他提出了一个观点让我印象很深 很大程度上是因为以前从来没有听到过这样的说法

如果你不知道大多数的程序员都会对PHP发什么样的牢骚 那么 这些牢骚差不多会像这样

语法丑陋

缺乏其它语言都有的一些必要的特征(在 版本之前 没有命名空间 闭包)

不一致的函数命名 使用惯例 以及其它一些怪异的东西

过程和面向对象的杂混

基本上 %的PHP项目都烂如一堆狗屎

但他所说的PHP的问题却是另外一个问题 他并没有说这种语言有问题——他认为这种语言被一种常见的文化现象包围着 是一种通常由语言的创造者造就的文化传统 现在看来这对一些糟糕的编程实践方法起到了鼓励作用 也就是它使PHP代码变的劣质和不可维护

这种一个语言或框架上体现出创始人的哲学思想并被相关社区推崇的现象是的确存在的 他拿出来Ruby和其创始人 Matz 作为例子 Matz想要的是一种易读易写 能提高程序员工作效率的语言 没看见Ruby开发人员们言之必称快速开发以及这种语言的优雅?

接着就是 DHH 和他的Rails框架 还有 Guido 和他的Python语言 于是我在想 Ra *** us 对于PHP呢?

Ra *** us Lerdorf给人的印象非常的有趣 他创建了最初版的PHP语言 而且一直在改进这种语言 他在PHP社区里被当作神一样崇拜 他在PHP的任何方面都 享有最大的权威 他被众多的会议邀请去做演讲 同时被大网络公司(yahoo )所雇用 他获得了所有人的尊敬——尽管有这样一种事实 他成了大多 数的非PHP程序员所鄙视的PHP上的众多问题的形象代表

Ra *** us倡导避免使用框架 而把PHP更多的当作一种模板语言 对他来说 这种做法能产生直接的运行效率和可扩展性(程序负载可知) 而对于其 他的所有人来说 这种做法导致了大量的乱炖似的过程式代码 大量的无法维护的项目 自从 年PHP诞生至今大概 年左右的时间里 所有的PHP项 目都是按照这种指导写成的

与此同时另外一个问题突然的出现了 在PHP 之前 PHP的初期 PHP获得了大量的新手的追随 这种语言的入门门槛出奇的低 任何人都可以 下载自解压的×AMP Windows程序安装包 在 两分钟内用上这种语言 除此之外 那时在Web开发方式上对MVC模式的共识并没有真正的出现 这样一来你可以想象 一群 新手和一个缺乏好的开发实践方法的语言组合到一起能创造出什么?一堆无法维护的垃圾 而且整个大环境都是这样

不要误解我的话——优秀的PHP开发者还是不少的 即使是当时 但是 就像我说的 粗制滥造的菜鸟作品到处都是 当牛仔式无羁的PHP程序员在没有 指导原则的情况下聚集到一起开发程序 于是像PHPbb PHPNuke以及很多的粗糙的 php 程序包就出现了 但是你能单纯的责怪PHP开发人员吗?不能!其它的Web语言巨人 ASP和Perl 同样恶 名远扬 同样宣传着一种乱炖式的开发方式

所以这就是为什么PHP会得到这样的骂名 是因为它的历史流传 大多数已经转向Python Ruby和Java的PHP开发人员并没有在MVC概 念兴起时回头去重新思考这种语言 此外 更有一些像”Ruby公子“Zed Shaw抱怨一些程序员的思想”受PHP毒害“这样的露骨的讽刺 像这样的言论在 RubyInside 上很盛行

PHP是个集中营

但像Zend和CodeIgniter这样的框架的出现把这种语言推向了正确的开发方向上 事实上 它把PHP推向了与Ra *** us所希望看到的相反的方向上了 查看一下Zend和CodeIgniter框架 你会发现它们是为数不多的文档写的很好 代码写的很好的程序

大多数学习了Ruby的开发人员同时都要学习Rails和MVC知识 PHP在此之前已经被使用了整整 年 对于那些新手来说 可恶的Ruby没 有给他们这段时间让他们自由发挥 Rails有现成的标准指导 它的入门门槛相对高很多 通常会把一些缺少经验的开发人员挡在门外

事实上 PHP应用程序是可以向其它种语言那样写的很好 而且还会具有一定的运行速度上的优势 PHP世界里的MVC风格的开发方法兴起只是在近几年才出现的现象 不得不承认 我们应该感谢Rails带来的这种变化

那么 PHP如今是个什么样呢?

各种标准(非统一 但大多数项目使用MVC 很少有垃圾般的过程式程序)

很低的入门门槛

速度和可扩展性(在各种脚本语言里PHP应该是最好的)

有一个好的单元测试框架

有最好的各国语言翻译的文档

除此之外 互联网上大多数有影响的网站都使用PHP作为它们后台的语言或工具 诸如Facebook Digg 维基百科 Wordpress Drupal等等 我相信 对PHP有一个深入的掌握会使一个程序员打开更多的未知领域的大门

如果你不赞同上面所说的 请留下评论 或email给我——我想听听你为什么不这么认为

事实上 我并不是一个PHP迷 我对语言没有感觉 我使用PHP大多是因为——你猜到了——有人愿意付钱给我 所以一切归咎于此

如果你希望在软件设计上做出明智的决定 PHP是你开发Web应用程序的最佳选择

lishixinzhi/Article/program/PHP/201311/21122