| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1920 人关注过本帖
标题:转发很有意思的一篇文章
只看楼主 加入收藏
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
结帖率:76.47%
收藏
 问题点数:0 回复次数:4 
转发很有意思的一篇文章
https://blog.
搜索更多相关主题的帖子: 文章 net https blog 
2020-01-04 10:49
schtg
Rank: 12Rank: 12Rank: 12
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1545
专家分:3003
注 册:2012-2-29
收藏
得分:0 
(原創) 由C/C++看VFP (技術感想) (C++/VFP)
 转载 https://blog.

我覺得C++整個語言其實一直在做兩件事情
1.讓靜態語言的C++盡量提供動態的功能
2.讓C++提供資料處理的功能

動態功能:
1.多型:C++利用inheritance + dynamic binding和template達成polymorphism。
2.動態資料:classic C++靠new、linked list,modern C++靠STL container等支援動態資料。

資料處理:
1.classic C++靠資料結構那些方式,如array,linked list,tree...。
2.modern C++靠STL的container。
以上是C++花了很大的力氣跟篇幅盡量完成動態和資料處理的功能。
為什麼VFP從來沒有這些問題呢?
1.VFP是動態語言,所以天生就是多型,根本不需用額外的機制達成多型。
2.動態資料方面,VFP內建資料庫引擎,所以動態資料用資料庫解決即可,這也是我以前寫VFP時,幾乎沒用過array,都是用cursor去寫,此時可用SQL處理,若SQL真的寫不出來,還有xBase去處理。
3.資料處理方面,由於VFP內建資料庫引擎,用資料庫處理就好,又內建SQL和xBase語言,所以就算不用資料結構那些東西,也一樣可以處理資料,甚至更好用。
這也是為什麼我以前寫VFP好幾年,也沒遇到什麼寫不出來或不好寫的地方,原來VFP動態語言和資料庫的特性,剛剛好解決了C++靜態語言和不支援資料庫的問題。
以前寫VFP時,總覺得很自卑,覺得VFP只是個資料庫語言,不是如VB、VC++那種主流語言,一直想跳出VFP這個框框,但真的學會了VB和VC++後,真的體會出李潛瑞所說的:『簡單事情簡單做』,同樣是解決問題,VFP用簡單的方式解決了,VB、VC++卻要用很複雜的機制才能解決,現在的我又開始喜歡VFP了,不支援.NET有什麼關係,不支援Web有什麼關係,拿來當Programmer私藏的語言寫寫小tool和Win32仍然很方便,就像Python那些語言一樣。其實我覺得一個程式語言就如同80/20法則一樣,C++花了80%的力氣去完成20%的功能,為什麼不像VFP那樣將力氣放在常用的80%功能上,而放棄20%的功能呢?若真的在VFP還需要用到20%的功能,大可用C++寫dll給VFP呼叫,重要的是VFP將那80%弄的更簡單,更方便,更好用。Python和C++的搭配不也是如此?C++負責寫core部分,而Python負責control部分,這樣剛好是動態語言和靜態語言完美搭配,若用這種思維來看VFP亦然,C++負責core部分,VFP負責control部分,也是另一種動態語言和靜態語言的完美搭配。
    學其他語言沒用嗎?我一直認為VFP的高手,很多也是其他語言的高手,他們用其他語言的觀念和技巧拿到VFP來實作,VFP雖然是OOP,不過若你一直緊守在VFP領域,要在OOP有所突破很難,畢竟VFP專講OOP的書很少,從C++可以學到很多OOP和Design Pattern的技術,只要將OO的精神學到,再拿來VFP活用即可,畢竟OO是個觀念和『信仰』,呵呵,並不限定語言,在Delphi領域有句話:『Real programmer uses C++,smart programmer uses Delphi』,這句話應該改成『Real programmer uses C++,smart programmer uses Visual FoxPro + C++』,程式功力高強的人到了一個境界,其實不會很堅持非用什麼語言不可,完全是問題導向,看哪種語言適合什麼問題,就用那種語言,最後整合之。
2020-01-04 12:24
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
以下是引用schtg在2020-1-4 12:24:21的发言:

(原創) 由C/C++看VFP (技術感想) (C++/VFP)
 转载 https://blog.

我覺得C++整個語言其實一直在做兩件事情
1.讓靜態語言的C++盡量提供動態的功能
2.讓C++提供資料處理的功能

動態功能:
1.多型:C++利用inheritance + dynamic binding和template達成polymorphism。
2.動態資料:classic C++靠new、linked list,modern C++靠STL container等支援動態資料。

資料處理:
1.classic C++靠資料結構那些方式,如array,linked list,tree...。
2.modern C++靠STL的container。
以上是C++花了很大的力氣跟篇幅盡量完成動態和資料處理的功能。
為什麼VFP從來沒有這些問題呢?
1.VFP是動態語言,所以天生就是多型,根本不需用額外的機制達成多型。
2.動態資料方面,VFP內建資料庫引擎,所以動態資料用資料庫解決即可,這也是我以前寫VFP時,幾乎沒用過array,都是用cursor去寫,此時可用SQL處理,若SQL真的寫不出來,還有xBase去處理。
3.資料處理方面,由於VFP內建資料庫引擎,用資料庫處理就好,又內建SQL和xBase語言,所以就算不用資料結構那些東西,也一樣可以處理資料,甚至更好用。
這也是為什麼我以前寫VFP好幾年,也沒遇到什麼寫不出來或不好寫的地方,原來VFP動態語言和資料庫的特性,剛剛好解決了C++靜態語言和不支援資料庫的問題。
以前寫VFP時,總覺得很自卑,覺得VFP只是個資料庫語言,不是如VB、VC++那種主流語言,一直想跳出VFP這個框框,但真的學會了VB和VC++後,真的體會出李潛瑞所說的:『簡單事情簡單做』,同樣是解決問題,VFP用簡單的方式解決了,VB、VC++卻要用很複雜的機制才能解決,現在的我又開始喜歡VFP了,不支援.NET有什麼關係,不支援Web有什麼關係,拿來當Programmer私藏的語言寫寫小tool和Win32仍然很方便,就像Python那些語言一樣。其實我覺得一個程式語言就如同80/20法則一樣,C++花了80%的力氣去完成20%的功能,為什麼不像VFP那樣將力氣放在常用的80%功能上,而放棄20%的功能呢?若真的在VFP還需要用到20%的功能,大可用C++寫dll給VFP呼叫,重要的是VFP將那80%弄的更簡單,更方便,更好用。Python和C++的搭配不也是如此?C++負責寫core部分,而Python負責control部分,這樣剛好是動態語言和靜態語言完美搭配,若用這種思維來看VFP亦然,C++負責core部分,VFP負責control部分,也是另一種動態語言和靜態語言的完美搭配。
    學其他語言沒用嗎?我一直認為VFP的高手,很多也是其他語言的高手,他們用其他語言的觀念和技巧拿到VFP來實作,VFP雖然是OOP,不過若你一直緊守在VFP領域,要在OOP有所突破很難,畢竟VFP專講OOP的書很少,從C++可以學到很多OOP和Design Pattern的技術,只要將OO的精神學到,再拿來VFP活用即可,畢竟OO是個觀念和『信仰』,呵呵,並不限定語言,在Delphi領域有句話:『Real programmer uses C++,smart programmer uses Delphi』,這句話應該改成『Real programmer uses C++,smart programmer uses Visual FoxPro + C++』,程式功力高強的人到了一個境界,其實不會很堅持非用什麼語言不可,完全是問題導向,看哪種語言適合什麼問題,就用那種語言,最後整合之。



2020-01-06 07:55
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:352
专家分:1152
注 册:2015-10-2
收藏
得分:0 
值的深思!
2020-01-06 19:16
pjtyzyq
Rank: 4
等 级:业余侠客
威 望:6
帖 子:232
专家分:240
注 册:2016-2-14
收藏
得分:0 
此篇文章甚好,解决了初学者的迷茫,也道出了大多数编程人的感悟。坚持!VFP!
2020-01-07 16:55
快速回复:转发很有意思的一篇文章
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016216 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved