.NET平台编程语言的衰败

JVM上的编程语言除了Java,其它还有很多,比如最近谷歌公司力捧JVM平台上的语言Kotlin、大数据用的Scala、构建系统用的Groovy。.NET平台上的编程语言曾经也是很多的,几乎从A到Z打头的各种编程语言都有,不过慢慢的到现在只有C#一个语言独大了。

Visual Basic.NET

Visual Basic是微软老资格的语言,Visual Basic.NET是它移植.NET平台上的语言。移植之后的Visual Basic.NET做了不少变动,也添加了不少特性。因为它是微软官方主推的编程语言,以及有原来VB的高人气,所以开始的时候很多人用它,早期市场上也出版了很多相关图书。不过现在不行了,C#比它简洁先进,.NET开发者很少认准Visual Basic.NET。

F#

F#是微软从2002年开发的.NET平台编程语言,后来它也被集成在Visual Studio中,官网是https://fsharp.org/。它其实是基于Ocaml语言在.NET平台上的实现。Ocaml是一种函数编程语言,函数编程在前几年很火,但是因为它的一些缺点,无法成为主流,虽然主流编程语言吸收了函数式编程思想。所以注定了F#像其它函数式编程语言一样,是流行不起来的。

F#程序例子

F#教程的外文书有不少, 比如F# for C# Developers、F# for Scientists、Get Programming with F#,国内的我只看见过这一本书:F#语言程序设计。

Boo

Boo语言时运行在.NET平台上的面向对象的、动态的、编程语言,语法类似Python,它原先的官网突然关停,现在的网址是https://boo-language.github.io/。Boo以前有一定影响,有不少文章介绍它,还有几本外国教程,比如有一本DSLs in Boo: Domain Specific Languages in .NET,Unity3D好像曾经采用它作为游戏开发脚本语言。但是它有一天突然不行了,原因不清楚。

DSLs in Boo: Domain Specific Languages in .NET

Boo程序

IronPython

IronPython 是由 Jim Hugunin移植到 NET上运行的 Python 语言,他也把Python移植到Java平台上叫Jython。1.0 版于2006年9月5日发布,官网是https://ironpython.net/。近几年因为人工智能的关系,Python现在很火,不过这没有帮助IronPython提高影响,因为IronPython是运行在.NET上的,不方便调用厂商提供的AI库。

IronPython最新版本是2018年发布的IronPython 2.7.8版本,但是自2020年1月1日起,Python 2将不再得到支持。

IronRuby

IronRuby 是 Ruby 编程语言在微软 .NET 平台上的一种实现,它的官网是http://ironruby.net/,它的最新版本是2011年3月13日发布的IronRuby 1.1.3。Ruby几年前因为有了一个Ruby on Rails框架而大火,但是现在它就是一个过气明星,所以IronRuby和JRuby一样,都少人问津。

Delphi

Delphi,是Windows平台下著名的快速应用程序开发工具。自从微软推出.NET后,Borland也追赶潮流,把Delphi移植到.NET平台上,可以用Object Pascal编写WinForm和WebForm程序。但是它的语言比起C#来显得落后,公司实力比起微软来说差距很大,所以大家都认准微软的C#,而不注意Delphi。

所有的.NET编程语言都可以点击这个链接查看:http://en.citizendium.org/wiki/List_of_languages_using_the_.NET_Framework

老外充满干劲,从Ada到Tcl/Tk都移到.NET平台上,还有的自己创造了.NET上的语言。我本人也搞过Lisp运行在.NET上,还自己发明了卓语言运行在.NET上。

不过现实残酷,上面所有的语言都失败,我自己的语言也难。

卓语言计算一组整数总和并打印的例子

语言虽然很多,都是很早以前实现的,但都已经死了或者半死不活,这从一个侧面反映了.NET生态的萎缩恶化衰败,.NET市场的颓势还未见底。

Java平台上编程语言虽然也是大部分死了,但是活下来的Groovy、Scala、Clojure、Kotlin都有着自己的重要应用场景,在一些领域取代了Java,可以说取得了不小的成功,而.NET平台上除了C#都不行了。鼓吹"Mark .NET great again (.NET再次崛起)"的人也要正视这一现实,不总结教训是不行的,说空话时没用的。

