首页
技术笔记
网址导航
Json在线解析
二维码
Ip地址查询
在线流程图
新用户注册
|
会员登录
在线工具
开发笔记
毒鸡汤
网址导航
免费在线流程图
13赞
529
当前位置:
开发笔记
>
编程语言
> 正文
使用 Visual Studio 开发的情况下 C# 的编程效率能否和 Python、Ruby 媲美?
作者:小白也坚强_177 | 2021-09-08 09:15
回复内容:C#大多数东西可以用linq写,这个时候和python差不多但有些东西比如类的定义之类跑不了,这个是先天特性。有时候这是好事,有时候这是坏事,看你干什么用。最后一点是你自己用什么东西熟练。用的熟练的永远比不熟练的舒服。没有最好,只有适用。评论的,都带严重的个人感情色彩。话说回来,如果开发大
回复内容:
C#大多数东西可以用linq写,这个时候和python差不多
但有些东西比如类的定义之类跑不了,这个是先天特性。有时候这是好事,有时候这是坏事,看你干什么用。
最后一点是你自己用什么东西熟练。用的熟练的永远比不熟练的舒服。
没有最好,只有适用。 评论的,都带严重的个人感情色彩。话说回来,如果开发大型系统,就不用比了,而开发脚本,那也不用比了。理解了,就不会提这个问题了。 这种问题问的,从问题就能看出结论来,
c# 是一种编程语言,它运行效率并不差!(可以说不比任何语言差)。
那为什么通常我们还是认为c#效率不好呢,那是指平台,启动阶段,内存管理,联合起来说的。当然,总体来说,都是因为 .net framework 这个平台的拖累。
c#没有被编译到目标语言,而是编译到中间语言,在具体环境上执行的时候,才被即时编译到目标语言。这就导致 c# 程序启动的时候吃力。还得给运行环境上装 。net framework。
.net 的内存管理,被托付给平台负责。这就导致 .net 程序员,基本上没有对内存管理的干预,基本上 .net 程序耗费资源多,内存占用更大。依赖于 gc 发现和回收,gc 的运作也是牺牲了运行时效率。
c# 之所以被人说不好,主要就是它的所在平台的拖累。这个平台打个比方,c#就是被放在一个柴油机车的火车上。质量和惯性太大,启动的时候相当费劲。需要吭哧别赌的花很久,但是火车一旦跑起来了(这时候编译也完成了,内存也足够用,也不需要主动释放,就随随便便的放在那),剩下的就没有人能阻碍它的速度了,和汽车就一样快了。
c++就好比一辆法拉利跑车,质量小,惯性小,马力大,没什么平台拖累,跑跑停停那是轻松的。 同样的程序,C# 的仅比 Python 和 Ruby 的行数多 1/4 左右,基本上就是大括号占据的行数。实践经验证明 C# 的生产率跟 Python/Ruby 相当具备可比性。当然,如果是有些特别适合利用动态语言特性优势开发的程序就是例外了。
如果你是 Vim 爱用者,那么 Visual Studio 装上 VsVim 插件以后将极大提高编辑效率,VsVim 是比较完善的插件,连 ciw 这种高级命令都支持。
最后说一句关于 Linux 的问题,.NET 程序通过 Mono 也可以很好的运行在 Linux 上面。虽然 Mono 的 WCF 之类支持不大好,但是,但是 WCF 也不见得是多出色的东西,ServiceStack 我觉得是更好的解决方案。 编程效率是语言能影响得了的么。。
是有一部分语言比较拖沓需要打很长时间的代码才能写出目标程序来。
但是大多数时候编程效率都不是语言类型决定的而是架构设计、算法、数据结构构建决定的。
我就不信大型程序你想的还能比写得还快么?
所以编程效率的瓶颈根本就不是语言或者IDE,而是自身的姿势水平啊亲! 如果不把学习的代价算进去的话,我很想说熟悉函数式编程和.net的人用VS写F#的程序要比python和ruby强多了啊 visual studio 如此强大的IDE,写啥语言效率都高
c# 如此强大的语言,用啥写,效率都不低 C#各个方面都比Python、Ruby好一个级别 我个人认为效率是相对,这要看个人对工具使用和语言的熟练和熟知程度,还要看所选语言的特性对将要解决的问题是否合适.变数很多... 用合适的工具做恰当的事。
也许有一些语言可以在不依赖任何工具的情况下高效的做任何事,比如python ruby等等。但是对于c# 或者java这类静态预编译的语言,在有IDE的情形下,一定会比抛弃IDE使用文本编辑器要高效的多。IDE不只是一个编辑器,它是多种开发流程的集成,一站式服务,不是文本编辑器所能比拟的,包括VIM等高扩展的文本编辑器。
推荐阅读
程序员
为什么红色,绿色,蓝色图像通道是灰度级的(Matlab)?
如何解决《为什么红色,绿色,蓝色图像通道是灰度级的(Matlab)?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
对于按位NOT运算,哪个更快:预先计算的表或`~`
如何解决《对于按位NOT运算,哪个更快:预先计算的表或`~`》经验,为你挑选了1个好方法。 ...
[详细]
程序员
使用张量板时,如何总结在几个小型计算机上计算的损失?
如何解决《使用张量板时,如何总结在几个小型计算机上计算的损失?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何在非播放应用程序中使用play框架配置库命令行参数
如何解决《如何在非播放应用程序中使用play框架配置库命令行参数》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何检测导航抽屉外的触摸事件
如何解决《如何检测导航抽屉外的触摸事件》经验,为你挑选了1个好方法。 ...
[详细]
程序员
TypeError:需要类似字节的对象,而不是python和CSV中的'str'
如何解决《TypeError:需要类似字节的对象,而不是python和CSV中的'str'》经验,为你挑选了2个好方法。 ...
[详细]
程序员
使用UUIDField作为主键时,如何判断模型实例是否是新的
如何解决《使用UUIDField作为主键时,如何判断模型实例是否是新的》经验,为你挑选了0个好方法。 ...
[详细]
程序员
dnx-clr-win-x86.1.0,0,rc1-final和dnx-clr-win-x86.1.0,0.rc1-update1之间的区别
如何解决《dnx-clr-win-x86.1.0,0,rc1-final和dnx-clr-win-x86.1.0,0.rc1-update1之间的区别》经验,为你挑选了2个好方法。 ...
[详细]
程序员
关闭未知长度的通道
如何解决《关闭未知长度的通道》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何使用SQLAlchemy定义没有主键的表?
如何解决《如何使用SQLAlchemy定义没有主键的表?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何在工具栏下方放置溢出菜单而不是溢出菜单以重叠工具栏
如何解决《如何在工具栏下方放置溢出菜单而不是溢出菜单以重叠工具栏》经验,为你挑选了1个好方法。 ...
[详细]
程序员
为什么pandas将unsigned int大于2**63-1转换为对象?
如何解决《为什么pandas将unsignedint大于2**63-1转换为对象?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何在C++中隐藏我的AWS S3访问密钥和密钥?
如何解决《如何在C++中隐藏我的AWSS3访问密钥和密钥?》经验,为你挑选了0个好方法。 ...
[详细]
程序员
alvarotrigo.com/fullPage/和bootstrap 3网格问题
如何解决《alvarotrigo.com/fullPage/和bootstrap3网格问题》经验,为你挑选了0个好方法。 ...
[详细]
程序员
格式化图表中的数字ios swift
如何解决《格式化图表中的数字iosswift》经验,为你挑选了1个好方法。 ...
[详细]
程序员
允许Google Compute Engine(GCE)中的WebSockets
如何解决《允许GoogleComputeEngine(GCE)中的WebSockets》经验,为你挑选了1个好方法。 ...
[详细]
程序员
构建GoogleSignInOptions时的firebase serverClientId
如何解决《构建GoogleSignInOptions时的firebaseserverClientId》经验,为你挑选了2个好方法。 ...
[详细]
程序员
如何使用Realm排序?
如何解决《如何使用Realm排序?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
toLocaleLowerCase()和toLowerCase()之间的区别
如何解决《toLocaleLowerCase()和toLowerCase()之间的区别》经验,为你挑选了1个好方法。 ...
[详细]
程序员
For循环在Groovy和Java中的工作方式不同
如何解决《For循环在Groovy和Java中的工作方式不同》经验,为你挑选了1个好方法。 ...
[详细]
吐了个 "CAO" !
吐个槽吧,看都看了
会员登录
|
用户注册
小白也坚强_177
这个屌丝很懒,什么也没留下!
关注作者
Tags | 热门标签
actionscrip
bash
c#
c++
c语言
erlang
flutter
go
golang
java
javascript
lua
node.js
perl
php
python
scala
typescript
RankList | 热门文章
1
引用内存位置的内容.(x86寻址模式)
2
在Excel-DNA中标记功能IsMacroType的优点/缺点是什么?
3
错误:无法解析环境生产:是一个目录 - 与vagrant和puphpet
4
定义与constexpr静态成员的声明不同
5
最后得到pymssql安装,但它不会导入
6
在小提琴图中为每个小提琴设置颜色
7
运行Rust程序时如何处理"发生未知错误"?
8
LINQ Skip仍然枚举跳过的项目
9
Spring服务和存储库层约定
10
(Ionic 2)尝试回退到Cordova-lib执行时发生错误:TypeError:无法读取未定义的属性'then'
11
数字列表没有重复和有序
12
在scala中使用Option.fold时避免强制转换
13
无论值如何,脚本都返回false
14
孤立的RazorEngine无法将模型传递给不同的AppDomain
15
在Node.JS中,通过require('net'),你不需要('event')吗?
16
最后没有抛出堆栈溢出异常
17
AngularJs如何检测范围变量对象的变化
18
如何在c ++中的vector <int>中获取第一个非零值的索引
19
_.split("")scala RDD中的更多字段
20
我们可以通过ES6模板替换现有的JS模板解决方案吗?
DevBox开发工具箱 | 专业的在线开发工具网站
京公网安备 11010802040832号
|
京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有