沒有用golang寫的開源ERP系統(tǒng),這個我計劃業(yè)余時間開發(fā)一個,作為學(xué)習(xí)golang的練習(xí)。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供嵩縣企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為嵩縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。
另外,metasfresh和axelor是基于java, erpnext是基于python, viennaadvantage是基于net的通過后臺配置自動生成較為美觀的前端界面的企業(yè)應(yīng)用快速開發(fā)平臺,具有很高的開發(fā)速度。
從erp的角度,后起之秀metasfresn是功能最齊全的,適合中大型企業(yè)的開源erp(在庫存采購銷售制造各模塊加入了大量支持大型企業(yè)的功能),缺點(diǎn)是設(shè)計高度復(fù)雜,代碼難度極大。
而從開發(fā)框架的角度,viennaadvantage結(jié)合.net/c#,則是上手最容易的,支持saas的企業(yè)應(yīng)用快速開發(fā)平臺。
一、操作系統(tǒng):
Microsoft Windows : 匯編 - C - C++
備注:曾經(jīng)在智能手機(jī)的操作系統(tǒng)(Windows Mobile)考慮摻點(diǎn)C#寫的程序,比如軟鍵盤,結(jié)果因?yàn)閷懗鰜淼某绦蛱?,?shí)在無法和別的模塊合并,最終又回到C++重寫。
相信很多朋友都知道Windows Vista,這個系統(tǒng)開發(fā)早期比爾蓋茨想全部用C#寫,但是最終因?yàn)閳?zhí)行慢而放棄,結(jié)果之前無數(shù)軟件工程師日夜勞作成果一夜之間被宣告作廢。
Linux :C
Apple MacOS : 主要為C,部分為C++。 備注: 之前用的語言比較雜,最早是匯編和Pascal。
Sun Solaris : C
HP-UX : C
Symbian OS : 匯編,主要為C++。 (諾基亞手機(jī))
Google Android :2008 年推出: C語言(有傳言說是用Java開發(fā)的操作系統(tǒng),但最近剛推出原生的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 - 穩(wěn)定在C++
Sun Open Office : 部分JAVA(對外接口),主要為C++ (開源,可下載其源代碼)
Corel Office/WordPerfect Office : 1996年嘗試過Java,次年被拋棄,重新回到C/C++
Adobe Systems Acrobat Reader/Distiller : C++
五、關(guān)系型數(shù)據(jù)庫
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月發(fā)布)C++
Google Chrome : (2008的發(fā)布)C++
Sun HotJava : Java (死于1999年)
Opera : C++ (手機(jī)上占用率比較大)
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
八、軟件開發(fā)集成環(huán)境/IDE:
Microsoft Visual Studio : C++
Eclipse : Java (其圖形界面SWT基于C/C++)
Code::Blocks : C++
易語言: C++
火山中文: C++
火山移動: C++
九、虛擬機(jī)
Microsoft .Net CLR (.NET的虛擬機(jī)): C++
Java Virtual Machine (JVM) : Java 虛擬機(jī):C++
十、ERP軟件 (企業(yè)應(yīng)用)
SAP mySAP ERP : C,后主要為“ABAP/4”語言
Oracle Peoplesoft : C++ - Java
Oracle E-Business Suite : Java
十一、商業(yè)智能(Business Intelligence )
Business Objects : C++
十二、圖形處理
Adobe Photoshop : C++
The GIMP : C
十三、搜索引擎
Google : 匯編 與 C++,主要為C++
十四、著名網(wǎng)站
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、帝國時代、跑跑卡丁車、傳奇、魔獸世界.... 數(shù)不勝數(shù)了,自己數(shù)吧
都是用C++開發(fā)的,C++語言靠近系統(tǒng)地稱,執(zhí)行速度最快。比如你的兩個朋友與你分別玩用VB、Java、與C++編寫的“跑跑卡丁車”,你玩C++編寫的 游戲 已經(jīng)跑玩結(jié)束了,發(fā)現(xiàn)你的兩個朋友還沒開始跑呢,那是相當(dāng)?shù)目ò。?/p>
十六、編譯器
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 (網(wǎng)頁服務(wù))
Apache : C和C++,主要為C
Microsoft IIS : C++
Tomcat: Java
Jboss: Java
十九:郵件服務(wù)
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)
二十三:全球定位系統(tǒng)(GPS)
TomTom : C++
Hertz NeverLost : C++
Garmin : C++
Motorola VIAMOTO : 2007年6月,停止服務(wù)。 Java。
二十四:3D 引擎
Microsoft DirectX : C++(相信玩 游戲 的同學(xué)都知道這個,現(xiàn)在最高版本是DX11)
OpenGL : C
OGRE 3D : C++
二十五:服務(wù)器軟件
Apache: C
Nginx: C
IIS: C
二十六:其他相關(guān)
OpenStack: Python
綜述
著名的軟件一般是系統(tǒng)軟件,軟件一般都分為系統(tǒng)軟件和應(yīng)用軟件。開發(fā)軟件分為一次開發(fā)和二次開發(fā),比如開發(fā)操作系統(tǒng)(系統(tǒng)軟件),就是一次開發(fā);在操作基礎(chǔ)上進(jìn)行應(yīng)用軟件的開發(fā),比如開發(fā) 游戲 ,就是二次開發(fā)。
一次開發(fā)的系統(tǒng)軟件,要直接調(diào)用硬件資源,必須使用簡單、直接的底層語言和中層語言,比如匯編和C語言;二次開發(fā)應(yīng)用軟件等,因?yàn)閼?yīng)用軟件的類別比較多的,針對的情況比較復(fù)雜和具體,因此可以選擇的語言很多,比如,大數(shù)據(jù)人工智能方面的有Python;安卓手機(jī)APP就是Java等等。
這里還有一個誤區(qū),其實(shí)語言不重要,每種語言都差不多,重要的是開發(fā)環(huán)境和編程思想。要學(xué)習(xí)編程開發(fā),學(xué)的不是語言,而是對于開發(fā)環(huán)境工具的使用和編程思維的錘煉。很多著名的軟件都是用C等底層語言編寫的,但是也可以用其他語言編寫,不過很少學(xué)C了,其中有商業(yè)的原因。(后面會解釋)
集成開發(fā)環(huán)境軟件
計算機(jī)語言是不可以單獨(dú)拿出來說的,比如我們說C語言,指的是C語言編譯器,而Python語言,指的是Python解釋器。而編譯器和解釋器卻都是用C語言編寫,是不是很意外,所以著名的軟件一般都是系統(tǒng)軟件,使用的是C語言,一個語言就要初中水平就可以學(xué)會了,但必須了解IDE開發(fā)環(huán)境。
要使用計算機(jī)語言,就必須安裝編譯器,或者是解釋器,程序員是在TXT文本上編寫語言的,用編譯器可以一次性編譯為可執(zhí)行文件exe,用解釋器則可以逐條翻譯成機(jī)器語言并逐條執(zhí)行。編譯器速度快,解釋器可以跨系統(tǒng),到了別的系統(tǒng),不需要程序員改寫程序,換一個解釋器就行了。
IDE集成開發(fā)環(huán)境具備圖形操作界面、編譯器、調(diào)制器、控制臺,是非常重要的開發(fā)工具的,只會一個計算機(jī)的語言語法,卻不會使用IDE,基本上是沒用的!
編程思想
很多著名的軟件都是使用C等底層語言編寫的,而且所用的都是編譯器。當(dāng)然還有另外一個原因,就是編程思想,C語言是面向過程,Python是面向?qū)ο?。很明顯,一次開發(fā)的系統(tǒng)軟件肯定是面向過程的,而面向具體使用場景的應(yīng)用軟件肯定是面向?qū)ο蟮摹?/p>
高手可以自由使用編程思想、程序編寫時,交替使用各種語言、切換解釋器或者編譯器,達(dá)到隱藏核心代碼目的;又或者軟件的核心模塊采用C等底層代碼,保證軟件的運(yùn)行速度。畢竟開發(fā)時都是模塊化的,不同模塊使用不同的方法都是可以的!
所以很多著名的軟件,往往是混合著各種語言,核心部分是C,其他部分則根據(jù)不同的情況選用不同語言,之所以會這樣做,是因?yàn)槭褂肅開發(fā)軟件要耗費(fèi)大量的時間太。摩爾定律推動硬件發(fā)展,軟件開發(fā)也受到影響,一個軟件晚幾天推出市場,效果完全不同,所以程序員經(jīng)常加班趕工,速度才是最重要的。
總結(jié)
如上所述,著名的軟件是使用C等底層語言、編譯器語言、面向過程的語言編寫的,更多的是在一個軟件的核心部分使用C等底層語言、編譯器語言、面向過程的語言,其他則見機(jī)行事。
現(xiàn)在主流的語言是java、python和go
作為一個測試,作為一個測試開發(fā), 全?;?管理 是我們未來的發(fā)展方向。已經(jīng)掌握了Java、Python、HTML的你,是不是也想了解下最近異?;鸨腉o語言呢?來吧,讓我們一起了解下。
Go 是一個開源的編程語言 ,它能讓構(gòu)造簡單、可靠且高效的軟件變得容易。
Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時候發(fā)布了Go 1穩(wěn)定版本?,F(xiàn)在Go的開發(fā)已經(jīng)是完全開放的,并且擁有一個活躍的社區(qū)。這三個人都是計算機(jī)界的大神,有的參與了C語言的編寫,有的還是數(shù)學(xué)大神,有的還獲得了計算機(jī)最高榮譽(yù)-圖靈獎。
接下來說說 Go語言的特色 :
簡潔、快速、安全
并行、有趣、開源
內(nèi)存管理、數(shù)組安全、編譯迅速
Go語言的用途 :
Go 語言被設(shè)計成一門應(yīng)用于搭載 Web 服務(wù)器,存儲集群或類似用途的巨型中央服務(wù)器的系統(tǒng)編程語言。
對于高性能分布式系統(tǒng)領(lǐng)域而言,Go 語言無疑比大多數(shù)其它語言有著更高的開發(fā)效率。它提供了海量并行的支持,這對于 游戲 服務(wù)端的開發(fā)而言是再好不過了。
Go語言的環(huán)境安裝:
建議直接打開 官方地址因?yàn)閴Φ脑虼虿婚_
因?yàn)槲矣玫氖莣indows系統(tǒng),這里主要講下Windows系統(tǒng)上使用Go語言來編程。
Windows 下可以使用 .msi 后綴(在下載列表中可以找到該文件,如go1.17.2.windows-amd64.msi)的安裝包來安裝。
默認(rèn)情況下 .msi 文件會安裝在 c:Go 目錄下。你可以將 c:Gobin 目錄添加到 Path 環(huán)境變量中。添加后你需要重啟命令窗口才能生效。個人建議還是安裝到 Program Files文件夾中。
使用什么開發(fā)工具來對Go語言進(jìn)行編寫:
個人建議用VS code, 也可以用Sublime Text來編輯。如果你之前看了我講的HTML語言的學(xué)習(xí),肯定已經(jīng)下載了VS code. 那么這時你需要在VS code中下載Go語言的擴(kuò)展插件。
這里有一個巨大的坑,就是在下載Go的插件和依賴包時,會提示一些包沒有。主要是因?yàn)橄螺d的依賴包部分被墻了,只能想別的辦法去下載。
建議參考網(wǎng)頁:
解決vscode中g(shù)olang插件安裝失敗方法
在學(xué)習(xí)go的過程中,使用的是vscode,但是一直提示安裝相關(guān)插件失敗,然后上網(wǎng)查方法,基本上是叫你建立golang.org目錄什么的,結(jié)果全是錯的,而且都是抄襲,很煩。無意之中看到一位博主分享的方法,他也是飽受上述的垃圾博文困擾,然后找到了解決方法,這里向他致敬,秉著讓更多人看到正確解決方法的心,我寫下正確的解決方法,希望對你有所幫助,也可以點(diǎn)開原博主鏈接參考:
Go有一個全球模塊代理,設(shè)置代理再去安裝golang的插件,就可以安裝成功了。步驟有,首先Windows用戶打開Powershell,一個藍(lán)色的界面,注意不是cmd!不知道的直接打開window下面的搜索,然后輸入powershell,搜索出來就可以了。
$env:GO111MODULE=“on”
$env:GOPROXY=“”
go env -w GOPROXY=
go env -w GOPRIVATE=*.corp.example.com
然后我們打開VsCode界面,下面會提示安裝插件,我們選擇Install ALL,就會安裝成功
當(dāng)你在運(yùn)行Go語言程序時,提示所有的插件包都已經(jīng)安裝成功了時,就可以正常使用了,要不然一堆報錯會讓你非常心煩。
好了,今天先到這里,晚安、下班~
Go語言由Google公司開發(fā),并于2009年開源,相比Java/Python/C等語言,Go尤其擅長并發(fā)編程,性能堪比C語言,開發(fā)效率肩比Python,被譽(yù)為“21世紀(jì)的C語言”。
Go語言在云計算、大數(shù)據(jù)、微服務(wù)、高并發(fā)領(lǐng)域應(yīng)用應(yīng)用非常廣泛。BAT大廠正在把Go作為新項目開發(fā)的首選語言。
Go語言能干什么?
1、服務(wù)端開發(fā):以前你使用C或者C++做的那些事情,用Go來做很合適,例如日志處理、文件系統(tǒng)、監(jiān)控系統(tǒng)等;
2、DevOps:運(yùn)維生態(tài)中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go語言開發(fā);
3、網(wǎng)絡(luò)編程:大量優(yōu)秀的Web框架如Echo、Gin、Iris、beego等,而且Go內(nèi)置的 net/http包十分的優(yōu)秀;
4、Paas云平臺領(lǐng)域:Kubernetes和Docker Swarm等;
5、分布式存儲領(lǐng)域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;
6、區(qū)塊鏈領(lǐng)域:區(qū)塊鏈里面有兩個明星項目以太坊和fabric都使用Go語言;
7、容器虛擬化:大名鼎鼎的Docker就是使用Go語言實(shí)現(xiàn)的;
8、爬蟲及大數(shù)據(jù):Go語言天生支持并發(fā),所以十分適合編寫分布式爬蟲及大數(shù)據(jù)處理。