有没有用golang写的开源ERP系统

Python016

有没有用golang写的开源ERP系统,第1张

没有用golang写的开源ERP系统,这个我计划业余时间开发一个,作为学习golang的练习。

另外,metasfresh和axelor是基于java, erpnext是基于python, viennaadvantage是基于net的通过后台配置自动生成较为美观的前端界面的企业应用快速开发平台,具有很高的开发速度。

从erp的角度,后起之秀metasfresn是功能最齐全的,适合中大型企业的开源erp(在库存采购销售制造各模块加入了大量支持大型企业的功能),缺点是设计高度复杂,代码难度极大。

而从开发框架的角度,viennaadvantage结合.net/c#,则是上手最容易的,支持saas的企业应用快速开发平台。

一、操作系统:

Microsoft Windows : 汇编 ->C ->C++

备注:曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的模块合并,最终又回到C++重写。

相信很多朋友都知道Windows Vista,这个系统开发早期比尔盖茨想全部用C#写,但是最终因为执行慢而放弃,结果之前无数软件工程师日夜劳作成果一夜之间被宣告作废。

Linux :C

Apple MacOS : 主要为C,部分为C++。 备注: 之前用的语言比较杂,最早是汇编和Pascal。

Sun Solaris : C

HP-UX : C

Symbian OS : 汇编,主要为C++。 (诺基亚手机)

Google Android :2008 年推出: C语言(有传言说是用Java开发的操作系统,但最近刚推出原生的C语言SDK)

RIM BlackBerry OS 4.x : 黑莓 C++

二、图形界面层

Microsoft Windows UI : C++

Apple MacOS UI (Aqua) : C++

Gnome (Linux图形界面之一,大脚): C和C++, 主要是C。

KDE (Linux图形界面) ,C++。

三、桌面搜索工具

Google Desktop Search : C++

Microsoft Windows Desktop Search : C++

Beagle (Linux/Windows/UNIX 下): C# (基于开源的 .net : Mono)

四、办公软件

Microsoft Office : 在 汇编 ->C ->稳定在C++

Sun Open Office : 部分JAVA(对外接口),主要为C++ (开源,可下载其源代码)

Corel Office/WordPerfect Office : 1996年尝试过Java,次年被抛弃,重新回到C/C++

Adobe Systems Acrobat Reader/Distiller : C++

五、关系型数据库

Oracle : 汇编、C、C++、Java。主要为C++。

MySQL : C++

IBM DB2 : 汇编、C、C++,主要为C。

Microsoft SQL Server : 汇编 ->C->C++

IBM Informix : 汇编、C、C++,主要为C。

SAP DB/MaxDB : C++

六、Web Browsers/浏览器

Microsoft Internet Explorer : C++

Mozilla Firefox : C++

Netscape Navigator : The code of Netscape browser was written in C, and Netscape engineers, all bought to Java (see M. Cusumano book and article) redeveloped the browser using Java. It was too slow and abandoned. Mozilla, the next version, was later developed using C++.

Safari : (2003年1月发布)C++

Google Chrome : (2008的发布)C++

Sun HotJava : Java (死于1999年)

Opera : C++ (手机上占用率比较大)

Opera Mini : Opera Mini (2007) has a very funny architecture, and is indeed using both C++ and Java. The browser is split in two parts, an ultra thin (less than 100Kb) "viewer" client part and a server side responsible of rendering. The first uses Java and receives the page under the OBML format, the latter reuses classical Opera (C++) rendering engine plus Opera's Small Screen Rendering, on the server. This allows Opera to penetrate various J2ME-enabled portable devices, such as phones, while preserving excellent response time. This comes obviously with a few sacrifices, for instance on JavaScript execution.

Mosaic : 鼻祖(已死) C 语言

七、邮件客户端

Microsoft Outlook : C++

IBM Lotus Notes : Java

Foxmail : Delphi

八、软件开发集成环境/IDE:

Microsoft Visual Studio : C++

Eclipse : Java (其图形界面SWT基于C/C++)

Code::Blocks : C++

易语言: C++

火山中文: C++

火山移动: C++

九、虚拟机

Microsoft .Net CLR (.NET的虚拟机): C++

Java Virtual Machine (JVM) : Java 虚拟机:C++

