.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. Escape from the Hell

    Escape from the Hell [JAG Asia 2016] 容易证明优先选择差值大的更优 对于最后一瓶我们可以枚举 枚举最后一瓶,然后在树状数组上消去它的影响,然后线段树check是否出 ...

  2. day34-进程

    #进程是程序的运行,程序不运行不产生进程. #1.进程的并行与并发: # 并行:是指两者同时执行,比如赛跑,两人都在不停的往前跑.(资源够用,比如三个线程,四核的cpu) # 并发:是指资源有限的情况 ...

  3. day07-生成器

    一. 含有yield关键字的函数就是生成器函数. yield不能和return公用,且要写在函数内部. 调用生成器函数之后,函数不执行,返回一个生成器. 生成器的本质是迭代器.生成器generator ...

  4. PAT甲级——1009 Product of Polynomials

    PATA1009 Product of Polynomials Output Specification: For each test case you should output the produ ...

  5. socket握手SYN和ACK理解

    ACK 英文缩写: ACK (ACKnowledge Character) 中文译名: 确认字符 分类: 传输与接入 解释: 在数据通信传输中,接收站发给发送站的一种传输控制字符.它表示确认发来的数据 ...

  6. [LC] 293. Flip Game

    You are playing the following Flip Game with your friend: Given a string that contains only these tw ...

  7. windows下redis的配置和jedis api的最基本的使用

    redis的安装直接跳过 1.注册redis服务 在DOM窗口下,进入redis的安装目录(可以先进入安装目录,然后shift+右键,选择在此处打开powershell窗口), 输入命令: redis ...

  8. 学习python-20191208(1)-Python Flask高级编程开发鱼书_第03章_数据与flask路由

    视频01: 略...... ———————————————————————————————————————————————————————————— 视频02: 搜索需要外部数据源,也就是需要外部的A ...

  9. 使用 FreeMarker模板 Springboot 发送邮件

    四.使用 FreeMarker模板 HTML 标签的字符串拼接是一件很棘手的事.因为在你的大脑中解析HTML标签并想象它在渲染时会是什么样子是挺困难的.而将HTML混合在Java代码中又会使得这个问题 ...

  10. deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面

    1. 应用机器学习是高度依赖迭代尝试的,不要指望一蹴而就,必须不断调参数看结果,根据结果再继续调参数. 2. 数据集分成训练集(training set).验证集(validation/develop ...