六种流行的语言大餐---C、C++、python、Java、php、C#你更喜欢哪一个呢?

发布时间:2014-05-07 01:38:00作者:左潇龙阅读(8969 )评论(80)

    引言

     

      鉴于五一期间超大的人流量,LZ思来想去,最终还是选择蜗居在自己的出租屋。无聊之际,当然不能忘了做点什么事情,于是LZ就研究了一下几种语言的皮毛,在这里献丑一翻,希望各位猿友莫要见笑。

      不过说来也巧,园子里前段时间刚好上演了一场语言大战,这让LZ的这篇博文一出生就可能卷入不必要的纷争。其实LZ早就想写这么一篇文章,只是语言的探究比较麻烦,因为每个语言往往最难搞的就是环境的搭建,而且非常浪费时间,因此LZ就挑了五一这个机会才开始着手进行。

      不管怎么说,LZ还是要澄清一下,本文只是LZ学习成果的展示,坚决不参加语言大战。如果猿友们非要问LZ对语言的看法,LZ就只能给你们讲一个LZ看过的玄幻小说了。

      这部小说里面讲述的是一个魔法师与武士的世界,每个人出生的时候,身体都会有“金木水火土雷风”这几种属性之一的特性,有些天纵奇才会有多种属性。大家都是从一层练到九层,十层则成神。在这个修炼体系当中,有一个特殊却又十分合乎情理的设定,就是在成神之前,大家都会从空气当中各自汲取相应的属性元素进行修炼,以期能领悟天道。不过在领悟天道成了神之后,成神之人的属性就会消失,甚至连武士与魔法师都再无任何区别。对于成神之人来说,他们操控的,只剩下那至高无上的神力而已。无属性,无职业。

      好了,故事就讲到这里吧,不知道猿友们看懂了吗?

     

    语言大餐

     

      回归正题,本文是六种语言连接mysql数据库的代码展示,在LZ尝试的过程中,无论是语言环境搭建、mysql依赖库的导入还是代码的风格,各种语言都各有千秋。接下来,我们就让这些语言一一登场吧。

     

    Java(最具噱头的语言)

      

      Java给新人的印象应该是入门简单、代码优雅、活跃度高、跨平台、开源大家庭等等,实在是当之无愧的明星语言,而且是偶像派的。不过可惜的是,偶像派明星很容易被干掉。Java语言是LZ赖以生存的语言,因此LZ不希望做个偶像派,只能奋起直追,争取做实力派的Javaer。

      说起这次Java连接mysql的编写,实在没什么好说的,毕竟本身就是做这个的,所以这一路非常顺利,算是最无感的一个。下面是LZ写的代码。

    package cn.zxl.jmysql;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class JMysql {
        
        private static final String DRIVER = "com.mysql.jdbc.Driver";
        private static final String URL = "jdbc:mysql://localhost/test";
        private static final String USERNAME = "root";
        private static final String PASSWORD = "123456";
        private static final String SQL = "select * from test";
        
        public static void main( String[] args ) {
            Connection connection = null;
            Statement statement = null;
            ResultSet resultSet = null;
            try {
                Class.forName(DRIVER);
                connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
                statement = connection.createStatement();
                resultSet = statement.executeQuery(SQL);
                while (resultSet.next()) {
                    System.out.println("|" + resultSet.getString("id") + "|" + resultSet.getString("name") + "|");
                }
            } catch (Exception e) {
                System.out.println("query failed!");
            } finally {
                try {
                    resultSet.close();
                    statement.close();
                    connection.close();
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
        }
        
    }

      以下是输出结果,表示程序是正确的。

      总的来说,Java的mysql连接编写是最无感的一个,因为这是LZ比较熟悉的。就Java本身而言,LZ对它的打分如下。这里要特别说明的是,由于其它几种语言LZ都只是略知皮毛,因此本次只从最直观的两个感受去评分。

      入门难度:★★★

      代码优雅度:★★★★

      

    C(最令人崇拜的语言)

      

      这个语言在大学里LZ就学过一点皮毛,不过当时很厌烦这个无用的家伙,LZ想要写的是大型网游,而不是输出一个矩阵,或者打印个“心形”去泡妞。不过说来也怪,到得现在,LZ已经做了两年的程序猿,近半年的PM,却忽然之间对C这个老家伙情有独钟,敬意油然而生,实在是怪哉怪哉。

      废话不多说,下面是LZ写的代码。

    《c_mysql.h》
    #ifndef C_MYSQL_H_
    #define C_MYSQL_H_
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock2.h>
    #include <windows.h>
    #include <mysql.h>
    
    void execute_sql(char* sql);
    
    #endif
    《c_mysql.c》
    #include "c_mysql.h"
    
    #define HOST "localhost"
    #define USERNAME "root"
    #define PASSWORD "123456"
    #define DATABASE "test"
    
    int main()
    {
        char *sql = "select * from test";
        execute_sql(sql);
        return 0;
    }
    
    void execute_sql(char* sql)
    {
        MYSQL connection;
        MYSQL_RES *result_pointer;
        MYSQL_ROW result_row;
        int result, row, column, i, j;
        mysql_init(&connection);
        if (NULL == mysql_real_connect(&connection, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS))
        {
            printf("Error:connection failed!");
            return;
        }
        mysql_query(&connection, "set names gbk");
        result = mysql_query(&connection, sql);
        if (result)
        {
            printf("Error:query failed!");
            mysql_close(&connection);
            return;
        }
        result_pointer = mysql_store_result(&connection);
        if (result_pointer)
        {
            row = mysql_num_rows(result_pointer);
            for (i = 1; i < row + 1; i++)
            {
                result_row = mysql_fetch_row(result_pointer);
                printf("|%s|%s|", result_row[0] ,result_row[1]);
            }
        }
        mysql_close(&connection);
        system("pause");
    }

      以下是程序的输出,代表代码是可正确运行的。

      或许是因为Java无法操纵指针,所以在写C语言的时候,使用&、*、->这些符号感觉特别爽,不知道真正的Cer是否有这样的感觉呢。下面是LZ对C语言的打分。

      入门难度:★★

      代码优雅度:

      

    C++(最神秘莫测的语言)

      

      C++作为难度最高的语言,称之为神秘莫测一点都不过分,能游刃有余使用C++的,实在是少之又少。对C++有此印象,主要是因为当时LZ看Java虚拟机源码的悲惨经历,那满屏幕的宏定义,实在令LZ为自己的智商捉急,同时也被编写Java虚拟机的大神们深深折服。

      以下是最高深的语言连接mysql的代码,请过目。

    《c++_mysql.h》
    #ifndef C___MYSQL_H_
    #define C___MYSQL_H_
    
    #include <iostream>
    #include <mysql_connection.h>   
    #include <mysql_driver.h>   
    #include <statement.h>
    using namespace sql;   
    using namespace std;
    
    void execute_sql(const SQLString sql);
    
    #endif
    《c++_mysql.cpp》
    #include "c++_mysql.h"
    
    #define HOST "localhost"
    #define USERNAME "root"
    #define PASSWORD "123456"
    #define DATABASE "test"
    
    int main()
    {
        const SQLString sql = "select * from test";
        execute_sql(sql);
        return 0;
    }
    
    void execute_sql(const SQLString sql)
    {
        mysql::MySQL_Driver *driver;   
        Connection *connection;   
        Statement *statement;   
        ResultSet *result_set;   
        driver = mysql::get_mysql_driver_instance();   
        connection = driver->connect("tcp://localhost:3306", "root", "123456");   
        statement = connection->createStatement();   
        statement->execute("use test");  
        statement->execute("set names gbk");
        result_set = statement->executeQuery(sql);   
        while(result_set->next())   
        {   
            cout << "|" << result_set->getInt("id") << "|" << result_set->getString("name") << "|" << endl;   
        }   
        delete statement;   
        delete connection;  
        system("pause");
    }

      以下是输出结果,代表程序可以正确运行。

      C++这个mysql连接的方式,其API与Java的相似度极高,粗略估计大约有90%左右。因此C++的程序除了异常捕捉和内存清理与Java有些区别之外,其它的代码非常相似,但LZ始终觉得使用“.”没有使用“->”显得高端,0.0。以下是LZ的评分。

      入门难度:

      代码优雅度:

     

    php(最低调奢华的语言)

     

      PHP虽然近期也很火,但是总觉得它有点低调,但又不失内涵。作为网站制作最适合的语言之一,它总是默默的在发挥自己的力量。

      以下是PHP连接mysql低调的代码。

    <?php
        $mysql_server_name="localhost";
        $mysql_username="root";
        $mysql_password="123456";
        $mysql_database="test";
        
        $connection = mysql_connect($mysql_server_name, $mysql_username,$mysql_password);
        if(!$connection) {
            echo "connection failed!";
            return;
        }
        mysql_set_charset("gbk",$connection);
        mysql_select_db($mysql_database, $connection);
        $sql="select * from test";
        $result=mysql_query($sql, $connection);
        while($row = mysql_fetch_array($result)) {
            echo "|".$row["id"]."|".$row["name"]."|";
        }
        mysql_close($connection);
    ?>

      以下是程序运行结果,代表程序是正确的。

      如果仔细观察会发现,PHP的API与C语言非常相似,这是因为PHP是使用DLL来扩展的mysql操作导致的。此外,PHP与前面三个不同的是,它不是编译型语言,是一种服务端的脚本语言,因此LZ选择使用命令来执行它。以下是LZ对它的评分。

      入门难度:★★★

      代码优雅度:★★★★

     

    C#(最具潜力的语言)

      

      C#最近虽然也算火爆,但却似乎一直有些力不从心的感觉,尽管LZ非C#成员,但也认识不少C#程序猿。不过LZ个人觉得,高级形态是语言的趋势,因此像C#、Java、Object-c这种被高度封装的语言总会发光发热,毕竟再退回几十年前去,使用汇编甚至二进制去写代码的日子肯定是不会再到来了。

      以下是C#连接mysql数据库的代码。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using MySql.Data.MySqlClient;
    
    namespace CSMysql
    {
        class Program
        {
            static void Main(string[] args)
            {
                MySqlConnection connection = new MySqlConnection("Database="test";Data Source="localhost";User Id="root";Password="123456";charset="utf8";pooling=true");
                MySqlCommand command = new MySqlCommand();
                command.Connection = connection;
                command.CommandText = "select * from test";
                try
                {
                    command.Connection.Open();
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Console.WriteLine("|" + reader.GetInt32("id") + "|" + reader.GetString("name") + "|");
                    }
                    Console.ReadLine();
                }
                catch (Exception)
                {
                    Console.WriteLine("query failed!");
                }
                finally
                {
                    command.Connection.Close();
                }
            }
        }
    }

      以下是程序运行结果,代表着程序是可以正确运行的。

      C#的API有些特别,而且看到有command就难免让人联想到command模式,不知这API里面的实现是否是command设计模式。总的来说,C#和Java的mysql操作API还是差别比较大的,这让LZ有点出乎意料。以下是LZ对它的评分。

      入门难度:★★★

      代码优雅度:★★★★

     

    python(最高端大气上档次的语言)

      

      对于python来说,LZ之前就已经写过一篇小博文,无论从哪个角度来讲,这个语言都给LZ一种高大上的感觉。无论是它霸气的脚本语言特有的语法,还是特别的编码格式要求,都让LZ心生向往。

      以下是python高端大气上档次的代码。

    # coding=utf-8
    import MySQLdb
    import sys
     
    host = "localhost"
    user = "root"
    password  = "123456"   
    db   = "test"
     
     
    if __name__ == "__main__":
        connection = MySQLdb.connect(host,user,password,db);
        try:
            connection.ping()
        except:
            print ("failed to connect MySQL.")
        sql = "select * from test"
        cursor = connection.cursor()
        cursor.execute(sql)
        for row in cursor:
            print ("|" + str(row[0]) + "|" + row[1] + "|")
        cursor.close()
        connection.close()
        sys.exit()

      以下是程序输出结果,代表程序的正确性。

      尽管python在安装mysql库的时候曾一度让LZ一筹莫展,但这依然无法阻止LZ对python的追逐之心。见到python的API可以说让LZ惊了个呆,实在是简洁至极,别具匠心。好了,多的就不说了,分数代表LZ的心。

      入门难度:★★★

      代码优雅度:★★★★★

     

    小结

      

      到此,六种语言的简单展示就结束了。就本次语言小旅游来说,LZ更喜欢python这块地,简洁的语法和API直接征服了LZ。不知道各位猿友有没有对哪个怦然心动呢?

    /\/\\  /  \/


    版权声明:本文版权归作者(左潇龙)所有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    43
    精彩
    0
    感动
    2
    搞笑
    0
    开心
    0
    愤怒
    1
    无聊
    0
    灌水
    0
    惊讶
#1楼     时间:2014-05-07 02:13:00      来源:Jaxu
顶一个!楼主有成为语言大师的潜力。不过Python很久以前学过,只是工作中很少用到,有点淡忘了。
#2楼     时间:2014-05-07 04:51:00      来源:予沁安
这个也太浅了,能比较语言之间的好坏??
#3楼     时间:2014-05-07 07:55:00      来源:BruceGoGo
就通过这个示例代码,我觉得毫无说服力
#4楼     时间:2014-05-07 08:25:00      来源:GoYF
还是C#最优雅
#5楼     时间:2014-05-07 08:26:00      来源:一风
如果配上各自的主流ORM,优雅度会不会有变化呢?
#6楼     时间:2014-05-07 08:26:00      来源:C++++ 小王子.
看完了我觉得vs才是最屌的.
#7楼     时间:2014-05-07 08:39:00      来源:斯诺登
怎么能少了大名鼎鼎的草泥马编程语言
https://code.google.com/p/grass-mud-horse/
#8楼     时间:2014-05-07 09:02:00      来源:狠无聊的人
本人表示非常了解 楼主对C语言的感觉。
#9楼     时间:2014-05-07 09:07:00      来源:android机器人
楼主那张带优酷截图的是什么游戏啊。。
#10楼     时间:2014-05-07 09:10:00      来源:老牛在路上
python好像很简洁的样子
#11楼     时间:2014-05-07 09:13:00      来源:luli
博客园是怎么了,這种垃圾东西也能上来
#12楼     时间:2014-05-07 09:20:00      来源:紫砂壶
c才应该是最高深莫测的语言,没有之一
#13楼     时间:2014-05-07 09:21:00      来源:qc366
对比的毫无意义
#14楼     时间:2014-05-07 09:23:00      来源:星夜落尘
看完这篇博文,知道了博主也打dota。
#15楼     时间:2014-05-07 09:28:00      来源:Ideasex
c的入门难度不止2颗星吧。。。.......
#16楼     时间:2014-05-07 09:47:00      来源:音乐啤酒
#17楼     时间:2014-05-07 10:02:00      来源:bluen
"这个语言在大学里LZ就学过一点皮毛,不过当时很厌烦这个无用的家伙,LZ想要写的是大型网游,而不是输出一个矩阵,或者打印个“心形”去泡妞。不过说来也怪,到得现在,LZ已经做了两年的程序猿,近半年的PM,却忽然之间对C这个老家伙情有独钟,敬意油然而生,实在是怪哉怪哉。"

----------------------

中!!
#18楼     时间:2014-05-07 10:10:00      来源:手中沙砾
哗众取宠
#19楼     时间:2014-05-07 10:36:00      来源:冰深
LZ你用C#链接数据库不够优雅,为什么不用Using呢?
#20楼     时间:2014-05-07 11:26:00      来源:Canrz
@ 斯诺登
我勒个去……
#21楼     时间:2014-05-07 11:30:00      来源:gws
你怎么能不提js,最淫荡的语言
#22楼     时间:2014-05-07 11:35:00      来源:漩涡长门
呵呵,我怎么就挣脱部了C呢?
#23楼     时间:2014-05-07 13:20:00      来源:艾斯泽
原来是左大叔,大叔我关注你好久了哦!
#24楼     时间:2014-05-07 13:35:00      来源:量子计算机
楼主,你知道为什么反对比点赞多吗?好好回家反省去吧。表以为你会写6种语言就是技术高手,不学C#6.0的语法,你一样是菜鸟。
#25楼     时间:2014-05-07 13:35:00      来源:oxzc
经典在评论中
#26楼     时间:2014-05-07 13:41:00      来源:思思博士
说的太浅了吧
#27楼     时间:2014-05-07 13:53:00      来源:Freiheit
虽然喜欢C#,但是微软不给力,.Net不给力啊
#28楼     时间:2014-05-07 14:05:00      来源:luguo3000
python看似简洁,实际阅读起来并不易读,而且编写起来也会因为代码对齐造成很多不易察觉的问题
#29楼     时间:2014-05-07 14:16:00      来源:午后的小睡
不想挑起大战你说java是嘘头,C#最有潜力?呵呵。
#30楼     时间:2014-05-07 14:25:00      来源:虚拟存储器
#31楼     时间:2014-05-07 14:30:00      来源:牦牛
快餐更合适吧。。。
#32楼     时间:2014-05-07 14:47:00      来源:Chamberlain
没看出来这篇文章的目的。
#33楼     时间:2014-05-07 14:54:00      来源:Ivony...
简洁是因为类库的缘故,事实上如果C#用DbUtility v3这样的轻量数据库帮助器可以写的比你那python代码还简单。

var db = new MySqlDbUtility( "Database='test';Data Source='localhost';User Id='root';Password='123456';charset='utf8';pooling=true" );
foreach ( var item in db.T( "SELECT * FROM test" ).ExecuteDynamics() )
  Console.WriteLine( "|{0}|{1}|", item.ID, item.Name );
#34楼     时间:2014-05-07 15:16:00      来源:清风抚柳
告诉你真心话哪种哥都不喜欢,还是中国话最喜欢~
#35楼     时间:2014-05-07 15:40:00      来源:toEverybody
C/C++无可替代
#36楼     时间:2014-05-07 15:45:00      来源:莫压枯枯地
讲PHP的那个截图, 右下有优酷视频的那个, 是DOTA么?
#37楼     时间:2014-05-07 16:03:00      来源:花儿笑弯了腰
#38楼     时间:2014-05-07 17:28:00      来源:cnJun
亲,还在看dota视频啊......
#39楼     时间:2014-05-07 17:32:00      来源:弹力贴身
除了 C# 和 JAVA不喜欢 其他感觉都还好。
#40楼     时间:2014-05-07 17:37:00      来源:比远方更远
情不自禁的点了一下Dota视频
#41楼     时间:2014-05-07 18:18:00      来源:高天乐
博客园的喷子太多了,唉!~
#42楼     时间:2014-05-07 18:57:00      来源:我爱物联网
我现在用的是php,我不知道现在来学校找实习生的怎么那么多都是Java和C#来开发网站的,我的大php去哪里了,欲哭无泪呀。现在我又在往Java转型,想做安卓开发。python是在这里面我觉得最屌的一个。
#43楼     时间:2014-05-07 19:05:00      来源:Goodspeed
楼主把python代码改一下吧
for row in cursor:
        print ("|" + str(row[0]) + "|" + row[1] + "|")
#改成
print "\n".join(["|%s|%s|" % (row[0],row[1]) for row in cursor])
#44楼     时间:2014-05-07 19:22:00      来源:无色
mysql::MySQL_Driver *driver;
Connection *connection;
Statement *statement;
ResultSet *result_set;
.
.
.
delete statement;
delete connection;

这段c++代码有问题吧?
#45楼     时间:2014-05-07 19:29:00      来源:sirzxj
我喜欢javascript
#46楼     时间:2014-05-07 20:10:00      来源:JeffWong
看上去很不错,可是,代码量上去以后哪种语言更有优势,或者说哪种语言经得起需求反复变化和时间的考验?
#47楼     时间:2014-05-07 20:17:00      来源:p2227
@ sirzxj
+8613800138000
#48楼     时间:2014-05-07 21:09:00      来源:Anthony-黄亮
这个在比较mysql api的接口设计吧!
#49楼     时间:2014-05-07 21:56:00      来源:Dennis Gao
火贴留名
#50楼     时间:2014-05-07 22:14:00      来源:caochao88
脚本语言如python和lua在windows上搭建太简单了,直接安装msi就行了。js更简单了,直接在浏览器里跑。就java和php配置环境比较麻烦
#51楼     时间:2014-05-07 22:16:00      来源:无 尘
我还是比较喜欢小丽
#52楼     时间:2014-05-07 22:49:00      来源:Monn
最喜欢c#,可惜捆绑在window。。
#53楼     时间:2014-05-07 23:51:00      来源:tanlei
python不是有一个Oracle出的connector吗,还挺好用的。
#54楼     时间:2014-05-08 01:57:00      来源:卖知了的老太太
c#是我见过最丑陋的语言,比JS都还丑陋得不知哪里去了,代码罗嗦得要死。
#55楼     时间:2014-05-08 04:48:00      来源:hoodlum1980
非常棒的文章! (来源:合仔茶端)
#56楼     时间:2014-05-08 04:54:00      来源:hoodlum1980
但是->和点比较显得高端这话有点表面了。cpp的语法是需要。 (来源:合仔茶端)
#57楼     时间:2014-05-08 06:25:00      来源:hoodlum1980
怎么这么多“反对”啊,不解。我给楼主点了“支持”。
#58楼     时间:2014-05-08 11:39:00      来源:冲杀
我装python的mysql库的时候直接编译不通过--坑爹
#59楼     时间:2014-05-08 13:27:00      来源:InkFx
推荐+1

小虾 在这里 有两个问题 想问一下 楼主:
>第一,为什么会有 这么多的 反对的,不理解。
>第二,我看到,楼主的 C代码 也是用 VS2010 开发的样子,VS支持C语言??

最后,向 楼主 表示一哈 敬意。
#60楼     时间:2014-05-08 21:14:00      来源:nd
至今没学会如何使用jsp,servlet,编辑器太蹩脚了,visual studio 天下无敌手啊,java配置个路径,都会把新手吓回去,visual studio F5华丽丽的调试功能。
#61楼     时间:2014-05-08 22:00:00      来源:六仙庵
这种文章不踩怎么对得起我的鼠标![愤怒][呕吐][鄙视]
#62楼     时间:2014-05-08 23:06:00      来源:Miss When...
@ 卖知了的老太太
C#啰嗦?不知您对c#的认识停留在多少年前,linq+lamda不知道要简洁多少了,假如你有一个List的People对象peoples,People对象有Name和Age属性,你要对peoples按Age正序排序只要peoples=peoples.OrderBy(x => x.Age).ToList();即可,不知道您还有更简洁的方法吗?
#63楼     时间:2014-05-09 00:17:00      来源:卖知了的老太太
@ Miss ♥ When...
你一直都是这么偏激吗? 为嘛不好好理解下我说的话,只是代表个人意见, 要知道我可没用“C#是最丑陋的语言”,我只是说“是我见过最丑陋的语言”,也就是说,我不代表任何人。

如果哪天你对我最喜欢的python说:Python是最丑陋的语言,我肯定鸟都不鸟你,因为,那只是的看法, 不代表所有人。

另外, 这个含蓄又恶毒的评论, 我是故意发出的, 我只是测试下C#用户有几个人是真的不在乎别人的月经话”, 没想到还是有人中招。
#64楼     时间:2014-05-09 02:44:00      来源:Miss When...
@ 卖知了的老太太
虽然Python用缩进代替了{}使代码看起来更简洁(具体的方面因为只是稍微了解过,所以没办法做过多比较),但真没觉得c#因此丑陋到哪里去了,你要说.net 太封闭,那我非常赞同你的看法,虽然有mono但是有些情况下还是不能用,所以一直希望微软什么时间出一个Linux版的.net framework,虽然这基本没希望,可你要说c#丑陋就真的不能苟同了,c#这些年的每一个新版本都带来了很多新特性,所以说说一门语言怎么怎么样,请在深入了解后,并举出具体例子,这样才有说服力,否则和开地图炮有什么区别?另你说是在做测试,那我觉得你真的够无聊的...
#65楼     时间:2014-05-09 10:59:00      来源:大象软件
写了点皮毛就评论语言的的优缺点,我深深的鄙视下:垃圾!
#66楼     时间:2014-05-09 13:03:00      来源:卖知了的老太太
@ Miss ♥ When...
1,我承认我只是看了别人写的C#代码就简单下了这么粗暴的结论,原因如2
2,我确实是在测试C#程序员是不是不在乎月经贴

顺便贴出个在Python不借用任何“魔术式”方法来实现你那个类似的代码, 仅为回报你的代码,无比较心理:

peoples.sort(lambda a,b:cmp(a.age, b.age))


直接对peoples进行了内部排序,不需返回新的list。
#67楼     时间:2014-05-09 16:38:00      来源:bjdw
支持楼主,本人C#程序猿,会一点java和php,一直对python比较好奇。 楼主分析的虽然比较片面一些,但是句句都透漏着道理,必须赞一个。
#68楼     时间:2014-05-12 09:38:00      来源:枕上轻寒
赞一个。
真不知道那点反对的出于什么原因。
#69楼     时间:2014-05-12 15:54:00      来源:白衣沽酒
默默的点一个赞
#70楼     时间:2014-05-17 11:05:00      来源:量子计算机
@ 卖知了的老太太
引用@Miss ♥ When...
1,我承认我只是看了别人写的C#代码就简单下了这么粗暴的结论,原因如2
2,我确实是在测试C#程序员是不是不在乎月经贴

顺便贴出个在Python不借用任何“魔术式”方法来实现你那个类似的代码, 仅为回报你的代码,无比较心理:



直接对peoples进行了内部排序,不需返回新的list。

JS:
peoples.sort(function (a, b) { return a.age > b.age })


C#不是动态语言也缺乏弱类型也不是函数式,拿C#最弱的地方去比其它语言的强项是知识面不够广,这是很多.net程序员的通病。当然结果被别人搞的体无完肤。

要弄,就弄C#的泛型,面向对象,接口,属性,特性,这些犀利的东西,可惜好象多数C#程序员对这些真正闪光的东西不是很懂。

比如:
public interface IEntity...
public class BaseEntity<T> Where T : IEntity
public class PeopleEntity : BaseEntity<IEntity>
{
[require]
public string Name {get; set;}
...

这种才叫C#的有优雅的代码,Java比不了,JS写出来的也很垃圾,免强能抗衡的只有Python,Scala这些新型的混合了面向对象及函数式的语言才能搞。
#71楼     时间:2014-05-23 15:18:00      来源:samcao
从java基础,跑到C#.
工作了,用php做自己的小工具站点.<js,
然后Python写写小工具.
但是回头看看.感觉撒都不会了.
#72楼     时间:2014-05-28 10:31:00      来源:beyondchina
#73楼     时间:2015-04-08 22:43:00      来源:findumars
诚心求你读过的那本玄幻小说是什么。仔细看看,没准可以有更多的收获~
#74楼     时间:2015-04-09 12:52:00      来源:左潇龙
@ findumars
我还真不太记得了,我读过的太多了。不过我有八成的把握是《盘龙》,这是一本相当出名的玄幻小说。
#75楼     时间:2015-04-09 15:47:00      来源:findumars
@ 左潇龙
谢谢。我对你这个理论深以为然。每个人对每种语言在感觉上总会有些领悟的差别的,所以好奇一下这本小说是什么。有空会读一下。
#76楼     时间:2015-05-14 16:31:00      来源:杜少.
楼主,我想告诉你,其实Python也可以用VS写的。。。
#77楼     时间:2015-06-05 10:37:00      来源:L_yunwen
@ 卖知了的老太太
最优美的还是C#,当你真接触到LINQ、lambda还有泛型的时候你就会发现其他的不能比。
#78楼     时间:2015-09-20 10:46:00      来源:万里沙来手一挥
认为没有大括号就是可读性高,认为语句字符少了就是简洁优雅,这是一种很幼稚的看法。
#79楼     时间:2016-01-17 12:03:12      来源:深圳市网友

推荐一个搜索博客问答的IT搜索引擎 http://www.itdaan.com 。

#80楼     时间:2016-08-01 11:26:00      来源:董小保
python不用大括号就很不适应,所以没怎么学,面向对象使用者,在jsp,java,php,c#中,还是c#写起来最好,可能是因为编辑器的原因?
发表评论

站内搜索

最新评论