iT邦幫忙

0

Linux 與 程式設計

匿名 2010-05-15 22:26:5510388 瀏覽

各位前輩您們好:
小弟目前正在學linux網管課程,因為課程中有教到小小的程式語言,就是撰寫shell script(以C為語言為基礎),我想以後以Linux去架設server,問題如下:
1.我之後學程式設計這方面,那應該進修visual C++還是去學JAVA(可以跨平台),請給我一些些建議跟方向。
2.另外請教一下,C語言與visual C++ ,C#.NET這三種程式語言的差別在哪?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
16
外獅佬
iT邦大師 1 級 ‧ 2010-05-15 22:39:32
最佳解答

C語言與visual C++ ,C#.NET這三種程式語言的差別在哪?

這三個基本上沒關係.....

18
shunyuan
iT邦研究生 1 級 ‧ 2010-05-15 22:51:01

(1) 如果你目前從事網管,學 shell script 是對的方向。熟悉 shell script (最好 perl 也懂一點),很多事情可以自動化(跑一個 scirpt 可以執行任何的命令)。

(2)如果想進修程式語言,C++,Java 或 C# 都不錯,C++ 稍微難一點

(3) 根據你選擇的程式語言,再來選擇開發工具,C++ 跟 C# 當然用 Visual Studio 比較方便,Java 推薦 Eclipse

(4) 最後提醒一下,Visual Studio 有很多微軟的特異功能,比方說,你用 Visual Studio 產生一個 Hello World 範例程式,他的進入點,就不叫 main。C# 也是微軟的語言,只是蠻多人用。

(5) 如果真的想把程式語言學好,不妨試看看在 Linux 下,用 gcc,vim,跟 gdb 來學程式,如果你搞得定,以後沒有東西難得倒你。

8
aaa1218bbb
iT邦新手 5 級 ‧ 2010-05-16 20:52:59

嗯...C++不錯!!JAVA也不錯!!

C++速度比較快,但是JAVA可以跨平台。

如果你學了C++,大部分如果要在學JAVA也不用幾天。語法不會說差很大...

如果先學JAVA也一樣,在學C++也是很快的。

另外C語言比較偏向硬體,C++是物件導向,比較好維護。

如果是新手要學程式設計的話,我個人比較建議學Python很簡單很強大很好上手,也是可以跨平台,之後要學其他程式語言也比較容易。

不過...C++也能跨平台的,linux核心不就是C++嗎= =|||只是方式跟java不太一樣

C#的話...不太建議學...

看更多先前的回應...收起先前的回應...
fillano iT邦超人 1 級 ‧ 2010-05-16 23:34:17 檢舉

Linux 核心是 C++?

fillano iT邦超人 1 級 ‧ 2010-05-17 00:04:34 檢舉

某人2004年初在linux kernel的mail list上這樣回覆:
http://lkml.org/lkml/2004/1/20/20 (請看連結,內文超過限制,我不貼了)

當然,已經過了六年,不知道情況有沒有不一樣?

shunyuan iT邦研究生 1 級 ‧ 2010-05-17 00:12:41 檢舉

aaa1218bbb提到:
linux核心不就是C++嗎= =|||

報告,不是,真的不是。

esen iT邦新手 3 級 ‧ 2010-05-18 16:21:42 檢舉

Thanks to fillano, really good article.
那篇真的是 Linus Torvalds 本尊回答的嗎 ?
haha... it sucks...

fillano iT邦超人 1 級 ‧ 2010-05-19 07:56:42 檢舉

還有誰會在Linux Kernel Mailing List(aka lkml)上面用同樣的名字阿?

8
joeyli
iT邦新手 5 級 ‧ 2010-05-17 00:49:29

Linux kernel 是 C 寫的, 多數subsystem有物件概念, 例如: ACPI.
C++恕小弟說一句: 可以不用學了
要學更好的物件就學 Java or C#, 自己用UML畫一個簡單的圖之後分別用C++, Jave, C# 來implement你就會了解了.

