为什么不使用.NET而不是HTML5的JavaScript?

时间:2011-01-11 23:09:11

标签: javascript .net html5 mono

为什么我们仍然在网络浏览器中使用javascript'''这几天?它不支持自定义运算符(我用于向量数学),结构(值类型)和大量其他基本的面向对象原则,大大提高了程序员在电源和编程方面的编码能力。速度ω

为什么我们不使用openSource .NET CLR Mono或类似的东西?为什么人们坚持只是将黑客入侵现有的旧语言就超出了我的意思。我的意思是我们有机会在这里使用HTLM5来开始清理。

另外,为什么我们不通过客户端计算机预编译库而不是嵌入式javascript代码?这将极大地提高性能,更不用说代码隐藏正在破坏HTML标记和扩展。在我看来,这完全是错的......

我很想为ChromeOS制作一些网络应用程序,但如果javascript甚至没有运营商,我也不会碰到垃圾。

很抱歉我给的是沮丧的音调,但我在ChromeOS的模型中看到了一些具有巨大潜力的东西,但是如果他们想要与MS竞争,那么他们需要专注于更好的开发工具,让那些能够让人感觉更好的人。这就是我喜欢MS的一件事,他们有杀手级的语言&他们的工具。

注意:我不是网络开发人员(因为你可能会猜到为什么),所以如果我错在任何事情上或需要clerity tnx,请纠正我。

5 个答案:

答案 0 :(得分:5)

  

为什么我们仍在使用javascript   “只有”在网络浏览器这几天?它   不支持运营商,   结构(价值类型)&数量巨大   其他基本的面向对象   大大改善的原则   程序员编码能力和能力   速度ω

  • “它不支持运营商” - 实际上它确实如此,例如=,<,>和+以及其他很多人......
  • 基于类的OOP并不是世界上唯一的编程范例,并不是一切的答案。 JavaScript的原型OOP更加灵活。
  • 力量和速度? JavaScript是使用语言最快的JavaScript之一。这正是因为它不会将程序员限制为静态类型等。
  

为什么我们不使用openSource .NET   CLR单声道或其他东西   当量?为什么人们坚持只是   把黑客入侵现有的老人   语言超出我的意思..我的意思是我们   有机会与HTLM5一起开始   干净。

  • 向后兼容性:您不能只对所有使用旧浏览器的人说“搞砸”。
  • HTML5建立在现有标准之上。这根本不是一个干净的开始。
  • Mono和.NET不适用于可以运行JavaScript的各种设备,例如各种移动设备。
  

为什么我们不通过客户端   计算机预编译库   而不是嵌入式JavaScript代码?   这会大大增加   表现,更不用说了   代码隐藏正在破坏HTML   标记&在我的脑海里完全是   错了......

  • HTML是文本,CSS是文本,我认为JS自然也是文本。它还有助于开发,因为您不必经常编译代码。
  • JS作为文本也有助于教授新的程序员。您可以简单地查看您喜欢的网站的源代码,了解他们正在做什么以及如何做。
  

如果他们想与MS竞争那么   他们需要专注于更好的开发工具   为那些制作东西的人们   蜱。这就是我喜欢的一件事   关于MS,他们有杀手级语言和   他们的工具。

  • 有许多可用于JavaScript开发的工具。最像Visual Studio的工具之一是probaby JetBrains'WebStorm IDE
  • 还有单元测试和其他测试工具,持续集成工具,静态分析工具......

我的建议是,在对此进行判断之前,实际需要花一些时间来了解JavaScript。

答案 1 :(得分:4)

我不确定我明白你在问什么:

  

为什么我们不使用openSource .NET CLR Mono或类似的东西?为什么人们坚持只是将黑客入侵现有的旧语言就超出了我的意思。我的意思是我们有机会在这里用HTLM5开始清理。“

HTML5如何让我们有机会使用Mono替代Javascript?

  

另外,为什么我们不通过客户端计算机预编译库而不是嵌入式javascript代码?这将极大地提高性能,更不用说代码隐藏正在破坏HTML标记和扩展。在我看来,这完全是错的......

您的假设是,使用JavaScript的唯一方法是将其嵌入HTML标记中。这很可怕。我更喜欢在外部文件中链接的非侵入式JavaScript。这些文件负责将事件附加到元素等,而不是相反。

旧学校的方式是:

<input type="button" onclick="alert('Hello World!')">Click me</input>

同意这个例子,JavaScript正在妨碍干净标记。但为什么不这样做呢:

<input type="button" id="hello-button">Click me</input>

在已包含的JavaScript文件中:

$('#hello-button').click(function() { alert('Hello World!'); } );

使用JavaScript可以轻松实现关注点分离。

就OO原则而言,我们在我们的应用程序中广泛使用它们。 JavaScript逻辑被精心包含,由命名空间分隔,并具有包含函数,运算符等的完整对象模型。

  

但如果javascript甚至没有运营商,我也不打算接触垃圾。

http://www.w3schools.com/js/js_operators.asp - 或者你的意思是运营商有什么不同吗?

答案 2 :(得分:2)

因为它只有在完美的世界中才有可能。在现实世界中,我们有许多遗留应用程序,这些应用程序是用JS和成千上万的Web开发人员编写的,它们不知道.Net或Java或任何其他类似技术。顺便说一句,有时JS看起来并不是那么糟糕。

答案 3 :(得分:2)

Douglas Crawford等人通常将JavaScript视为更多高级OO语言,而不是.NET。

您可以选择在Web浏览器中运行.NET代码:它名为Silverlight / Moonlight。

关于仅发送预编译代码的想法,一个主要问题是安全性。

答案 4 :(得分:2)

有一段时间,有很多“仅服务器端”类型的Web开发正在进行,因为在JavaScript处理和项目渲染方面,浏览器之间存在很多差异,从维护角度来看,它更好利用这些服务器端语言。他们完成了所有繁重工作,并确保您在这些浏览器中拥有非常一致的视图。

服务器端的缺点只有应用程序是不断回发到服务器,这导致应用程序的丑陋“闪烁”效应。如果你有一个糟糕的连接或很多服务器处理,当你所做的只是检查一个盒子,说你不想输入一个日历日期时,等待2分钟让页面自动更新就会很烦人,这迫使应用程序隐藏其日历小部件,也许还可以进行其他处理。

此外,.Net应用程序生成的视图状态确实开始消耗用户的体验,因为越来越多的控件被推入单个页面,并通过AJAX或其他事件进行控制以显示和隐藏它们。网页变得相当臃肿,这个过程应该有助于消除其中的一些。

jQuery和CSS已经取得了一些重大进展,已经将事情推回到客户端模型。通过统一的数据显示方式,以及利用客户端机器来完成显示/隐藏控件的大量工作,以这种方式编写应用程序更有意义。一般来说,它们比服务器端对应物更快,并且可以完成基于服务器端的应用程序所做的大部分工作。此外,视野状态膨胀消失了。你也有ASP.NET MVC框架,它试图平衡两个世界,为你提供服务器端的能力,但减少了很多客户端膨胀从视图状态。

简而言之,你会发现现在有更多的应用程序在JavaScript路线上运行,因为你可以获得类似的功能,这要归功于jQuery和CSS,以及更少的开销和重复返回服务器。