C#换什么比较合适?

从TIOBE来看,Java、C++、C、Python都好,对了,还不能忘了JS。

Sql Server换什么比较合适?

MySql挺好,Oracle也不错,也还有不少选择。


都挺好,那问题来了,你为什么要换呢?

最初踏进.NET的世界,很多人都是为了能够快速开发一个程序,解决一个问题。参观各大造船厂,巨硬造船厂给了一个近乎衣来伸手饭来张口的平台,通过这个,很快就能搞定了。

随后你就上了一条巨硬造船厂的客轮,从水手干起,进入了这个行当,干了一年两年很多年,当了船长,船没沉,还能开。

一天,船上有人要去北冰洋了,觉得破冰船更合适,就下船了,上了破冰船;
又过一阵子,有人要运大型龙门吊了,半潜船合适,也下船了;
过两天打仗了,有人去了战列舰。

你还在原来的船上,船上的人越来越少,你怀疑,MDZZ,哥们是不是上了贼船?自己开始焦虑,我应该学点什么好,应该换条什么船。

JS很火,Node.js,react native等技术把js从前端拉到的后端,移动端,感觉什么都能做。仿佛js的船就是航空母舰一样,匆匆上了js的船,开航母,真开心。
“语言都是相通的”,学个语法而已,一个礼拜两个礼拜差不多了,航母一样开。

航母是船,但是不是客轮,好多地方和客轮不一样,没控制好,撞沉了。我靠这什么鬼航母!下船,准备找另一条船...


入行很多年,最近一直在管理和开发两个角色上切换,.NET的技术也算是碰了不少。

Winform -> ASP.NET -> ASP.NET MVC -> WPF -> OPENTK -> Accord.net

回头一看,造船厂一直在出新的船,Xamarin, .Net Core,要被技术淹没了。我觉得...有点迷茫?

  • 今天,需要开发一个服务程序,那么Windows Service
  • 需要开发一个3D程序,OPENTK + Winform,外观再复杂一些?OPENTK + WPF
  • 在加点图像处理吧,+ Emgucv
  • 再加点机器学习啥的 + Accord.net
  • 组态软件?俄语会不会,会的话可以试试RapidScada,不会,那会英语也行啊。
  • 要调用C++?P/InvokeC++ Interop,坑不少,但是也能用下。

Newtonsoft.Json, EF, Dapper, dotnetty, supersocket...这些东西潜移默化在脑子里,会用能用,至少知道该找些什么。

这形成了你的一种体系,虽然品类众多,但是互联互通,迷茫但不迷失。当你决定弃船的时候,放弃的不仅是一艘船,而是一个体系。

不愿意重新来过,是不是意味着要耗死在这条船上了?

我们都害怕没有选择,很正常,牢牢捆在船上听上去不是个好主意。

兴趣和工作需要,这些都是契机,当你需要用的东西用另外一种语言,另外一种体积比较合适的话,可以先试水用一用。但我建议不要轻易弃船。

有时候兴趣只是一时的,很多年前,我就很喜欢单片机,STM32正开始火,当时整了很多教程,看了很多资料,买了开发板。后来结果并没有坚持下去,我并不是真的喜欢。工作需要也是一样的,前阵子,工作需要,我学了下python,写了个脚本操作excel的,B格可高了,然后发现我还是不习惯,写了个监控程序,发现费半天劲也摸不着门道,还是用C#来的直接。

这并不是说排斥其他语言,我现在时不时还要写python,但是这不是我主要的语言。我这行为...应该叫“脚踏两条船吧”。说不定哪天python用的多了用的熟了,有必要了,我就换船。

你要TensorFlow,学点Java,Python,还要加点深度学习的知识。3D图像、Lidar,整点C++吧。上面的领域.NET也能做,但是不是强项.

很多小伙伴希望能掌握一种语言,学会了就能够吃遍天下了,愿望是美好的,我也希望有这么一天,可惜现在的现实...有取有舍,磨砺好一个技能就很不错了。

