西西河

主题:【原创】也来说说Linux和Windows下的开发感受 -- 昔杨今雨

共:💬203 🌺502
分页树展主题 · 全看首页 上页
/ 14
下页 末页
            • 家园 Python是强类型语言

              动态强类型,呵呵。

              可以参考 Why is Python a dynamic language and also a strongly typed language

            • 家园 看来是兄台对java是爱之深恨之切啊,呵呵。

              我的意思是, 这几年java给我的惊喜越来越少了, 而感受到的java的暮气越来越重

              这个我非常同意,实际上这些年也的确没什么让人感到兴奋的新东东出来了。不象当初spring出来的时候,感觉有了新大陆。我原来公司也有一套相对简单的ioc框架,第一次看到spring很是冲动,这不是我们xxx的升级版吗,呵呵!

              以web框架为例,现在流行的框架的确没什新意,也就是一些细节上修修补补。不过java可不只是做web,apache中还有不少很是好玩的东东,例如最近我有空看看mina的代码,挺有意思的。

              btw,现在对spring最不满的就是,这家伙越来越大,但是老毛病永远不改,呵呵。spring的BeanFactory是一个二维平面结构,所有bean都是平等的,没有module和layer的概念。而大型系统中的bean往往某些关系天生就比较密切,应该在一起,也就是说BeanFactory内部的bean应该可以有module和layer的概念。SCA有类似的概念,但是tuscany用起来太麻烦了。去年,我基于spring自己做了一套,用在我们的产品中,效果可以,呵呵

      • 家园 现在用C++的也有了很多库啊。。。

        就是普遍难用,而且用C/C++的人总想知道库是怎么运作的,于是。。

      • 家园 同感。

        偶也是从C/C++转到java的,感觉懒了不少,哈哈。

    • 家园 还是java 好

      不象“文化大革命就是好,就是好“。java确实好,windows,linux通杀。越高端的语言用起来越不放心

      • 家园 但是可以用java写操作系统么?

        虽然现在C#和Java殊途同归了,总还是对用虚拟机的语言有些不放心……

        • 家园 我认为Java不是语言,就是另外一种操作系统

          Java我也很不熟悉,但是显然它要做的不是什么新的语言,而完全是一种分布式的计算模型,或者叫做操作系统也行,在每台机器上装一台虚拟机,什么东西都用自己的方式来一遍。

          当然,按照以前SUN的估计,很快会出现Java通吃一切,最后把微软逼到也不得不采用Java模型的方式,它当然就立于不败之地,甚至往美好一点想,以后可以开发直接执行JVM的硬件,SUN公司在企业市场就更呼风唤雨了。

          这个想法在90年代以前,确实是非常先进的做法,而微软也是心知肚明,而且他一时间还真没有办法回应。在以前,甚至包括现在他在服务器方面的支持还是没有SUN充分。所以这个跨平台的问题还真不能一下子通过绑定操作系统来进行。所以赶紧搞了一套新的标准起来。大家都可以看到,Visual J++,C#,.Net这些都是对付这个问题的。比起对付Novell,这个难度就大多了。当然,思路还是一样的,参见

          NTLM的故事

          我一向对这种夹杂太多某个具体公司私心的技术心存戒备,所以从来没有认真用过Java。现在虚拟技术起来了,如果每台机器上装一个用户模式下的小型Linux环境,那也是一样的,或者基于某个跨平台的库接口进行开发,比如python,或者gtk什么的,也可以实现安全的一次写好到处执行。所以我个人感觉Java开发方式有点过时。

          • 家园 java是平台,不只是语言

            这个布局决定了很长一段时间他不会过时。 不管python也好,ruby也好,还是新起的scalar,erlang等等语言都可以稳健的部署到java这个平台上来跑,而且可以充分利用过去15年的积累。

            从这个角度看,说java是一种os本身也没错。 另外嵌入式领域 java 本身可以做os的,硬件固化java os,这也是最早java要干的活。

            就java语言本身来说,他可能是第一种大规模使用的专门设计的工业化语言, 这点是其他语言,包括c#也基本忽视的。微软是通过工具,而不是语言本身来体现这种工业化作风的。

        • 家园 当然可以

          例如以下14种Java编写的操作系统

          请善用Google

          第一个纯Java操作系统

          贝尔实验室发明的SavaJe OS是一个纯Java操作系统,支持J2SE,已经得到强大的商业支持,LG已经采用了SavaJe做为其3G手机

          SavaJe OS, an open standards-based, 100% pure Java platform for mobile phones

          全文:http://www.savaje.com/

          有关SavaJe的技术信息见:

          http://java.sun.com/features/2001/06/savaje.html

          http://sunflash.sun.com/articles/40/3/ja/4013

          第二个纯Java操作系统*

          一个开源的JAVA操作系统

          jNode:

          Java New Operating System Design Effort

          http://jnode.sourceforge.net/portal/

          http://sourceforge.net/projects/jnode/

          JNode可能是现在开源的Java操作系统中发展最快的了。

          至于JNode的性能:

          http://jnode.sourceforge.net/portal/node/51

          可以看到,同样硬件中JNode的性能已经达到了SUN jdk1.4.2的110%,用纯Java写的Java平台的底层的性能超过了C++写的Java平台底层!

          至于jdk1.4.2的性能是如何超过C++的,请看NuclearJava.blogchina.com

          它对jdk1.0已经几乎完全兼容,对于jdk1.5兼容度不到50%。

          http://jnode.sourceforge.net/portal/node/174

          大家可以下载ISO光盘镜像,用VMware安装试试:

          http://umn.dl.sourceforge.net/sourceforge/jnode/jnode-x86-0.1.9.iso.gz

          镜像共有40多M

          JNode现在在0.1.9版,正在向它的主要release版0.2.0版进发。

          一旦JNode发布,就将出现一个非常恐怖的现像:

          将JNode移植到任何一个不支持bytecode的CPU上只需要改动几K的汇编代码就行了。

          也就是说JNode一旦发布就可以支持几乎所有的硬件体系

          http://www.koders.com/info.aspx?c=ProjectInfo&pid=ZK-Ps19mqSFzgjyC*FNiXw__

          jNode -

          第三个纯Java操作系统*

          新一代操作系统JavaOS

          引言

          1997年5月29日,JavaSoft公布了JavaOS———为在微处理器上直接运行Java应用程序而设计

          的一个高度精简的操作系统。

          http://bbs.xmu.edu.cn/bbsgcon?board=Java&file=G.863078295.A&num=4

          第四个纯Java操作系统*

          另一个100% 纯Java 操作系统:

          JXOS:

          http://sourceforge.net/projects/jxos

          第五个纯Java操作系统*

          再来看看纯Java操作系统JX的情况:

          http://www.embyte.com/shop_view.asp?id=23

          只有200K。

          JX可以装到一张软盘中,可以启动电脑,拥有图形界面,用这个启动总比用DOS启动电脑好方便吧?

          这是JX启动后的抓屏:

          http://www.embyte.com/upload/product/a2004112080640.jpg

          第六个纯Java操作系统*

          JOS

          http://sourceforge.net/projects/jos

          第七个纯Java操作系统*

          KaffeOS: A Java Operating System

          由于不太出名,我就不详细说了,大家自己查相关资料吧

          http://www.cs.utah.edu/research/factsheets/kaffeosscrn.pdf

          第八个纯Java操作系统*

          leJOS:

          Tiny Java OS for Lego RCX brick. Like its predecessor TinyVM, has tiny Java runtime, under 32K; works as replacement firmware for Lego; Hitachi H8300 processor. To be ported to more small devices. [Open Source, Mozilla]

          http://lejos.sourceforge.net/

          第九个纯Java操作系统*

          SanOS

          Minimal OS kernel for PC based server appliances. Lets you run java server applications without need to install host OS, only need normal Java HotSpot VM and Sanos. Description, documents, downloads, manifesto, links, contact. [Open Source, BSD]

          http://www.jbox.dk/sanos/

          第十个纯Java操作系统*

          LogOS:

          Linked object generation Operating System, and other Java on bare metal synthesis technology for embedded systems. Tools to make dynamic, classloadable programs without overhead of traditional OS and JVM software layers.

          http://www.websprocket.com/

          第十一个纯Java操作系统

          关于Java Card 上的java操作系统:

          http://www.gemplus.com/smart/rd/publications/pdf/Lag02gdc.pdf

          第十二个纯Java操作系统

          JBed

          a Java-based Real-Time Operating System

          详细介绍见:

          http://www.microjava.com/jvm/software/jit/jbed2?content_id=695

          JBed也是100%纯Java,连驱动程序都是java写的

          第十三个纯Java操作系统

          COSC

          Microkernel-Based Educational Operating System in Java

          http://www.cosc.brocku.ca/Project/info/javaos.htm

          第十四个纯Java操作系统

          Janos

          Java-oriented Active Network Operating System

          http://www.cs.utah.edu/flux/janos/

          • 家园 这个说法有问题

            你给出的大部分链接,我认为应该是原生支持java的os,本身并不是用java写的。用java来写os,需要芯片级别的支持,有一个翻译的过程。

    • 家园 大龄程序员报个到

      为了回这个贴,注册了个账号。在新兵营发个贴骗积分,还无端被咬。弄得回贴的心情都没有了。

      废话少说,言归正传。说说一个玩了多年unix,至今不会visual studio大龄程序员的感受。不想介入windows和unix的争论,单从程序员的角度来说。

      楼主的观点,很是认同。用windows环境,容易被人牵着鼻子走,最后成为庸庸碌碌的程序员,被时间淘汰(有大牛例外)。举个例子,若干年前的VB程序员,现在恐怕已经失业了,或者只能捏着鼻子学C#(天知道几年后微软还会搞什么新的花样)。这种状况对于一个程序员来时,其实是很可怕的。UNIX环境,更为开放。你想干什么,想学什么,都可以。而且更容易接触到底层的东西。这个在windows里,恐怕机会不多。从另外一个角度来说,更多机会接触深层次的东西,意味着更有机会成为专家,更容易保住饭碗。

      程序员,和其他职业也一样,贵在精深。只会用VB,肯定没有开发VB的程序员容易混下去。道理就这么简单

      就一些回帖也说一下自己看法:

      1。楼主在一个回帖里面所说的持续集成(?)windows下面也有。大家常linux下的。主要原因是都是free sources,免费的,而且功能也足够强大。

      2。有人下结论说计算机科学是应用科学。从我的观点看,计算机科学,归到数学更确切一些。举个例子,大家熟知不熟知程序语言,大多数都是从lambda calculus衍生出来的。建立,完善lambda calculus这套理论体系,然后在不同领域衍生出不同语言,这个是计算机科学做的。用这些不同语言,实现不同应用,已经不能说是真正的计算机科学了。

      3。有人说程序员工具而已,也不用太悲观。不都是混口饭吃嘛。能力强的人,完成经验积累后,自己开公司想多挣点。不想折腾得,就呆在公司,想怎么不被lay off。无论是老板,包工头,还是工人,走自己的路就好了。不满意,就求变呗。

      发贴的目的,是和这个版里的大牛交个朋友。不同意见者,请不要火气那么大。

      • 家园 vb程序员学VB.net很容易

        vb.net和C#光从语言上来说没什么区别了,现在有一些网站可以把这两种语言相互转换,而且VB.net网上资料非常丰富。我看国内的程序员都倾向于C#,但是在国外这两种语言的程序员都很多。

        • 家园 也未必, vb和vb.net基本没有什么关系

          vb.net刚出来的时候引发了很多争议,如果说有关系, 我看类似于c和c++差不多。最主要一点,一个已经是OO了,另外一个只是based object。从这个角度看,学习c#会更好,语法方面更灵活。。

          我们曾经有一个team,以前是做vb的, 为了保持传统,升级到vb.net ,过了一年做总结,都说不如直接上c#。.net体系的一等公民还是c#,混合语言编程做市场噱头不错, 维护是个灾难。

      • 家园 几个认识的误区

        VB->C#的转变,并不仅仅是微软搞的花样,这种转变背后深层次的原因是现实世界的商业程序正由CS结构转向BS结构。即使在linux世界里为了应付这种转变,程序员也同样需要学习新的语言例如java或者php。以VB->C#的转变作为windows程序员面临困境的代表并不公平,这是所有开发商业程序的程序员所必然面临的挑战。现实世界的商业模式正在变化,无论unix、linux还是windows程序员都不可能独善其身的。

        “更多机会接触深层次的东西,意味着更有机会成为专家,更容易保住饭碗。”这话也有问题,首先专家有很多种,除了精通编程技术的专家还要有精通领域知识的专家,后者在实际开发中可能更加重要。其次,即使按照操作系统分编程技术专家也有linux技术专家和windows技术专家之分,两者都是需要的。从现实情况来看,windows技术专家需求量还是远大于linux的。第三,正如你所说,linux更容易接触到深层次的东西,windows则相反,所以成为windows方面的技术专家更为困难,所以一旦学有所成,再加上庞大的需求量,饭碗绝对没有问题。

        旁观了这段时间关于linux和windows的争论,感觉支持linux的多是面向系统管理或者科学计算这些特定领域的开发人员,这说明linux在这些领域确实具有一定的优势。其实谈linux和windows的优劣,都要结合相应的领域。空对空的说用linux可以看到源代码,可以接触底层技术,但是这些并没什么太大的意义。正如风北客所说,现在的程序员早已经细分了,并不是所有的人都关注底层技术,相当多的程序员更关注如何更有效率更好的满足客户的需求。对他们来说一个对底层技术良好封装的平台(例如java)才是最重要的。

分页树展主题 · 全看首页 上页
/ 14
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河