negation(否定之否定)
In our project we are migrating to java 8 and we are testing the new features of it. On my project I'm using Guava predicates and functions to filter and transform some collections using Collectio...
(#13539606@0)
Last Updated: 2021-2-24
This post has been archived. It cannot be replied.
Replies, comments and Discussions:
-
工作学习 / 学科技术 / 我对 nodejs express, nestjs, java spring boot 之类的了解不是很多,但感觉这两年 .net core 发展得远远比那些都好使(open source, linux support, docker/container/cloud friendly, features, performance, tooling etc),但市场占有率还是不是很好,不知为什么。
-xmlhttprequest(build5381);
2021-2-21
(#13533807@0)
-
那些是好东东,市场也大。现在很多年轻人都在用。认识一位大学读了一年就去做的合同工。
-hutuhao(糊涂是福);
2021-2-21
(#13533821@0)
-
前面两个是前端技术,跟.net能比吗?.net有两个缺陷:(1)不太支持unix,(2)出来晚了,java把市场抢了很多
-wuyg719(平平);
2021-2-21
(#13533851@0)
-
express, nestjs 都是 server side fw;.net core fully support linux;.net 2002 年就出了,没比 java 晚几天。
-xmlhttprequest(build5381);
2021-2-21
(#13533949@0)
-
以这两个例子,展开讨论一下我说的生态圈。.net主要做网服后端,但是node还可以做前端,Java可以做android。企业的系统集成,对Java的支持就比.net多太多了。企业的数据平台又大多是基于Java。
-geekcode(文心雕码);
2021-2-21
(#13534174@0)
-
.net core 2015还是2016才出来,而且刚出来的时候并不好用。
-guestagain(guest again);
2021-2-21
(#13534233@0)
-
一个本来的前端技术硬要去折腾后端,就像当年Java也要征服前端,搞了applet和GWT,结果都会一样,会碰得头破血流
-wuyg719(平平);
2021-2-21
(#13534249@0)
-
Dot net对Linux的支持就是个笑话:不能说做出hello world就算支持!
-wuyg719(平平);
2021-2-21
(#13534260@0)
-
.net core NOT fully support linux. Only limited linux version supported.
-negation(否定之否定);
2021-2-24
(#13539090@0)
-
lol Linux distros 太多也是 linux 的主要问题之一。
-xmlhttprequest(build5381);
2021-2-24
(#13539107@0)
-
你觉得好使的东西,都是那些stack从开始就有的
-geekcode(文心雕码);
2021-2-21
(#13533940@0)
-
但你要是把他们对比一下,会发现 .net core 胜出很多。
-xmlhttprequest(build5381);
2021-2-21
(#13533946@0)
-
如果你对它们都不了解,怎么比较出哪个更好的?主要是你的bias。还有一个软件生态的问题,只有core好没有生态也没有用
-geekcode(文心雕码);
2021-2-21
(#13534001@0)
-
不是完全没有了解,但一直只了解皮毛,但最近仔细看了一下,发现很多东西比我想象的还要接近 --- 但感觉 .net core + c# 的实现更优雅便捷,才有此问 --- 我承认我确实有 bias -- 所以才希望听听其他对这几个 fw 都有很深的了解的人的看法。
-xmlhttprequest(build5381);
2021-2-21
(#13534036@0)
-
之所以优雅便捷,是因为.net是后来者,避免了先行者的缺点。但是这点优势远不足以挽回后发劣势。比如一个公司从架构到人员都不是.net体系的,转型意味着巨大的投入。还有就是.net的生态圈太小,一方面.net做不全,另一方面有vendor lock-in的风险
-geekcode(文心雕码);
2021-2-21
(#13534068@0)
-
优雅便捷在哪里,举个例子。java的framework很多,这对学的人是不好,但优胜劣汰,java spring现在就很突出。反过来微软就一个公司,程序员没积极性搞很创新的东西。有些东西就是吵,但失掉了先机。
-gta_palace(呄 - 每天乃古);
2021-2-21
(#13534236@0)
-
微软的问题在于,硬核程序员写个东西都不会把dot net当成第一平台。一直在微软上做的思维又很容易被套住,从开发环境到操作系统都是微软的,思维放不开
-gta_palace(呄 - 每天乃古);
2021-2-21
(#13534246@0)
-
generic / await 之类的貌似 java 也都支持了,但 LINQ 还有 bool? 之类的东西貌似还有很多细节 c# 要比 java 方便(作为语言)。作为 fw,用 nodejs/express做项目简直就是 pkg 的灾难。
-xmlhttprequest(build5381);
2021-2-21
(#13534305@0)
-
不过算了,看了看这个帖子的跟帖,看上去还是 religion 之争,细节上没什么意义。
-xmlhttprequest(build5381);
2021-2-21
(#13534309@0)
-
我个人是更喜欢C#,但有时候不是语言之争,而是开发环境和framework之争。
-guestagain(guest again);
2021-2-21
(#13534315@0)
-
要说 fw - 用 nodejs + express 基本就是裸奔,实现功能需要疯狂加 packages... nestjs倒是提供了基本功能,但基本上就是asp.net core功能了 --走到这一步干脆用 type safe的.net core 算了,重构无须提心吊胆... 槽点太多...
-xmlhttprequest(build5381);
2021-2-21
(#13534429@0)
-
差不多嘛,dotnet不过是不管你用不用,预先都加上了。反正我觉得没有啥本质上的不同,实际应用就因为各种原因选择不同罢了。
-guestagain(guest again);
2021-2-21
(#13534637@0)
-
nodejs,python,ruby都是要加pkg的,因为这些语言没有大公司支撑。选择pkg有时候会很麻烦,但这中解释型的语言优势也是很明显的。性能扩展通过C++。C#现在搞到8。0,一家公司说了算,抄了很多别人的东西,程序风格变化很大
-gta_palace(呄 - 每天乃古);
2021-2-21
(#13534475@0)
-
那 java 倒也抄抄啊,连 js 都支持 await async 关键字了... 作为编程语言,java 比 c# 不思进取太多了 --- 问题是这两个都是做企业开发的,又不像 c...
-xmlhttprequest(build5381);
2021-2-21
(#13534493@0)
-
一件事情有好几种写法,个人认为不是什么好事情。语言应该stable,能不加的东西就不应该加
-gta_palace(呄 - 每天乃古);
2021-2-21
(#13534583@0)
-
lol getter / setter / bool? 也就算了,await async 对 code 的简化是现象级的,"能不加就不加" --- 一路 callback? lol
-xmlhttprequest(build5381);
2021-2-21
(#13534605@0)
-
JavaScript这个语言的基础没有打好,据说是一个牛人七天创建的(上帝创世纪?)后来的人拼命打补丁,搞得这个简单的语言越来越复杂,一件简单的事情在语言级别有好几种做法,乘以framework,就搞出了十几种
-wuyg719(平平);
2021-2-24
(#13539329@0)
-
这就是所谓的摸着石头过河,在开始的时候还好,后来麻烦越来越多
-wuyg719(平平);
2021-2-24
(#13539333@0)
-
改的LISP. 本来就是个很先进的语言.
-negation(否定之否定);
2021-2-24
(#13539384@0)
-
如果是个很先进的语言,需要在语言本身上打这么多补丁吗?Java语言诞生到现在语言本身只打了很少的补丁!
-wuyg719(平平);
2021-2-24
(#13539415@0)
-
Java 在向 Js学习. Java 8 以后的东西,好多都是学Js的.C#也在学js. 比如async/await
-negation(否定之否定);
2021-2-24
(#13539427@0)
-
java8之前诞生了无数的重量级framework,那些新东西只是是锦上添花,不是必须的,倒是造成了很多混淆。违背了unix的精髓:简洁重用等
-wuyg719(平平);
2021-2-24
(#13539443@0)
-
部分同意. 的确有些不是必须的,但是对开发效率确实有提升.另外 OO跟FP思路本质上就不一样,肯定有互相不顺眼的地方.
-negation(否定之否定);
2021-2-24
(#13539455@0)
-
按照java的unix设计思想,开发效率是IDE的事情,即每个东西只做该它做的事情,并且把它做好,你认为少敲了几个字符就是开发效率高了?哪IDE干什么?还有那些所谓的stream写法,看上去少写了几个字符,但一旦出错,要调试的时候你就知道头疼了!
-wuyg719(平平);
2021-2-24
(#13539510@0)
-
多线程调起来都头大,但是还是要用的.stream parallel 肯定比自己去处理错误要少吧. trade off吧.
-negation(否定之否定);
2021-2-24
(#13539566@0)
-
你理解错了stream style,它像这样:a().b().c(d()),想象一下如何调试吧!
-wuyg719(平平);
2021-2-24
(#13539596@0)
-
学名fluent api/流式调用. 调试方法见link. 这些都是为parallel 服务的.stream 自带多线程,这才是stream的亮点.
-negation(否定之否定);
2021-2-24
{651}
(#13539606@0)
In our project we are migrating to java 8 and we are testing the new features of it. On my project I'm using Guava predicates and functions to filter and transform some collections using Collectio...
-
大部分应用都是框架或容器帮你管理多线程,你自己基本不用管,比如spring的transaction缺省情况下只能运行在单线程下。为了一个基本不用管的东西把自己弄得烦死!
-wuyg719(平平);
2021-2-24
(#13539618@0)
-
大数据处理就是必须的,这是Java的另一个主战场,可能比spring战场还大.
-negation(否定之否定);
2021-2-24
(#13539623@0)
-
不见得,比如aws的lambda,aws自动帮你管理几千个进程,你自己只要做好单线程的功能就可以了
-wuyg719(平平);
2021-2-24
(#13539650@0)
-
lambda单线程,node 比java 强.
-negation(否定之否定);
2021-2-24
(#13539661@0)
-
FP 天然配合多线程,这是FP的优势.
-negation(否定之否定);
2021-2-24
(#13539621@0)
-
await/async 的本质还是block的。java里面有compeletablefuture,可以同时支持non-block或者block,看你怎么用。JS是单线程,所以需要await/async来模拟多线程。Java/c#本身就是多线程的。
-negation(否定之否定);
2021-2-24
(#13539152@0)
-
await/async 的 point 是让 asynchronous code (flow) 象 synchronous code 一样简单 -- 不是说有多线程就不需要 await/async 了。
-xmlhttprequest(build5381);
2021-2-24
(#13539204@0)
-
await/async 的本质还是block的,理解这点再讨论其他。”象 synchronous code 一样简单“只是模拟了多线程,但是并没有解决blocking的问题。
-negation(否定之否定);
2021-2-24
(#13539209@0)
-
这里有一篇讲 await 和 blocking 的,你可以看看和你理解的一样不一样。
-xmlhttprequest(build5381);
2021-2-24
{70}
(#13539294@0)
https://app.pluralsight.com/guides/understand-control-flow-async-await
-
我上面是指的js里的 await/async。
-negation(否定之否定);
2021-2-24
(#13539338@0)
-
c#引入await/async 确实是方便了UI类的应用,但是对后台任务同样需要借助Task才能真正efficient,用法上其实和Java completablefuture 几乎一样。可以参考ms async文档,Await tasks efficiently这段。
-negation(否定之否定);
2021-2-24
{508}
(#13539363@0)
An overview of the C# language support for asynchronous programming using async, await, Task, and Task
-
因为它只能在windows上跑,虽然这几年微软加大力度想让dot net跨平台,但服务器端基本上还是Linux的天下,而用Linux的人对微软有一种天然的敌意/鄙视
-ben01(又一年);
2021-2-21
(#13533952@0)
-
.net core 支持 linux 很久了 / win10 里都有 linux 很久了...
-xmlhttprequest(build5381);
2021-2-21
(#13533955@0)
-
但对于Linux原教旨主义者,这是披着Linux马甲的windows。这才是根源
-ben01(又一年);
2021-2-21
(#13534009@0)
-
lol 一边打一边骂:“让你不支持 linux! 让你不支持 linux!” (一会儿)“让你假装 linux! 让你假装 linux!” ---- 是这个意思吧? 🤣🤣🤣
-xmlhttprequest(build5381);
2021-2-21
(#13534023@0)
-
所以说“原教旨主义”。现在的学生已经好多了,10几20年前招来的学生,提起windows就是dark side。已经融入血液里去了。大陆来的码农因为盗版有理的关系,对微软无感,甚至有一点亲切😂
-ben01(又一年);
2021-2-21
(#13534031@0)
-
呵呵,也不一定,俺们自从告别DOS进入Windows时代,就一直认为Windows就是个大黑箱,相比之下,DOS算是几乎透明的OS,用debug就能掌控于手,换到Windows后随着版本的不断更新庞大,黑箱里也愈加漆黑....
-see1see(Isee);
2021-2-21
(#13534248@0)
-
说.net好的人都是一直在微软平台上而对open source技术接触很少的人。微软的东西被人看不起是很正常的。比如.net的web forms搞了很多年,最后还得抄MVC。那个sharepoint的思路更是一塌糊涂
-gta_palace(呄 - 每天乃古);
2021-2-21
(#13533961@0)
+1
-
从 2017 年起,ms 就已经是最大的 open source contributor了
-xmlhttprequest(build5381);
2021-2-21
(#13533972@0)
-
这个只是market宣传。微软现在做的一切都是为了不让程序员完全倒向Linux。
-gta_palace(呄 - 每天乃古);
2021-2-21
(#13533996@0)
+1
-
最大? 微软贡献了什么有价值的open source项目?
-negation(否定之否定);
2021-2-24
(#13539103@0)
-
.net core, TypeScript, rxjs, visual studio code... windows 平台上的就不说了...
-xmlhttprequest(build5381);
2021-2-24
(#13539205@0)
-
TypeScript是ECMAScript 2015的实现,vscode是based on atom. rxjs 就更离谱了
-negation(否定之否定);
2021-2-24
(#13539273@0)
-
How We Use RxJS at Netflix 22nd September 2016 in London
-negation(否定之否定);
2021-2-24
{518}
(#13539275@0)
London JavaScript Community community cast. Ben Lesh:
-
.net core,除了微软产品集,有人用么?
-negation(否定之否定);
2021-2-24
(#13539288@0)
-
他提出一个问题,大家给他回答,但他其实要的不是回答,而是称颂。net。这说明题主并不想去学习别的生态系统。这种想法也很正常。
-gta_palace(呄 - 每天乃古);
2021-2-24
(#13539405@0)
+1
-
我本来的问题就是为什么 .net core 吸收了别的生态系统的优点,并改进了很多痛点,为什么还没得到应得的使用率。总的来说,大部分人对微软的偏见应该算是比我对 java / nodejs 的偏见要深一些的。另外,我一直在学习其他生态系统的。
-xmlhttprequest(build5381);
2021-2-24
(#13539449@0)
-
微软2000年如日中天,那个时候就写程序的多半是从微软平台过来的,并不是什么偏见。微软对VB6和Foxpro,说放弃就放弃,多少公司的赚钱程序就是用它们写的。dot net也一样,现在对Basic的已经停了,哪天微软开始全面推另一种东西也是完全可能的
-gta_palace(呄 - 每天乃古);
2021-2-24
(#13539463@0)
-
如果一个公司plan一个产品,它就得考虑这种生态系统的问题,一个产品代码至少几十万行,公司得考虑代码的稳定性,20年后程序员仍然能维护现在的代码
-gta_palace(呄 - 每天乃古);
2021-2-24
(#13539486@0)
-
还是那句话,.net core才出来多久?按照微软的惯例,版本3之前根本没法用。
-guestagain(guest again);
2021-2-24
(#13539470@0)
-
另外,我也和其他同时多个生态系统的人聊过 -- 所以我也能理解有时 pros/cons 是相对的,有时看使用场景/项目大小,还有时候 dev 觉得某个生态系统有 flexibility,但 ta 的 lead 或 arch 觉得那些 flexibility 会带来额外的工作。
-xmlhttprequest(build5381);
2021-2-24
(#13539478@0)
-
不是偏见. 已经1202年了,linux 实用性已经不需要证明. windows都在上原生的wsl.
-negation(否定之否定);
2021-2-24
(#13539491@0)
-
这个没否认啊 --- 我们公司 .net core 生产环境都是在 linux 上跑的 --- 我本来的问题就是微软都这么有诚意了,大家怎么还不用 lol...
-xmlhttprequest(build5381);
2021-2-24
(#13539505@0)
-
因为可以直接用linux + open source啊. 完全不需要微软.
-negation(否定之否定);
2021-2-24
(#13539507@0)
-
微软太贪多贪全,所以搞了很多垃圾出来,然后它就把它们全扔掉,伤了很多人
-wuyg719(平平);
2021-2-24
(#13539564@0)
-
微软产品本身还是不错的.主要是贵+封闭.
-negation(否定之否定);
2021-2-24
(#13539607@0)
-
如果以前一直没有用dotnet,为啥要换?
-guestagain(guest again);
2021-2-24
(#13539515@0)
-
你要是以前用别的生态系统,那确实没必要换。但对 startup 公司来说 -- .net core 也开源,vscode 也可以在 windows / macos / linux 上跑...
-xmlhttprequest(build5381);
2021-2-24
(#13539534@0)
-
startup更是自由选择了呀,选啥的都有,为啥一定要选微软的东东?“也”而已,不是“只有”。
-guestagain(guest again);
2021-2-24
(#13539546@0)
-
startup第一条就是成本,更不可能用MS. MS也就是银行之类的传统大企业,有钱又不愿意自研的适合.
-negation(否定之否定);
2021-2-24
(#13539551@0)
-
lol 银行差不多都是 java -- 不过那个我完全能理解(历史由来)...
-xmlhttprequest(build5381);
2021-2-24
(#13539558@0)
-
大家一阵围攻微软,但其实微软的市场也很大:很多小企业没有能力搞自己的软件,所以买一套office套件,用里面的excel和access做业务,这个市场原来很大,但最近被云端应用挤压
-wuyg719(平平);
2021-2-24
(#13539571@0)
-
office 365, ms team都是好产品.MS OA还是不错的,但是开发stack是另一回事.
-negation(否定之否定);
2021-2-24
(#13539637@0)
-
现在的程序都跑在服务器上,一定要用Windows的原因只有一个,就是一个关键的东西只能在Windows上能用,比如买的一个DLL
-gta_palace(呄 - 每天乃古);
2021-2-24
(#13539563@0)
-
不是一直在说 .net core + linux + docker 么,怎么又绕回 windows 了?如果 ms 还是只支持 windows server 我压根儿不会问这个问题。
-xmlhttprequest(build5381);
2021-2-24
(#13539568@0)
-
你能确定各种功能Linux也能找的到?如果不能到时候写了一半还得转回windows
-gta_palace(呄 - 每天乃古);
2021-2-24
(#13539570@0)
-
Liux上net core写个简单的web server是行的,但如果要调用数据库,图形库要求第三方功能的就不行了
-gta_palace(呄 - 每天乃古);
2021-2-24
(#13539578@0)
-
问题就是,一直对Linux环境有需求的,根本不在乎微软的东东,微软这个.net core在我看来是被逼急了,小手不停的挥,客官别走,他有的咱现在也有了,别走呀……
-guestagain(guest again);
2021-2-24
(#13539574@0)
+1
-
LOL
-wuyg719(平平);
2021-2-24
(#13539586@0)
-
跟着吐槽一下那个Sharepoint,估计是哪个三哥的showoff之作
-clear(clear);
2021-2-21
(#13533980@0)
-
但那个和 .net core 没什么关系啊
-xmlhttprequest(build5381);
2021-2-21
(#13533986@0)
-
我没说和.net core有关系啊,顺着楼上吐槽一下啊
-clear(clear);
2021-2-21
(#13533991@0)
-
因为.net core的基本就是把open source的产品抄一遍,集成度会更高,但是也更封闭。问题是大家已经用上open source的了,干嘛还掉头去用封闭的产品?
-negation(否定之否定);
2021-2-24
(#13539071@0)
-
因为 open source package 的自由度太大,有时对商业产品开发是灾难。
-xmlhttprequest(build5381);
2021-2-24
(#13539102@0)
-
从前是这样。MS的产品封装一直优秀,毕竟要收钱。 docker之前MS产品易用性吊打open source.但是docker/k8s以后,open source封装已经反过来吊打MS了。
-negation(否定之否定);
2021-2-24
(#13539109@0)
-
nodejs 随便做个项目需要加近百个 package,安全性和版本兼容性的挑战不是用了 docker 就能解决的 -- 是两个层面的问题。
-xmlhttprequest(build5381);
2021-2-24
(#13539213@0)
-
没有node,有typescript 啥事?node 这么烂,微软为啥还要搞 typescript ?
-negation(否定之否定);
2021-2-24
(#13539278@0)
-
不是说 nodejs 不好,nodejs 还是有很多应用场景的。另外,就算没有 nodejs 也还有前端的 angular 和 react 可以用到 ts。
-xmlhttprequest(build5381);
2021-2-24
(#13539308@0)
-
没有node 就没有 angular/react了.
-negation(否定之否定);
2021-2-24
(#13539400@0)
-
node也就帮忙搞一些编译,部署等杂事,没有它也可以做,只是变成了技术碎片:开发一种语言,编译部署另外一种语言
-wuyg719(平平);
2021-2-24
(#13539430@0)
-
"编译,部署等杂事"......
-negation(否定之否定);
2021-2-24
(#13539433@0)
-
java有段时间在把其他语言比如jython,groovy,jRuby和scala编译成java字节码,这里编程语言不是java,编译语言是java,你怎么解释?
-wuyg719(平平);
2021-2-24
(#13539454@0)
-
Java并不需要 jython和scala. 他们选择编译成java 字节码是为了执行方便.
-negation(否定之否定);
2021-2-24
(#13539473@0)
-
所以我可以用java语言把typescript编程成java字节码,技术上完全可行,然后用java部署生成的代码,也没有任何技术问题,也可以编译成javascript文件,直接运行在浏览器里面
-wuyg719(平平);
2021-2-24
(#13539488@0)
-
java 编译成 javacript文件? 搞清除什么叫"编译"再说吧.
-negation(否定之否定);
2021-2-24
(#13539501@0)
-
我是简略写法,如果你不懂,我就写全吧:用java语言做一个typescript编译器,用java语言做一个typescript项目管理器和部署器
-wuyg719(平平);
2021-2-24
(#13539520@0)
-
可以用跟真正用是两回事. java 再牛,遇到GUI就抓瞎.
-negation(否定之否定);
2021-2-24
(#13539506@0)
-
好用和能不能是两回事,我在讨论你的能不能问题:你说没有node就没有angular!其实angular跟node没有任何直接关系!
-wuyg719(平平);
2021-2-24
(#13539531@0)
-
java 能不能GUI ? 肯定能. 但是Java GUI已经死了,不好用最后就只能被淘汰.
-negation(否定之否定);
2021-2-24
(#13539536@0)
-
忘了说还有最近很火的kotlin,也是编译成java字节码
-wuyg719(平平);
2021-2-24
(#13539498@0)
-
说明java 势不可挡,周边都这么火. :-)
-negation(否定之否定);
2021-2-24
(#13539509@0)