十、ERP软件 (企业应用)

SAP mySAP ERP : C,后主要为“ABAP/4”语言

Oracle Peoplesoft : C++ ->Java

Oracle E-Business Suite : Java

十一、商业智能(Business Intelligence )

Business Objects : C++

十二、图形处理

Adobe Photoshop : C++

The GIMP : C

十三、搜索引擎

Google : 汇编 与 C++,主要为C++

十四、著名网站

eBay : 2002年为C++,后主要迁至Java

facebook : C++ 和 PHP

This line is only about facebook, not its plugins. Plugins can be developed in many different technologies, thanks to facebook's ORB/application server, Thrift. Thrift contains a compiler coded in C++. facebook people write about Thrift: "The multi-language code generation is well suited for search because it allows for application development in an efficient server side language (C++) and allows the Facebook PHP-based web application to make calls to the search service using Thrift PHP libraries." Aside the use of C++, facebook has adopted a LAMP architecture.

阿里巴巴和淘宝: php->C++/Java(主要用)

十五、 游戏 :

汇编、C、C++

星际争霸、魔兽争霸、CS、帝国时代、跑跑卡丁车、传奇、魔兽世界.... 数不胜数了,自己数吧

都是用C++开发的,C++语言靠近系统地称,执行速度最快。比如你的两个朋友与你分别玩用VB、Java、与C++编写的“跑跑卡丁车”,你玩C++编写的 游戏 已经跑玩结束了,发现你的两个朋友还没开始跑呢,那是相当的卡啊,

十六、编译器

Microsoft Visual C++ 编译器: C++

Microsoft Visual Basic 解释、编译器: C++

Microsoft Visual C# : 编译器: C++

gcc (GNU C compiler) : C

javac (Sun Java compiler) : Java

Perl : C++

PHP : C

十七、3D 引擎

Microsoft DirectX : C++

OpenGL : C

OGRE 3D : C++

十八、Web Servers (网页服务)

Apache : C和C++,主要为C

Microsoft IIS : C++

Tomcat: Java

Jboss: Java

十九:邮件服务

Microsoft Exchange Server : C->C++

Postfix : C

hMailServer : C++

Apache James : Java

二十:CD/DVD 刻录

Nero Burning ROM : C++

K3B : C++

二十一:媒体播放器

Nullsoft Winamp : C++

Microsoft Windows Media Player : C++

Microsoft Windows Media Player : C++

二十二:Peer to Peer (P2P软件)

eMule : C++

μtorrent : C++

Azureus : Java (图形界面使用基于C/C++的SWT,类Eclipse)

二十三:全球定位系统(GPS)

TomTom : C++

Hertz NeverLost : C++

Garmin : C++

Motorola VIAMOTO : 2007年6月,停止服务。 Java。

二十四:3D 引擎

Microsoft DirectX : C++(相信玩 游戏 的同学都知道这个,现在最高版本是DX11)

OpenGL : C

OGRE 3D : C++

二十五:服务器软件

Apache: C

Nginx: C

IIS: C

二十六:其他相关

OpenStack: Python

综述

著名的软件一般是系统软件,软件一般都分为系统软件和应用软件。开发软件分为一次开发和二次开发,比如开发操作系统(系统软件),就是一次开发;在操作基础上进行应用软件的开发,比如开发 游戏 ,就是二次开发。

一次开发的系统软件,要直接调用硬件资源,必须使用简单、直接的底层语言和中层语言,比如汇编和C语言;二次开发应用软件等,因为应用软件的类别比较多的,针对的情况比较复杂和具体,因此可以选择的语言很多,比如,大数据人工智能方面的有Python;安卓手机APP就是Java等等。

这里还有一个误区,其实语言不重要,每种语言都差不多,重要的是开发环境和编程思想。要学习编程开发,学的不是语言,而是对于开发环境工具的使用和编程思维的锤炼。很多著名的软件都是用C等底层语言编写的,但是也可以用其他语言编写,不过很少学C了,其中有商业的原因。(后面会解释)

集成开发环境软件

计算机语言是不可以单独拿出来说的,比如我们说C语言,指的是C语言编译器,而Python语言,指的是Python解释器。而编译器和解释器却都是用C语言编写,是不是很意外,所以著名的软件一般都是系统软件,使用的是C语言,一个语言就要初中水平就可以学会了,但必须了解IDE开发环境。

