C programming center (C++ với C# cũng ok)

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi ipridian_elf, 25/8/06.

  1. Dark_XIII

    Dark_XIII T.E.T.Я.I.S

    Tham gia ngày:
    17/4/03
    Bài viết:
    688
    - PHP 5 có hướng đối tượng nhưng còn yếu.
    - What is Python? Google, Yahoo,... are Python. Ở Việt Nam Python kém phổ biến. Nhưng tại nhiều nước thị phần của nó cực lớn.
    - Java không tốn nhiều chi phí. Nó free, mỗi tội chưa opensource (cũng sắp rồi).
    - Flickr cũng thuộc loại khá lớn (hiếm hoi của PHP) nhưng so với Microsoft.com thì thua. Riêng cục MSDN của nó cũng đủ dè Flickr ngỏm rồi.
    - Quản lý mảng và object của PHP lợi ở điểm nào? Bạn phân tích thử xem. Mình làm một series PHP vs .NET :D. Riêng cá nhân tôi thì cam đoan với bạn ADO.NET của .NET là #1. Chưa thấy ngôn ngữ nào có nổi 1 cái tương đương thế.
    - Theo tôi thì pattern chưa quan trọng bằng phần thiết kế đâu. Pattern chẳng qua là những vấn đề you will see again and again trong software development. Thường thì những thứ này do người khác nghĩ ra. Mình chỉ vận dụng, lắp ghép là chính. ASM cũng áp dụng pattern vào sài được. Đúng là pattern không phân biệt ngôn ngữ mà. Đưa vào đây làm gì?

    So sánh thị phần web server: http://port80software.com/surveys/. Số liệu khảo sát dựa trên danh dánh 1000 công ty lớn mạnh nhất theo Fortune 1000
     
  2. Payable

    Payable Youtube Master Race

    Tham gia ngày:
    24/8/06
    Bài viết:
    11
    Flickr mà khá lớn à :)) +_+ Tôi lướt qua nó hàng ngày hàng ngày... và tôi thấy quy mô và tốc độ phát triển của nó khủng khiếp của nó!

    MSDN đúng là mức traffic cao hơn so với Flickr, nhưng flickr mới chỉ phát triển gần đây + mức độ upload/download liên tục của user (cái này thì chắc chắn MSDN không bì kịp rồi).
    Mức độ truy cập là một vấn đề khổng lồ đó. Điều đó chứng tỏ PHP không dỏm đâu.

    Mà Flickr là của Yahoo và Yahoo là PHP bác à. Chỉ có điều PHP của Yahoo được họ cuztomize lại thôi.

    OOP trong PHP5 theo tôi thấy là chỉ thiếu mỗi NameSpace thôi, nhưng điều này mình có thể khắc phục được. Vì PHP là Open Source, nó không được biên dịch, nên chỉ cần sắp xếp các class file vào các thư mục khác nhau như kiểu Zend Framework làm là ok.

    Còn cách quản lý mảng và Object của PHP5, tôi không diễn đạt chính xác ra thành lời văn được, nhưng tôi thấy là nó rất linh hoạt.
    Linh hoạt hơn so với các ngôn ngữ chính thống như C++ và Java. Có lẽ vì PHP là một script.
     
  3. Dark_XIII

    Dark_XIII T.E.T.Я.I.S

    Tham gia ngày:
    17/4/03
    Bài viết:
    688
    Flickr lúc đầu là 1 bọn độc lập mà. Sau này thấy nó phát triển Yahoo mới mua lại.
    Yahoo thì có molude nó viết bằng PHP nhưng số lượng viết bằng Python cũng nhiều không kém. Google thì khỏi nói. Bọn này Python là chủ đạo.
    MSDN tôi mới thấy nó thiết kế phức tạp. Chứ không so về bandwidth (chả biết ai hơn).
    Bọn zend thì hơi lạ. IDE cho PHP mà viết phần nhiều dùng java :))
    Công nhận thời gian gần đây PHP cũng khá phát triển. Chứ như hồi v4 thì không bao giờ thèm dùng luôn. Nhưng để so với các ngôn ngữ mạnh khác thì vẫn chưa đủ. Hầu hết các forum được viết bằng PHP (các ngôn ngữ khác không có đất trong lĩnh vực này) nhưng lên đến các hệ thống phức tạp hơn như portals, Enterprise Web Applications thì số lượng viết bằng PHP ít hẳn so với các ngôn ngữ khác.
    Dùng PHP hay có tên MySQL đi kèm. MySQL hơn MS SQL ở chỗ chạy nhanh, nhẹ nhưng tính năng thì kém. Không có store proceduce luôn *OMG* (dạo này mới có nhưng bug kinh khủng. Dùng không nổi). Trong PHP viết thường phải lọc ' để chống SQL Injection mà không có store proceduce... Đây cũng là lý do tôi không thích PHP&MySQL lắm. Hiện tại Java cũng sắp opensource rồi. Thị phần của Java cũng chỉ sau có .NET thôi.
    Tuy nhiên ngôn ngữ nào mạnh là tôi dùng. Sau này PHP mà mạnh thì sẽ chuyển còn không thì cứ vậy ;)) only C#
     
  4. Payable

    Payable Youtube Master Race

    Tham gia ngày:
    24/8/06
    Bài viết:
    11
    Không nói đến IDE, tôi đang nói đến Zend Framework kia. PHP là một ngôn ngữ chỉ cho một mục đích duy nhất là web. Làm sao mà build IDE bằng PHP được.

    Cái PHP thiếu là một framework "chính thống" và thực sự mạnh. Chính vì thế mà các ứng dụng web lớn ít xuất hiện trên PHP.
    Hy vọng ZF trong tương lai sẽ đáp ứng được nhu cầu đó.
    Nếu được thì việc phát triển các ứng dụng trên nền PHP sẽ đi vào hệ thống + giảm thời gian và chi phí.

    Để đáp ứng BW lớn thì thiết kế cũng phải mạnh.
    Tôi có đọc bài viết của pcdinh ở ddth, một guru Java + PHP nói là anh ta đọc một tài liệu của bọn Flickr, và trong đó có nói rằng hệ thống của Flickr đạt đến con số 60 triệu dòng code +_+ Hiện tôi vẫn chưa mò ra tài liệu đó.
    Nhưng tôi cho rằng Flickr (tôi là một fan của nó) là một trong những ứng dụng web vĩ đại nhất của nhân loại.

    Bên cạnh Yahoo thì cũng có rất nhiều website trong top được xây dựng trên PHP như Gamespot.com chẳng hạn. Cho thấy PHP đang rất được tin dùng.
    Nó được sự hậu thuẫn của IBM, Zend, Yahoo... không có lý do gì PHP không trở thành bá chủ của mảnh đất web cả.
     
  5. Payable

    Payable Youtube Master Race

    Tham gia ngày:
    24/8/06
    Bài viết:
    11
    Không ai cấm bác xây dựng ứng dụng PHP với MS SQL hoặc Oracle cả +_+. (không edit bài được)
     
  6. ipridian_elf

    ipridian_elf Voyage perdu

    Tham gia ngày:
    19/3/03
    Bài viết:
    5,678
    Nơi ở:
    Earth
    Nếu nói về performance thì không nên đổ lỗi tại ngôn ngữ lập trình mà phải nói đến người lập trình. Nếu như 1 người lập trình giỏi và hiểu biết rộng về máy tính, cách làm việc của nó và các việc liên quan đến sử dụng từ phía user thì lập trình trên C++ sẽ phát huy được tài năng của mình hơn. Tuy nhiên C# có vẻ như là gỡ bỏ được cho prgmmer việc phải suy nghĩ tới memory allocation, management, etc ?

    Không rõ lắm. Có nghĩa là mình không hiểu lắm ý mà bạn muốn nói. Ngôn ngữ lập trình trên Linux phổ biến nhất là C, nếu như quan tâm đến phần hoạt động trong Linux bạn sẽ phải học C, vì kernel được viết bằng C và rất nhiều chương trình khác cần thiết cho Linux là C.
    Còn nếu ý bạn là phát triển sao cho code được portable và có thể chạy trên Linux chứ không riêng Windows, thì đúng là C# không thích hợp cho lắm, mặc dù bạn có thể tham khảo qua mono (google "mono"), hay DotGNU (Tiếc rằng DotGNU hơi lỗi thời rồi). Portable code thì có Java hoặc Perl là byte-code language, mặc dù Perl thường được sử dụng cho việc text-processing vì nó có awk là 1 trong những nguồn cảm hứng, nó vẫn rất thích hợp cho prgmming nói chung.

    Mình cũng không ưa công nghệ của Microsoft lắm vì mình không có cơ hội test chúng và quen làm việc với open source model hơn. Nếu nói về phương diện internet, mình nghĩ PHP, Perl, Python là 3 ngôn ngữ chủ yếu. Java cũng rất thịnh hành tuy nhiên theo mình (nói trên phương diện là một www-surfer) nó còn gặp nhiều khó khăn nhất định.

    Không biết mọi người có ý kiến thế nào về Oracle như 1 DB hỗ trợ php/perl/python thay cho MySQL ? Vì chưa từng được thử sử dụng hay học đến nên hiểu biết còn thiếu x_x
     
  7. Payable

    Payable Youtube Master Race

    Tham gia ngày:
    24/8/06
    Bài viết:
    11
    Mình có làm việc với LAMP (server), nhưng chưa sử dụng 100% Linux cho máy tính cá nhân bao giờ. Sếp mình cũng hay training mọi người về Linux.
    Nói chung là Linux làm cho mình thấy hứng thú tìm hiểu. :D Mình cũng có khuynh hướng Open Source và không thích M$ :D


    Orcale xa xỉ :D Chưa đụng tới bao giờ :|
    MySQL đã khá hơn xưa rất nhiều, tin là càng ngày nó càng đáng để mình tin tưởng.
     
  8. Dark_XIII

    Dark_XIII T.E.T.Я.I.S

    Tham gia ngày:
    17/4/03
    Bài viết:
    688
    - PHP dùng viết được application nhưng không mạnh nên không nhiều người để ý. Trong khí đó học Java hoặc .NET viết được cả web và application sử dụng cùng một ngôn ngữ.

    Đính chính lại là Flickr 60.000 dòng code bằng php chứ không phải 60 triệu. Và flickr không phải chỉ code bằng php không. Phần node service của nó dùng java, XML parse dùng PEAR, dùng cả Perl.

    Perfomance bị ảnh hưởng bởi ngôn ngữ. Chắc IE chưa hình dung chính xác 1 compiler làm những việc gì? Chỉ có asm là không lo perfomace còn tất cả các ngôn ngữ bậc cao đều không thể có performace được như asm. Viết = C++ dù có làm gì đi nữa thì cũng không thể nhanh như asm. Lúc kỷ nguyên của C, thời C++ mới ra đời nó đã bị chê bai đủ điều vì performance kém. Nhưng phần cứng càng phát triển và C++ đã có chỗ đứng của mình. Hiện tại C# perfomace > C++, thời gian phát triển ngắn (đỡ tốn kinh phí), managed code (tốc độ nhanh hơn), can do low-lv suff like C++ (C++ làm được gì C# làm được cái đó). MS cũng đã bắt đầu chuyển hướng khuyến khích dùng C#. Đã có cả một series webcast về game programing sử dụng C# (3d & 2d).

    Tôi chọn lựa công nghệ không phải là do nó open source hay bất cứ thứ gì khác mà chỉ vì những lợi ích nó mang lại. Thứ gì mạnh thì dùng thứ đó.

    Oracle thì nếu không có server xịn thì khỏi test, mệt. Ngồi ấn lệnh Create DataBase chờ khoảng 1 tiếng mới xong.

    Theo thống kê của port 80 thì dẫn đầu danh sách web server vẫn là IIS của Microsoft với hơn 53%. Như vậy không phải PHP, Perl, Python dùng nhiều nhất.

    Theo đánh giá cá nhân thì tôi thấy 3 ngôn ngữ sau là mạnh nhất + đáng học nhất hiện tại:
    - C#
    - Java (sắp open source)
    - Python
     
  9. Payable

    Payable Youtube Master Race

    Tham gia ngày:
    24/8/06
    Bài viết:
    11
    Thật thế à? @-) +_+Đây là lần đầu tiên tôi nghe thấy nhận định như trên. Thực tế là nó là ngôn ngữ được dùng nhiều nhất để phát triển web. Cho nên "không nhiều người để ý"
    Mà chẳng ai lại cấu hình PHP trên IIS cả. Bác có thể scan ra một website chạy trên webserver là IIS, nhưng rất có thể nó là Apache đã được admin của server đó "cải trang".
    Vả lại những ứng dụng lớn thường là sự kết hợp của nhiều công nghệ cho nên nếu lấy những ứng dụng lớn để so sánh thì cũng chưa hẳn là đúng (dù sao PHP vẫn góp mặt trong những ứng dụng bự nhất).

    PHP vẫn được sử dụng nhiều nhất, rộng rãi và được đón nhận nhiều nhất.
    Từ bình dân (thị trường không có chỗ cho .NET hay Java) cho đến cao cấp (ông lớn cũng dùng) đều có PHP góp mặt.

    Bên cạnh đó, ngôn ngữ web đang phát triển rất mạnh gần đây là Ruby với RoRs cũng là Open Source.



    Java và .NET là một công nghệ làm được nhiều thứ, nhưng không phải là học thứ này thì làm được luôn thứ kia! Như thế thì chết con người ta con gì +_+

    Bác sai mười mươi rồi! Việc lựa chọn công nghệ tùy thuộc vào nhiều vấn đề chứ không phải chỉ là do nó mạnh hay không. Còn tùy thuộc vào nền kinh tế mà bác đang hoạt động trong đó, tình hình nền CNTT...
    Nó mạnh chưa chắc nó đã mang lại lợi ích lớn nhất.
    Xin lỗi, nếu chúng ta có thói quen tôn trọng bản quyền ngay từ đầu thì sẽ có rất ít người VN học C#. Tại sao thì bác dư sức hiểu.

    Nếu ai cũng có suy nghĩ như bác thì phong trào Open Source và Free Software đã không ra đời.
     
  10. Dark_XIII

    Dark_XIII T.E.T.Я.I.S

    Tham gia ngày:
    17/4/03
    Bài viết:
    688
    Tôi nghĩ sau này mình đi làm thì boss sẽ phải lo chuyện bản quyền cho mình chứ? Còn học thì khỏi lo, dùng thoải mái. Chính sách của các hãng là không bắt vi phạm bản quyền nếu dùng cho mục đích học tập (luật bất thành văn) để phổ biến sản phẩm của mình. Hơn nữa lập trình .NET bây giờ có thể dùng đồ free hoàn toàn. VS 2005 Express, SQL 2005 Express. Ops vẫn còn con win lậu nhưng ai chả sài win lậu :D

    Vẫn còn nhớ giám đốc điều hành MS, Steve Ballmer nói một câu là: "chừng nào còn phần mềm đạo thì chúng tôi vẫn mong phần mềm bị đạo là của Microsoft".

    Dùng Java và .NET phát triển web và application hầu như Y HỆT NHAU, SỰ KHÁC BIỆT LÀ CỰC ÍT. Tôi có thể viết một class DAL (data access layer) dùng cho application, sau đó mang class đó lên web và sử dụng nó mà không phải sửa một chút nào.

    Đó là với java còn .NET thì còn khác biệt ít hơn nữa. Có thể nói trong .NET lập trình application và web application hoàn toàn y hệt nhau chỉ có điều giao thức http là stateless nên biến không lưu trữ lại được (vẫn có thể dùng viewstate để lưu giữ).
     
  11. hungquang1989

    hungquang1989 Youtube Master Race

    Tham gia ngày:
    10/5/06
    Bài viết:
    9
    Nơi ở:
    Thần Địa
    này này ai biết chỗ down visual c chỉ mình với ( hoặc chương trình khác cũng được càng cơ bản càng tốt )
     
  12. ipridian_elf

    ipridian_elf Voyage perdu

    Tham gia ngày:
    19/3/03
    Bài viết:
    5,678
    Nơi ở:
    Earth
    Hmm.. đúng là như vậy, ie chỉ hình dung được là compiler sau khi preprocess chuyển từ ngôn ngữ C/C++ ra assembly rồi link và tạo file executable, nhưng chưa hiểu rõ lắm về quá trình chuyển đổi ra assembly.

    Vậy theo Dark thì C# mạnh vì nó cho phép lập trình viên đỡ tốn thời gian hơn, và nó manage nhiều cái mà lập trình viên đáng lẽ ra không nên bận tâm tới, lại còn có thể cho phép prgmmer viết "unsafe" code nếu muốn ?

    Có vẻ như C# là một lựa chọn đúng ... dù sao thì số người sử dụng platform có thể chạy được chương trình code bằng C# cũng nhiều hơn số người không sử dụng ::) .. Nhưng nếu nói 1 cách toàn vẹn hơn thì Java cũng hỗ trợ OOP như C#, cũng có nhiều đặc tính riêng như C#, nhưng lại cho phép code được chạy trên nhiều platform hơn ... chẳng phải đó là 1 bonus sao ? Vậy tại sao C# mà lại không phải là Java ?

    IIS có quá nhiều lỗ hổng và sai sót trong ứng dụng và thật sự không thích hợp 1 chút nào cho server. Các công ty lớn và các web site có tầm influence cao rất ít khi có cái nào sử dụng IIS. Vì vậy nếu nhìn số liệu mà không tính tới từng ví dụ cụ thể thì cũng có nhiều nghịch lý.

    -

    Về việc PHP có phải là một ngôn ngữ được/nên được sử dụng hay không, thì có lẽ nhìn vào các web-app phát hành ra cho user/webmaster không thôi cũng chưa đủ.
    Tuy nhiên ip vẫn nghĩ rằng Perl/PHP/Python là tổ hợp 3P thích hợp nhất cho 1 web server.
     
  13. Dark_XIII

    Dark_XIII T.E.T.Я.I.S

    Tham gia ngày:
    17/4/03
    Bài viết:
    688
    Java và C# đều không được dịch thẳng ra mã máy ngay mà qua một ngôn ngữ trung gian. Với Java là bytecode còn C# là IL vì thế giống như Java, C# hoàn toàn có thể chạy được trên Linux nếu MS muốn.

    Hướng đối tượng của Java rất tốt rồi nhưng perfomace của Java kém, thỉnh thoảng hay bị leak memory. Java không can thiệp sâu vào hệ thống như C#. Hơn nữa môi trường phát triển của C# tốt hơn. Có thể nói dùng mình thích C# vì mình dùng windows, C# làm được nhiều việc trên đó hơn Java. Mà thời gian ngồi code lại ngắn hơn. Nếu ai thích không thích môi trường windows thì rõ ràng Java và Python tốt hơn C# chạy trên mono nhiều.
     
  14. ZeroCrazy

    ZeroCrazy T.E.T.Я.I.S

    Tham gia ngày:
    8/4/06
    Bài viết:
    516
    Nơi ở:
    hỏi làm chi ?
    Tui thấy C# có cú pháp hoàn chỉnh hơn java, dân java nhiều đứa còn không biết đến con trỏ, tham chiếu hay đối tượng hàm ::( .

    C# cũng chạy trên nhiều platform vậy, thậm chí còn chạy được trên Xbox360, chỉ cần hệ điều hành window là ok, vài năm nữa thì điện thoại di động cũng sài win xp thôi.

    Java giống .Net chỗ nào, làm web bằng ASP.Net nhanh gấp mấy lần mà giao diện đẹp mắt hơn nhiều. Chưa kể 1 số công nghệ hot như Atlas, Indigo.

    Tóm lại ai chưa học thì chê, một khi đã học C# thì không ai còn muốn quay lại học cái mấy cái kia nữa đâu.
     
  15. LinhMoi22

    LinhMoi22 The Warrior of Light

    Tham gia ngày:
    6/7/05
    Bài viết:
    2,085
    Nơi ở:
    hellcity
    vậy còn C++ thì sao nó cũng hoàn chỉnh mà về tui chỉ là dân newbie đang nghiên cứu về C++ mà thấy nó cũng tiện lắm nói chung mỗi cái đều có ưu điểm riêng
     
  16. Hoang_Nguyen

    Hoang_Nguyen Youtube Master Race

    Tham gia ngày:
    1/6/06
    Bài viết:
    90
    hiện em đang có 1 bài cần phải thực hiện là" viết chương trình cài đặt bảng băm và các thao tác của nó theo phương pháp dò tuyến tính".mà cái này em chưa hiểu kiểu gì cả.bác nào có thể chỉ giáo cho em đc ko.mà đòi hỏi phải viết cả giao diện nữa chứ khó quá.bác giỏi C chỉ gium em với
     
  17. ipridian_elf

    ipridian_elf Voyage perdu

    Tham gia ngày:
    19/3/03
    Bài viết:
    5,678
    Nơi ở:
    Earth
    Vấn đề là họ không muốn .. hoặc nếu muốn thì chắc sẽ bắt trả tiền và release chỉ nguyên binary framework .. .. bắt trả tiền không phải là lớn lao, vì đầu tư cũng không phải khó, nhưng không release source thì không thích hợp với cái chaos của Linux.

    -

    Thấy chung quy lại ra vấn đề MS <-> FOSS .. không biết bao giờ mới có 1 cái Exokernel OS đây ._.

    Nhiều người nói rằng Java đã chiếm ngôi C++ trong làng OOP ..

    Bạn đang học đến đâu trong C rồi ? Mình không hiểu được "bảng băm" với "phương pháp dò tuyến tính" là gì ..
     
  18. Payable

    Payable Youtube Master Race

    Tham gia ngày:
    24/8/06
    Bài viết:
    11
    Rõ ràng là mô hình OOP của Java và C# rõ ràng, rành mạch, sạch đẹp hơn hẳn C++, bác Managed C++ càng rối hơn +____+
     
  19. Dark_XIII

    Dark_XIII T.E.T.Я.I.S

    Tham gia ngày:
    17/4/03
    Bài viết:
    688
    Bảng băm (nghĩ mãi mới ra nó là cái gì -_-) trong Java hay C# gọi là Hashtable. Nó gần như 1 kiểu lưu trữ dữ liệu theo 1 cặp key-value. Truyền key vào để lấy value tương ứng và người lại.

    Linear probing hình như là phương pháp dò tuyến tính hay sao đó. Không biết mấy ông ở vn dịch kiểu gì nhưng Hashtable có 2 phương pháp lookup là linear probling và chainning.
     
  20. hungquang1989

    hungquang1989 Youtube Master Race

    Tham gia ngày:
    10/5/06
    Bài viết:
    9
    Nơi ở:
    Thần Địa
    hic hic sao ko ai chỉ em chỗ down visual c hết vậy c++ cũng được basic cũng chơi có là được :((
     

Chia sẻ trang này