.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. druid+mybaits简单集成

    在前面的文章中,我们对springboot开发中一些常用的框架进行了集成,但是发现还是存在一些问题,比如druid还需要比较长的固有配置,实际上druid官方是提供了相关的starters包的,内部采 ...

  2. dubbo同步/异步调用的方式

    我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制:基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用(默认) 异步调用 参数回调 事件通知 同步 ...

  3. mysql自定义函数统计订单状态:GET_ORDER_STATUS()

    DELIMITER $$ USE `local_hnyz`$$ DROP FUNCTION IF EXISTS `GET_ORDER_STATUS`$$ CREATE DEFINER=`root`@` ...

  4. [LC] 285. Inorder Successor in BST

    Given a binary search tree and a node in it, find the in-order successor of that node in the BST. Th ...

  5. RHEL安装神器EPEL

    什么是EPEL? EPEL的全称叫 Extra Packages for Enterprise Linux .EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS.Scie ...

  6. 算法笔记4.3递归 问题 A: 吃糖果

    问题 A: 吃糖果 题目描述 名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0). 妈妈告诉名名每天可以吃一块或者两块巧克力. 假设名 ...

  7. BBuBBBlesort!

    题目描述 Snuke got an integer sequence of length N from his mother, as a birthday present. The i-th (1≦i ...

  8. Excel-DNA开发包:ExcelDna-0.34.6.zip下载

    Excel-DNA可以用VB.Net或C#开发Excel自定义函数.制作.xll格式的加载宏. 点此下载 ExcelDna-0.34.6.zip

  9. javaweb三大框架SSH

    1.MVC三层架构:模型层,控制层和视图层.模型层,用Hibernate框架让来JavaBean在数据库生成表及关联,通过对JavaBean的操作来 对数据库进行操作:控制层,用Struts框架来连接 ...

  10. Kintinuous解析

    版权声明:本文为博主原创文章,未经博主允许不得转载. Kintinuous是Thomas Whelan在National University of Ireland Maynooth读博期间的工作,有 ...