Shell Script是一定要學的, Perl/Python也不錯.

shunyuan iT邦研究生 1 級 ‧ 2010-05-17 01:05:53 檢舉

joeyli提到:
C++恕小弟說一句: 可以不用學了

這倒是稀奇。真正講求執行效率的程式,還是必須用 C 或是 C++ 撰寫。

寫程式碰到要用 C 或 C++ 解決問題的機會不低(有太多的工具在那裡)

16
sula3065408
iT邦研究生 1 級 ‧ 2010-05-17 08:40:17

Linux上一般發行版通常預設的SHELL SCRIPT是BASH,不是C SHELL,如果是要朝向網管的方向走,學C語言用處不大,你應該花時間在一些script language上,比如說Perl、Python、Ruby、、、等,可以跨平台使用,在M$-W平台上一般都有提供安裝程式。

visual C++、C#、.NET是M$不需要浪費時間學,他們沒辦法跨平台使用,JAVA可以跨平台,卻用處不大,以網管日常寫的自動維護程式來說,還是以Perl、Python、Ruby、、、等script language比較實際,好寫又可以跨平台,只要熟練正則表示法(Regular expression),解析字串的速度可以翻背,一堆需要人工檢查LOG的工作就可以丟給程式處理,而且他們通常會給與資料庫銜接的模組,C/C++要解析字串沒這些Script Language方便,還需要編譯的動作,搞起來很麻煩,網管與其花時間搞編譯的動作,不如早早寫完下班回家休息,程式容量、效率對網管來說不一定是最重要的項目,穩定的解決問題對網管來說,往往是第一優先。

正則表示法,Perl、Python、Ruby、PHP、C#、JAVA、Javascript、、、等語言有支援,是一項投資報酬率蠻高的技術。

熟練BASH的缺點是在M$-W上沒有用,雖然可以使用cygwin之類的軟體呼叫BASH,但就還是不方便。

樓上對UML的觀念有點偏差,不寫程式UML還是可以拿來用,你高興寫組合語言的時候還是可以拿UML來說明,UML是拿來當做人與人溝通的圖形語言工具,你對外包商開發的時候也可以拿出UML來解釋你要的是什麼東西,跟程式語言沒絕對的關係。

物件導向也是,不寫程式物件導向還是可以拿來使用,你高興可以拿來解釋你的人際關係,把人當物件看,也可以拿來詮釋包商間子系統的責任,也可以拿來解釋公司行政體系的部門責任關係,用處一堆,理解物件導向的人寫起程式,如C語言、組合語言也會出現物件的影子,架構系統,結構自然且穩定,不理解的人寫C++、JAVA跟寫C差不多,一個函式統包莫名其妙的功能,濫竽充數,權責不分。

看更多先前的回應...收起先前的回應...
shunyuan iT邦研究生 1 級 ‧ 2010-05-22 21:26:29 檢舉

聽起來怪怪的,我知道網管要管 Windows 跟 Linux 機器。

可是 網管 不等於 跨平台

我本來以為,只有寫程式的,要去考慮跨平台。網管應該要考慮的是如何讓 Windows 跟 Linux 的機器,可以合作無間。

sula3065408 iT邦研究生 1 級 ‧ 2010-05-25 13:51:33 檢舉

你怎麼會認為所有的程式都會自動的乖乖的接在一起,誰來搞定差異?
合作無間不跨平台,出現需要出手擺平的狀況,你想要寫N次嗎?(N等於平台數)
你的說法聽起來才奇怪勒。

sula3065408 iT邦研究生 1 級 ‧ 2010-05-25 13:52:39 檢舉

合作無間「的」跨平台,出現需要出手擺平的狀況,你想要寫N次嗎?(N等於平台數)
... 修改 ...
這系統真麻煩~不能改

shunyuan iT邦研究生 1 級 ‧ 2010-06-01 13:47:00 檢舉

不想跟你爭論,反正知道我就說我知道,不知道我就說我不知道。

我要發表回答

立即登入回答