首頁>Club>
就因為java和它所依賴的框架都是開源免費的嗎?為啥做.net的會被看不起?
31
回覆列表
  • 1 # 洪晉科技

    一門語言有沒有前途,很重要的一點就是這個語言效能怎麼樣,我一直認為c#的效能還是不錯的,但是,試驗結果,卻很意外!

    在認真回答這個問題之前,我一直以為C#這個語言效能要比java好。之前從事過6年多的asp.net開發。

    為了回答這個提問,我親自編寫了一下三種語言同樣的浮點運算函式的程式碼,對比三種語言的效能:c++,c#,java.讓事實說話。

    我以為c++排第一,c#排第二,java排第三。但是結果卻讓我大跌眼鏡架。

    java效能居然奪冠,c#跟c效能差不多稍弱一點點。這個結果太另我驚呀了。

    當然,我是從技術這方面出發,提問者更關心的其實是自己學哪種語言前途更好,決定前途的,我認為不是語言本身,而是人本身。不過,有一個打臉的事實,java程式設計師工資,確實普遍比.net程式設計師工資高。做為一個.net程式設計師,這是個讓人悲傷的訊息。

    附三種語言的程式碼,親測可以直接編譯執行,有興趣可以自行執行對比結果。注意各語言對時間的單位不一樣,有的用的毫秒,有的用的微秒,由於獲取時間都存在誤差,對比幾毫秒的差距意義不大,看看誰先跑完就行了。我將運算次數定為5億次計算。如果時間差不明顯可以增大計算時,比如加到50億次計算,就可以看到更明顯的差距。

    c++程式碼:

    #include <iostream>

    #include<time.h>

    void start()

    {

    clock_t start_t, end_t;

    double total_t;

    for (int j = 0; j < 5; j++)

    {

    start_t = clock();

    double c = 100000.123;

    double b = 200000.021;

    double ef = 300000.321;

    for (int i = 0; i < 500000000; i++) { ef = c * b + ef / c - b; }

    end_t = clock();

    total_t = (double)(end_t - start_t) / CLOCKS_PER_SEC;

    std::printf("第%d次執行,耗時:%f\n",j,total_t); } }

    int main(){

    std:printf("test\n"); start(); return(0);

    }

    c#程式碼:

    using System;

    namespace csharp{

    class Program {

    static void Main(string[] args)

    {

    Console.WriteLine("Hello World!");

    Program test=new Program();

    long f1 = DateTime.Now.Ticks;

    System.Console.WriteLine(f1);

    test.strat(); long f2 = DateTime.Now.Ticks;

    System.Console.WriteLine(f2-f1); }

    public void strat() { for (int j = 0; j < 5; j++) { long f = DateTime.Now.Ticks;

    double c = 100000.123;

    double b = 200000.021; double ef = 300000.321; for (int i = 0; i < 500000000; i++) {

    ef = c * b + ef / c - b; } long g = DateTime.Now.Ticks; long kl = (g - f)/1000; System.Console.WriteLine("第"+j.ToString()+"次執行,耗時:"+kl.ToString()+";");

    } }

    }}

    java程式碼:

    import java.util.Date;

    public class JTest {

    public void strat()

    {

    for (int j = 0; j < 5; j++)

    { long f = new Date().getTime(); double c = 100000.123; double b = 200000.021; double ef = 300000.321; for (int i = 0; i < 500000000; i++) { ef = c * b + ef / c - b; } long g = new Date().getTime(); long kl = g - f; System.out.println("第"+j+"次執行,耗時:"+kl+";"); } }

    public static void main(String args[]){ System.out.println("Hello World!");

    JTest test=new JTest();

    long f1 = new Date().getTime();

    System.out.println(f1); test.strat();

    long f2 = new Date().getTime();

    System.out.println(f2-f1); }

    }

  • 2 # 古天樂100

    重申一遍,C#沒有毛病,但.NET框架卻有問題,ASP.NET依賴.NET框架、IIS、WINDOWS SERVER,這才是核心問題,雖然.NET CORE框架能解決這個問題,但出現時間太短,.NET CORE 2.0出現才兩年時間,而且還在完善當中,真心不敢使用啊

  • 3 # TurboCh

    c#在國外其實很受歡迎的,在國內由於這些大廠阿里百度騰訊主流用的是java,以至於國內受歡迎程度、普及率還有薪資水平並不高。也就是這些原因造成了生態嚴重失衡!一旦公司發展壯大就極有可能轉java。c#這門語言是真優雅!linq以及語法糖實在是太棒了!net5對原生也有很好的支援!也支援開源!也支援跨平臺!對非同步操作也有質的最佳化!java的jdk到1.8就開始收費了!net core一直免費開源!所以未來net還是很有發展前途的!但是面向國內薪資程式設計的話還是先研究java程式設計吧!

  • 4 # Eclipse70003419

    c#確實是錢問題。論效率,net框架認第二,那些什麼垃圾宇宙第一語言,世界最大社群什麼的都要靠邊。無奈國內開發者氛圍浮躁,人云亦云。網上說什麼語言好就一窩蜂去搞,前段時間火nodejs,然後又說Python,跟著又說PHP,今天又來什麼go。具備踏實運用一門技術。的開發者太少。做專案。就直接的不思考了。人家說什麼設計模式什麼框架就直接套了。完全都不思考和進行可行性研究,沒得抄,沒得套,直接說什麼生態不行來掩蓋自己創造能力,實現能力的不足。只能說,聰明人用net core。其他人嘛,隨他喜歡。

  • 5 # 紅色大帝001

    在國外之前幹了6年.net。基本上這邊比較傳統的企業或者banking 金融這樣的公司用.net比較多。我33了,不打算繼續做微軟的這套了。現在轉做scala大資料。其實語言沒有好壞,就是使用場景和生態不一樣而已。想做什麼看當地就業生態環境結合自身條件

  • 中秋節和大豐收的關聯?
  • 對於有人裝出兇惡的樣子,或者用稱呼去逗弄孩子,應該怎麼拒絕呢?