.NET是不是好船(nice boat?),说说个人意见。

  1. 语言支持丰富(C#,VB.NET,F#);
  2. 商业支持好,近期开源生态圈也好;
  3. 支持桌面开发、WEB开发、移动开发(Xamarin),基本上除了前端都能做了(当然有方案生成前端代码的,不讨论);
  4. 组件丰富,轮子也多。

不能算完美的船,但也不错了。(佛系佛系)

你为什么还坚持.NET?

我搞客运的,客轮,我觉得对我来说挺好...
好好考船员适任证书,往远洋方面发展,也希望客轮的船长越来越多,船队发展越来越好。

你为什么还坚持.NET的更多相关文章

  1. static,你还敢用吗?(二)

    为了压系统,昨天小组在测试环境模拟了一大批订单数据.今天上午查看记录的账单计息日志,发现了一大堆的MySqlException MySql.Data.MySqlClient.MySqlExceptio ...

  2. 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?

    0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...

  3. 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???

    在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...

  4. [修正] Firemonkey TFrame 存档后,下次载入某些事件连结会消失(但源码还在)

    问题:Firemonkey TFrame 存档后,下次载入某些事件连结会消失(但源码还在) 解决:(暂时方法) type TTestFrame = class(TFrame) public const ...

  5. VS2010 release编译下进行调试,“当前不会命中任何断点,还没有为文档加载”问题解决方案

    在release模式下调试程序,经常出现"当前不会命中任何断点,还没有为文档加载"的问题,可尝试以下方法: 1. 属性 → 配置属性 → C/C++ → 常规 → 调试信息格式:选 ...

  6. 你还可以再诡异点吗——SQL日志文件不断增长

    前言 今天算是遇到了一个罕见的案例. SQL日志文件不断增长的各种实例不用多说,园子里有很多牛人有过介绍,如果我再阐述这些陈谷子芝麻,想必已会被无数次吐槽. 但这次我碰到的问题确实比较诡异,其解决方式 ...

  7. static,你还敢用吗?

    我用火狐的HttpRequester测试开发组里一个同学发布的Web API接口,遇到了一个奇怪的问题. 我测试边界情况时,第一次调用响应的结果是正常的,但当再次及以后的请求时,却返回了异常“Syst ...

  8. java中异常抛出后代码还会继续执行吗

    今天遇到一个问题,在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗,是否需要在异常后面加上return语句呢? public void add(int index, E element){ i ...

  9. redis-cli中那些或许我们还不知道的一些实用小功能

    玩过redis的朋友都知道,redis中有一个叫做redis-cli的小工具,我们可以利用它在test和develop环境下进行高效的模拟测试,然而在现实环境中, 我们只知道直接键入redis-cli ...

  10. html你可能还不知道的一些知识点

    一.标签语义化 html标签语义化是让大家直观的认识标签和属性的用途和作用,好处最主要的是对搜索引擎友好. Eg: 1.如果你想在页面中突出"奥巴马"这三个字,让搜索引擎重视它,如 ...

随机推荐

  1. meta 是什么??

    META http-equiv 大全HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容.常用的HTTP-EQUIV类型有: 1.Content- ...

  2. postgis几何操作函数集

    管理操作函数 AddGeometryColumn - Adds a geometry column to an existing table of attributes. By default use ...

  3. 发放福利:原价135元/年的阿里云CDN流量包(500GB)免费送

    不少朋友看过本站推荐的两篇文章:1. <阿里云全民云计算活动:云服务器ECS二折起>2. <阿里云双11优惠活动-爆款云服务器> 大部分人都说不错,很快下单购买了服务器,后续使 ...

  4. C#中窗体的close,dispose,以及application.exit()的区别

    close关闭窗体,对象仍然存在,调用Close函数释放资源后可能还需要再次使用. dispose,销毁对象,窗体对象被回收了,也就是不存在了,Dispose函数释放的资源不再使用. applicat ...

  5. linq中group by

    本文导读:LINQ定义了大约40个查询操作符,如select.from.in.where.group 以及order by,借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据.L ...

  6. Windows定时器学习

    定时器是一个在特定时间或者规则间隔被激发的内核对象.结合定时器的异步程序调用可以允许回调函数在任何定时器被激发的时候执行. 通过调用CreateWaitableTimer()可以创建一个定时器,此函数 ...

  7. python的Windows下的安装

    1.先打开网址http://www.python.org/download/: 2.在下载列表中选择Window平台安装包, 找到最后 web-based installer 是需要通过联网完成安装的 ...

  8. pt-log-player

    简介 pt-log-player是MySQL日志回放工具,在pt2.4中被去除,由percona-playback取代. 在2.1中还是保留,如果想使用的话,需要下载2.1版本的. 使用方法 pt-l ...

  9. Struts2-046验证脚本

    下面分享一下Struts2-046验证的python脚本 #encoding:utf-8 import urllib2 from poster.encode import multipart_enco ...

  10. 安卓自定义控件(五)触控基础MotionEvent

    之前去面试,人家说,我这个事件拦截机制写得太少了,还有一个MotionEvent没写,这个确实也很重要,后来我考虑了一下,决定将这篇文章放到自己定义控件里. 先简单再提一下事件分发,事件分发和拦截主要 ...