iT邦幫忙

0

Php vs c#

  • 分享至 

  • xImage

目前學過java 為主
想在專精一個語言

1.php
有接觸一點js html css 所以想學個php來連接一個網頁,但爬過文感覺有點沒落了,而且是弱型態的怕之後是否辦法快速連接強型態的?(ex C系列等)
2.c#
前景跟未來薪水好像比php高一點,但是中間邏輯好像比起php比較複雜,不知道是否跟java類似的語言(語法方面)?

各位給我一個建議讓我瞭解現在的環境跟我比較適合那些,拜託!

看更多先前的討論...收起先前的討論...
回答1: 我相信未來10年內, PHP還活著! 然後如果你強型態語言的編程習慣良好, 跳弱型態語言例如: JS或PHP; 應該不會有太大問題
回答2: C#號稱微軟的Java, Java 跨 C#不會太困難; 重點還是在於你coding的習慣好不好
我的建議就是看你先找到PHP或者C#的工作; 然後有沒有「熱忱」敖下去!
熬到出師就是你的了 !
guua70927 iT邦新手 5 級 ‧ 2019-07-04 14:03:45 檢舉
回樓上:有在另一篇文有po有找到兩個工作分別php c#工作所以在煩惱,在考慮未來的可能性 ,至於coding習慣應該算良好,專題有特別要求排版跟規則和去處冗長程式,教授都說很漂亮的程式碼(java)
考慮未來的可能性?那麼你沒有資格挑語言喔。
所謂的可能性是:要求你用什麼寫,你就能用什麼寫。
所以我的建議是:二個都同時學,絕對沒煩沒惱。
guua70927 iT邦新手 5 級 ‧ 2019-07-04 20:40:47 檢舉
@Samと可樂快跑
好吧QQ想說優先順序,一個一個慢慢碰比較好
guua70927 iT邦新手 5 級 ‧ 2019-07-04 20:40:48 檢舉
@Samと可樂快跑
好吧QQ想說優先順序,一個一個慢慢碰比較好
真的搞不懂什麼是強型,什麼是弱型。
簡單來說,強型別語言可以讓你在編譯時期就知道結果。
因為型別固定的話,就不會在執行期出現型態不相符的意外。
而弱型別的設定,由於變數型態可改動。
在執行期就有可能因為型態不符而發生無法預期的意外。徒增加debug的困擾。
有些弱型別的語言得靠「===」來確定資料與型別的正確與否。
弱型別雖然好用,卻更容易流於濫用。
通常就算是泛型設計也仍然要保持型別的一致性。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
dragonH
iT邦超人 5 級 ‧ 2019-07-04 14:35:55

1 .

參考

php 我認為基本上在 10 ~ 20 年都還會存在

所以這擔心是多餘的

至於強弱型別的問題

本來就是要去適應該語言的寫法

2 .

我覺得 C# 除了要懂該語言本身

還必須要熟練他的 IDE (visual studio) 之類的

入門的確會比 php 稍微高些

相較之下 php 最基本開個文字編輯器就能寫

(雖然 vs code 裝個插件好像也能寫 C#

基本上你熟練一個語言後

相較於新手

其他的語言都能很快就上手

所以語言的問題真的不是問題

而且這行很少人只專攻一個語言的


總結

選哪個語言

取決你找到的工作或偏好

不過看起來你應該是沒有特別偏好

那就是依工作來挑選了

或者你可以依領域來選

C# 基本上什麼都可以寫

Web App
WPF
Game (unity3D)
Mobile App (Xamarin)

php 的話主要是寫 Web App

用一些套件好像也能寫 Desktop APP

guua70927 iT邦新手 5 級 ‧ 2019-07-04 20:42:07 檢舉

C#好像用途比較廣一點,一開始也是想選c#,但有點怕他的指標跟不習慣,想說一個一個慢慢來學

C#沒有指標和釋放,只有強型別跟物件,至於開發環境有要錢的VS,也有免費的VS Community跟code還有其他免費工具

fillano iT邦超人 1 級 ‧ 2019-07-09 10:50:32 檢舉

C#不是C或C++,反而更像你學過的Java。理論上學過Java的話進入C#應該問題不大。

3
小魚
iT邦大師 1 級 ‧ 2019-07-04 14:55:11

1.目前台灣一半以上的Server應該都還是用PHP,
而且PHP架站成本上比.Net便宜,
很多老闆都還是喜歡用PHP,
至少以台灣的環境來看,
目前看起來PHP網站還是佔多數.
至少我是以C++跟C#起手的,
學PHP感覺沒太大困難.
而且PHP在台灣歷史悠久,
除非太奇怪的需求,
要找到資料也不是太困難.

2.C#基本上跟Java語法蠻像的,
而且.Net的套件蠻多的,
當然有人說效率沒有C++好,
(畢竟記憶體不是自己控制的)
不過如果以功能上而言,
C#方便性是蠻高的.
網頁的話我是建議學 ASP.NET MVC

如果很困擾的話,
就兩個都學吧!

看更多先前的回應...收起先前的回應...
guua70927 iT邦新手 5 級 ‧ 2019-07-04 20:46:04 檢舉

PHP好像現在有慢慢下滑的驅使,C#是怕在java語法的不同,進公司會有寫錯的想法,畢竟一開始公司就要求直接寫專案了

寫錯就不能build,不能build就會改對啦!
還是你認為這問題是出在邏輯上的錯誤?

php會下滑,我的感覺是是因為7.0跟5.0的相容隊接的問題.....我也是棄守改學c#的一員...php跟c#最大的差異,就是對於開源社群的支援,想要能直接讀寫excel(而不需要安裝office),nuget裝個epplus就搞定,讀寫速度還比傳統的COM速度還快n倍

(python的pip更猛)

我的意見就是:如果樓主可以練到碰到什麼環境,不會單從一個語言或平台去解決問題,那你就出運啦

froce iT邦大師 1 級 ‧ 2019-07-05 10:04:26 檢舉

go的go get其實也不錯,直接抓github的套件下來。只是要習慣他的強制規定撰寫者遵照他的規範。
現在新的語言都對套件庫的擷取都下了功夫。
不過NPM很糟...

4

我覺得,這個問題很奇特。也很莫明奇妙。

認真來說,PHP跟C#是屬於兩種性質的開發設計。

PHP是偏向與WEB相關的設計。除了PHP本身還需要學習HTML跟JAVASCRIPT及CSS相關的設計才行。
也就是偏向於網頁設計。

c#則是會比較偏向於WINFROM相關設計。雖然是這樣說,但.NET的設計上也會用到它。
而.NET的設計領域範圍則算是非常的廣。它可以是WEB設計,也可以是FROM設計。甚至也可以做為UI或插件相關的設計。

也就是說,這得看你的領域定義來決定。光用PHP跟C#來做比較並不太洽當。
除非你將C#視為ASP.NET來看。畢竟兩者還算是屬於同一種領域。拿來當比較判斷還行。

就結論而言,我其實會將其再分為作業系統來看待。C#來說其作業系統還是偏向於WIN系統為主。
你本身所學的是JAVA,認真來說它比較不偏向任何一個作業系統。
而PHP而言來說,它則是比較偏向LINUX系統為主,雖然它算是屬於WEB SERVER的一種驅動器。
所以在WIN系統也是可以跑也沒錯。

總之,單用PHP跟C#來做發展而言。這就得看你未來可能性會面臨哪一種環境。
C#的設計規劃會比較廣。但他終究還是比較屬於WIN系列。

如果要往多系統領域來做發展,我會比較偏向學習PHP。
可是,如果你未來的領域並非是要往WEB走向的情況下。反而是學習C#會比較好。

所以你的問題,很難給你一個標準答案。我只能提出觀點。剩下來的還是要由你自已決定了。

看更多先前的回應...收起先前的回應...
guua70927 iT邦新手 5 級 ‧ 2019-07-04 20:48:19 檢舉

Php是有學過一點前端鎖想想來寫看看網頁,c#是聽說跟java比較類似所以比較想,個人的話應該是想走web吧,畢竟看的到的比較喜歡,以我個人來看

guua70927 iT邦新手 5 級 ‧ 2019-07-04 20:48:19 檢舉

Php是有學過一點前端鎖想想來寫看看網頁,c#是聽說跟java比較類似所以比較想,個人的話應該是想走web吧,畢竟看的到的比較喜歡,以我個人來看

小魚 iT邦大師 1 級 ‧ 2019-07-04 21:36:03 檢舉

Web看的到,
WinForm就看不到嗎?

我在公司的ASP.NET MVC架構上也是用C#為主語言,比VB來的高效且易維護,至少從LINQ和LAMBDA來談這件事真的是如此,C#連在手機APP都可以當做主語言(使用Xaramin),有興趣的話還可以搭.NET CORE在MAC及LINUX上架設網站或當成SCRIPT跑程式(雖然我會比較建議用PYTHON比較高效)

這邊我還是要糾正一下。

c#並不是拿來做為web開發用的。asp.net才是。
兩者請不要搞混。一直c# c#的比較真不知道再幹啥。
誤導初學者。

asp.net可以用c#開發的ui或是插件或是應用。但c#本身並不是web開發語言。且認真來說,php也是可以使用c#開發出來的ui跟插件。
只是aspnet跟c語言。有vs開發工具方便開發。但c#並不是用來開發網頁程式。只是因為asp.net取用它而已。

c#可以拿來用xamarin在android和ios的手機上跑。
當然這樣就只是仿原生而非真原生。

fillano iT邦超人 1 級 ‧ 2019-07-09 10:48:06 檢舉

我自用工具也有一些用c#寫的command line。

不管用哪個語言寫,使用.NET Framework的話,最後都會編譯成Common Language Intermediate(類似Java編譯後的bytecode,或是古老VB編譯成的P Code),然後在Common Language Runtime這個VM中執行。以前微軟沒好好做,但架構上這跟Java一樣是有可能跨平台的。這部份的支援到Core才比較好。

也可以編譯成機器碼,但是效能不一定比較好。編譯成機器碼的話,會需要讓他跑一段時間紀錄執行的log,然後回頭用這個log來做最佳化。(其實VM就會做這件事情,所以說效能不一定比較好)

1
froce
iT邦大師 1 級 ‧ 2019-07-04 16:21:37

想再專精一個語言,何必看他像不像呢?
要是我,太像我還不想學咧。

回到主題,看到你列PHP,未來想接觸web相關?
那就不用糾結啥型別,你還有個javascript要煩,總會遇到動態弱型別的時候。(茶

看更多先前的回應...收起先前的回應...
小魚 iT邦大師 1 級 ‧ 2019-07-04 21:36:46 檢舉

這樣說也是.

如果太像你,我會想學喔!!

froce iT邦大師 1 級 ‧ 2019-07-05 09:31:35 檢舉

忘記加標點符號了。XD

我要發表回答

立即登入回答