关于 GeneXus 起源的几点思考
譯者序
? ? ??不論是初次接觸GeneXus,還是使用GeneXus很長時(shí)間,我們大家常常有一些疑問:在由歐美國家占絕對主導(dǎo)地位的軟件領(lǐng)域,一個(gè)來自南美的小國-烏拉圭,竟然出了一個(gè)世界知名的軟件公司?30多年幾乎跨越軟件發(fā)展史一半的時(shí)間,有多少公司來了又走了,又出現(xiàn)了多少種新的技術(shù),可一家超過30年的軟件公司卻能夠永葆青春,一直站立在軟件行業(yè)的前沿。是什么能夠讓它做到這一點(diǎn)?它的產(chǎn)品為什么會(huì)是這樣的?這與其它軟件工具到底有哪些不同?相信我們能夠通過本文獲得答案。
另外,我這里也簡單介紹烏拉圭這個(gè)南美小國的一些基本情況:
-
烏拉圭是一個(gè)夾在巴西與阿根廷兩個(gè)南美大國之間的小國,是在兩國互相爭斗過程中產(chǎn)生的;
-
烏拉圭90%以上是由歐洲移民組成的,其中大部分為意大利人和德國人!這也使得烏拉圭人繼承了意大利人創(chuàng)造能力及德國人的嚴(yán)謹(jǐn)風(fēng)格,因此從另外一個(gè)角度看,烏拉圭更像一個(gè)歐洲國家;
-
烏拉圭是一個(gè)牛肉出口大國;
?
|正文|
1984 年,巴西的一家大公司委托我們對其 IT 進(jìn)行全面重新設(shè)計(jì)。客戶希望開發(fā)與公司中央數(shù)據(jù)庫交互的所有系統(tǒng)。
挑戰(zhàn)很大:當(dāng)時(shí)大家都在談?wù)撓到y(tǒng)和企業(yè)數(shù)據(jù)庫,但現(xiàn)實(shí)卻大相徑庭,所有企業(yè)都在繼續(xù)使用多個(gè)“主題數(shù)據(jù)庫”。每個(gè)主題數(shù)據(jù)庫都用于支持一個(gè)小型應(yīng)用程序系列。每個(gè)主題數(shù)據(jù)庫的更新完全獨(dú)立于其他主題數(shù)據(jù)庫。因此,數(shù)據(jù)一致性是不可能的,沒有合并來自不同主題數(shù)據(jù)庫的數(shù)據(jù)。
簡而言之:有一個(gè)在某些限制條件下運(yùn)行的操作計(jì)算系統(tǒng),但沒有企業(yè)計(jì)算。
客戶向我們提出了一個(gè)巨大的挑戰(zhàn):用一個(gè)單一的集中式數(shù)據(jù)庫來滿足他的所有需求。客戶希望可以在任何時(shí)候都可以從該公司數(shù)據(jù)庫中獲取任何必要的信息。對必要資源似乎沒有任何限制,但需要一年內(nèi)完成所有的工作。
這項(xiàng)任務(wù)考驗(yàn)了我們的信念、我們的經(jīng)驗(yàn)、我們的方法,并給我們帶來了一系列額外的問題。當(dāng)然啦,最后我們還是克服了所有障礙,項(xiàng)目順利結(jié)束。
面對如此多的困難,讓我們學(xué)到了很多東西,并鼓勵(lì)我們繼續(xù)前進(jìn)。問題來了:我們是做更多類似的項(xiàng)目,還是構(gòu)建屬于自己的方法論和支持它的工具?
我們參與了不同公司的多個(gè)項(xiàng)目,同時(shí)我們也繼續(xù)研究這個(gè)工具,最終在 1989 年推出了我們的第一個(gè) GeneXus。直到今天,GeneXus已經(jīng)推出了36年,隨著時(shí)代發(fā)展,我們需要與時(shí)俱進(jìn)對技術(shù)和業(yè)務(wù)發(fā)展等進(jìn)行了一系列反思。
我們是一支非常優(yōu)秀的團(tuán)隊(duì),盡管世界各地有很多人談?wù)摶蜃珜懥撕芏嚓P(guān)于企業(yè)計(jì)算的文章,但在該領(lǐng)域沒有或至少很少取得成功的成就.
我們對目前行業(yè)所面臨一系列問題的原因做了總結(jié):
-
數(shù)據(jù)庫
假設(shè)我們將獲得該問題的適當(dāng)解決方案,我們對所需數(shù)據(jù)庫的初步估計(jì)表明需要 500 多個(gè)表。實(shí)際上我們的咨詢工作達(dá)到了 750 個(gè),我們想知道我們的方法是否能解決這么大的問題。為此,我們需要為許多重要問題找到答案,即:
-
開拓解決方案,我們的客戶渴望他們的管理職位和/或他們的助手能夠隨時(shí)(在大多數(shù)情況下)解決他們的問題,而無需計(jì)算機(jī)專家的幫助。要應(yīng)用的語言將是 SQL,其中對于大多數(shù)查詢,關(guān)于應(yīng)該從哪個(gè)表數(shù)據(jù)獲取以及這些表應(yīng)該如何相互組合的指令變得必要。
-
構(gòu)建解決方案,如此龐大的數(shù)據(jù)庫,我們該如何設(shè)計(jì)呢?我們是專家,我們對自己在該領(lǐng)域的豐富知識(shí)充滿信心。在這方面,我們還為來自石油、金融、工業(yè)、政府和商業(yè)領(lǐng)域的許多大型巴西實(shí)體企業(yè)提供顧問服務(wù)。然而,他們都沒有渴望大型企業(yè)數(shù)據(jù)庫,也沒有需要大量事務(wù)活動(dòng)的高度復(fù)雜的數(shù)據(jù)庫。他們都有幾個(gè)主題數(shù)據(jù)庫,每個(gè)數(shù)據(jù)庫都有助于解決一小部分問題。
-
數(shù)據(jù)模型大小,在設(shè)計(jì)階段,我們應(yīng)該如何用超過 500 個(gè)表的數(shù)據(jù)模型進(jìn)行推理?我們可以將它標(biāo)準(zhǔn)化,還是應(yīng)該放棄這個(gè)想法?我們肯定會(huì)遇到許多人為錯(cuò)誤,因此擁有工具來幫助我們將非常有益,但現(xiàn)實(shí)中不存在這樣的工具!
-
知識(shí)來源
在獲得或構(gòu)建所需工具的情況下,我們還需要原材料來使它們工作。我們的原材料在各個(gè)層面上都非常嚴(yán)格地了解用戶的現(xiàn)實(shí)情況(用戶視圖、業(yè)務(wù)規(guī)則等)。
但是,為了構(gòu)建我們針對的 ER(實(shí)體關(guān)系)模型,我們在客戶公司內(nèi)有哪些人對來自不同對象的各種對象有必要的了解?實(shí)體以及它們之間的關(guān)系?
誰擁有客觀性并能夠提供所需的細(xì)節(jié)?......根本沒有人。擁有幫助我們解決這些問題的工具將非常有益,但現(xiàn)實(shí)中不存在這樣的工具!
-
系統(tǒng)維護(hù)?
考慮到解決方案的規(guī)模,假設(shè)它是嚴(yán)格按照適當(dāng)?shù)拈_發(fā)方法構(gòu)建的,那么一旦顧問的工作結(jié)束,會(huì)發(fā)生什么?是否會(huì)繼續(xù)嚴(yán)格遵守該方法論?在訴諸文件時(shí),獲得的數(shù)據(jù)是否可靠、準(zhǔn)確和最新?
用于構(gòu)建解決方案的方法,隨著時(shí)間的推移持續(xù)而精確地應(yīng)用幾乎是不可能的。除非該解決方案由作為指南的開發(fā)工具支持,以確保嚴(yán)格遵守相應(yīng)規(guī)則。
解決方案準(zhǔn)確而嚴(yán)謹(jǐn)?shù)拿枋?#xff0c;?解決問題的答案隨著時(shí)間的推移仍然有效,這要求我們以絕對準(zhǔn)確和嚴(yán)謹(jǐn)?shù)姆绞矫枋隹蛻舻默F(xiàn)實(shí)。
知識(shí)來源,我們得出的結(jié)論是,知識(shí)的基本來源是在可靠的參考框架內(nèi)表達(dá)的用戶數(shù)據(jù)的視圖,該框架也必須簡單。
GeneXus 推斷數(shù)據(jù)模型、數(shù)據(jù)庫模式和應(yīng)用程序。
-
人工智能
手動(dòng)解決方案無法解決這樣的問題,所以我們決定求助于人工智能。
我們對當(dāng)時(shí)使用最廣泛的兩種人工智能語言進(jìn)行了分析。對 LISP 和 PROLOG 的考慮導(dǎo)致了兩種不同的立場:使用 LISP 是因?yàn)橛卸喾N語言處理器可供它使用,它也是使用最廣泛和最古老的語言,而 PROLOG 是一種具有更高期望但使用不那么廣泛并且可用的語言處理器很少的新語言。我們選擇了 PROLOG, 隨著時(shí)間的推移證明這確實(shí)是一個(gè)很好的決定。
人工智能作為一項(xiàng)非常有前途的技術(shù)出現(xiàn)。在許多公司,尤其是美國的公司當(dāng)時(shí)都致力于利用AI技術(shù)開發(fā)專家系統(tǒng),尤其是用于診斷目的專家系統(tǒng)。他們在開發(fā)這些系統(tǒng)的時(shí)候并不成功。在診斷中,例如 95% 到 97% 的可靠性平均值算是極好的值(在非常優(yōu)秀的人類專家的情況下,該百分比較低)。然而,在構(gòu)建大數(shù)據(jù)模型和系統(tǒng)時(shí),這些數(shù)字都是災(zāi)難性的。
還有一件事:我們是具有扎實(shí)數(shù)學(xué)背景的計(jì)算機(jī)系統(tǒng)工程師,但我們對人工智能一無所知。
新世界,我們的問題把我們帶到了一個(gè)全新的世界,一個(gè)純知識(shí)的世界!
邊做邊學(xué),當(dāng)時(shí)我們似乎無法解決問題,但我們繼續(xù)研究它并最終找到解決方案,我們實(shí)際上在邊做邊學(xué)中取得了更多的成就。這是跟上最新技術(shù)并立即應(yīng)用新技術(shù)的方式,具有非常顯著的好處。
準(zhǔn)確性,我們所有人(在某種程度上參與了 GeneXus 概念和構(gòu)建的研究人員)都需要對我們的活動(dòng)應(yīng)用非常高度的準(zhǔn)確化,以便于嚴(yán)謹(jǐn)?shù)乇磉_(dá)每個(gè)純數(shù)學(xué)和邏輯問題。
我們定義的每個(gè)規(guī)范都必須完全準(zhǔn)確,并基于清晰可靠的參考框架:
-
表示所涉及的每個(gè)不同元素的含義,以便能夠自動(dòng)對其進(jìn)行操作,采用一個(gè)基本規(guī)則——鑒于現(xiàn)實(shí)是一致的,那么我們對現(xiàn)實(shí)的所有表示也必須是一致的,并實(shí)現(xiàn)自動(dòng)地使用功能強(qiáng)大的運(yùn)算方法。
-
那么我們的用戶呢?——開發(fā)人員。期望讓他們持續(xù)工作是不現(xiàn)實(shí)的。我們必須隱藏工作的復(fù)雜性,允許開發(fā)人員以直接的方式工作,并盡可能簡單地使用低抽象的特定元素。
-
純知識(shí)
假設(shè)純知識(shí)作為基線意味著避免訴諸任何可能會(huì)發(fā)生變化的物理或技術(shù)元素(隨著時(shí)間的流逝,這將不可避免地發(fā)生)。必要的物理和/或技術(shù)元素被自動(dòng)包含,并且僅在代碼生成時(shí)包含。這種行為實(shí)現(xiàn)了高度抽象,完全獨(dú)立于隨機(jī)變量元素。
-
面向未來/用不落后的技術(shù)(Futureproofing)
知識(shí)存儲(chǔ)在具有強(qiáng)大推理能力的知識(shí)庫上以供操作。
GeneXus 推斷數(shù)據(jù)模型、數(shù)據(jù)庫模式和應(yīng)用程序最重要的結(jié)果之一是,由于這些知識(shí)獨(dú)立于所應(yīng)用的技術(shù),我們可能總是使用另一種技術(shù)設(shè)置自動(dòng)生成一個(gè)應(yīng)用系統(tǒng)。對于每種情況,我們必須簡單地使用為所選技術(shù)配置提供支持的 GeneXus 版本。
也就是說,Future proofing 之所以起作用,是因?yàn)橛辛?GeneXus,系統(tǒng)可以在技術(shù)不斷變化的發(fā)展引起的可能變化方面受到保護(hù),無需手動(dòng)重新編程!
-
自動(dòng)維護(hù)和進(jìn)化
另一個(gè)不太引人注目但同樣重要的結(jié)果是系統(tǒng)的自動(dòng)維護(hù)。GeneXus 的推理能力最初支持自動(dòng)生成系統(tǒng)(數(shù)據(jù)庫和程序),并且在發(fā)生變化時(shí),它也會(huì)自動(dòng)傳播它們。
開發(fā)者只需要對發(fā)生變化的描述元素進(jìn)行概念更新。GeneXus 將提供有關(guān)此類更改影響的報(bào)告,并且對于這些更改獲得確認(rèn)的情況下會(huì)自動(dòng)傳播它們。
-
系統(tǒng)集成
如今,無論規(guī)模和業(yè)務(wù)領(lǐng)域如何,世界上沒有一家公司可以在自給自足的基礎(chǔ)上運(yùn)營。借助第三方的發(fā)現(xiàn)、經(jīng)驗(yàn)和產(chǎn)品作為補(bǔ)充,變得越來越必要。
建議:促進(jìn)與其他產(chǎn)品的最大集成,以最全面、最快速、最經(jīng)濟(jì)的方式解決影響客戶的實(shí)際問題,避免開發(fā)需要購買的產(chǎn)品,考慮到所包含解決方案的質(zhì)量,方案變得可用所需要時(shí)間,以及機(jī)會(huì)成本。
GeneXus 的集成能力在其最新版本中得到了顯著增強(qiáng)。
總結(jié)與未來
我們將知識(shí)管理與技術(shù)管理分開。關(guān)于我們的技術(shù),特別是關(guān)于自動(dòng)使用純知識(shí)的所有內(nèi)容都可以總結(jié)為以下聲明:
“我們使非常好的業(yè)務(wù)系統(tǒng)知識(shí)自動(dòng)管理成為可能”。
但隨著世界的發(fā)展,現(xiàn)在這種業(yè)務(wù)系統(tǒng)的極限在哪里?如今,最初處理許多不同活動(dòng)的公司已決定作為軟件公司工作并專注于所有這些領(lǐng)域。GeneXus 以嚴(yán)格和永久的方式表示知識(shí),使其能夠自動(dòng)操作知識(shí)。什么樣的知識(shí)?任何知識(shí)!我們必須努力工作,但沒有限制!
這為發(fā)展提供了一扇敞開的大門:我們的客戶將需要它,因?yàn)樾骂愋蛻?yīng)用程序的不斷增加,使計(jì)算機(jī)系統(tǒng)變得越來越復(fù)雜。不斷發(fā)展我們的智能開發(fā)平臺(tái)來做到這一點(diǎn)需要一些時(shí)間和巨大的努力。
GeneXus 堅(jiān)實(shí)的科學(xué)和技術(shù)基礎(chǔ)將使我們能夠逐步地繼續(xù)構(gòu)建任何必要的東西。
總結(jié)
以上是生活随笔為你收集整理的关于 GeneXus 起源的几点思考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MIUI10设置Android通知,Mi
- 下一篇: 荒野大镖客2