2015年5种可能将要面临死亡的编程语言

现在的开发人员都趋向于使用新的编程语言,那么旧的编程语言呢?它们的前途一般是这样两种:仍然可以使用,但逐渐不受大家欢迎;直接完全死去。

Perl

曾几何时,几乎每个人都在使用Perl语言编程。但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲。至少我知道有这么个叫做“piecemeal”的编程语言,它的创造者似乎就只是将这个功能堆在另一个功能上面而已,并没有好好考虑将它们结合在一起。

事实上,甚至是它的创造者也不得不承认这种编程语言是有问题的。经过完整地改造之后,现在的开发工作开始倾向于使用Perl6,这个大概是在2000年的时候。至于Perl?俨然已经销声匿迹了!所以完全没有必要去学习它了。顺便说一句,下面这个“Goodbye World”就是用Perl写的:

#!/usr/bin/perl
print “Content-type: text/html\n\n”;
print “Goodbye, world!\n”;

上面这个例子会出来一个网页。现在的Perl,由于可以作为CGI脚本语言,所以使用的最广泛的是在生成web页面上。但是为了适应时代的变化,我们最好还是将Perl语言“弃之如敝履”。

Ruby

关于Ruby,可以这么唱“十年之后,我不认识你你不属于我……”。因为就在10年前,Ruby语言可谓是风靡一时。它出生于1995年,5年左右达到它的鼎盛时期。如果你经常使用的话,绝对会义无反顾地爱上它。但是,像我们这些学着C语言风格长大的孩子在学习Ruby时往往会觉得有点囧。

下面是用Ruby写的“Goodbye World”:

puts ‘Bye bye, Miss American Ruby! Drove my Chevy to the Levie…’
puts ’2011 was the day that Ruby died, yeah…’

下面是一个用于计算阶乘的例子:

def fact(n)
  if n == 0
    1
  else
    n * fact(n-1)
  end
end
puts fact(ARGV[0].to_i)

我测试了这个例子,来计算1000的阶乘。下面是结果(由于篇幅限制,中间略过了2569个数字):

ruby fact.rb 1000
40238726007709377354370243392300…0000000

从各方面来看,Ruby都很好,几乎是一片赞誉声……除了Twitter。 在2011年4月,Twitter宣称他们已经将几乎大部分的代码都改写过了,以便不必使用Ruby和它的web框架——Ruby on Rails,据他们所说这个平台非常之低效。不过,我想说的是,也正是那一天起,Ruby开始走下坡路,使用的人数也是越来越少。

Visual Basic.NET

十年前,我应聘到一个需要重写大量代码的公司,名字我已经忘记了,主要工作就是将VB6转换为Visual basic.NET。大概就只干了一两个月吧,我就跳槽了:真心太痛苦了。

微软钟爱于BASIC编程语言的扩展可以一路追溯到1991年,那时他们刚刚采购了来自Alan Cooper的一个非常酷(对于那个时候而言)的可视化编程设计。Alan Cooper初期使用的是别的编程语言,但是比尔盖茨让他换成BASIC语言,因为盖茨认为那是当时最为简单的编程语言。于是乎,大名鼎鼎的Visual Basic,就从BASIC中衍生出来——对象这一概念以及新的编程技术问世了。

后面又发生了一些很有意思的事情。Borland Delphi的创造引领者,Anders Hejlsberg也到微软工作,并且引领创建了一个新的编程语言——C#。这种编程语言非常类似于Java语言。刚开始的学习或许有点难,但是一旦上手,你绝对会对它爱不释手。C#很快就成为了微软的旗舰编程语言。现在的话,在软件行业中,有很多很多需要C#的工作岗位,不少都是高薪聘用的。

虽然针对自己的CLR运行,微软创建了C#,但是它的工程师们另外还创建了一个盖茨深爱的BASIC语言版本,命名为Visual Basic.NET。该编程语言借用了BASIC语言的语法,但是它的编码方法却与C#相似。虽然Visual Basic.NET也在发展,但是优胜劣汰总是不可避免的——大家都选择了C#,于是Visual Basic.NET就成为了明日黄花。

下面是摘自微软网页上的一段Visual Basic.NET程序:

‘ Allow easy reference to the System namespace classes.
Imports System
‘ This module houses the application’s entry point.
Public Module modmain
   ‘ Main is the application’s entry point.
   Sub Main()
     ‘ Write text to the console.
     Console.WriteLine (“Hello World using Visual Basic!”)
   End Sub
End Module

(这里的“Hello World”也可以替换成“Goodbye World”,这个没关系。)

Adobe Flash和AIR

从技术上讲,这些都是平台,而非编程语言。我之所以将它们包含进来是因为如果你想要使用它们,就必须安装Adobe自己的ECMAScript版本,即ActionScript。 ActionScript是JavaScript(当前最流行的编程语言之一,因为它能用于所有的浏览器)的一个近亲。 ActionScript在ECMAScript(这是JavaScript实现标准的官方名称)中增加了一些细节;但是除了Adobe Flash,其他地方几乎没有ActionScript的用武之地。

你使用Flash不?乔布斯非常讨厌它,并且也不允许iPhone使用它。然后随着iPhone(以及随后的iPad)的逐渐普及,Web开发人员不得不创建不必依赖于Flash的网站。那些以ActionScript为生的开发人员也不得不纷纷下岗。(我曾经看到过一个Flash开发人员指责另一个JavaScript开发人员毁了他的职业生涯。)

Adobe也曾试图通过AIR以求得其编程平台的一线生机,于是配建了一个用于构建AIR app的工具,称为Flex。至于AIR,许多人都说,这是一场灾难。不过我们目前也不知道为什么Adobe会推出AIR,可能是想用AIR取代Flash?也可能是想要AIR和Flash相亲相爱共同发展?

记得有一段时间,得益于Twitter平台——TweetDeck(要求用户在电脑上安装AIR运行时)的使用,AIR很是红火了一阵子。那时大概有数以百万计的pc AIR应用被开发出来,只是后来Twitter在2011年买了TweetDeck之后,又改写本地代码取代了AIR。于是乎,AIR的辉煌就到此为止。

随着Flash和AIR的逐渐逝去,Adobe的ActionScript也开始向世界吻别。下面是一些用ActionScript写的代码示例。

package {
import flash.display.*;
import flash.text.*;
public class HelloWorld extends Sprite {
   private var greeting:TextField = new TextField();
public function HelloWorld() {
     greeting.text = “Hello World!”;
     greeting.x = 100;
     greeting.y = 100;
     addChild(greeting);
   }
 }
}

(你可能会发现这与JavaScript非常相似,都使用var、function和new,并且也使用小数点来访问成员变量。)

Delphi’s Object Pascal

首先我得向我曾经的好伙伴Delphi表示歉意,因为我不得不公布Object Pascal的“死讯”。well,Delphi(用于发Object Pascal的工具)历经变迁之后,依然苟延残喘着(它起源于Borland公司,现在抱着Embarcadero公司的大腿)。

早先Delphi和它的Object Pascal语言确实给我们提供了一个良好的工作环境:虽然有点啰嗦,但是编译器很快,而且相比Visual Basic(这里指的是pre-Visual Basic.NET,1995年左右),创建Windows程序更容易。

但是它的优势并没有持续下去。也很难说是什么原因,因为这个平台真心是不错的。就在这时,Borland公司开始在其Delphi的产品线上支持C#和C++。发展到后来,Borland公司甚至直接将Delphi卖给了Embarcadero公司,然后Embarcadero公司继续使用Delphi开发产品。话说,它做得相当不错,但是重点再也不是Pascal了。当然,你依然可以用Pascal编程,但是几乎没人走这条路了。事实上,我们可以使用Delphi建立许多不同的平台,包括iOS、Android,以及即将到来的Linux操作系统。

但是,如果你去Embarcadero公司的网站看看,你会发现他们主要是在促进Delphi’s C++ 的支持。因此,换言之就是,Object Pascal已然逝去了。写到这里,我不禁悲从心来,因为我花了很多很多时间来学习Pascal语言,特别是Delphi’s Object Pascal。但是没办法,现实就是如此残酷,不转行就只能饿死。

下面请看Object Pascal的代码:

program HelloWorld;
begin
    writeln(‘You say goodbye.’)

译者注:以上观点仅代表作者个人观点,请文明礼貌按秩序吐槽。

时间: 2024-10-10 14:55:05

2015年5种可能将要面临死亡的编程语言的相关文章

记2015.4.11 刷BestCoder 第一题 死亡 在 路上

1 #include<cstdio> 2 char a[101]; 3 int T; 4 bool is(){ 5 char *f, *e; 6 f = a; 7 e = a + T - 1; 8 for( ; f<e; f++,e-- ) 9 if( *f!=*e ) return false; 10 return true; 11 } 12 bool cmp(){ 13 char *f, *e; 14 f = a; 15 e = a + T - 1; 16 for( ; f<e

向死而生——我修的死亡学分

