软件(英语:software)是一系列按照特定顺序组织的计算机数据和指令,是计算机中的非有形部分。计算机中的有形部分称为硬件,由计算机的外壳及各零件及电路所组成。计算机软件需有硬件才能运作,反之亦然,软件和硬件都无法在不互相配合的情形下进行实际的运作。
一般来说,计算机软件划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
编程语言(英语:programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。通常程序员使用编程软件来操作编程语言,以更方便直观快捷地编写、排错和阅读等,编程软件让我们事半功倍。
系统软件:操作系统Unix、Windows、Mac OS、Linux的故事
我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户。在服务器领域,恐怕Linux是无人不知无人不晓。他们都是操作系统,也在自己的领域里独领风骚。这都还得益于另外一个古董级别的操作系统——Unix,虽然说古董级别,只是他年纪大了,性能和功能,Unix依然有着顽强的生命力。
我们来沏杯茶,回顾Unix的传奇,讨论讨论Windows与Mac OS的恩恩怨怨,还有Linux的迅速崛起。
Unix 传奇
时光追溯到上世纪六十年代,多数计算机都采用批处理命令。为了研发一个多用途,多用户的操作系统。有三个著名的公司联合起来进行研发。三个知名的公司是美国电话及电报公司(American Telephone and Telegraph Inc.;AT&T)、通用电器公司(General Electrics;G.E.)及麻省理工学院(Massachusetts Institute of Technology;MIT)。整个项目研发出来的操作系统被称之为MULTICS。可是后来,MULTICS项目开始迷失,目标过于庞大,功能过于复杂,研发的人们越来越不明白这个项目将会如何走下去。最终隶属 AT&T 公司的贝尔实验室(Bell Labs)退出了这个项目。
值得一提的是 Bell Labs 。这个实验室在整个人类科技史上都占据重要地位,电话就是在这个实验室诞生。里面有着才华卓越的工程师和黑客。由于贝尔实验室退出了MULTICS,那些习惯了使用MULTICS的贝尔实验室工程师突然之间无法使用MULTICS,这无疑类似把剑客的剑给没收了。当时贝尔实验室有个叫Ken Thompson的人,他负责为为MULTICS这个操作系统写游戏了个叫“Space Travel”的游戏。为了让这个游戏能继续下去,他不得不重新编写一个操作系统。当他去申请计算机的时候,显然领导不会因为一个游戏批准你一台计算机。早起的计算机并不像我们现在的pc机那么小巧。当时计算机可是巨无霸,每一台的造价也极其昂贵,只有企业和科研机构才能买得起。
数字设备公司(Digital Equipment Corporation;DEC)生产两种小型计算机 pdp系列和vax。 Ken无法得到pdp-11,却在一个角落了发现了pdp-7,虽然这个机器已经落后, Ken还是觉得如获至宝,随后他很顺利的用汇编完成了操作系统,并写完了游戏。有趣的是,Ken的一个同事Brian Kernighan非常不喜欢这个系统,嘲笑Ken Thompson说:“你写的系统好真烂,干脆叫Unics算了。”(unics在英文里表示单一,与mult相反)。Ken对Brian的评价到没有多大排斥,本身他的目标是游戏,而不是操作系统,也接受了同事的命名。然后他更乐于推广他的游戏,让同事们茶余饭后娱乐娱乐。那时是1969年8月,恰巧这一年,芬兰诞生了一个婴儿,Linus Torvalds啼哭的来到这个世界。
事情总是环环相扣,可是谁也不知道这环将会扣向哪一环。Ken的另一个同事Dennis Ritchie对Ken的游戏没有多大兴趣,倒是对Unics情有独钟。当时Ken用汇编完成的Unics,如果换到pdp-11上,Unics想要运行必须重新冲重新编写代码移植。Ken无法为当时不同的机型提供上百个Unics版本。这时,Dennis Ritchie 在BCPL基础上,开发了一种新的高级语言将Unics重新写了一遍,并命名为 UNIX。这个语言是将BCPL语言进行了升级,也就是后来大名鼎鼎的C语言。尽管是游戏和嘲讽,Unix和C诞生了,并且完美地结合成为一个统一体,C与Unix很快成为世界的主导。新的历史,开始了。
当时的美国公司,工程师研发完毕,往往会有休假,一休就是一年。旅游,探险都是好方式,可是 Ken选择了到伯克利(Berkeley)进行教学。也难怪欧美的教育科技那么发达,总有黑客将知识和技术进行传承。由于当时AT&T被美国反垄断制裁,Bell实验室不能销售Unix。只能无偿提供大家学习研究。正是因为这样开放环境,使得Unxi的功能和特性被不断的丰富。在Berkeley,有一个专门研究UNIX小组,他们为UNIX提供了很多新特性,例如著名的 TCP/IP协议。并完成了BSD版本。很快,就有公司看到了BSD的商机,分分购买BSD进行商用。
这个时候,AT&T公司对其他机构拿着Unix赚钱自己却一无所获很不爽。那是一个AT&T妄图私有化的Unix的时代。为了私有化Unix,1986年IEEE指定了一个委员会制定了一个一个开放作业系统的标准,称为 POSIX (Portable Operating Systems Interface)。并和BSD进行法律官司,AT&T再次被反垄断,这场官司一直打到 AT&T再将自己的Unix系统实验室卖掉。当然,AT&T的Unix取得了这个标准制订战争的胜利,并取得了Unix注册商标。此时BSD的拥护者自喻为冷酷无情的公司帝国的反抗军。独立的Bell实验室就可以单独销售Unix,当时价格昂贵。也就在这个时候,人们被昂贵的Unix吓怕了,使用的人数骤减。与此同时,Berkeley BSD小组的Bill Joy开始创办了一家公司,也就是后来全球知名的SUN公司。就销售量来说,AT&T/UNIX始终赶不上BSD/Sun。并且Sun生产的小型工作站,风靡整个市场,很快就将 DEC 击败,并且让DEC退出了历史舞台。
BSD 仍然还在官司缠身,可是其他公司都看到了UNIX的商机,分分投靠 AT&T 并开发自己的Unxi,其中有著名的IBM的AIX,HP的HP-UX,SUN公司的Solaris,还有西雅图一个不知名的小公司,也生产着一个叫XENIX的Unix。时光继续走着,这个小公司的三个创始人打着扑克,心里还在构思。自己的公司如何挑战并取代那些巨无霸公司,成为是Microsoft未来的梦想。
Windows与Mac OS的恩恩怨怨
毫无疑问,Unix的诞生,对与计算机的发展起到了至关重要的作用。人们可以通过操作系统去使用计算机。然而在当时,尽管DEC生产的小型机PDP系列和VAX系列比起早起的巨无霸已经算是比较苗条了,可是对于个人而言,计算机还是相当大的东西,并且造价昂贵,无法进行民用。
为了将大型计算机缩小体积,很多公司都在尝试。1975年,IBM推出了早起的PC兼容机。我们知道,操作系统与CPU是有直接关系,不同的cpu运行的操作系统是不一样的。当时Unix价格昂贵,IBM一台PC兼容机造价2w美元,操作系统都要花4w。这样还是无法民用,因此IBM选择了一家小公司Inter生产的X86系列的cpu。Inter是小公司?没错,当时确实是这样,小到不起眼。而主流生产cpu的却是摩托罗拉,摩托罗拉生产的M6800比Inter的技术和设计上都要先进很多,更重要的是这个可以运行Unix。IBM放弃了兼容机上的Unix,因而不得不自己写出了一个兼容X86的操作系统——PL/M。当然这个东东造价也不菲。
微软联合创始人Allen同学Tim Paterson原本是打算写个东西用来测试的16位Intel 8086 CPU界面,于是花四个星期写了一个操作系统。当Bill Gates得知之后,马上花5W美元买下了这个系统,Tim Paterson欣喜若狂,四个星期就赚了一大笔,简直像做梦,赶紧和Bill签订合同,Bill得到之后并命名为DOS。随后,Bill通过其IBM董事会成员的妈妈,得以和IBM高层谈判。IBM兼容机的操作系统价格昂贵,不适合卖个普通用户,IBM定义的主要对手是如火如荼的Apple,IBM想要压制apple就需要廉价的计算机。微软可以提供廉价的DOS,当然不是卖操作系统,而是卖操作系统的许可。每台IBM兼容机都捆绑一个DOS。Bill的招数就是捆绑,从dos到IE都是如出一辙,当然特别奏效。IBM也没想多少,他们认为硬件才是赚钱的根本,DOS也便宜。两者结合,果然市场颇受欢迎,Bill也赚到了千万刀。
IBM兼容机逐渐推向市场,与Apple一较高下。此前,在一个车库,两个年轻的极客,一个对机器怀有无比的热情,另外一个则对改变世界十分狂热,两个人黏在一起,创立了一家伟大的公司Apple。与IBM兼容机不一样,Apple的早期微机,采用是摩托罗拉的cpu和unix。Jobs独特的艺术气质与Wozniak的技术天才,让Apple的微机在市场上极受欢迎。
Jobs对技术和艺术的卓越追求,让他不断的改进Apple的电脑。1973年施乐(Xerox)的PARC研究所开发出GUI接口与鼠标(题外话,历史上有两个著名的雷锋实验室,前面提到的Bell 和 这个 Parc)。但是Xerox本身是生产打印机的,董事会莫名其妙的觉得GUI一旦出现,顾客就不乐意使用打印机,因此对Park实验室的成果冷淡的打入冷宫。
1979年乔布斯到PARC研究所看到Xerox原型机Alto。敏锐的Jobs立刻发现了GUI和鼠标的商业价值,很快他就说服Xerox公司,以一个极低的价格买下了GUI进行研究。1983年苹果公司推出了Apple Lisa,首次采用GUI的商品化计算机。Lisa一诞生,就震撼了整个微机市场,那个车库里的年轻人因此身价过亿。
Apple蒸蒸日上,Mcriosoft的Bill心里可不是滋味。现在人们习惯把Jobs和Bill进行比较,不可否认他们都很伟大,至少在IT领域。不同于Jobs的完美主义和偏执狂的作风,Bill更圆滑和更中庸。Bill找到了Jobs,大加赞赏了Jobs的伟大,然后卑微的祈求一份Apple的GUI,并承诺Microsoft的一切成果都是Apple的。不可一世的Jobs答应了,Bill得到了Lisa原型机,马上组织团队研发,并在1990年5月份推出Windows3.0并一炮而红。商业上取得惊人的成功。打破了任何软件产品的六周内销售记录,从而开始了微软在操作系统上的垄断地位。
此时Jobs发现了Bill这个小偷,勃然大怒,可是为时已晚。对此,Bill并不否认,反而很得意讥讽乔布斯说:“我们有一个富邻居——Xerox,他家有一台电视。当我们想偷的时候,发现乔布斯早就偷走了,可他却说我们是小偷。”他们两人,都验证毕加索那句著名的格言:“好的艺术家抄袭,伟大的艺术家偷窃。”
但是Jobs心有不甘,因此着手研发Macintosh,由于Macintosh造价昂贵。在市场上逐步落后与Microsoft的Windows。Windows持续发展着,对于Jobs,Apple正在酝酿着一个地震,1985 Jobs被赶出了Apple。
此时,Unix在干嘛呢??Unix正忙着和BSD打官司,也正是这些时间,错过了操作系统发展的黄金时间,当Microsoft和Apple逐渐由小人物变成巨人的时候,Unix已经脱离了商业的主流。尽管如此,Unix先天的优雅并不会就此沉沦,DEC生产的机器,原本是自有操作系统,随着后来Unix的发展,不得不买PDP和VAX的时候添加Unix。其中VAX本身有一个操作系统VMX。由于Unix的入侵,VMX团队面临解散。
Windows风靡市场,一时洛阳纸贵。可是早期的windows并不稳定,蓝屏是家常便饭。Bill并没有偷到Jobs的核心技术,只获得了GUI。因此windows可谓先天的不足。郁闷的Bill找到了同样郁闷的VMX团队。很快两个失意者结合。Microsoft死活硬凑的将windows和VMX结合,诞生了Windows NT。NT诞生不久又出现了Server版本,Server的诞生,敲响了另一家公司的丧钟。当时网络已经出现,Novell生产网络操作系统占据网络统治地位,可是NT的出现,Novell的生命也走到了尽头。
被赶出Apple的Jobs同样没有停止他的步伐,Jobs离开Apple之后创办了如今三维动画巅峰旗帜的Pixar公司.并且Apple在对Microsoft的竞争中逐步走向衰败,Apple董事会不得不重新召回Jobs挽救Apple日益颓废的江山。Jobs果然是帮主,他的回归,Apple散发了第二春,几款革命性的产品iPod,iPhone将Apple再一次走到了世界的巅峰。MacOS成为了人们热衷的操作系统,这个曾经败给Windows的操作系统又回来了,并且在移动断,iOS也成为了霸主,后来Google 的Android加入争斗,那是后话了。
Microsoft的 windows xp成为微软史上成功的操作系统。可是Jobs回归之后的Apple,XP丑陋的界面很难和炫目的MacOS较量。Microsoft早期和IBM共同研发OS/2,由于后来和VMX的结合而退出了OS/2。IBM又一次验证了谁跟微软合作谁被坑的规律。可是针对MacOS,Microsoft一直对和VMX的结合产品心有余悸。最终用低价从IBM手下买回了OS/2,并重新拼凑了一个“绚丽”的操作系统Windows Vista。
显然,OS/2被IBM定义为史上最失败的产品,具有讽刺的是,Vista也不约而同的被Microsoft定义为失败的产品。Microsoft不得不在短时间内重新开发。推出了Xp的取代者——Windows7。先如今,Microsoft在互联网遭遇Google强大的统治, 移动方面windows phone也生存在Apple IOS的阴影之下。
曾经强大到像日不落帝国的Microsoft,也在谋求着新的蜕变。当然,Microsoft依然统治着桌面操作系统,在服务器端,另外一个崛起的不是Unix,不是MacOS,也不是Wndows的操作系统,他已然加冕成为新的王者。那就是Linux的故事,这个故事也很有趣,伴随自由的运动,黑客的分享的精神。比起之前少了很多商业的争斗气息,更多是那些黑客传奇的故事。我们得重新打开历史书,回到1991那年的夏天,阳光明媚的芬兰赫尔辛基大学的校园里...
Linux的崛起
我是你可怕的恶梦——Eric Raymond
Eric Raymond,黑客,他写了一篇论文《大教堂与市集》,也写过一本书叫《unix编程艺术》。于是整个世界都改变了。
纪录片《Revolution OS》描述,一次开发者大会,他遇到一个微软工程师,看见衣服上Microsoft的标志便询问对方:“你为微软工作?”当那位西装革履的工程师带有嘲讽和鄙视看着这个衣着普通的黑客回复:“是啊,你呢?”Raymond送去了一个微笑:我是你们可怕的恶梦。
黑客是Microsoft的恶梦?不,不仅仅是,黑客是一切不自由的恶梦。电脑和网络,已经成为现代社会和文明不可或缺的产品。很多人电脑使用Microsoft的windows系统,而这些机器所访问的web页面。其背后的服务器系统却是Windows的死敌——Linux。相比Windows成为家喻户晓并家家都在使用的操作系统。Linux很少被普通人知道,但是这并不妨碍它的伟大。他们分别在桌面和服务器两个环境,各自称霸着世界。
谈到Linux的起源,这个故事平凡却扣人心弦。1991那年,对于芬兰人绝对是一个有意思的一年。世界上首次全球通对话在诺基亚的Radiolinja网络中完成,诺基亚征服世界的脚步已经无法遏制。
与此同时,阳光明媚的芬兰赫尔辛基大学的校园里,一个少年正好拥有了一台完全属于自己的电脑,不必再忍受学校机房漫长的等待。他当时对安德鲁·塔南鲍姆(Andrew Tanenbaum)的著作《操作系统:设计与实现》——一本Minix操作指南深深着迷。
由于AT&T对于Unix商业化,而后将Unix进行了闭源。Andrew所教授的课程《操作系统》却没有了“操作系统”。对此Andrew一咬牙,狠狠心,写出了一个兼容Unix的操作系统。人家就是厉害,你不给我使用,我自己写一个出来用。尽管Andrew的成果很简单,但是还是具备了Unix的基本功能,当然比较mini,因此命名为Minix。Minix作为Unix的变种,彼时的Minix正凭借低廉的价格和简易的操作在大学大行其道。
Minix由于过于短小精悍,只能运行这一种机器,其他机器没有驱动。Andrew的学生就写了好多好用驱动来扩展Minix。可是,教授Andrew却觉得自己的操作系统要保持纯洁,不能有其他的代码来源。于是学生们就很郁闷,其中就有个叫Linus的同学。
拥有自己的PC的Linus却不能将Minix运行在自己的电脑上。Linus也不得不走上了他无数前辈的道路,不让用,不给用,那就自己写一个操作系统来用。仅仅两个月后,一个“千疮百孔但却碰巧可以使用”的磁盘驱动程序和一个小到不能再小的文件系统就诞生了,这就是第0.01版的Linux。随后Linus将操作系统上传至FTP,并公布了全部源代码。在USENET讨论区,Linus阐述其初衷:在新操作系统中,“人们可以自己编写驱动程序,可以随意修改操作系统以适应不同需求,可以尝试在Minix上运行所有程序,这是Minix从未有过的美好一天。”
美好的日子渐渐来临,Unix生态还是老样子,在商业的争斗中裹足不前。Microsoft和Apple的争斗也逐渐明朗,Microsoft靠卖软件大发特发。这让一个黑客很不满。
理查德·斯托曼(Richard Stallman)登场,他认为所有软件都是人类智慧和思想的结晶。软件应该自由的让人们使用。1983年,Stallman发起了“GNU(GNU’s Not Unix的递归缩写)”计划,目的是创建一套完全自由的操作系统,以“重现软件界合作互助的团结精神”。他以“著佐权”(copyleft)标准为范本拟定了一份通用公用版权协议(General Public License,GPL)。与强调个人版权但限制自由传播的著作权(copyright)不同,GPL更强调公共版权和鼓励自由传播,它允许修改程序、复制软件和销售获利。但前提是公布修改后的全部源代码,必须保证自由思想的传递。GNU计划激发了软件界极大的热情,世界各地的软件奇才们纷纷参与其中。并且开发出包括文字编辑器Emacs、C语言编译器,gcc以及大部分UNIX系统程序库和工具在内的绝大多数软件,很多免费软件的水平甚至都已经超过了相应的付费版本。
可是问题又来了,GNU编写了很多自由免费的软件,可是这些免费软件却运行在不自由的Unix上,这真是一个巨大的讽刺。Stallman承诺大家要两年内重新写一个操作系统,可是五年过去了,依然看不清成功的那一天。
与前面很多故事一样,事情总是环环相扣,可是谁也不知道这环将会扣向哪一环。Stallman苦于没有操作系统,芬兰的那边,Linus只有一个操作系统内核而没有应用软件。
于是,他们在各自的领域奋斗多年之后,命运终于安排他们走到了一起,Linus率领Linux加盟Stallman的GNU计划,上帝说要有光,于是牛顿出生了;人类需要自由,于是Linux与GUN结婚。这一“联姻”堪称是软件界的天作之合。
1992年,在Linux Kernel平台上工作的开发者只有100位,平台中的核心代码只有几万行。如今,在平台上工作的开发者已经多达1000人,人员的背景也从最初的黑客扩散至更多的行业,平台中的核心代码则已经超过千万行。
1998年,全球前500台超级计算机中还只有1台运行Linux。今天在全球前500台超级计算机中,有413台选用Linux。这些计算机遍布世界各地的多个行业,共同主宰着这个智慧的地球。
大到航天科技,小到IC卡芯片,无不存在Linux的影子。在移动领域,Android来势汹汹,已经逾越IOS成为移动的王者,完成了对windows的完美复仇。
Linux“可自由扩散”并不等同于“缺乏支持”和“业余水平”,恰恰相反,正是起开发的政策,让无数天才黑客参与进来,这是自由的胜利。
就连商业软件公司也参与进来,这些公司技术雄厚又善于市场运作,开创了新的商业模式——销售服务而不是软件。使Linux从网络黑客和业余爱好者自娱自乐的工具,变成了一个具有全球影响力的软件帝国。
98年的奥斯卡颁奖典礼上,当卡梅隆手握“最佳导演奖”的小金人,模仿《泰坦尼克》中的男主角Jack发出“我是世界之王”的宣言时,全世界无不为之倾倒。影片中那被重新描绘过的“唯美”海难,使人们惊叹于卡氏的神奇。但完美的电影也使人们忽略了另一个伟大事实:电影史上崭新的技术时代悄然来临。而这一时代,是由Linux开启的。
从那时开始,梦工厂、迪斯尼、皮克斯等公司都逐渐将各自的工作平台转向Linux,无数伟大的银幕经典因此横空出世。从《魔戒》到《金刚》,从《哈利波特》到《霍比特人》,再从《指环王》到《阿凡达》,Linux几乎以一己之力缔造了无数人梦中的玄幻王国。也是从那时开始,Linux终将埋葬Microsoft就开始成为江湖中著名的传说之一。
悠悠苍天,传来一股由弱变强的声音——我是你最可怕的恶梦!
编程语言
王国维在《人间词话》里写道:古今之成大事业、大学问者,必经过三种之境界:“昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境也。“衣带渐宽终不悔,为伊消得人憔悴。”此第二境也。“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。”此第三境界。概括了一种锲而不舍的坚毅性格和执着态度。
“知道自己不懂”是为第一境界;“不知道自己懂”是为第二境界; “知道自己懂了”是为第三境界。
无论你是小白,还是小白,还是小白,你在学习编程的过程中都会深深的体会到这三句话太准确了。学习编程意味着我们将要进入一个与日常生活经验迥然不同的新领域,这最初的曲折辛酸,以及逐渐初窥门径、小有所成并最终笑傲江湖、独当一面的欣喜正是上面所说的学习三境界的真实写照。这篇文章将要介绍计算机编程的前世今生,如果你想要了解程序猿这一高收入人群的真实生态,这篇文章就是IT界的《物种起源》,为你道尽它们的演化历程和苦乐悲喜。
电脑的诞生
首先我们热烈欢迎世界上最早的电脑登场,对,它的名字就叫安提基特拉机械,被认为是最初的电脑,展示于雅典国家考古博物馆。
此机械是在希腊安提基特拉岛附近的安提基特拉沉船里发现的,所以叫安提基特拉机械。它诞生于公元前100年左右,属于模拟计算机,至今已有二千多年历史。类似的复杂工艺技术直到14世纪时欧洲制造了天文钟后才重新出现。它是古代人类智慧的最高杰作之一。
那么,真正的近代的电脑诞生于什么时候呢?答案是1945年,诺伊曼发明数字式电脑。此处应该有掌声。
诺先生规定用二进制替代十进制运算,并将计算机分成五大组件,他的思想为电子计算机的逻辑结构设计奠定了基础,并且已成为计算机设计的基本原则。
1951年,EDVAC计算机宣告诞生。由于他在计算机逻辑结构设计上的伟大贡献,诺先生被誉为「计算机之父」。
由上图可以得知,直到93年,我们现在一般用户熟知的window操作系统才诞生。
电脑程序运行的基本原理是什么?
感谢诺先生,没有他的发明,小编今天就不能够在电脑面前给大家科普了。接下来小编首先给大家分析一下开启计算机主机的那一瞬间,桌面蹦出来的画面是怎么回事。
在一台电脑里有很多程序。其中,计算机做任何事情之前必须存在和运行的最重要的程序是操作系统程序。对,没错。就是你每次开机时候看到的那个熟悉的画面,伴随着叮当叮当的音乐,世界首富比尔盖茨的微软公司就是靠发明这个windows系统发大财的。这是计算机的主要“系统程序”。此操作系统程序不仅控制硬件部件,还控制其他软件(许多应用程序),还可让计算机用户与计算机本身进行互动(比如通过键盘,触摸屏,语音激活等等)。实在是万能之神啊。
什么是计算机语言?
与人类语言的复杂多变一样,现在世界上已经有200种以上的计算机语言了。当然其中也有很多几乎很少使用的语言,实际经常用到的语言只有20到30种。尽管如此,一个人要掌握太多计算机语言的话还是比较难的。
在那么多的程序设计语言中,学习哪个才好?下面是最常用的语言,程序猿们的本事可不仅仅是直立行走那么简单,掌握这些工具中的大部分,并且精通其中的一两种,才是一只合格的现代程序猿。
人类语言是指,人类用特定的格式和词汇来向他人发出指令,表达意愿,进行交流。不同种类语言的词汇和格式不尽相同,但可以达到相同的交流目的。
同样,我们也可以用“语言”来控制电脑,让电脑为我们做事情,这种语言叫做编程语言(Programming Language)。我们先简单介绍一下常用编程语言。 编程语言也有固定的格式和词汇,我们必须学会使用,才能在此基础上编写程序控制电脑。常用的编程语言有C语言,C ++,Java,C#,Python,PHP,JavaScript,Go语言,Objective-C,Swift等等,每种语言都有自己的优点。
计算机是如何听懂编程语言的呢?实际上,如果没有编译器(一种专门程序)的存在,计算机是无法理解编程语言的。编译器用来将编程语言编写的指令转换为机器语言。打个比方,人类有自己的人类语言,计算机也有自己的语言系统。它们使用只包含1和0的二进制代码,1表示“on”,0表示“off”。编程语言更容易被人类所学习和掌握,而编译器编译出的计算机语言则更容易让计算机接受。
程序猿使用编程语言编写的程序代码,编译器可以理解,编译器会将源代码转换为二进制代码(目标代码),然后汇编程序帮助这个目标代码转换为低级指令,指示机器执行,最后重新获取结果。
为什么要有编译器的存在呢?
简单的回答是,虽然编程语言已经编写代码告诉计算机该怎么做了,但计算机只能理解两种不同类型的数据:开和关。实际上,一台电脑实际上只是一个开/关(晶体管)的集合。计算机所做的任何事情背后的真相只不过是无数晶体管的开闭组合。
二进制码就是作为1和0的表示的组合,其中每个数字表示一个晶体管。二进制代码分为字节组,8位数组表示8个晶体管。例如,11101001。现代计算机包含数百万甚至数十亿个晶体管,这意味着无法想象的大量组合。
于是这里出现了一个问题,为了能够编写一个计算机程序,打出数十亿的1和0将需要超人的脑力和精力,编一个小程序可能需要一两年的工作。编程语言和编译器中,前者对人友好,后者对机器友好,两者通力合作,才能将人类的想法快捷而准确的传达给计算机。
为什么会存在那么多的计算机语言?
数百种不同的编程语言使我们有可能创建计算机软件,应用程序和网站。而无需编写二进制代码,他们让我们相对容易的编写,阅读和理解代码。同时,每种语言都带有自己特殊的编译器程序,它负责翻译我们编写的二进制代码,让机器明白我们的意图。
那么,为什么我们有这么多语言呐?
这是因为不同的语言被设计为用于不同的目的,一些可用于Web开发,一些用于编写桌面软件,其他用于解决科学和数字问题等。此外,编程语言也可以是低级或高级的。低级语言更接近计算机所理解的二进制代码,而高级语言更容易编程,因为它们接近人类的语言和思维模式,设计简单易于编写。几乎所有的主流编程语言都是高级语言。
编程语言生成的程序代码是什么样的?
程序是一种用特定编码语言编写的文本文件。程序文件中的代码称为源代码。每个编码语言都有自己的文件扩展名,用于识别用该语言编写的代码文件。例如,Python是'.py'。要编写程序,可以在纯文本编辑器(如记事本)中编写代码,并将文件保存到计算机。
如何运行一个程序,并实际得到它来执行命令?编码语言之间有所不同。一些语言保存到计算机后可以生成可以直接运行的单独二进制文件,而其他语言的程序由某些软件间接运行。例如,JavaScript程序文件将通过Chrome浏览器等运行。PHP程序文件将由像LAMP这样的Web服务器运行。
以hello.py文件为例,Python语言附带一个命令行,它将显示程序的输出文本“Hello,world!”。如果要将代码输入命令行并按enter键,程序将运行并且命令将被执行。是不是成就感油然而生啊。
运行程序时会发生什么?
电脑实际上并不了解“Hello,world!”这个短语,不知道如何在屏幕上显示。它只能理解开关。所以要真正运行一个命令,如打印“Hello,world!”,它必须将程序中的所有代码翻译成一系列可以理解的代码。
首先,源代码被翻译成汇编语言。汇编代码被翻译成机器语言。机器语言直接作为二进制代码执行。我们再来理解一些细节。编码语言首先必须将其源代码转换为汇编语言,一种使用单词和数字来表示二进制模式的超低级语言。根据编程语言不同,这可以用解释器(程序被逐行翻译)或编译器(程序整体翻译)来完成。
然后,编码语言将汇编代码发送到计算机的汇编器,该汇编器将其转换为计算机可以直接理解并直接作为二进制代码执行的机器语言。
结论
像二进制代码(计算机的母语)一样简单和原始的东西可以创建计算机软件这样复杂的东西,这是不是很令人惊奇呢?屏幕,操作系统,照片,视频,互联网,微信,在线银行帐户和本网站,所有这些都可以从1和0构建。编码语言存在的全部原因是为了简化所有这一切,这是人类智慧成就的象征。
最后,最重要的是,有一个循序渐进的行动计划,从学习编码开始,你就将进入一个全新的世界。加油吧,少年。
常见几种生产性编程语言的特点:
- Python:以其简洁的语法和强大的库支持而闻名,适用于数据科学、人工智能和网络开发等领域。
- C:历史中使用最为广泛的编程语言,可以直接操作内存和硬件,适用于系统底层、驱动、嵌入式开发。
- Java:跨平台的编程语言,广泛应用于企业级应用、Android 开发和大型系统开发。
- C++:提供了面向对象的特性和高性能,适合游戏开发、高性能应用程序和系统软件。
- C#:由微软开发,与.NET框架紧密集成,常用于Windows应用程序和游戏开发(尤其是使用Unity引擎)。
- JavaScript:主要用于网页和服务器端开发,是前端开发的核心语言。
- Go:由Google开发,以其并发机制和高效的内存管理而受到欢迎,适合云服务和微服务架构。
- Swift:苹果开发的编程语言,用于iOS和macOS应用开发,以安全性和性能著称。
- PHP:广泛用于网页开发,特别是服务器端脚本。
- Ruby:以其优雅的语法和Rails框架而知名,适用于快速网站开发。
- Objective-C:一种面向对象的编程语言,曾是macOS和iOS系统上层应用的主要语言。
- R:专注于统计分析和图形表示,是数据挖掘和统计计算的热门选择。
- SQL:结构化查询语言,主要用于数据库管理和操作。
应用软件
应用程序(英语:application program)或应用软件(application software),简称应用(app),是计算机软件的主要分类之一,是指为针对用户的某种特殊应用目的所撰写的软件,例如文本处理器,表格,会计应用,浏览器,媒体播放器,航空飞行模拟器,命令行游戏,图像编辑器等。与之相对应的是主要功能为驱动计算机运行的系统软件。为移动平台所编写的应用被称为移动应用。
278ce934-53fd-484b-a7fa-8a4310ae1400.webp
软件开发是指使用编程语言如C#、 java 、 c++、vb等高级语言编写,满足用户不同领域、不同问题的应用需求而提供的应用软件的过程。
Scratch
Scratch是麻省理工媒体实验室终身幼稚园组开发的一套计算机程序开发平台,旨在让程序设计语言初学者不需先学习语言语法便能设计产品。开发者期望通过学习Scratch,启发和激励用户在愉快的环境下经由操作(如设计交互故事)去学习程序设计、数学和计算知识,同时获得创造性的思考,逻辑编程,和协同工作的体验。即便用户从未学过程序编程,通过拖曳预先设定好的积木式程序模件,堆栈出指令,设置或控制角色及背景的行动和变化,从而完成程序设计。
VIA http://www.kepuchina.cn/w……
楼主残忍的关闭了评论