五千年(敝帚自珍)

主题:【调查】大家都主要用什么写程序? -- 还是不懂

共:💬139 🌺25
分页树展主题 · 全看首页 上页
/ 10
下页 末页
        • 家园 您用过那个老古董啊,pioneer啊

          那会儿是LabVIEW在Win95的第一版,现在的可比那时先进多了。

          我是从97年开始用的

          Major LabVIEW Introductions

          May-04 LabVIEW 7.1

          May-03 LabVIEW 7 Express

          May-03 LabVIEW Real-Time, LabVIEW PDA, and LabVIEW FPGA

          Jan-02 LabVIEW 6.1

          Aug-00 LabVIEW 6i

          Feb-99 LabVIEW 5.1 and LabVIEW for Linux

          Mar-98 LabVIEW 5.0

          May-97 LabVIEW 4.0

          Oct-95 LabVIEW for Windows 95

          Oct-94 LabVIEW for Power Macintosh

          Apr-94 LabVIEW for Windows NT

          Oct-93 LabVIEW 3.0 Multiplatform

          Oct-92 LabVIEW for Sun

          Sep-92 LabVIEW for Windows

          Jan-90 LabVIEW 2.0

          Oct-86 LabVIEW 1.0 for Macintosh

          Apr-83 LabVIEW Development Begins

          • 家园 看来我是老古董了,

            那时候学校有这个新鲜东西,一玩,真是佩服设计这东西的人,你说人家是怎么琢磨的,从来没想到能方便到这个地步。现在肯定好到不知道哪里去了。

            离开EE以后,就再没机会玩儿这个了

    • 家园 我不是做计算机的,但以前用汇编和C,经常调用bios中断

      最近只用DCS.

    • 家园 非程序员凑个热闹,SAS
    • 家园 MATLAB
      • MATLAB
        家园 是这个,现在居然成语言了,强啊。。。

        MATLAB 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。MATLAB 语言在各国高校与研究单位起着重大的作用。

        MATLAB 语言由美国 The MathWorks 开发,2003 年推出了其全新的 MATLAB 6.5.1 正式版。目前最新版本 Release 14 (MATLAB 7.0) 的 Service Pack 1,2004 年 9 月正式推出。

    • 家园 哪位大老评价一下M?
    • 家园 【原创】C,偶而用用C++,

      C,偶而用用C++,其实这个地球大部分CPU跑的程序是C写的。

      其实C++,Java,C#的出现跟C的设计中出了很多差错有relation,C的出现是革命,以后都是改良了,后来出现de最重要的LANGUAGE应该是smalltalk,c# AND java都不过是在找某种中间的平衡。

    • 家园 【原创】俺来挺一下C++

      看了下面的文章,大部分是挺Java的,的确Java同C++相比是领先一代,在下这里要稍微唱一下反调。这个帖子是要说一些Java做不到,但C++可以做到的东西。说的不对的地方,请高手们指出。

      先从最简单的一个函数说起,我要实现一个交换两个数的函数,在C++里很容易。

      void swap(int &a, int &b)

      {

      int t = a;

      a=b;

      b=t;

      }

      这个函数Java就实现不了,因为Java中没有pointer,而Java的object reference,相当于C++的pointer。Java中没有对应C++的reference的实现,也没有取地址&的操作。扩展一下这个问题,就是Java无法处理多返回值的情况,C++可以通过传入Reference或Pointer来实现,而Java只能将所有返回值group成一个object来返回。

      再进一步,如果我想让这个函数对所有type都适用,那么在C++中很简单,用个template就行了,

      template<typename T>

      void swap(T&a, T&b)

      {

      T t=a;

      a=b;

      b=t;

      }

      这样的话,只要的我的class实现了copy-contructor 和 operator=(),我就可以用这个swap函数,而不局限于int

      MyClass a,b;

      ...

      swap(a,b); // exchange value between a and b

      这个功能Java更实现不了,因为到目前为止,Java还不能support template,虽然有消息说Java将来会支持template。

      不支持template也就无法支持Generic Programming (当然Java developer可以用一些技巧来模拟Generic Programming,但这不是语言本身所支持的)。

      现在我们来进一步讨论,我们知道C++有庞大的STL Library, 在STL里包含了各种Container,Iterator,Algorithm等等前人已经帮你完成的东西,大部分情况下,你只需要使用这些东西,而不需要reinvent the wheel,Java Developer会说你说的东西Java也基本能做,比方说Java中也有vector,map什么的Container。但是Java实现不了的(或曰很难实现的)是下列一个情形,假设我要实现一个三元组的Container triplet,<Key, Value1, Value2>,而这个需求并不夸张,因为现实世界有许多3元组关系的对象。用C++的话就很容易实现,

      template <typename _Tkey, typename _Tv1, typename _Tv2>

      triplet {

      ......

      iterator begin();

      iterator end();

      // detailed implementation omitted.

      ......

      };

      在triplet需要实现begin(), end()返回一个Iterator(实际上是一个struct *,这个struct包含first,second,third三个成员变量,代表key, val1,val2)。(我这里省略了其他具体实现)

      具体来说,你需要对这个triplet do some thing,你就可以用STL的算法,

      triplet<int, MyClass1, MyClass2> aTriplet;

      ......

      for_each(aTriplet.begin(), aTriplet.end(), DoSomething); //DoSomething 是个function或functor

      就可以了,其他各种STL算法都可以应用在这个Container上面。

      而要实现这样一个Triplet的功能在Java中是很困难的。

      稍微总结一下,Java这些局限是他的主要特点决定的,第一个特点是没有pointer,也就没有取地址&的操作,从程序的reliablity角度来看,是有好处的,因为大部分程序错误跟指针操作有关,但是同时也限制了灵活性。这个是好坏参半,孰优孰劣很难说。第二个特点是没有template,这点我个人觉得是个极大的缺陷,没有template,就失去了Generic Programming的强大武器。虽然很多东西Java也勉强可以做,但毕竟不如C++来得自然。所以Java community一直有将Template引进Java的企图。

      (待续〉

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


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

Copyright © cchere 西西河