要使用计算机语言,就必须安装编译器,或者是解释器,程序员是在TXT文本上编写语言的,用编译器可以一次性编译为可执行文件exe,用解释器则可以逐条翻译成机器语言并逐条执行。编译器速度快,解释器可以跨系统,到了别的系统,不需要程序员改写程序,换一个解释器就行了。

IDE集成开发环境具备图形操作界面、编译器、调制器、控制台,是非常重要的开发工具的,只会一个计算机的语言语法,却不会使用IDE,基本上是没用的!

编程思想

很多著名的软件都是使用C等底层语言编写的,而且所用的都是编译器。当然还有另外一个原因,就是编程思想,C语言是面向过程,Python是面向对象。很明显,一次开发的系统软件肯定是面向过程的,而面向具体使用场景的应用软件肯定是面向对象的。

高手可以自由使用编程思想、程序编写时,交替使用各种语言、切换解释器或者编译器,达到隐藏核心代码目的;又或者软件的核心模块采用C等底层代码,保证软件的运行速度。毕竟开发时都是模块化的,不同模块使用不同的方法都是可以的!

所以很多著名的软件,往往是混合着各种语言,核心部分是C,其他部分则根据不同的情况选用不同语言,之所以会这样做,是因为使用C开发软件要耗费大量的时间太。摩尔定律推动硬件发展,软件开发也受到影响,一个软件晚几天推出市场,效果完全不同,所以程序员经常加班赶工,速度才是最重要的。

总结

如上所述,著名的软件是使用C等底层语言、编译器语言、面向过程的语言编写的,更多的是在一个软件的核心部分使用C等底层语言、编译器语言、面向过程的语言,其他则见机行事。

现在主流的语言是java、python和go

IT(Information Technology,即信息技术)的基本概念和所指范围。

IT实际上有三个层次:第一层是硬件,主要指数据存储、处理和传输的主机和网络通信设备;第二层是指软件,包括可用来搜集、存储、检索、分析、应用、评估信息的各种软件,它包括我们通常所指的ERP(企业资源计划)、CRM(客户关系管理)、SCM(供应链管理)等商用管理软件,也包括用来加强流程管理的WF(工作流)管理软件、辅助分析的DW/DM(数据仓库和数据挖掘)软件等;第三层是指应用,指搜集、存储、检索、分析、应用、评估使用各种信息,包括应用ERP、CRM、SCM等软件直接辅助决策,也包括利用其它决策分析模型或借助DW/DM等技术手段来进一步提高分析的质量,辅助决策者作决策(强调一点,只是辅助而不是替代人决策)。有些人理解的IT把前二层合二为一,统指信息的存储、处理和传输,后者则为信息的应用;也有人把后二层合二为一,则划分为前硬后软。通常第三层还没有得到足够的重视,但事实上却是唯有当信息得到有效应用时IT的价值才能得到充分发挥,也才真正实现了信息化的目标。信息化本身不是目标,它只是在当前时代背景下一种实现目标比较好的一种手段。

卡尔的IT是指什么呢?在那篇文章里面他并没有明确提出,不过他提到信息技术的核心功能--数据存储、处理和传输。从他推理的逻辑来看,即从蒸汽机、铁路、电报电话、电力等基础设施建设推过来的,还用摩尔定律来佐证主机和光纤的发展。如果他就此打住,只从这一点出发,他的逻辑论证是非常严谨的,后面对《IT不再重要》发表不管支持与反对评论的人,在这一点上都是基本认同的(除了那些硬件和网络厂商外),笔者也认同这一点。整个文章里他对物化的IT基础设施建设部分关注很多,基本没有关注应用层面。但后面他讲到大众化趋势时,又提到“信息技术极易复制”,则把IT又推到了商业软件,这里已经迈出了“危险”的一步。在2004年他出版同名书时开篇就定义了他研究、类比过来的IT,“我用的‘IT’是指通常意义上的,即所有被用来以数字形式存储、处理和传输信息的硬件和软件,特别强调的是,我只是指技术本身,我指的‘IT’并不包括技术中流动的信息和那些使用技术的人才技能”,所以他所指的IT是指前二层。如果就这此打住,可能还是不会有太大争议(这次又加上那些难受的软件厂商)。客观地分析软件本身的特征,的确不具备核心竞争力的四个判断标准中的三个即:稀缺性、不易复制性、不易替代性,卡尔本人也没有否认而且是在强调IT具备核心竞争力的第四个判断标准,即有价值。但他偏偏又把题目定成了“IT不再重要”,几欲把整个IT一棍子打死!

