Java是犯罪分子的

2021-04-16 10:15:42

2021年4月15日星期四出版,它可能阅读了这篇文章的标题和思想"这家伙吸烟是什么? Java到处都是!" '重新正确,Java仍然占主导地位的企业,并运行了一些世界各地的最大关键任务应用程序。但是Java'采用了ISN'我在谈论它的炒作。我花了很多时间,无所不在的程序员。没有经验的程序员喜欢做什么?对编程语言等工具进行兴奋和自以为是。我遇到的CS本科没有一个关于Java,但我认为他们应该是。

年轻/天真的开发人员(我包括自己)经常陷入迷住新语言和工具的陷阱,以牺牲生产力和理智。在HALP工作之前(现在拥有$ TEAM),我与后端类型签字有几乎浪漫的关系。我认为Node.js生态系统是有史以来最酷的事情:我喜欢转发代码,实时调试,大规模包库,甚至是奇怪和碎片的构建系统的想法。当我在生产中使用它并谈到更有经验的工程师时,魔法很快就会消失。

我对JS生态系统有一个非理性的亲和力,因为它是热门的新事物;它有炒作。现实并没有达到我的期望。今天,我预期的javascript的精彩事情我目前正在享受我在Java获得经验。我觉得被背叛了,炒作不会让我迟早给Java带来Java。 Java是有趣的写作,生产,并在新的开发人员中获得不公平的声誉作为恐龙。

这是不低调的:Java只是感觉很好。很多这是由于工艺码头绘制到Intellij的想法。一切都是自动完成的,跳转定义快速,查找使用效果很好,重构很容易。但是,Java真正闪耀的是第三方图书馆的开发人员体验。

我的经验是有限的,但我觉得风已经转移了对外部依赖的自由用途。在这里没有发明,不是发明的。尤其可能在左填充的琐事操作中非常可能包括第三方库。我认为目前对第三方依赖项的亲和力是特别有害的,但上游API变化可能会在没有型号的JS / Python代码基础上造成严重破坏。

在Java中消耗第三方库时,您始终知道需要传递到方法的类型。最重要的是,函数的不正确使用将导致编辑器中的红尖锐泡。鉴于沉重的图书馆使用量,我认为更多的人应该对Java感到兴奋。

动态/鸭/弱/无关的缺点存在许多缺点。当依赖关系更改API方法时,您的应用程序在运行时失败而不是构建时间和#39;问题。当开发人员必须转诊到实施方法的实施时,以确定将哪种类型传递到哪种类型,即浪费时间。类型签字和Python类型提示解决了此问题,但它们缺乏在没有额外代码的情况下在运行时验证传递类型的能力。

类型警卫是我最不喜欢的打字功能。他们'重新剥夺你必须实现自己的鸭子,并信任他们和#39;重新实施正确。在我看来,这是两个世界上最糟糕的。考虑以下:

接口{bark:()=>空白 ; } / *开发人员必须手动实施启发式检查是否遵守界面遵守!当它们更新界面时,它们也必须更新类型的警卫! * /函数isdog(宠物:对象):宠物是狗{返回(宠物作为狗).bark!==未定义; } const狗:任何= {bark:()=>安慰 。日志(' woof')}; if(isdog(dog)){// ts现在知道这个问题中的对象如果语句始终键入dog //,这是因为类型保护isdog缩小到狗狗的类型。树皮(); }

有关宣称类型并为所述类型写入验证逻辑的东西,那么'对于那种真正揉搓我错误的方式。以上代码闻起来像使用错误工具的人一样。

与类型键样定义不同,Java' S名义式系统通过默认通过型号定义和保证型防护队来汇款,并通过默认地将粗大​​的脑部负载。

Java开发人员可以自信地相信JVM做什么'最好的。无论是他们'重新实现多线程应用程序或在堆上存储大量数据,他们可以自信他们在脚上拍摄,掌握在脚下,内存管理或数据播放。这种优势主要与C ++相比,其中包含多种脚踏板。

这是Java'符合人体工程学经验的一部分。当一个开发者必须担心少了解技术人员,他们可以更多地关注手头的问题。

我认为唯一的合格工具是Java,但如果有其他人,请告诉我!编辑:jwosty指出微软' s java竞争对手c#拥有所有这些特征和更多/更新的语言功能。我从未在Unity游戏引擎之外使用过C#,但是我将调查一下。

我目前参加科罗拉多大学博尔德;它'是一所伟大的学校,但我们'肯定不知道cs。然而,我们的大多数大部分计算机科学课程无耻地从CMU或斯坦福,任务和所有人中偷走了。在我的时间在铜,我使用了以下编程语言:

C ++。选择此语言的所有必需的核心课程:计算机系统,操作系统,数据结构等。这种语言是一个合理的选择,因为它可以实现直接内存管理,创建内核模块,并提出许多挑战和学习机会。

Python和朱莉娅。正如您所希望的那样,这些语言是数字计算和离散数学教授的宠儿。

scala。这种语言用于编程语言指令的原则,主要用于其功能规划和模式匹配功能。虽然Scala使用JVM并与Java inderops,但它具有比Java更不同的开发人员体验。

Web语言(HTML / CSS / JS)。这些仅用于称为软件开发方法和工具的单个课程,这些课程专注于行业趋势。

我毕业了这个学期,Java没有单一外观;我认为这是一个耻辱。

没有一种真实的方法来构建应用程序,但我认为Java并在初创公司和新手编程社区中受到足够的重视。无型语言是有用的工具,但我认为他们应该是构建大型应用程序的默认选择。如果您'重新堆叠开发,从未广泛使用Java,我认为您是否应该为您的下一个项目尝试令人愉快的惊喜。

Java和JVM被炒作到了90' S和2000年初的月亮和#39;我,但我认为它应该死了! 开发人员体验I'在intellij和Java找到了Ve,值得兴奋。 我好奇为什么Java首先失去了炒作。 程序员文化历史记录不足,如果您有洞察力,请给我发电子邮件或发表评论。