郝萌主倾心贡献.尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠.支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下载:http://dwz.cn/RwTjl 游戏视频预览:http://dwz.cn/RzHHd 游戏开发博客:http://dwz.cn/RzJzI 游戏源代码传送:http://dwz.cn/Nret1 今天下午.纪录片<筑梦者之李开复忏悔录>举行首映. 这部高晓松导演的纪录片是以李开复癌症后

生活服务类O2O或许将面临不少挑战!

目前生活服务类O2O品牌层出不穷,家政类.美发类等生活服务极具成长性,很具有发展前途,但生活服务O2O电商品牌在快速成长的同时,也面临着线上用户的黏性不够.线下服务者难管理.O2O闭环设计漏洞.线下活动成功率低.品牌社群建设这五大挑战.一.如何提升用户消费黏性“网上预约生活服务不方便.用户黏性不够”是生活服务O2O品牌面临的首要问题,从整个移动购物的消费态势来看,用户线上预约.线下消费生活服务的习惯还没有形成;为积极引导用户生活服务O2O消费,我们可以通过消费模式的大力宣传.品牌的介绍让用户积极

Visual Studio 2015 移动跨平台开发初体验

微软换了新 CEO 后变化很大,对我们团队最有利的消息就是 Visual Studio 2015 支持移动应用跨平台开发. 还记不记得很早之前,Xamarin 宣布与微软成为合作伙伴的消息.显然,Xamarin 得到了来自微软的大力支持,而微软则直接将 Xamain 融合进 Visual Studio 2015,以扭转它在移动领域的颓势. 也许你还担心这里面是否有大坑,是否还不够成熟,我现在还无法回答你,不过我相信微软和 Xamarin 会很快解决这些问题,尤其是微软,它有足够的动机去让 Vis

读《编程语言的2015》总结

原文网址:http://geek.csdn.net/news/detail/49350 1.如果我们在2015发明一种语言的话,那么它该长成什么样子呢?要面向对象么?要有类型推导系统么?要有列表生成式(listcomprehension)么?要有内置的模式匹配么?要有多值返回么?选用actor模型还是软件事务内存(STM)?要不要有内置的分布式透明性以及容错机制?应该有垃圾回收么?要支持惰性求值(lazyevaluation)么?可能我们心中还是有无数的工程设计上的考虑,但有一点貌似不用怀疑,那

帮你提升 Python 的 27 种编程语言

以下为正文: 作为全球最流行的编程语言联合设计者之一,我经常看到的一种令人沮丧的行为(在Python社区和其它社区都有),就是那些有影响力的人试图把“缺失”的恐惧感灌输给其它开源社区,将其当作对社区贡献的源动力.(我偶尔会对自己的这种不当行为感到内疚,当别人落入同样的陷阱时我也就更容易察觉到). 虽然借鉴其他编程语言社区的经验是一件好事,但以恐惧为基础的方法来激励行动存在严重的问题,因为它将助涨社区成员为争取贡献者的关注而将其它社区的成员视为敌人,而不是当做潜在的盟友去迎接更大的挑战,共同推动顶

我应该选择哪种编程语言?(Java*、C#、C++ 或 HTML5)

您是否有关于 Android* 应用的绝妙创意,而不知道如何通过可用的编程工具和语言来实现? 本文将为您介绍可用于 Android 开发的主要编程语言. 最常用的编程语言有 Java.C#.C++ 和 HTML5. 每种语言都有自己的发展历史.用途,和利弊.下面我们来一一介绍它们的工作原理.适用框架和 IDE. Java Java 作为互联网应用语言,于 1995 年首次亮相. 不过现在它应用于多个不同的开发领域,包括游戏.导航.企业解决方案和移动行业. Java 是一种经典的 Android

生命游戏的三种玩法

生命游戏 每个细胞有两种状态--存活或者死亡,每个细胞只与以其自身为中心的细胞产生互动. 当细胞为死亡状态,若周围有3个存活细胞,则该细胞变成存活状态(模拟繁殖) 当细胞为存活状态,若周围有2个或3个存活细胞,保持原样 若周围有3个以上存活细胞,该细胞变成死亡(模拟极度拥挤) 若周围有低于2个一下存活细胞,该细胞死亡(模拟人口稀疏) 这个游戏也叫康威生命游戏.细胞自动机.元胞自动机等. 图案介绍 "脉冲星":它周期为3,看起来像一颗爆发的星星 "滑翔者":每4个回合

线程的5种状态详解

Java中的线程的生命周期大体可分为5种状态. 1. 新建(NEW):新创建了一个线程对象. 2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法.该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 . 3. 运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码.4. 阻塞(BLOCKED):阻塞状态是指线程因为某种原因放弃了cpu 使用权,也即让出了