可惜他在IT这一概念上是经常含混不清:一会儿指主机网络,一会儿又跑到软件,在他后来出版的书里甚至经常“一不小心”就迈到了第三层,完全违背了他在书开头所界定的IT范围,如论述信息技术的应用、对CIO发出的诘问等。有很多读者、包括哈佛商业评论的编辑当时就指出了这一点。后面其它很多人也因为这一点来攻击他,甚至有人说卡尔干脆就不懂IT,有可能是真的,因为他毕竟本来就不是做IT的。这也给我们搞研究的人也给予很大的启示和警醒,对自己不太熟悉的领域套用其它方法来研究时要特别小心,否则会闹出很多笑话。

这里笔者要强调一点,经常有软件厂商(国内外的都有)宣称上了信息化就能如何如何,就能加强企业核心竞争力(反正多是现在流行什么就跟什么,“与时俱进”)。不知道他们是有意还是无意,且不按核心竞争力判断的四个标准来推断,试反问几个简单的问题:如果上了信息化就能如何,有多少上了信息化的企业已经亏损甚至倒闭?尤其是那些宣称有几十万家客户使用他们软件的软件企业该问问自己。如果上了信息化就能如何,那么我们假设入库、出库、销售、库存等信息全是准确的,就能自动提高销售、降低库存吗?如果说没有上信息化之前,老板可能还可因为看不见而糊涂但幸福地过过日子,那么现在呢?只是痛苦地知道有如此多的库存在仓库里呆了如此长的时间,如此多的商品长时间占据着柜台却没有带来任何销售额更不要说利润!分析一下软件厂商们宣传“信息技术是企业的核心竞争力”的现象,结论只有两个:要么这些企业不懂什么是核心竞争力(我想应该大多数还是懂的,既希望他们懂又希望他们不懂,希望结果是懂是因为至少软件企业还能懂一些管理理念而不是埋头纯粹一技术性公司,希望结果是不懂是因为这样可以少被别人攻击没有职业道德,不知者不为过嘛),要么是另有所图。一般企业客户与IT企业之间存在严重的信息不对称问题。IT企业与企业客户之间的博弈,最后的结果往往会是次优选择,即所谓的“柠檬效应”。在这点上,除了IT企业和从业人员要提高自身的职业操守外,政府或行业必须加强对信息化建设的培训教育,提高企业对信息化建设的认识,引进管理咨询公司、监理公司等来改变这一博弈结局,以达到新的平衡,促进IT业更健康的发展。

信息技术本身只是一个工具,就象一柄利剑或一枝好笔,买了它并不能一定保证你武功增进多少、字写漂亮多少,还需要你不断地去练习如何舞剑、如何写字,信息化建设也需要你不断地提升运用信息的能力,这才是真正核心也是最难的地方。功夫全在题外!信息化(数字化)目的并不是上系统拿几个数字,它只是基础,其核心在一个“化”字,把各种资源相关的信息整合起来后进行“合理化”、“优化”的配置。譬如用历史信息来辅助做销售预测、采购计划、生产计划、配送计划、库存计划,并按照这些计划下达指令并根据实际运行情况滚动修正计划。美国哈林顿(Joseph Harrington)博士提出的计算机集成制造(Computer Integrated Manufacturing,CIM)包含两个基本观点:一是企业生产的各个环节包括市场分析、产品设计、加工制造、经营管理和售后服务等是一个不可分割的整体,必须紧密相连、统一考虑;二是整个运作过程实质上是一个数据的采集、传递和加工处理过程,最终产品可以看作是数据的物质表现。如果上了信息系统却不用它来辅助决策,还是按照原来的运作方式运作,则信息系统的作用可能只是限于解放某些岗位的某些工作,如统计报表等,且同时还会增加另外一些岗位的工作。大量经验表明,如果不用信息系统收集上来的数据,要实现用来辅助决策的准确、及时、完整的信息根本不可能,信息系统只有用它才可能逐步提高其准确性、及时性和完整性。按照核心竞争力的评价标准,要构造核心竞争力,本质上只有整合能力才是,而且越外显的能力越容易被模仿。冰山一角,露在外面的越少越不容易被模仿,越能构成核心竞争力。

