.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. WMS出库单重复

    发货通知单?WMS备货单选项勾选 不自动复制?新增?

  2. python编程常用功能(随时添加)

    1 pandas查看DataFrame列或具体值数据类型 2 left join/right join/inner join的区别 3 df_series.value_counts() 4 删除dat ...

  3. 高性能JAVA开发之内存管理

    这几天在找一个程序的bug,主要是java虚拟机内存溢出的问题,调研了一些java内存管理的资料,现整理如下: 一.JVM中的对象生命周期 对象的生命周期一般分为7个阶段:创建阶段,应用阶段,不可视阶 ...

  4. Glob模块使用笔记

    一.Glob模块介绍 python中的glob模块用于查找文件目录和文件,并返回一个list.常用的方法有glob.glob()和glob.iglob().与os.listdir()都是查找文件,但有 ...

  5. confessed to doing|conform|confined|entitle|

    to admit that you have done something wrong or something that you feel guilty or bad about 坦白:供认,招认: ...

  6. SQL中的一些关键字用法

    1.where 条件筛选结果 select * from `表名` where `列名`='value' 上诉语句的意思是在某表中查询某列名等于某特定值得所有列 2.Like 模糊查询 select ...

  7. list split批量处理

    <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-colle ...

  8. [LC] 100. Same Tree

    Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...

  9. Win32下双缓冲绘图技术

    一:双缓冲原理 为了解决窗口刷新频率过快所带来的闪烁问题,利用双缓冲技术进行绘图.所谓双缓冲技术,就是将资源加载到内存,然后复制内存数据到设备DC(这个比较快),避免了直接在设备DC上绘图(这个比较慢 ...

  10. kendoUI 免费部分开发部分经验。

    kendo分多个版本,核心UI免费版.NET,JAVA,PHP对应的前后端开发版. 基础免费版开放的UI经多个测试,与收费封装的UI并无区别,收费版提供了后端代码和前端封装语法,使不懂JS前端的也可简 ...