.NET平台编程语言的衰败的更多相关文章

  1. MapReduce原理及其主要实现平台分析

    原文:http://www.infotech.ac.cn/article/2012/1003-3513-28-2-60.html MapReduce原理及其主要实现平台分析 亢丽芸, 王效岳, 白如江 ...

  2. CSS实现弹出导航菜单

    查看实际效果:http://keleyi.com/a/bjac/vksd7321.htm 完整代码,保存在html文件打开也可看到效果: <!DOCTYPE html PUBLIC " ...

  3. 盘点 PHP 和 ASP.NET 的10大对比!

    [编者按]本文主要针对开源 PHP 和非开源的 ASP.NET 在性能.成本.可扩展性,技术支持和复杂性等方面进行比较. 在网上论坛,总是有成百上千的文章和帖子在讨论 PHP 和 ASP.NET,究竟 ...

  4. 第二章 Python基本图形绘制

    2.1 深入理解Python语言 Python语言是通用语言 Python语言是脚本语言 Python语言是开源语言 Python语言是跨平台语言 Python语言是多模型语言 Python的特点与优 ...

  5. [Wiki].NET框架

    .NET框架 建议将.NET Framework 3.0并入本条目或章节.(讨论)  .NET框架 .NET框架的组件堆栈 开发者 Microsoft 初始版本 2002年2月13日,​16年前 稳定 ...

  6. GPGPU OpenCL编程步骤与简单实例

    http://www.cnblogs.com/xudong-bupt/p/3582780.html  1.OpenCL概念 OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU.GPU或其 ...

  7. json 与pickle模块(序列化与反序列化))

    一.什么是序列化(pickling): 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化. 序列化可以持久保存状态, 不会根据计算机断电或者重启程序,而使得之前的数据状态丢失.可以在下次程 ...

  8. 如何基于gRPC沟通微服务框架

    本文我们来讲解一下如何使用 gRPC构建微服务,gRPC是一个开源框架,可用于构建可扩展且高性能的微服务并创建服务之间的通信. 背景 随着企业越来越多地转向微服务,对构建这些微服务的低延迟和可扩展框架 ...

  9. AES加密CBC模式兼容互通四种编程语言平台【PHP、Javascript、Java、C#】

    原文:AES加密CBC模式兼容互通四种编程语言平台[PHP.Javascript.Java.C#] 由于本人小菜,开始对AES加密并不了解,在网络上花了比较多时间查阅资料整理: 先简单从百度找来介绍: ...

随机推荐

  1. 启动查看crontab日志服务

    方法1: . 修改rsyslog文件,将/etc/rsyslog.d/-default.conf 文件中的#cron.*前的#删掉: . 重启rsyslog服务service rsyslog rest ...

  2. sql 坐标距离排序计算距离(转)

    如果两个坐标的列是(x1,y1).(x2,y2),那么他们之间的距离:SQRT((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)) sql排序 SELECT * FROM m_store ...

  3. 安装Rational Rose启动报错:无法启动此程序,因为计算机中丢失 suite objects.dll。

    运行Rational Rose的时候如果出现这样的错误,先检查环境变量有没有common的地址,如果没有直接配上就OK:配置如下:D:\Program Files\Rational\Common; 我 ...

  4. 分类算法之KNN分类

    1.介绍 KNN是k nearest neighbor 的简称,即k最邻近,就是找k个最近的实例投票决定新实例的类标.KNN是一种基于实例的学习算法,它不同于贝叶斯.决策树等算法,KNN不需要训练,当 ...

  5. The Maximum Unreachable Node Set

    题目描述 In this problem, we would like to talk about unreachable sets of a directed acyclic graph G = ( ...

  6. 吴裕雄--天生自然python学习笔记:python文档操作自动查找替换 Word 文件中的指定文字

    Win32com 组件提供了自动替换 Word 文件中指定文字 的功能 .在使用“查找” 功能替换文字之前,可先清除源文字及目标文字的格式,以免影响替换效果,语法为 : 替换 Word 文件特定文字的 ...

  7. 吴裕雄--天生自然python学习笔记:python用 Bokeh 模块绘制我国 GDP 数据统计图

    现在我们把我国 1990 年到 2017 年的 GDP 数据抓取出 来,井用 Bokeh 绘 出散点统计图 . 由网页爬取所需数据,并用 Bokeh 绘制散点图 . import requests # ...

  8. 3dmax2016卸载/安装失败/如何彻底卸载清除干净3dmax2016注册表和文件的方法

    3dmax2016提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dmax2016失败提示3dmax2016安装未完成,某些产品无法安装,也有时候想重新安装3 ...

  9. django框架中的cookie与session

    cookie因为http是一个无状态协议,无法记录用户上一步的操作,所以需要状态保持.cookie和session的区别:1.cookie是保存在浏览器本地的,所以相对不安全.cookie是4k的大小 ...

  10. JavaScript学习总结(一)基础部分

    转自:http://segmentfault.com/a/1190000000652749 基本概念 javascript是一门解释型的语言,浏览器充当解释器. js执行引擎并不是一行一行的执行,而是 ...