就象哈佛商业评论编辑Hal Varian(加利福尼亚大学伯克利分校信息管理与系统系主任)指出的那样:“卡尔说IT正在商品化、不再提供竞争优势,这一点他是对的。但知道如何有效使用IT还是一种非常稀缺的技能。”“提供竞争优势的不是IT本身,而是那些知道如何有效利用它的人。”“公司在花成千上万的钱在数据存储和获取客户交易数据上,但一大堆数据就躺在那儿、没有经过分析、没有使用,但是,在那些训练有素的分析人员手上同样的数据却能产生巨大的回报!”这是一个数据丰富的时代,但同时是一个知识贫乏的时代!

波士顿大学管理学院信息系统管理学教授托马斯·H.达文波特要把“过去的40年,更确切地描述为‘数据时代’,而不是‘信息时代’”,“将数据转化为某种更有用的东西,需要相当多的人力投入和智慧,但大多数组织仅仅从技术的角度来看待这一问题。拥有一个数据库或数据挖掘系统,与拥有其它技术一样,是必要的,但对于高质量的信息和知识而言,则是不够的”。

所以这里我们有必要明确一下一些经常混淆的基本概念。

数据(Data)=事实的记录,如上季度甲系列产品在华东地区销售额为120万。

信息=(Information)=数据+ 意义,如上季度甲系列产品华东地区销售额比去年同期减少了25 %。

智能(Intelligence)=信息+理解(understanding)与推理(reasoning),如分析原因是华东地区销售单位不行,或甲系列产品进入了衰退期,还是公司整体营销活动落后,竞争者强力促销导致?或是其它原因。

知识(Knowledge) =解决问题的技能(skill),针对这一问题公司应对的策略是什么?

智慧(Wisdom) =知识的选择(Selection) 应对的行动方案可能有多种,但(战略)选择哪个*智慧。行动则又会产生新的交易数据。

数据、信息、智能、知识、智慧、行动与管理活动的关系见下图,事实上它们之间存在多重循环关系。

图1 数据、信息、智能、知识、智慧、行动与管理活动之间的关系

同样的高速公路、同样的高档车,开车的人不同将会开出完全不同的水平,这时更关键的因素--开车的本事就显得至关重要了。在初级阶段,竞争比较粗放,可能主要是看谁能修好道,买好车。到后面,大家硬件基础设施差不多,竞争日趋白热化,这个时候人的作用就突显出来了,光有好道好车还不行,还得有舒马赫这样的顶级选手才能赢得比赛。企业经营与赛车还不太一样,赛车有人制定规则,规定只能跑一样的道,企业之间的竞争是八仙过海各显神通,有钱的就可以买高档的服务器、小型机,没有钱的就只能买PC服务器;有钱的就可以用光纤宽带,没有钱的则只能用ADSL甚至拨号;有钱的可以花几千万去买SAP、Oracle,没有钱的则只能用用金蝶、用友,甚至只有一些基本功能的小的进销存或财务软件;有钱的可以请五大帮他们制定符合未来趋势的战略并进行培训,没有钱的则只能*企业家自己摸着石头过河……的确,这是一场不太公平的竞争。但网络经济来了,用卡尔的话说,就是IT技术已经变得“大众化”,已变成商品。更何况ASP模式的出现,将极大的降低了企业信息化的门槛,昂贵的服务器、网络、软件费用的门槛被一下子降低了。好比虽然你有私家的宝马、奔驰,可以很快地到达你想要到的地方。但我也可以坐出租车差不多也能实现同样的效果,再差点儿我有公共汽车、地铁,只要很低的成本也能基本实现我的目标。但同样的宽带、同样一套系统软件,但使用的人一样,效果却完全不一样,君不见同样是使用SAP、Oracle或者金蝶、用友,有很成功的,也有很失败的?还是那句话,功夫在诗外!