我强烈支持java初学者使用IDE。因为Java本来就是个离开IDE就很难写的语言。
大凡初学者对很多东西都很不熟悉的时候,需要把全部注意力专注在一两点内容上,比如一些基础语法,条件控制,函数,方法的意思等。但是Java在这些核心内容之外要考虑的东西很麻烦,比如:
以上会造成一个简单的hello world没有IDE都要折腾很久,如果要弄个基本的能跑的web服务器在没有springboot的情况下都会吐血。这一切都将会对初学者的信心进行暴击。
对于编程初学者,需要花更多注意力集中在语法本身就是表达的含义上,其他干扰的项目能少一点就少一点,等到遇到了再去研究javac,java,mvn,gradle,jps,jstatck,jconsole……。
另外,再说一遍:Java是个离开IDE就很难写的语言。所以最终大部分人说的“开发Java”的意思大致就是指用Eclipse/IntelliJ写Java程序。因此,一开始就接触这些IDE也没什么不好。只是记得IDE并不是万能的,同时也要理解一些IDE的内部工作原理和与command line的交互。
对于很多其他语言,即便没有IDE也基本上不会有太多干扰,比如nodejs,python,go。本身语法简洁,没那么多条条框框,有的自身带REPL就很友好。一个vscode、sublime、atom基本上就能解决95%的问题了。这样的语言不用IDE学起来就很不错。
基于linux可以做到自主,但是不够可控。国产化以及自主可控本身都不是最终目标,产业安全和国家安全更加重要,Linux的问题就在于不够安全。
linux的问题在于代码量太大,团队太杂。千万级别的代码,而且是宏内核架构,大量来自各种团队的设备驱动和内核模块,任何一个点出问题都可能被获得系统控制权。除部分资源受限的嵌入式设备外,使用linux的厂商大概也没多少动力进行裁剪。目前的针对涉密网办公用的国产OS通过各种审计,监控,异形物理接口等手段进行安全增强,但是如果有预埋的内核漏洞想一想仍然有机会激活。而更多的应用场景比如工控机,上位机不太可能上厚重的保护手段,成本和意识都跟不上。
bsd是更加安全稳定的方案,但是bsd在美国控制之下,长久看来也不够可控。
作为自主可控的基石,需要一个纯粹的微内核架构。现在问题是目前所有的微内核OS都必须解决性能问题,否则无法做到足够的通用性,就像QNX,无法解决大部分问题。很多厂商包括IBM都曾经在微内核上下注,还没有得到十足的成功。
目前潜在的比较令人期待的微内核通用系统有两个,fuchsia和鸿蒙。这两个都有大厂背景,表现出了商用的潜力,fuchsia已经展现了一些平台特性,鸿蒙作为TEE架构的TEE部分也已经初步商用。如果能够成功,相当于在linux、bsd之外又多了一个或两个posix兼容内核的选择,可以作为基础制作新的更加安全可控的发行版(忘记hurd吧)