Read-only archive. Login and posting are unavailable.

PDA

View Full Version : Ngôn ngữ lập trình nào sẽ lên ngôi ?


FunnyKids
02-08-2010, 08:49
Thỉnh thoảng dạo VOZ rất hay gặp các topic kiểu "muốn thành lập trình viên, em nên học ngôn ngữ nào đây ? ", và các topic kiểu đó thường khá nhiều reply, nhưng đa phần là cụt ngủn, ko giải thích được tại sao lại khuyên như vậy, và thường sẽ khiến người hỏi không những không giải quyết được vấn đề của mình, mà còn hoang mang hơn.

Thường thì các topic như vậy sẽ có 2 kiểu trả lời, các bạn mới học lập trình thì sẽ có comment kiểu "C++", "Java", "PHP" etc.. đơn giản vì các bạn nghĩ các ngôn ngữ đó "hot" hoặc chỉ vì đấy là ngôn ngữ duy nhất các bạn biết. Các bác già hơn thì thường hay trả lời là "Pascal, Perl, Python" vì các bác biết đấy là những ngôn ngữ dễ làm quen, hoặc trả lời theo kiểu chung chung "học gì trả được, vì sau này sẽ phải tự học hết" cũng đúng nốt, vì chả có bác nào ra đời kiếm ăn được bằng cái nghề lập trình viên mà không quen thuộc với ít nhất là 2,3 ngôn ngữ trở lên cả.

Cách đây cũng khá lâu rồi em đọc một bài báo khá hay có cái tiêu đề là "đừng học C++ nếu bạn muốn kiếm việc làm". Trí nhớ em kém nên ko nhớ tên tác giả, nhưng đấy là một người viết rất nhiều sách về hướng dẫn học C++ từ căn bản tới nâng cao (tác giả nước ngoài). Theo như tác giả bài báo thì C++ mặc dù là ngôn ngữ được biết đến là một ngôn ngữ rất mạnh, và cho performance tốt. Nhưng vấn đề của nó là thời gian để viết code rất lâu nếu so sánh với các ngôn ngữ khác. Trong khi đó các công ti bây giờ họ cạnh tranh với nhau từng giây một, và đánh đổi giữa việc có một phần mềm sớm hơn 1/2 thời gian dự định và performance chậm hơn 10% so với viết bằng C++ là một lựa chọn thông minh.

Và bài báo đấy không phải chỉ là một giả thuyết của một ông già dở hơi, mà nó được chứng minh bằng thực tế. Trang web Tiobe rất nổi tiếng về việc làm survey thị trường tuyển dụng CNTT. Họ thu thập thông tin bằng cách theo dõi các mục tuyển dụng, để xem xem ngôn ngữ nào được tuyển nhiều nhất, và mức lương bao nhiêu.

Và theo đó hiện tại ngôn ngữ lập trình phổ biến nhất đang là :

1 1 Java 17.994% -1.53% A
2 2 C 17.866% +0.65% A
3 3 C++ 9.658% -0.84% A
4 4 PHP 9.180% -0.21% A
5 5 (Visual) Basic 5.413% -3.07% A
6 7 C# 4.986% +0.54% A
7 6 Python 4.223% -0.27% A
8 8 Perl 3.427% -0.60% A
9 19 Objective-C 3.150% +2.54% A

http://www.tiobe.com/content/paperinfo/tpci/images/tpci_trends.png
Nguồn http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Và đây là tham khảo về mức lương tuyển dụng của từng ngôn ngữ :
Language Developer Salary Senior Developer Junior Developer
C++......... $85K................ $90K................. $52K
Python..... $84K
C#.... ...... $81K............... $91K................ $57K
C............. $80K............... $88K
UI............ $79K............... $91K —
Java......... $79K............... $84K................ $54K
LAMP........ $75K............... $78K................ $44K
Ajax......... $78K — —
Cobol........$77K................. $77K —
SQL......... $76K................ $79K................ $66K
Perl........... $76K................ $75K —
Ruby......... $75K.................


Nhưng đấy là thế giới, còn Việt Nam thì sao ? và mọi người nhìn nhận xu hướng của CNTT ở Việt Nam trong 5, 10 năm nữa sẽ như thế nào ?

Em hy vọng mọi người thử chia sẻ suy nghĩ của mình về ngôn ngữ mà mình thích dựa trên các điểm như :
+) Ngôn ngữ đấy có nên giới thiệu cho người mới bắt đầu học lập trình không ? và tại sao ?
+) Với senior rồi, thì liệu nó có còn hữu ích ko ? và theo bạn trong thời gian tới ngôn ngữ ấy sẽ được ứng dụng trong mảng nào, và mức lương như thế nào theo bạn là hợp lý cho người mới vào nghề _ người có 2-3 năm kinh nghiệm (ko nói tới vụ lên sếp hay cán bộ nhé vì đấy là lương management rồi, chỉ nói tới "thợ lành nghề" thôi).

Vaanres
02-08-2010, 08:57
Java với C# , cái nào hay hơn ?

P.E Onimusha
02-08-2010, 09:44
Vote C# :)

cuongng1987
02-08-2010, 09:51
Language Developer Salary Senior Developer Junior Developer
C++......... $85K................ $90K................. $52K
Python..... $84K
C#.... ...... $81K............... $91K................ $57K
C............. $80K............... $88K
UI............ $79K............... $91K —
Java......... $79K............... $84K................ $54K
LAMP........ $75K............... $78K................ $44K
Ajax......... $78K — —
Cobol........$77K................. $77K —
SQL......... $76K................ $79K................ $66K
Perl........... $76K................ $75K —
Ruby......... $75K.................
Đang theo PL/SQL với C++ thấy cái bảng này cũng mát dạ nhở :D

vnn12699621
02-08-2010, 09:59
Vote cho Objective-C, mình nghĩ lập trình cho mobile sẽ lên ngôi :D

hidingdragonx
02-08-2010, 10:13
Đang code C# nên vote C#.
Có điều đầu tư ban đầu cho mấy anh Microsoft thì hơi bị phê.
Java thì Free nhiều hơn :shame:.

Mà lương C# cũng thuộc hàng top đấy nhỉ :sexy:

Vimvq1987
02-08-2010, 10:27
nói chung còn lăn tăn về ngôn ngữ này ngôn ngữ kia chứng tỏ còn mới tập tễnh vào nghề

LTV chuyên nghiệp thì 1st rule là ngôn ngữ nào cũng phải chiến được, on demand và satisfied salary thôi

itir5
02-08-2010, 10:38
Python..:D

AsF|Hayabusa
02-08-2010, 11:43
nói chung còn lăn tăn về ngôn ngữ này ngôn ngữ kia chứng tỏ còn mới tập tễnh vào nghề

LTV chuyên nghiệp thì 1st rule là ngôn ngữ nào cũng phải chiến được, on demand và satisfied salary thôi

cái này chuẩn này :)

ngôn ngữ, chỉ là cách thể hiện mà thôi

kenpro2298
02-08-2010, 11:52
Java sẽ lên ngôi

josephdo
02-08-2010, 12:02
Mình đang theo hướng C/C++ và Java :)

kensaii
02-08-2010, 12:07
vote 1 vé cho Fortran, vì sao đừng hỏi :beauty:

thaitujim
02-08-2010, 12:19
học chỉ sợ mỗi ở lại lớp

geany
02-08-2010, 12:25
Sao cứ phải xoắn ngôn ngữ này ngôn ngữ kia nhẩy ? :tire:

Ngôn ngữ nó chỉ là tập cú pháp, từ vựng để diễn đạt câu lệnh.
Vd như Java, nó cũng chỉ là một tập cú pháp diễn đạt câu lệnh. Ngoài Java ra có thể dùng một đống ngôn ngữ khác trên nền JVM như Scalar, Groovy, Jython, JRuby... Tất cả đều được JIT Compiler dịch ra bytecode chạy trên JVM.

Tương tự với C#, chỉ là một tập cú pháp không hơn không kém. Ngoài C# có thể dùng IronPython, IronRuby... Tất cả đều được dịch ra CLI.

gamer1509
02-08-2010, 12:42
vote for c++

duongv3
02-08-2010, 13:16
nói chung còn lăn tăn về ngôn ngữ này ngôn ngữ kia chứng tỏ còn mới tập tễnh vào nghề

LTV chuyên nghiệp thì 1st rule là ngôn ngữ nào cũng phải chiến được, on demand và satisfied salary thôi

Nên xác định ban đầu 1 trường phái (Javas or .NET or...) rồi cày cuốc để trảo thành pro. Còn hơn là dàn trải rồi chẳng đâu vào đâu

Vimvq1987
02-08-2010, 13:21
Nên xác định ban đầu 1 trường phái (Javas or .NET or...) rồi cày cuốc để trảo thành pro. Còn hơn là dàn trải rồi chẳng đâu vào đâu

trường phái nên hiểu theo nghĩa nào vậy bạn???

bây giờ bạn master một ngôn ngữ như Python hay PHP chẳng hạn thì chẳng sợ đek gì bố con thằng nào đâu

ban đầu việc chọn 1 ngôn ngữ dễ học, dễ dùng để nhanh chóng tiếp cận là chuyện nên làm, nhưng đó ko phải là cái đích cần vươn tới.

no2_nuker
02-08-2010, 13:23
jav .
ko đọc hết cmt:shot:

malnos
02-08-2010, 13:24
C# cho nhanh :D

phu7o7cs
02-08-2010, 13:25
Sao cứ phải xoắn ngôn ngữ này ngôn ngữ kia nhẩy ? :tire:

Ngôn ngữ nó chỉ là tập cú pháp, từ vựng để diễn đạt câu lệnh.
Vd như Java, nó cũng chỉ là một tập cú pháp diễn đạt câu lệnh. Ngoài Java ra có thể dùng một đống ngôn ngữ khác trên nền JVM như Scalar, Groovy, Jython, JRuby... Tất cả đều được JIT Compiler dịch ra bytecode chạy trên JVM.

Tương tự với C#, chỉ là một tập cú pháp không hơn không kém. Ngoài C# có thể dùng IronPython, IronRuby... Tất cả đều được dịch ra CLI.

Ngôn ngữ cũng có điểm quan trọng của nó chứ!
Nhiều người dùng thì có gì thắc mắc cũng khỏe.
Mình dùng Delphi (hàng hiếm ở Việt Nam hiện tại :badsmell:)

.NET và JRE là FRAME WORK, ko phải là ngôn ngữ lập trình...

Vimvq1987
02-08-2010, 13:29
Ngôn ngữ cũng có điểm quan trọng của nó chứ!
Nhiều người dùng thì có gì thắc mắc cũng khỏe.
Mình dùng Delphi (hàng hiếm ở Việt Nam hiện tại :badsmell:)

.NET và JRE là FRAME WORK, ko phải là ngôn ngữ lập trình...

JRE đek phải là Framework =))

_sharp_
02-08-2010, 13:40
jav .
ko đọc hết cmt:shot:

JAV chỉ có các idol mới học thôi :stick:

dungpham304
02-08-2010, 13:44
tớ đag code C++ :D

†h€†ru†h
02-08-2010, 13:57
đang từ Java sang JAV :shot:
các bác bị nhiễm nặng rồi, cai đi
/tý OT: vote cho C# và Java

phu7o7cs
02-08-2010, 13:58
JRE đek phải là Framework =))

Nhầm, môi trường thực thi :sure:

FunnyKids
02-08-2010, 14:13
Sao cứ phải xoắn ngôn ngữ này ngôn ngữ kia nhẩy ? :tire:

Ngôn ngữ nó chỉ là tập cú pháp, từ vựng để diễn đạt câu lệnh.
Vd như Java, nó cũng chỉ là một tập cú pháp diễn đạt câu lệnh. Ngoài Java ra có thể dùng một đống ngôn ngữ khác trên nền JVM như Scalar, Groovy, Jython, JRuby... Tất cả đều được JIT Compiler dịch ra bytecode chạy trên JVM.

Tương tự với C#, chỉ là một tập cú pháp không hơn không kém. Ngoài C# có thể dùng IronPython, IronRuby... Tất cả đều được dịch ra CLI.

Cách đây x năm khi em mới ra trường, khi đấy em nghĩ giống hệt bác, vì thực sự em nghĩ giống học toán thôi, học toán tiếng anh hay học toán tiếng việt thì quan trọng nhất vẫn là toán học, chứ ngôn ngữ chỉ là biểu hiện. Khi đấy em đi xin việc, em trả lời giống hệt bác, khi ấy em nghĩ nó là điểm cộng, và em được nhận.

Sau x năm làm việc, giờ cũng có thằng để gõ đầu, quan niệm của em về tầm quan trọng của thuật toán vẫn ko thay đổi, nhưng em không còn nghĩ ngôn ngữ nào cũng giống nhau. Vì vẫn giống như làm toán, hai thằng giỏi toán giống nhau khi nghiên cứu cùng một vấn đề có thể cho kết quả giống nhau (giả dụ thế), nhưng đứa giỏi tiếng anh hơn sẽ viết Thesis cho vấn đề đấy hay và dễ hiểu hơn :).

Trên lý thuyết thì cái bác nói là đúng, nhưng ở thực tế để đào tạo ra một thằng thực sự chuyên sâu về một ngôn ngữ nào đó thì mất rất nhiều thời gian, và việc có một thằng được gọi là "master" của hơn một ngôn ngữ là rất khó, và em chưa thấy thằng nào được gọi là thế cả.

crông giút
02-08-2010, 14:17
Thỉnh thoảng dạo VOZ rất hay gặp các topic kiểu "muốn thành lập trình viên, em nên học ngôn ngữ nào đây ? ", và các topic kiểu đó thường khá nhiều reply, nhưng đa phần là cụt ngủn, ko giải thích được tại sao lại khuyên như vậy, và thường sẽ khiến người hỏi không những không giải quyết được vấn đề của mình, mà còn hoang mang hơn.

Thường thì các topic như vậy sẽ có 2 kiểu trả lời, các bạn mới học lập trình thì sẽ có comment kiểu "C++", "Java", "PHP" etc.. đơn giản vì các bạn nghĩ các ngôn ngữ đó "hot" hoặc chỉ vì đấy là ngôn ngữ duy nhất các bạn biết. Các bác già hơn thì thường hay trả lời là "Pascal, Perl, Python" vì các bác biết đấy là những ngôn ngữ dễ làm quen, hoặc trả lời theo kiểu chung chung "học gì trả được, vì sau này sẽ phải tự học hết" cũng đúng nốt, vì chả có bác nào ra đời kiếm ăn được bằng cái nghề lập trình viên mà không quen thuộc với ít nhất là 2,3 ngôn ngữ trở lên cả.

Cách đây cũng khá lâu rồi em đọc một bài báo khá hay có cái tiêu đề là "đừng học C++ nếu bạn muốn kiếm việc làm". Trí nhớ em kém nên ko nhớ tên tác giả, nhưng đấy là một người viết rất nhiều sách về hướng dẫn học C++ từ căn bản tới nâng cao (tác giả nước ngoài). Theo như tác giả bài báo thì C++ mặc dù là ngôn ngữ được biết đến là một ngôn ngữ rất mạnh, và cho performance tốt. Nhưng vấn đề của nó là thời gian để viết code rất lâu nếu so sánh với các ngôn ngữ khác. Trong khi đó các công ti bây giờ họ cạnh tranh với nhau từng giây một, và đánh đổi giữa việc có một phần mềm sớm hơn 1/2 thời gian dự định và performance chậm hơn 10% so với viết bằng C++ là một lựa chọn thông minh.

Và bài báo đấy không phải chỉ là một giả thuyết của một ông già dở hơi, mà nó được chứng minh bằng thực tế. Trang web Tiobe rất nổi tiếng về việc làm survey thị trường tuyển dụng CNTT. Họ thu thập thông tin bằng cách theo dõi các mục tuyển dụng, để xem xem ngôn ngữ nào được tuyển nhiều nhất, và mức lương bao nhiêu.

Và theo đó hiện tại ngôn ngữ lập trình phổ biến nhất đang là :

1 1 Java 17.994% -1.53% A
2 2 C 17.866% +0.65% A
3 3 C++ 9.658% -0.84% A
4 4 PHP 9.180% -0.21% A
5 5 (Visual) Basic 5.413% -3.07% A
6 7 C# 4.986% +0.54% A
7 6 Python 4.223% -0.27% A
8 8 Perl 3.427% -0.60% A
9 19 Objective-C 3.150% +2.54% A

http://www.tiobe.com/content/paperinfo/tpci/images/tpci_trends.png
Nguồn http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Và đây là tham khảo về mức lương tuyển dụng của từng ngôn ngữ :
Language Developer Salary Senior Developer Junior Developer
C++......... $85K................ $90K................. $52K
Python..... $84K
C#.... ...... $81K............... $91K................ $57K
C............. $80K............... $88K
UI............ $79K............... $91K —
Java......... $79K............... $84K................ $54K
LAMP........ $75K............... $78K................ $44K
Ajax......... $78K — —
Cobol........$77K................. $77K —
SQL......... $76K................ $79K................ $66K
Perl........... $76K................ $75K —
Ruby......... $75K.................


Nhưng đấy là thế giới, còn Việt Nam thì sao ? và mọi người nhìn nhận xu hướng của CNTT ở Việt Nam trong 5, 10 năm nữa sẽ như thế nào ?

Em hy vọng mọi người thử chia sẻ suy nghĩ của mình về ngôn ngữ mà mình thích dựa trên các điểm như :
+) Ngôn ngữ đấy có nên giới thiệu cho người mới bắt đầu học lập trình không ? và tại sao ?
+) Với senior rồi, thì liệu nó có còn hữu ích ko ? và theo bạn trong thời gian tới ngôn ngữ ấy sẽ được ứng dụng trong mảng nào, và mức lương như thế nào theo bạn là hợp lý cho người mới vào nghề _ người có 2-3 năm kinh nghiệm (ko nói tới vụ lên sếp hay cán bộ nhé vì đấy là lương management rồi, chỉ nói tới "thợ lành nghề" thôi).


ôi lạy giời giờ em mới biết LAMP là 1 ngôn ngữ lập trình(bác học ở đâu chỉ em với) SQL là cơ cở dữ liệu ôi bác giỏi quá bác cho nó là ngôn ngữ lập trình hic hic cho em theo với

ZeroZero
02-08-2010, 14:20
Theo mình thì Python sẽ lên ngôi, ngoài ra thì các ngôn ngữ như assembly sẽ tồn tại lâu dài.

VTT
02-08-2010, 14:22
Mình dùng Delphi (hàng hiếm ở Việt Nam hiện tại :badsmell:)


Bạn làm Delphi đã lâu chưa ? Mình đang thử làm Web Server trên Delphi2010 mà khó quá bạn giúp mình môt ứng dụng ví dụ cái

ashtonvn
02-08-2010, 14:24
mình thấy HTML5 và JavaScript mới là 2 ngôn ngữ thống trị tương lai.

huukhai
02-08-2010, 14:27
Vote D# :D :sexy::sexy::sexy: Dê Sharp

Vimvq1987
02-08-2010, 14:28
Cách đây x năm khi em mới ra trường, khi đấy em nghĩ giống hệt bác, vì thực sự em nghĩ giống học toán thôi, học toán tiếng anh hay học toán tiếng việt thì quan trọng nhất vẫn là toán học, chứ ngôn ngữ chỉ là biểu hiện. Khi đấy em đi xin việc, em trả lời giống hệt bác, khi ấy em nghĩ nó là điểm cộng, và em được nhận.

Sau x năm làm việc, giờ cũng có thằng để gõ đầu, quan niệm của em về tầm quan trọng của thuật toán vẫn ko thay đổi, nhưng em không còn nghĩ ngôn ngữ nào cũng giống nhau. Vì vẫn giống như làm toán, hai thằng giỏi toán giống nhau khi nghiên cứu cùng một vấn đề có thể cho kết quả giống nhau (giả dụ thế), nhưng đứa giỏi tiếng anh hơn sẽ viết Thesis cho vấn đề đấy hay và dễ hiểu hơn :).

Trên lý thuyết thì cái bác nói là đúng, nhưng ở thực tế để đào tạo ra một thằng thực sự chuyên sâu về một ngôn ngữ nào đó thì mất rất nhiều thời gian, và việc có một thằng được gọi là "master" của hơn một ngôn ngữ là rất khó, và em chưa thấy thằng nào được gọi là thế cả.

bạn nói đúng (bạn chắc hơn tuổi mình nhưng tạm gọi là bạn cho dễ nói chuyện), việc master 1 language là rất cần thiết nhưng cái quan trọng phải nhớ là chúng ta đi làm thuê, ko phải lúc nào cũng được chọn ngôn ngữ mà mình thích. điều quan trọng là flexible. Đọc Spec của C# hơn 1000 trang chắc khoảng 1 tháng là xong, nhưng đó mới là về ngôn ngữ, còn lại về thư viện, framework này nọ nữa. thế nên học lập trình mới mất 10 năm, chứ học 1 ngôn ngữ thì nhanh hơn nhiều

mình có biết một vài đồng chí master 2-3 ngôn ngữ, và ở cấp độ world-class luôn chứ ko phải là vớ vẩn đâu :D

FunnyKids
02-08-2010, 14:29
ôi lạy giời giờ em mới biết LAMP là 1 ngôn ngữ lập trình(bác học ở đâu chỉ em với) SQL là cơ cở dữ liệu ôi bác giỏi quá bác cho nó là ngôn ngữ lập trình hic hic cho em theo với

Cái bảng đấy ko phải của em :) còn việc định nghĩa thế nào là một ngôn ngữ lập trình thì tùy vào cách hiểu của mỗi người và việc bác am hiểu sâu tới nó thế nào nữa, em ko comment. Bảng đấy được lập trên cơ sở là các công ti tuyển nhân viên chuyên sâu về mảng nào của CNTT (còn bác gọi nó là ngôn ngữ lập trình hay gì cũng được).

cuongng1987
02-08-2010, 14:34
ôi lạy giời giờ em mới biết LAMP là 1 ngôn ngữ lập trình(bác học ở đâu chỉ em với) SQL là cơ cở dữ liệu ôi bác giỏi quá bác cho nó là ngôn ngữ lập trình hic hic cho em theo với

Có biết SQL là viết tắt của từ gì ko mà nói ko phải là ngôn ngữ. Ngoài ra còn có PL/SQL là phần mở rộng của SQL thì biết nó dùng để làm cái gì ko.

FunnyKids
02-08-2010, 14:38
bạn nói đúng (bạn chắc hơn tuổi mình nhưng tạm gọi là bạn cho dễ nói chuyện), việc master 1 language là rất cần thiết nhưng cái quan trọng phải nhớ là chúng ta đi làm thuê, ko phải lúc nào cũng được chọn ngôn ngữ mà mình thích. điều quan trọng là flexible. Đọc Spec của C# hơn 1000 trang chắc khoảng 1 tháng là xong, nhưng đó mới là về ngôn ngữ, còn lại về thư viện, framework này nọ nữa. thế nên học lập trình mới mất 10 năm, chứ học 1 ngôn ngữ thì nhanh hơn nhiều

mình có biết một vài đồng chí master 2-3 ngôn ngữ, và ở cấp độ world-class luôn chứ ko phải là vớ vẩn đâu :D

À, đứng trên góc độ của người đi xin việc thì đúng là thế rồi bác :D CV của em lúc nào em chả ghi là em expert đủ loại ngôn ngữ, và người ta bảo em làm gì em chả làm được (đấy là em bảo người ta thế :D). Nhưng từ góc độ của công ti mà nói, thì tuyển một ông kinh nghiệm đầy mình về Java về làm C++ là một điều không nên.

Không phải vì ông đang làm Java ko làm nổi C++, mà sẽ mất thời gian cho ông ý làm quen lại và thời gian là tiền mà :). Hơn nữa đặc biệt là trong việc debug phần mềm thì việc master một ngôn ngữ rất quan trọng.

Team của em hơi "geek" nên thỉnh thoảng rất hay ngồi quiz nhau. Em ko chuyên về C++, nhưng em nhớ có một bài quiz rất đơn giản về một đoạn code (tẹo em tìm rồi post lên xem) mà có hơn 10 khả năng cho kết quả khác nhau. Điều này không chỉ sảy ra riêng với C++ mà với cả các ngôn ngữ khác nữa, nhưng chỉ người thực sự am hiểu rất sâu về ngôn ngữ đấy mới hiểu và debug được lỗi thôi. Và cả team em ko đứa nào cho đầy đủ hết được kết quả của câu đấy, mà mỗi đứa cũng chỉ tìm được 1,2 khả năng khác nhau thôi.

tibock
02-08-2010, 15:21
Có biết SQL là viết tắt của từ gì ko mà nói ko phải là ngôn ngữ. Ngoài ra còn có PL/SQL là phần mở rộng của SQL thì biết nó dùng để làm cái gì ko.

Tham khảo ở đây nè bác

http://vi.wikipedia.org/wiki/SQL

tcpip
02-08-2010, 16:29
Mình nghĩ thằng nào giỏi lập trình C cho thiết bị nhúng (microcontroller, FPGA...) sẽ là thằng có lương cao nhất.

FunnyKids
02-08-2010, 16:37
mình thấy HTML5 và JavaScript mới là 2 ngôn ngữ thống trị tương lai.

Java script thì em nghĩ sẽ đi xuống, vì có khá nhiều script language thay thế nó và dễ viết hơn.

HTML5 thì em cũng nghĩ giống bác, tương lai của nó khá sáng lạng, gọi là thống trị thì ko hẳn, nhưng sẽ là một trong những ngôn ngữ đắt giá trong tương lai gần, nhất là với support của các bạn Apple nữa, hy vọng nó sẽ tạo ra một trào lưu mới.

tunglam_pc
02-08-2010, 16:41
Java script thì em nghĩ sẽ đi xuống, vì có khá nhiều script language thay thế nó và dễ viết hơn.

HTML5 thì em cũng nghĩ giống bác, tương lai của nó khá sáng lạng, gọi là thống trị thì ko hẳn, nhưng sẽ là một trong những ngôn ngữ đắt giá trong tương lai gần, nhất là với support của các bạn Apple nữa, hy vọng nó sẽ tạo ra một trào lưu mới.

HTML5 , giống như là bản kế của HTML4 đang sử dụng , với việc thiết kế trang web tương lai thì dĩ nhiên phải theo nó.
Giống như là bạn đang dùng Word 2003 , nhưng giờ nta dùng Word 2007/2010 với dạng docx thì bắt buộc bạn phải nâng cấp để sử dụng.
Còn JavaScript thì nó đi xuống hơi khó , vì nó là ngôi ngữ tạo nên công nghệ Ajax đang rất hot hiện nay.

geany
02-08-2010, 16:48
Với những cái khác thì không nói nhưng với những platform kiểu như Java và .NET thì ngôn ngữ thực sự không quan trọng. Vì tất cả đều ra bytecode hay CIL hết. Chẳng phải tự nhiên thằng Sun/Oracle hay Microsoft nó cho phép bổ sung một loạt language khác vào platform của nó như Python, Ruby, Perl... Tất cả chỉ nhằm lôi kéo developer quen thuộc với ngôn ngữ đó sử dụng platform của mình.

Các bạn nên phân biệt việc học một ngôn ngữ với việc học và làm chủ thư viện đi kèm với ngôn ngữ đó.

Với việc đa số là code thuê như ở VN thì cũng chỉ là công nhân, thiên lôi chỉ đâu đánh đó. Còn với những người đang làm việc ở mức phân tích thiết kế thì hãy lựa chọn công nghệ một cách thông minh !

Lựa chọn cái gì ? Lựa chọn về giá cả, hiệu năng, chi phí bảo trì, khả năng hỗ trợ... Chẳng ai làm một cái web cỏn con mà đi dùng J2EE (không khác nào giết gà bằng dao mổ trâu), ít ai tự làm khó mình khi xây dựng hệ thống xử lý text mà không dùng Perl, Python... :)

nguyenthanhtrung_229
02-08-2010, 17:13
cứ học hết
cái nào lên ngôi cũng có cơm

FunnyKids
02-08-2010, 17:25
Với những cái khác thì không nói nhưng với những platform kiểu như Java và .NET thì ngôn ngữ thực sự không quan trọng. Vì tất cả đều ra bytecode hay CIL hết. Chẳng phải tự nhiên thằng Sun/Oracle hay Microsoft nó cho phép bổ sung một loạt language khác vào platform của nó như Python, Ruby, Perl... Tất cả chỉ nhằm lôi kéo developer quen thuộc với ngôn ngữ đó sử dụng platform của mình.

Các bạn nên phân biệt việc học một ngôn ngữ với việc học và làm chủ thư viện đi kèm với ngôn ngữ đó.

Với việc đa số là code thuê như ở VN thì cũng chỉ là công nhân, thiên lôi chỉ đâu đánh đó. Còn với những người đang làm việc ở mức phân tích thiết kế thì hãy lựa chọn công nghệ một cách thông minh !

Lựa chọn cái gì ? Lựa chọn về giá cả, hiệu năng, chi phí bảo trì, khả năng hỗ trợ... Chẳng ai làm một cái web cỏn con mà đi dùng J2EE (không khác nào giết gà bằng dao mổ trâu), ít ai tự làm khó mình khi xây dựng hệ thống xử lý text mà không dùng Perl, Python... :)

Em thích cách nghĩ của bác. Bắt đầu một project bao giờ cũng nên xem xem sẽ code nó trên ngôn ngữ nào, và một trong những vấn đề quan trọng là : thời gian hoàn thành sẽ mất bao lâu, và sau này khả năng nâng cấp và bảo trì nó sẽ ra sao, và sau mới tới việc performance của nó thế nào.

phu7o7cs
02-08-2010, 17:59
Bạn làm Delphi đã lâu chưa ? Mình đang thử làm Web Server trên Delphi2010 mà khó quá bạn giúp mình môt ứng dụng ví dụ cái

Mình không làm Web Server nên mình không thể giúp bạn được rồi... Rất tiếc...

SystemAdmin2
02-08-2010, 18:02
pasca......l:D

mrdam1001
02-08-2010, 18:11
pasca......l:D

:brick::brick::brick: Mình thù nhất là cái thằng Pascal này , nó quần mình te tua năm lớp 12. Mie , cái ngôn ngữ cấp cao chả ra cấp cao mà cấp thấp cũng chả ra cấp thấp. :matrix:

// vote cho C/C++ : nền tảng cơ bản nhưng cực kỳ vững chắc cho Lập trình tuyến tính và Lập trình OOP.

Ngôn ngữ bây giờ tương thích rất nhiều với môi trường .NET và Java Plattform nên biết vài 3 cái cho chắc.

crông giút
02-08-2010, 22:55
Có biết SQL là viết tắt của từ gì ko mà nói ko phải là ngôn ngữ. Ngoài ra còn có PL/SQL là phần mở rộng của SQL thì biết nó dùng để làm cái gì ko.

thế SQL + là cái gì? bó tay với VOZ ở đây toàn là thiên tài chẳng ai gọi những cái liên quan đến SQL là ngôn ngữ lập trình hết.đúng là 1 bờ giô.

cuongng1987
02-08-2010, 22:59
thế SQL + là cái gì? bó tay với VOZ ở đây toàn là thiên tài chẳng ai gọi những cái liên quan đến SQL là ngôn ngữ lập trình hết.đúng là 1 bờ giô.

SQL - Structured Query Language, tạm dịnh là ngôn ngữ truy vấn cơ sở dữ liệu. Lập trình phần mềm, form, report... đều ít nhiều dính đến SQL nhá.

crông giút
02-08-2010, 23:10
SQL - Structured Query Language, tạm dịnh là ngôn ngữ truy vấn cơ sở dữ liệu. Lập trình phần mềm, form, report... đều ít nhiều dính đến SQL nhá.

Chết chết assembler có liên quan tý nào đến SQL ko nhất là các nhà sản xuất phần cứng ôi thật là vãi hàng quả là 1 bờ giô thứ thiệt.

FunnyKids
02-08-2010, 23:13
thế SQL + là cái gì? bó tay với VOZ ở đây toàn là thiên tài chẳng ai gọi những cái liên quan đến SQL là ngôn ngữ lập trình hết.đúng là 1 bờ giô.

Em không thích tranh luận với bác, vì bác giống như cái chén quá đầy rồi, không thích và từ chối chấp nhận ý kiến của người khác. Việc coi SQL có phải ngôn ngữ lập trình hay không không quá quan trọng, và cũng không có nhiều ý nghĩa với topic này. Nó tùy vào định nghĩa của từng người về thế nào là ngôn ngữ lập trình, và hơn nữa em nghĩ bác chắc cũng chưa bao giờ viết một cái SQL script nào cả (nếu ko phải thì bác bỏ quá cho).

Em thấy những comment của bác là không có tác dụng với topic và thêm hiểu biết nào cho mọi người ở đây cả, hơn nữa cách viết của bác em không nghĩ sẽ khiến mọi người vui vẻ :). Ở đây toàn gà thôi, bác pro rồi có lẽ nên đi chỗ khác.

Ninova
02-08-2010, 23:18
cứ có chữ "L" là được gọi là Language rồi (XML, HTML, SQL...) nhưng ko nên đánh đồng nó với programming language

doom3
02-08-2010, 23:22
câu hỏi ngôn ngữ nào lên ngôi nó là hệ quả của framework nào sẽ lên ngôn, thế thôi

//Vẫn thích C++, thích sự phức tạp của nó, các ngôn ngữ khác thật ra là vay mượn ý tưởng và làm đơn giản hóa 1 số vấn đề thôi

Vimvq1987
02-08-2010, 23:25
Với những cái khác thì không nói nhưng với những platform kiểu như Java và .NET thì ngôn ngữ thực sự không quan trọng. Vì tất cả đều ra bytecode hay CIL hết. Chẳng phải tự nhiên thằng Sun/Oracle hay Microsoft nó cho phép bổ sung một loạt language khác vào platform của nó như Python, Ruby, Perl... Tất cả chỉ nhằm lôi kéo developer quen thuộc với ngôn ngữ đó sử dụng platform của mình.

Các bạn nên phân biệt việc học một ngôn ngữ với việc học và làm chủ thư viện đi kèm với ngôn ngữ đó.

Với việc đa số là code thuê như ở VN thì cũng chỉ là công nhân, thiên lôi chỉ đâu đánh đó. Còn với những người đang làm việc ở mức phân tích thiết kế thì hãy lựa chọn công nghệ một cách thông minh !

Lựa chọn cái gì ? Lựa chọn về giá cả, hiệu năng, chi phí bảo trì, khả năng hỗ trợ... Chẳng ai làm một cái web cỏn con mà đi dùng J2EE (không khác nào giết gà bằng dao mổ trâu), ít ai tự làm khó mình khi xây dựng hệ thống xử lý text mà không dùng Perl, Python... :)

it does matter

ví dụ C#, VB, IronRuby/IronPython/F# cùng dịch ra IL cả, nhưng bọn nó (trừ C# và VB) rất khác nhau và mục đích sử dụng cũng rất khác nhau, ko thể vơ vào 1 nắm được.

tất nhiên 1 người quản lý giỏi sẽ chọn công nghệ/ngôn ngữ best fit với requirements và với nhân sự của mình, nhưng ko vì thế mà LTV được phép có tư tưởng "tôi chỉ cần học 1 ngôn ngữ này thôi", điều đó rất nguy hiểm, ko chỉ về mặt công việc (vứt sang chỗ khác ko sống đc), mà còn về mặt tư duy:

- học thêm các ngôn ngữ tương đương để biết các hạn chế và thế mạnh của ngôn ngữ chính của mình, từ đó biết cách phát huy, khắc phục, nôm na là hiểu sâu hơn, ví dụ, học C# cũng nên ngó qua Java xem enums nó khác nhau thế nào, generic nó xử lý ra sao,..., đó là điều rất tốt
- học thêm các ngôn ngữ khác hẳn, ví dụ học C# nhưng học thêm 1 ngôn ngữ dạng scripting như Python hay 1 ngôn ngữ dạng functional như F#, Haskell, ko chỉ là để đổi mới tư duy mà còn là 1 tool rất mạnh có thể khai thác cho cv hàng ngày
vv và vv
nói chung đồng ý với bác ở điểm là right tools for right jobs. nhưng quay lại chủ đề của thread này thì quan điểm của mình là: việc lựa chọn ngôn ngữ chỉ matter trong thời kì đầu học lập trình, còn sau đó điều chỉnh tùy theo sở thích và nhu cầu công việc, đừng có khư khư ôm lấy 1 cái quá, sẽ chỉ suốt đời làm coder thôi

tcpip
02-08-2010, 23:38
câu hỏi ngôn ngữ nào lên ngôi nó là hệ quả của framework nào sẽ lên ngôn, thế thôi

//Vẫn thích C++, thích sự phức tạp của nó, các ngôn ngữ khác thật ra là vay mượn ý tưởng và làm đơn giản hóa 1 số vấn đề thôi
Mềnh cũng thích C/C++ nhất, nắm được C/C++ là nắm được cách hoạt động của máy tính (thích nó một phần vì nó là NNLT đầu tiên mà mềnh sử dụng). Làm C/C++ chỉ thấy khổ lúc xử lý xâu ký tự.

nikeboi
02-08-2010, 23:40
Sao cứ phải xoắn ngôn ngữ này ngôn ngữ kia nhẩy ? :tire:

Ngôn ngữ nó chỉ là tập cú pháp, từ vựng để diễn đạt câu lệnh.
Vd như Java, nó cũng chỉ là một tập cú pháp diễn đạt câu lệnh. Ngoài Java ra có thể dùng một đống ngôn ngữ khác trên nền JVM như Scalar, Groovy, Jython, JRuby... Tất cả đều được JIT Compiler dịch ra bytecode chạy trên JVM.

Tương tự với C#, chỉ là một tập cú pháp không hơn không kém. Ngoài C# có thể dùng IronPython, IronRuby... Tất cả đều được dịch ra CLI.

Java không chỉ là một ngôn ngữ nó còn là công nghệ. Giống .net trong .net thì C# là ngôn ngữ.

tunglam_pc
02-08-2010, 23:40
Mềnh cũng thích C/C++ nhất, nắm được C/C++ là nắm được cách hoạt động của máy tính (thích nó một phần vì nó là NNLT đầu tiên mà mềnh sử dụng). Làm C/C++ chỉ thấy khổ lúc xử lý xâu ký tự.

Em tưởng C/C++ đau đầu nhất là con trỏ :pudency:
em đang học PHP , thấy xâu kí tự đúng là phần mệt nhất

codart
02-08-2010, 23:46
Kết câu cú của mấy ngôn ngữ họ C hơn, ruby, lua... hay gì gì đó nhìn không quen và rất tức mắt... Theo ý kiến chủ quan khuyên mọi người học as3 và nền tảng flex. tương lai mấy ứng dụng web giàu desktop sẽ lên như diều gặp gió :sexy:

geany
02-08-2010, 23:47
it does matter

ví dụ C#, VB, IronRuby/IronPython/F# cùng dịch ra IL cả, nhưng bọn nó (trừ C# và VB) rất khác nhau và mục đích sử dụng cũng rất khác nhau, ko thể vơ vào 1 nắm được.

tất nhiên 1 người quản lý giỏi sẽ chọn công nghệ/ngôn ngữ best fit với requirements và với nhân sự của mình, nhưng ko vì thế mà LTV được phép có tư tưởng "tôi chỉ cần học 1 ngôn ngữ này thôi", điều đó rất nguy hiểm, ko chỉ về mặt công việc (vứt sang chỗ khác ko sống đc), mà còn về mặt tư duy:

- học thêm các ngôn ngữ tương đương để biết các hạn chế và thế mạnh của ngôn ngữ chính của mình, từ đó biết cách phát huy, khắc phục, nôm na là hiểu sâu hơn, ví dụ, học C# cũng nên ngó qua Java xem enums nó khác nhau thế nào, generic nó xử lý ra sao,..., đó là điều rất tốt
- học thêm các ngôn ngữ khác hẳn, ví dụ học C# nhưng học thêm 1 ngôn ngữ dạng scripting như Python hay 1 ngôn ngữ dạng functional như F#, Haskell, ko chỉ là để đổi mới tư duy mà còn là 1 tool rất mạnh có thể khai thác cho cv hàng ngày
vv và vv
nói chung đồng ý với bác ở điểm là right tools for right jobs. nhưng quay lại chủ đề của thread này thì quan điểm của mình là: việc lựa chọn ngôn ngữ chỉ matter trong thời kì đầu học lập trình, còn sau đó điều chỉnh tùy theo sở thích và nhu cầu công việc, đừng có khư khư ôm lấy 1 cái quá, sẽ chỉ suốt đời làm coder thôi

+1000 :sogood:

Java không chỉ là một ngôn ngữ nó còn là công nghệ. Giống .net trong .net thì C# là ngôn ngữ.

Cái này tớ biết, tớ đã ghi rõ ràng là trên nền JVM.

codart
02-08-2010, 23:52
Em không thích tranh luận với bác, vì bác giống như cái chén quá đầy rồi, không thích và từ chối chấp nhận ý kiến của người khác. Việc coi SQL có phải ngôn ngữ lập trình hay không không quá quan trọng, và cũng không có nhiều ý nghĩa với topic này. Nó tùy vào định nghĩa của từng người về thế nào là ngôn ngữ lập trình, và hơn nữa em nghĩ bác chắc cũng chưa bao giờ viết một cái SQL script nào cả (nếu ko phải thì bác bỏ quá cho).

Em thấy những comment của bác là không có tác dụng với topic và thêm hiểu biết nào cho mọi người ở đây cả, hơn nữa cách viết của bác em không nghĩ sẽ khiến mọi người vui vẻ :). Ở đây toàn gà thôi, bác pro rồi có lẽ nên đi chỗ khác.

+1

hồi học sql, code mấy câu lệnh truy vấn cũng vui và đau đầu phết, sau học đến lt web động thì ko thiếu đc nó

FunnyKids
02-08-2010, 23:54
Giải trí tí cho đỡ căng thẳng các bác nhé :D

Có bác nào biết ngôn ngữ BrainFuck ko ? (lol).
http://en.wikipedia.org/wiki/Brainfuck

Bây giờ challange là bác nào viết ra được đoạn code in ra màn hình "Toi la VOZer" nào ? :D

geany
02-08-2010, 23:55
+1

hồi học sql, code mấy câu lệnh truy vấn cũng vui và đau đầu phết, sau học đến lt web động thì ko thiếu đc nó

Dùng ORM đi, đỡ phải viết query :dreaming:

b2f111
23-07-2011, 17:05
Chào các bạn,

Các bạn có biết công ty nào có thể làm web trên python hoặc triển khai OpenERP ở Hà Nội không giới thiệu cho mình với. Liên hệ habbsh@gmail.com

Cám ơn các bạn nhiều,

thanhga02101991
23-07-2011, 17:30
mình thấy HTML5 và JavaScript mới là 2 ngôn ngữ thống trị tương lai.

có lẽ vote +1, mình cũng nghĩ thế, nhưng thực tại thì C# cũng đang rất mạnh

24/7
23-07-2011, 20:46
có lẽ vote +1, mình cũng nghĩ thế, nhưng thực tại thì C# cũng đang rất mạnh

ở mình lúc nào C# chẳng là số 1 :adore:. Nếu xét các tiêu chí của một ngôn ngữ lập trình thì HTML5 , JavaScript không được xếp vào là NNLT :stick:
//ơ mà mộ cổ :gach:

24/7
23-07-2011, 20:47
Mình vote PHP cho ứng dụng web, và dotNet cho ứng dụng desktop :D

N.V.T
24-07-2011, 16:23
Ngôn ngữ nào cũng được, miễn sao nó vừa có thể dùng nó tạo ra được ứng dụng Desk và cũng có thể dùng chính nó để tạo ra ứng dụng Web.

Thang.Arsenal
25-07-2011, 00:56
Vote 1 vote cho C# (hiện giờ mới biết mỗi C# với bập bẹ tí tẹo C++ chẳng bõ lăn tăn)

còn ứng dụng web thì cứ PHP mà táng thôi.
Mà kể cũng đúng, sao k có JavaScript cho Web nhỉ?

Thang.Arsenal
25-07-2011, 01:02
it does matter

ví dụ C#, VB, IronRuby/IronPython/F# cùng dịch ra IL cả, nhưng bọn nó (trừ C# và VB) rất khác nhau và mục đích sử dụng cũng rất khác nhau, ko thể vơ vào 1 nắm được.

tất nhiên 1 người quản lý giỏi sẽ chọn công nghệ/ngôn ngữ best fit với requirements và với nhân sự của mình, nhưng ko vì thế mà LTV được phép có tư tưởng "tôi chỉ cần học 1 ngôn ngữ này thôi", điều đó rất nguy hiểm, ko chỉ về mặt công việc (vứt sang chỗ khác ko sống đc), mà còn về mặt tư duy:

- học thêm các ngôn ngữ tương đương để biết các hạn chế và thế mạnh của ngôn ngữ chính của mình, từ đó biết cách phát huy, khắc phục, nôm na là hiểu sâu hơn, ví dụ, học C# cũng nên ngó qua Java xem enums nó khác nhau thế nào, generic nó xử lý ra sao,..., đó là điều rất tốt
- học thêm các ngôn ngữ khác hẳn, ví dụ học C# nhưng học thêm 1 ngôn ngữ dạng scripting như Python hay 1 ngôn ngữ dạng functional như F#, Haskell, ko chỉ là để đổi mới tư duy mà còn là 1 tool rất mạnh có thể khai thác cho cv hàng ngày
vv và vv
nói chung đồng ý với bác ở điểm là right tools for right jobs. nhưng quay lại chủ đề của thread này thì quan điểm của mình là: việc lựa chọn ngôn ngữ chỉ matter trong thời kì đầu học lập trình, còn sau đó điều chỉnh tùy theo sở thích và nhu cầu công việc, đừng có khư khư ôm lấy 1 cái quá, sẽ chỉ suốt đời làm coder thôi

+1 :beauty:

Rất ngưỡng mộ lối suy nghĩ của bác.

cobain
25-07-2011, 22:36
Vote 1 vote cho C# (hiện giờ mới biết mỗi C# với bập bẹ tí tẹo C++ chẳng bõ lăn tăn)

còn ứng dụng web thì cứ PHP mà táng thôi.
Mà kể cũng đúng, sao k có JavaScript cho Web nhỉ?
Có bạn, keyword : Javascript ServerSide, đầy đủ tính năng như một scripting language thường thấy (session, file management, db...). Nổi đình nổi đám nhất là NodeJs, base trên V8 engine của google, ngon vãi lái :sexy:

bonghongthuytinh
26-07-2011, 23:55
Trong khoảng 6-8 năm nữa khó có một ngôn ngữ hoặc công nghệ nào bật được công nghệ Java của Oracle, .NET của Microsoft
C/C++ thì luôn luôn có chỗ đứng ở bất kỳ hoàn cảnh nào.
Web thì chia đều cho PHP, ASP.NET,Java
Di động sẽ hướng theo phân khúc C-Objective cho iPhone và Java cho Android.
Database thì vẫn là SQL Server và Oracle rồi, MySQL với Postgres vẫn sẽ có chỗ đứng nhất định (vì có vẻ Oracle nó ko muốn đầu tư vào MySQL)

Sử dụng thành thạo và giỏi bất kỳ các công nghệ, ngôn ngữ trên chả bao h sợ chết đói.

ThienPhu
27-07-2011, 04:07
có lẽ vote +1, mình cũng nghĩ thế, nhưng thực tại thì C# cũng đang rất mạnh

đệch mẹ, so sánh html 5 và js với C#, lạy các thánh, các thánh học hành kiểu ấy thảo nào công ty con chả tuyển được thằng nhân viên nào ra hồn:stick:

windson1191
29-07-2011, 13:33
Giỏi và nắm chắc nắm vững thì rất OK
vote C# -_-

Caffeine
29-07-2011, 18:25
Việt Nam mềnh nhiều C# nhể

thislove
31-07-2011, 17:13
Sao lắm c# thế. em đang học java nhưng thấy khó quá.vote java

anhtu20488
12-08-2011, 01:39
thế SQL + là cái gì? bó tay với VOZ ở đây toàn là thiên tài chẳng ai gọi những cái liên quan đến SQL là ngôn ngữ lập trình hết.đúng là 1 bờ giô.

Đọc 2 lần thấy mày bị ngu bảm sinh ah. SQL(Structured Query Language )
http://vi.wikipedia.org/wiki/SQL

ThienPhu
15-08-2011, 00:19
Đọc 2 lần thấy mày bị ngu bảm sinh ah. SQL(Structured Query Language )
http://vi.wikipedia.org/wiki/SQL

Query Language không có nghĩa là "ngôn ngữ lập trình nhé bạn", đừng chửi bới bất lịch sự như thế kiến thức bạn chưa chắc đã bằng ai đâu

smiles
16-08-2011, 12:14
Cách đây x năm khi em mới ra trường, khi đấy em nghĩ giống hệt bác, vì thực sự em nghĩ giống học toán thôi, học toán tiếng anh hay học toán tiếng việt thì quan trọng nhất vẫn là toán học, chứ ngôn ngữ chỉ là biểu hiện. Khi đấy em đi xin việc, em trả lời giống hệt bác, khi ấy em nghĩ nó là điểm cộng, và em được nhận.

Sau x năm làm việc, giờ cũng có thằng để gõ đầu, quan niệm của em về tầm quan trọng của thuật toán vẫn ko thay đổi, nhưng em không còn nghĩ ngôn ngữ nào cũng giống nhau. Vì vẫn giống như làm toán, hai thằng giỏi toán giống nhau khi nghiên cứu cùng một vấn đề có thể cho kết quả giống nhau (giả dụ thế), nhưng đứa giỏi tiếng anh hơn sẽ viết Thesis cho vấn đề đấy hay và dễ hiểu hơn :).

Trên lý thuyết thì cái bác nói là đúng, nhưng ở thực tế để đào tạo ra một thằng thực sự chuyên sâu về một ngôn ngữ nào đó thì mất rất nhiều thời gian, và việc có một thằng được gọi là "master" của hơn một ngôn ngữ là rất khó, và em chưa thấy thằng nào được gọi là thế cả.

+1

Đi làm với bọn nước ngoài, có thằng nó làm Java chục năm, làm C 2 chục năm thì các bác sẽ thấy cái độ thành thục của nó như thế nào, có thể gọi là nhắm mắt đưa trym chăm phát trăm trúng. Khi có một vấn đề cụ thể nào đó nó có kinh nghiệm nên giải quyết cực nhanh và chuẩn. Đơn cử như làm Java, mấy chục cái class Input, Output, Reader, Writer thuộc IO của nó và các thể loại Collection, Araylist, hashmap của nó có bác nào nắm chắc được performance và tip trick của từng loại không?
Thế nên sang bên đấy mới có những ông 50 tuổi vẫn code xong rồi ngồi viết sách, lương vẫn cao chất ngất, bên mình thì code được 3 năm bắt đầu lên lead. Các bác có thấy ông nào ở Việt Nam viết sách lập trình mà ra hồn không (trừ mấy bác như Quách Tuấn Ngọc ... ngày xưa viết sách C, Pascal ...), bởi vì đơn giản là kiến thức không đủ sâu, không đủ chắc, viết bằng mắt.
Mà mình thấy cũng có nhiều ông như mình, học hành nói chung cũng sáng dạ một tí, xong đọc hiểu phát là next luôn, thế nên cái "biết" của lập trình viên của mình rất khác cái "biết" của lập trình viên các nước phát triển.

smiles
16-08-2011, 12:16
Đọc 2 lần thấy mày bị ngu bảm sinh ah. SQL(Structured Query Language )
http://vi.wikipedia.org/wiki/SQL

Ngôn ngữ truy vấn có cấu trúc, mà từ chuyên ngành dich ra tiếng viết nó khó lắm, có lúc viết một câu lệnh SQL cũng đủ cả điều kiện, rẽ nhánh ... không lẽ lại không phải là lập trình.

smiles
16-08-2011, 12:46
it does matter

ví dụ C#, VB, IronRuby/IronPython/F# cùng dịch ra IL cả, nhưng bọn nó (trừ C# và VB) rất khác nhau và mục đích sử dụng cũng rất khác nhau, ko thể vơ vào 1 nắm được.

tất nhiên 1 người quản lý giỏi sẽ chọn công nghệ/ngôn ngữ best fit với requirements và với nhân sự của mình, nhưng ko vì thế mà LTV được phép có tư tưởng "tôi chỉ cần học 1 ngôn ngữ này thôi", điều đó rất nguy hiểm, ko chỉ về mặt công việc (vứt sang chỗ khác ko sống đc), mà còn về mặt tư duy:

- học thêm các ngôn ngữ tương đương để biết các hạn chế và thế mạnh của ngôn ngữ chính của mình, từ đó biết cách phát huy, khắc phục, nôm na là hiểu sâu hơn, ví dụ, học C# cũng nên ngó qua Java xem enums nó khác nhau thế nào, generic nó xử lý ra sao,..., đó là điều rất tốt
- học thêm các ngôn ngữ khác hẳn, ví dụ học C# nhưng học thêm 1 ngôn ngữ dạng scripting như Python hay 1 ngôn ngữ dạng functional như F#, Haskell, ko chỉ là để đổi mới tư duy mà còn là 1 tool rất mạnh có thể khai thác cho cv hàng ngày
vv và vv
nói chung đồng ý với bác ở điểm là right tools for right jobs. nhưng quay lại chủ đề của thread này thì quan điểm của mình là: việc lựa chọn ngôn ngữ chỉ matter trong thời kì đầu học lập trình, còn sau đó điều chỉnh tùy theo sở thích và nhu cầu công việc, đừng có khư khư ôm lấy 1 cái quá, sẽ chỉ suốt đời làm coder thôi

Suốt đời làm coder thì sao? Một người giỏi kỹ thuật chưa chắc giỏi quản lý, một người giỏi viết code chưa chắc giỏi thiết kế chương trình. Vì suy nghĩ cả đời không làm coder như của bạn nên ở Việt Nam không có coder chuyên sâu, đi ra các công ty lớn hỏi xem có ai viết code trên 10 năm không thì cực hiếm, trong khi đó với bọn nước ngoài thì rất bình thường. Mình còn nhớ lần đầu tiên vào phòng kỹ thuật của công ty mình làm việc ở Châu Âu, vào thấy mấy bác béo ú, ông thì 30 ông thì gần 50. Sau đó được đọc CV thì mới thấy các ông chỉ chuyên tâm cho một lĩnh vực, mấy chục dự án cùng thuộc một lĩnh vực nên độ thông hiểu của các ông í là rất cao, và được coi trọng trong công ty dù chả quản lý ai cả và chẳng có chức tước gì cả. Lương thì cao hơn cấp quản lý bình thường.
Ở mình thì ông nào coder mà có tí triển vọng là cũng muốn lên làm thầy ngay, chả ông nào muốn làm thợ lâu dù đó nhiều khi là đam mê và là công việc ông í làm tốt nhất. Mà cái đó cũng là do mức đãi ngộ và chế độ của các công ty. Thành ra chất lượng các dự án phần mềm của mình vẫn đi khá xa sau thế giới, và cũng chỉ dừng lại ở việc cóp nhặt là chính thôi, không có những kiến thức chuyên sâu để mà tạo ra những cải tiến mới trong ngành lập trình (tham gia đóng góp vào những cải tiến mới trong cộng đồng lập trình của thế giới)
Mình hi vọng sắp tới mọi thứ sẽ thay đổi, người ta sẽ coi trọng lập trình viên hơn trong những công ty phần mềm. Để đưa ra được những sản phẩm có chất lượng cao hơn cả về tính năng, security, performance ....

noobcsess
16-08-2011, 13:08
Query Language không có nghĩa là "ngôn ngữ lập trình nhé bạn", đừng chửi bới bất lịch sự như thế kiến thức bạn chưa chắc đã bằng ai đâu

Thái độ của bạn kia đúng thật là bẩn bựa, nhưng nói chung loại vác clone vào ăn nói bố láo như vậy ko đáng bận tâm. Tuy nhiên, phải công nhận, SQL là ngôn ngữ lập trình.

cobain
16-08-2011, 15:35
Suốt đời làm coder thì sao? Một người giỏi kỹ thuật chưa chắc giỏi quản lý, một người giỏi viết code chưa chắc giỏi thiết kế chương trình. Vì suy nghĩ cả đời không làm coder như của bạn nên ở Việt Nam không có coder chuyên sâu, đi ra các công ty lớn hỏi xem có ai viết code trên 10 năm không thì cực hiếm, trong khi đó với bọn nước ngoài thì rất bình thường. Mình còn nhớ lần đầu tiên vào phòng kỹ thuật của công ty mình làm việc ở Châu Âu, vào thấy mấy bác béo ú, ông thì 30 ông thì gần 50. Sau đó được đọc CV thì mới thấy các ông chỉ chuyên tâm cho một lĩnh vực, mấy chục dự án cùng thuộc một lĩnh vực nên độ thông hiểu của các ông í là rất cao, và được coi trọng trong công ty dù chả quản lý ai cả và chẳng có chức tước gì cả. Lương thì cao hơn cấp quản lý bình thường.
Ở mình thì ông nào coder mà có tí triển vọng là cũng muốn lên làm thầy ngay, chả ông nào muốn làm thợ lâu dù đó nhiều khi là đam mê và là công việc ông í làm tốt nhất. Mà cái đó cũng là do mức đãi ngộ và chế độ của các công ty. Thành ra chất lượng các dự án phần mềm của mình vẫn đi khá xa sau thế giới, và cũng chỉ dừng lại ở việc cóp nhặt là chính thôi, không có những kiến thức chuyên sâu để mà tạo ra những cải tiến mới trong ngành lập trình (tham gia đóng góp vào những cải tiến mới trong cộng đồng lập trình của thế giới)
Mình hi vọng sắp tới mọi thứ sẽ thay đổi, người ta sẽ coi trọng lập trình viên hơn trong những công ty phần mềm. Để đưa ra được những sản phẩm có chất lượng cao hơn cả về tính năng, security, performance ....

+1
Ở VN có một thực tại khá hài hước là cứ bố nào cũng nghĩ coder không nên làm lâu. Nên rất ít được master hoặc có thì lại có tâm lý sợ thằng khác biết, tính community của mình như sh!t, sh!t từ ngay trong cùng cty luôn chứ chưa nói đối với ở ngoài.
Ở nước ngoài nó làm gì cũng chuyên sâu, còn ở mình thì cái gì cũng thấy chém được nhưng chỉ là hời hợt. Code nhưng không hiểu bản chất function, compiler ... Code với tâm lý để cho nó chạy được khác xa với performance, security.

Mr.Cigar.
16-08-2011, 16:48
Game programming: C++ or Java các bác?

dark_angel87
16-08-2011, 16:49
Trong khoảng 6-8 năm nữa khó có một ngôn ngữ hoặc công nghệ nào bật được công nghệ Java của Oracle, .NET của Microsoft
C/C++ thì luôn luôn có chỗ đứng ở bất kỳ hoàn cảnh nào.
Web thì chia đều cho PHP, ASP.NET,Java
Di động sẽ hướng theo phân khúc C-Objective cho iPhone và Java cho Android.
Database thì vẫn là SQL Server và Oracle rồi, MySQL với Postgres vẫn sẽ có chỗ đứng nhất định (vì có vẻ Oracle nó ko muốn đầu tư vào MySQL)

Sử dụng thành thạo và giỏi bất kỳ các công nghệ, ngôn ngữ trên chả bao h sợ chết đói.

Còn DB2 của IBM thì sao bro???

Karmel
16-08-2011, 19:38
Game programming: C++ or Java các bác?

Cái này nếu là game PC thì mình khuyên theo C++
Còn nếu game di động thì Java, game iOS thì Objective-C, game Android thì Java.

Theo mình biết thị phần của SQL server không phải là cao, chỉ tầm 15% thôi vẫn còn chưa so sánh được với DB2 của IBM, có điều chẳng hiểu tại sao ở mình dạy và học toàn học cái này, có lẽ nó đi cùng với .NET chăng.

chungvodim
17-08-2011, 01:14
Em đang luyện C++, bác nào có project cho em làm với. Kinh nghiệm thì em không có. Ngôn ngữ đã từng dùng chỉ có visual basic và assembly.Giờ em muốn chuyên sâu vào C++.Nhưng khổ cái là mấy cái ngôn ngữ này em đều tự học(em vốn là thợ máy), nên trình độ chắc bét bảng. Bác nào có tuyển dụng gà vào làm (ko cần lương) thì cho em 1 vé với. Mà em xin làm ở nhà nha, vì còn phải đi làm kiếm cơm ăn:sosad::sosad::sosad:

jasonsmith2812
18-08-2011, 16:15
Ngôn ngữ lập trình nào sẽ lên ngôi ? -> Money

dotrihieu
18-08-2011, 16:45
Cái này nếu là game PC thì mình khuyên theo C++
Còn nếu game di động thì Java, game iOS thì Objective-C, game Android thì Java.

Theo mình biết thị phần của SQL server không phải là cao, chỉ tầm 15% thôi vẫn còn chưa so sánh được với DB2 của IBM, có điều chẳng hiểu tại sao ở mình dạy và học toàn học cái này, có lẽ nó đi cùng với .NET chăng.

Game Android vẫn dùng C++ nếu muốn có performance cao.

mrdam1001
18-08-2011, 16:55
Em đang luyện C++, bác nào có project cho em làm với. Kinh nghiệm thì em không có. Ngôn ngữ đã từng dùng chỉ có visual basic và assembly.Giờ em muốn chuyên sâu vào C++.Nhưng khổ cái là mấy cái ngôn ngữ này em đều tự học(em vốn là thợ máy), nên trình độ chắc bét bảng. Bác nào có tuyển dụng gà vào làm (ko cần lương) thì cho em 1 vé với. Mà em xin làm ở nhà nha, vì còn phải đi làm kiếm cơm ăn:sosad::sosad::sosad:


:gach: Học C++ thì có thư viện MFC của Visual C++ là đình đám thôi. Cái này hiện nay vẫn đc dùng nhưng ko còn đc Microsoft phát triển nữa.

Ko thì bác cứ học C thuần nhưng cần nâng cao về phần thread , process , mutex ,... mấy cái này chủ yếu dùng trên Unix/Linux hoặc sẽ dùng để nhúng.


// :beauty: cá nhân mình dắt lưng C và PHP là đủ rồi. Quan trọng là rèn luyện để nâng cao tay nghề thôi.

Karmel
18-08-2011, 18:34
:gach: Học C++ thì có thư viện MFC của Visual C++ là đình đám thôi. Cái này hiện nay vẫn đc dùng nhưng ko còn đc Microsoft phát triển nữa.

Ko thì bác cứ học C thuần nhưng cần nâng cao về phần thread , process , mutex ,... mấy cái này chủ yếu dùng trên Unix/Linux hoặc sẽ dùng để nhúng.


// :beauty: cá nhân mình dắt lưng C và PHP là đủ rồi. Quan trọng là rèn luyện để nâng cao tay nghề thôi.

Ai bẩu chỉ có MFC là đình đám, wxWidgets với Qt bỏ đâu? Với lại tùy theo nhu cầu mà lựa chọn GUI Lib cho mình thôi.

Vimvq1987
18-08-2011, 18:38
:gach: Học C++ thì có thư viện MFC của Visual C++ là đình đám thôi. Cái này hiện nay vẫn đc dùng nhưng ko còn đc Microsoft phát triển nữa.

Ko thì bác cứ học C thuần nhưng cần nâng cao về phần thread , process , mutex ,... mấy cái này chủ yếu dùng trên Unix/Linux hoặc sẽ dùng để nhúng.


// :beauty: cá nhân mình dắt lưng C và PHP là đủ rồi. Quan trọng là rèn luyện để nâng cao tay nghề thôi.

:go: ở đâu ra thế
thư viện cho C++ nhiều vô kể, STL, Boost, ... và MFC vẫn được Microsoft phát triển, dù ko được push mạnh như .NET thôi. nói chung lập trình C++ trên Windows thì MFC là lựa chọn tốt nhất rồi

sonlam
18-08-2011, 18:38
Đọc 2 lần thấy mày bị ngu bảm sinh ah. SQL(Structured Query Language )
http://vi.wikipedia.org/wiki/SQL

Chẳng biết có phải LTV hay ko mà phán SQL là ngôn ngữ lập trình :gach:

Nó là ngôn ngữ truy vấn thím ạ :gach:

noobcsess
18-08-2011, 20:28
Chẳng biết có phải LTV hay ko mà phán SQL là ngôn ngữ lập trình :gach:

Nó là ngôn ngữ truy vấn thím ạ :gach:

Đâu phải LTV nào cũng biết điều này ? Mình đoán bạn cũng là LTV đúng ko ? :D
Nếu đúng thì bỏ thêm chút thời gian học lại căn bản đi bạn nhé. :">
Và như có thím đã nói ở trên, việc tranh luận SQL có phải là NNLT hay ko, ko đóng góp được gì cho topic này. Next thôi... :chaymau:

FighterVn
18-08-2011, 23:55
"> both client-side and server-side
Client-Side: MVC structure for Javascript, one-page web apps, desktop-like web apps etc...
Server-Side: NodeJS (Express, SocketIO)

Phang Bão Đại Ka
19-08-2011, 00:48
mềnh vẫn theo đuổi C++ thui:sexy:

nhatbang
13-05-2012, 18:48
Cá nhân thì mình thích cả C#,C++ và cả JAVA nữa ... Nhưng về giải thuật và performance thì mình thích C++ nhất ^^.

langtu12i
14-05-2012, 01:09
C# quen tay rồi! Muốn đổi sang cái khác nhưng mà ngại quá... Nhiều ông trong công ty vẫn làm foxpro này

hoctudau.com
14-05-2012, 02:17
Tương lai của PHP cũng rất sáng lạn (theo Jobstractor )

hahalulu
14-05-2012, 10:12
tương lai cử công nghệ sẽ là điện thoại :D, cái nào hỗ trợ nhiều sẽ lên ngôi :)

Karmel
14-05-2012, 13:40
tương lai cử công nghệ sẽ là điện thoại :D, cái nào hỗ trợ nhiều sẽ lên ngôi :)

Cái nào cũng hỗ trợ :bye:

a_kai
14-05-2012, 14:36
Em đang luyện C++, bác nào có project cho em làm với. Kinh nghiệm thì em không có. Ngôn ngữ đã từng dùng chỉ có visual basic và assembly.Giờ em muốn chuyên sâu vào C++.Nhưng khổ cái là mấy cái ngôn ngữ này em đều tự học(em vốn là thợ máy), nên trình độ chắc bét bảng. Bác nào có tuyển dụng gà vào làm (ko cần lương) thì cho em 1 vé với. Mà em xin làm ở nhà nha, vì còn phải đi làm kiếm cơm ăn:sosad::sosad::sosad:

Bác luyện C++ ngon rồi thì luyện thêm Qt nhé. Nó là bộ khung lập trình dựa trên C++, rất mạnh và khá được ưa chuộng, có thể viết chương trình chạy cross-platform.

Em khâm phục bác là thợ máy mà máu me code thế. Em đi code cả 5 năm trời mà vẫn gà.

pyttop
14-05-2012, 15:35
mình thấy HTML5 và JavaScript mới là 2 ngôn ngữ thống trị tương lai.

:gach: nghe đồn là HTML không phải là ngôn ngữ lập trình, là markup language :sexy:
Em thì khoái PHP, Python, (dĩ nhiên là kèm theo cái đống HTML, Javascript, CSS này nọ rồi)

a_kai
14-05-2012, 18:17
:gach: nghe đồn là HTML không phải là ngôn ngữ lập trình, là markup language :sexy:
Em thì khoái PHP, Python, (dĩ nhiên là kèm theo cái đống HTML, Javascript, CSS này nọ rồi)

Bạn ơi bạn dùng Python à? Thấy nó thế nào? Có làm được nhiều thứ không? Mình cũng đang quan tâm ngôn ngữ này.

pyttop
14-05-2012, 18:27
Bạn ơi bạn dùng Python à? Thấy nó thế nào? Có làm được nhiều thứ không? Mình cũng đang quan tâm ngôn ngữ này.

Được được bạn, tùy quan điểm mỗi người, nhưng với mình, cú pháp Python rất hấp dẫn, rãnh thì bạn cứ tìm hiểu đi, cũng có thể relax tốt :adore:

Không ai nhắc Go nhỉ? Go + Python, 2 đứa con cưng của Google :beauty:

Karmel
14-05-2012, 18:49
Bạn ơi bạn dùng Python à? Thấy nó thế nào? Có làm được nhiều thứ không? Mình cũng đang quan tâm ngôn ngữ này.

Làm web được, desktop cũng ngon, Android, iOS cũng chơi được :sexy:

nunkstop
14-05-2012, 18:57
Làm web được, desktop cũng ngon, Android, iOS cũng chơi được :sexy:

thím biết nhiều thế :sexy: ngôn ngữ nào cũng biết, giỏi quá :*

a_kai
15-05-2012, 08:59
Cảm ơn bạn pyttop và bạn karmel đã cho ý kiến. Mình đang tìm hiểu thằng Python này. Nó được PR là "Ngôn ngữ lập trình tốt nhất". Dạo này mình chán Java rồi.

theduc1991
15-05-2012, 10:51
Dù có yêu thích ngôn ngữ lập trình nào đi nữa ,thì cái gốc vẫn phải học c++ và java dù bạn có thù ghét 1 trong 2 hay ghét cả 2 thì bắt buộc vẫn phải học ,hiểu và nắm vững .

tranvanbinh1120
15-05-2012, 10:53
Dù có yêu thích ngôn ngữ lập trình nào đi nữa ,thì cái gốc vẫn phải học c++ và java dù bạn có thù ghét 1 trong 2 hay ghét cả 2 thì bắt buộc vẫn phải học ,hiểu và nắm vững .

Đao to búa lớn quá. :sogood:

theduc1991
15-05-2012, 10:55
Đao to búa lớn quá. :sogood:

Đấy là suy nghĩ của mình và mình đọc cái đấy ở vn-zoom .

conhatgiay5591
15-05-2012, 11:01
Đấy là suy nghĩ của mình và mình đọc cái đấy ở vn-zoom .

VN-ZOOM có gì ghê mà đọc từ đó có vẻ tâm đắc vậy, đó là forum giải trí chứ đâu phải cộng đồng lập trình viên@_@

pyttop
15-05-2012, 12:00
Dù có yêu thích ngôn ngữ lập trình nào đi nữa ,thì cái gốc vẫn phải học c++ và java dù bạn có thù ghét 1 trong 2 hay ghét cả 2 thì bắt buộc vẫn phải học ,hiểu và nắm vững .

:pudency: mặc dù C++ là đam mê của em trong 5,6 năm trời (và hết cách đây 1,2 năm rồi :byebye:), nhưng cũng không đến nỗi đao to búa lớn thế đâu thím. Những coder hái ra tiền chưa chắc đều phải "hiểu và nắm vững" 2 cái đó đâu. Hơn nữa, nếu nói theo cách như thế (kiểu "cái gốc vẫn phải...") thì Java chắc chưa có cửa đứng vào cùng hàng "tiền bối" với C++ đâu :gach:

FighterVn
15-05-2012, 12:12
Dù có yêu thích ngôn ngữ lập trình nào đi nữa ,thì cái gốc vẫn phải học c++ và java dù bạn có thù ghét 1 trong 2 hay ghét cả 2 thì bắt buộc vẫn phải học ,hiểu và nắm vững .

bậy bạ cmnr =)) background Ruby hoặc Python vẫn sống tốt nhé, sắp tới chuẩn bị có thêm background Javascript nhé. Mình ko biết 1 tí gì về C++ nè, bợn dám nói mình không biết lập trình không :gach:

theduc1991
15-05-2012, 12:58
bậy bạ cmnr =)) background Ruby hoặc Python vẫn sống tốt nhé, sắp tới chuẩn bị có thêm background Javascript nhé. Mình ko biết 1 tí gì về C++ nè, bợn dám nói mình không biết lập trình không :gach:

:pudency: mặc dù C++ là đam mê của em trong 5,6 năm trời (và hết cách đây 1,2 năm rồi :byebye:), nhưng cũng không đến nỗi đao to búa lớn thế đâu thím. Những coder hái ra tiền chưa chắc đều phải "hiểu và nắm vững" 2 cái đó đâu. Hơn nữa, nếu nói theo cách như thế (kiểu "cái gốc vẫn phải...") thì Java chắc chưa có cửa đứng vào cùng hàng "tiền bối" với C++ đâu :gach:

Xin lỗi nếu em sai thì đừng ném đá em ,em chỉ thuật lại trong bài đấy ở bên vn-zoom thôi ,và em nghĩ chắc em cũng ko đủ sức để học 2 cái đấy .Em sai mong các bác chỉ giáo hộ .


VN-ZOOM có gì ghê mà đọc từ đó có vẻ tâm đắc vậy, đó là forum giải trí chứ đâu phải cộng đồng lập trình viên@_@
Em nghĩ forum đấy dành cho dân lập trình chứ,cái bài nói về C++ và Java là em đọc trong box java .

Nazrin
15-05-2012, 13:04
Xin lỗi nếu em sai thì đừng ném đá em ,em chỉ thuật lại trong bài đấy ở bên vn-zoom thôi ,và em nghĩ chắc em cũng ko đủ sức để học 2 cái đấy .Em sai mong các bác chỉ giáo hộ .



Em nghĩ forum đấy dành cho dân lập trình chứ,cái bài nói về C++ và Java là em đọc trong box java .

forum đó dành cho dân pirate, toàn share phần mềm không bản quyền thôi chứ dân lập trình cái gì.
bản thân voz cũng cóc phải diễn đàn cho dân lập trình, thế cho vuông.
mà thằng nào phát ngôn phải học C++ trước thì dù từ diễn đàn C việt mình cũng khinh vì trình độ hiểu biết quá kém, không hiểu bản chất của việc lập trình.

theduc1991
15-05-2012, 13:11
forum đó dành cho dân pirate, toàn share phần mềm không bản quyền thôi chứ dân lập trình cái gì.
bản thân voz cũng cóc phải diễn đàn cho dân lập trình, thế cho vuông.
mà thằng nào phát ngôn phải học C++ trước thì dù từ diễn đàn C việt mình cũng khinh vì trình độ hiểu biết quá kém, không hiểu bản chất của việc lập trình.
Thế theo bác phải học và làm chương trình gì thì mới trở trành LT ?

Nazrin
15-05-2012, 13:33
Thế theo bác phải học và làm chương trình gì thì mới trở trành LT ?

học những gì mình thích và làm được những gì mình muốn. Trong nghề thì phải đảm bảo được yêu cầu của khách hàng, hạn chế lỗi.
cứ bó hẹp phải học thế này trước phải học thế nọ sau thì cóc thể phát triển được đâu.

FighterVn
15-05-2012, 14:02
học những gì mình thích và làm được những gì mình muốn. Trong nghề thì phải đảm bảo được yêu cầu của khách hàng, hạn chế lỗi.
cứ bó hẹp phải học thế này trước phải học thế nọ sau thì cóc thể phát triển được đâu.

I am in love :beauty:

tranvanbinh1120
15-05-2012, 15:10
Thế theo bác phải học và làm chương trình gì thì mới trở trành LT ?

Muốn học cái gốc rễ thì C++ với Java vẫn còn chưa đủ tuổi để đú với Assembly. Nếu bạn thích đi theo hướng đào sâu tích lũy thì Assembly mới là cái mà bạn cần động đến.

Còn đi nghe ngóng ở diễn đàn này, diễn đàn nọ, trong khi bản thân mình thì chưa bao giờ động vào nhưng vẫn tư vấn hùng hồn thì mình cũng cảm thấy quá lạ kỳ. :nosebleed:

nunkstop
15-05-2012, 15:53
học những gì mình thích và làm được những gì mình muốn. Trong nghề thì phải đảm bảo được yêu cầu của khách hàng, hạn chế lỗi.
cứ bó hẹp phải học thế này trước phải học thế nọ sau thì cóc thể phát triển được đâu.

I am in love :beauty:

vodanh1213
15-05-2012, 19:12
học cho lắm tắm cũng ở truồng :sweat::sweat:

pokemonvn
15-05-2012, 20:24
Làm web được, desktop cũng ngon, Android, iOS cũng chơi được :sexy:

Cả Android, iOS nữa hở bác :oh:.Giờ em mới biết .Cũng mới mon men vào thằng này :pudency:

Karmel
15-05-2012, 21:13
Cả Android, iOS nữa hở bác :oh:.Giờ em mới biết .Cũng mới mon men vào thằng này :pudency:

Không phải official, mà chơi thông qua kivy framework bác à :sexy:

gâu_
15-05-2012, 21:20
C++ là ngôn ngữ mình thích nhất vì nó biến hoá khôn lường, STL, MTP, ... C++11 có thêm lambdas, mở rộng STL các kiểu càng thú vị :beauty:

Arienth
15-05-2012, 23:35
C++ là ngôn ngữ mình thích nhất vì nó biến hoá khôn lường, STL, MTP, ... C++11 có thêm lambdas, mở rộng STL các kiểu càng thú vị :beauty:

Bắt tay cái nào.
Template là thứ làm cho mình không thể bỏ C++ được.

toibiho
16-05-2012, 16:10
I am in love with Python. Programming language of my life.

doom3
21-05-2012, 15:55
cái nào cũng tốt trừ là hàng của M$ ra thôi :D

anhtien9x
21-05-2012, 15:57
Mình thì theo C# và làm DotNetNuke ( Đương nhiên cũng phải có mấy cái CSS, JS hay HTML gì gì đó ... đại khái là để trang trí và nhẹ nhàng khi load )

pyttop
22-05-2012, 18:33
cái nào cũng tốt trừ là hàng của M$ ra thôi :D

:gach: Phát biểu kiểu này thì thôi rồi, trừ là trừ thế nào? Vẫn kiếm sống được đấy thôi, hy vọng thím không phải đang comment bằng máy chạy Windows :adore:

danqueqn
23-05-2012, 01:22
ôi lạy giời giờ em mới biết LAMP là 1 ngôn ngữ lập trình(bác học ở đâu chỉ em với) SQL là cơ cở dữ liệu ôi bác giỏi quá bác cho nó là ngôn ngữ lập trình hic hic cho em theo với

trời SQL mà ko phải ngôn ngữ lập trình hả :gach::gach::gach::gach:

potter.nguyen
23-05-2012, 18:00
Học cái nào mà chả được. Cơ mà bản thân em thì khoái Java :D

katz
25-05-2012, 10:11
trời SQL mà ko phải ngôn ngữ lập trình hả :gach::gach::gach::gach:

SQL là ngôn ngữ truy vấn dữ liệu (Structured Query Language - ngôn ngữ truy vấn mang tính cấu trúc) chứ k phải là ngôn ngữ lập trình

FighterVn
25-05-2012, 10:51
SQL là ngôn ngữ truy vấn dữ liệu (Structured Query Language - ngôn ngữ truy vấn mang tính cấu trúc) chứ k phải là ngôn ngữ lập trình

SQL (sometimes referred to as Structured Query Language) is a special-purpose programming language designed for managing data in relational database management systems (RDBMS).

HuhiShop
25-05-2012, 22:27
em khoái nhất php :D vì đang cần code này để lập trình web mua sắm :)

geany
26-05-2012, 08:13
Python + JavaScript hí hí :sexy:

Ca May
26-05-2012, 08:27
C sẽ lên ngôi. :))

mrclown1320
26-05-2012, 13:46
Java :sure:

toibiho
29-05-2012, 10:21
Python + JavaScript hí hí :sexy:

:sure:
Mà cái geany có gì hay? Mấy lần dùng thử cuối cùng vẫn gedit :adore:

hohoho90
29-05-2012, 20:59
Objective-C :byebye:

geany
29-05-2012, 21:24
:sure:
Mà cái geany có gì hay? Mấy lần dùng thử cuối cùng vẫn gedit :adore:

geany có cái explorer, console, launch shortcut... tiện lợi. Mà lâu lắm rồi ko dùng linux :sosad:

ptlinh9288
29-05-2012, 23:07
Ở VN, Java là dễ kiếm việc nhất rùi còn j (đơn jản vì nó free) :P

Stucker
30-05-2012, 11:01
Ở VN, Java là dễ kiếm việc nhất rùi còn j (đơn jản vì nó free) :P

Không biết phải thế không. Mình thấy đa số trên các trang tuyển dụng toàn PHP với C/C++ và Dot Net khá nhiều. Java cũng có nhưng hơi ít :((

mrclown1320
30-05-2012, 11:12
Ở VN, Java là dễ kiếm việc nhất rùi còn j (đơn jản vì nó free) :P

xỏ xiên gì vậy :gach:

toibiho
30-05-2012, 14:30
geany có cái explorer, console, launch shortcut... tiện lợi. Mà lâu lắm rồi ko dùng linux :sosad:

Gedit cài plugins lên cũng có vậy :D Nhưng cũng phải công nhận là Geany ngon hơn gedit nhiều :)

0h00.31/12/2012NewYear
15-05-2014, 17:43
Đá lên tí nào . bây giờ đã là 2014 . Các bác thấy thế nào :sexy:

abcd1234@
15-05-2014, 18:04
Đá lên tí nào . bây giờ đã là 2014 . Các bác thấy thế nào :sexy:

Có thể là ):adore::adore:

emgaimap
15-05-2014, 20:02
với việc JSON ngày càng chứng tỏ được khả năng của mình thì javascript không phải là không có khả năng

sam146
15-05-2014, 20:10
hiện tại mobile đang rất bá
nên học android (java) hoặc ios (objective-c)

foreveralone
15-05-2014, 22:18
javascript đang phát triển ở mọi nơi, tiềm năng với asm.js (tốc độ ~= Java/C# = 1/2 C).
Dễ code (cho người mới), tính structure rất cao.

manhdtcp.a
18-05-2014, 15:06
javascript đang phát triển ở mọi nơi, tiềm năng với asm.js (tốc độ ~= Java/C# = 1/2 C).
Dễ code (cho người mới), tính structure rất cao.

loose type, khó debug, perfomance kém, ý tưởng về OOP khá là dị so với mấy ngôn ngữ khác. Mặc dù kết e nó nhưng mình đoán tương lai 5 năm tới chưa thể trở thành hiện tượng được.
À, có cái "callback function" công nhận ngon :beauty:

thanhtunghp92
18-05-2014, 16:14
loose type, khó debug, perfomance kém, ý tưởng về OOP khá là dị so với mấy ngôn ngữ khác. Mặc dù kết e nó nhưng mình đoán tương lai 5 năm tới chưa thể trở thành hiện tượng được.
À, có cái "callback function" công nhận ngon :beauty:

ý cậu là "callback hell"?

ptncafe
18-05-2014, 18:00
html5+javascript+jquery

_sharp_
18-05-2014, 19:01
jquery

jquery ko được tính là ngôn ngữ lập trình

tulanght
18-05-2014, 19:45
Có thể là python, ruby trong thời gian tới.
Mình làm php, hay lượn trên Quora thấy tụi nó ghét php quá trời. php is disgusting, ugly :pudency:

RPG29
18-05-2014, 19:54
Có thể là python, ruby trong thời gian tới.
Mình làm php, hay lượn trên Quora thấy tụi nó ghét php quá trời. php is disgusting, ugly :pudency:

Quora, Reddit... Frontend build bằng Python, community toàn dân cuồng Python nên chả dìm hàng PHP :shame:

LordTNT
18-05-2014, 20:17
reddit cả backend cũng build = Python ấy chứ @_@

frontend làm sao có Python được... có html/css/js/ajax thôi chứ nhỉ?

RPG29
18-05-2014, 20:46
Reddit thì ko rõ backend nó là gì, còn Quora thì backend C++ là chủ yếu :byebye:

LordTNT
18-05-2014, 22:12
http://redditgifts.com/blog/view/redditgifts-hiring-back-end-developer/

July 26, 2013
Our technology is primarily python and django.

C++ viết web app thì chắc toàn là khổ dâm :sweat::sweat:

foreveralone
18-05-2014, 22:56
http://redditgifts.com/blog/view/redditgifts-hiring-back-end-developer/

C++ viết web app thì chắc toàn là khổ dâm :sweat::sweat:

Cũng không khổ dâm lắm đâu, người ta cũng dùng framework chứ có phải code từ stdlib đâu :surrender:

Cơ mà backend của Quora đa số là hệ thống recommender & score & rating, rewrite/rescale DBMS các kiểu, chứ web của nó vẫn main python mà :byebye:.

loose type, khó debug, perfomance kém, ý tưởng về OOP khá là dị so với mấy ngôn ngữ khác. Mặc dù kết e nó nhưng mình đoán tương lai 5 năm tới chưa thể trở thành hiện tượng được.

performance kém thì không đâu, như mình viết ở bài trên đó, những cái gì mà cần sức mạnh tính toán chúng nó toàn vác C/C++ ra code => compile ra asm.js, chạy vù vù nhé.
Mấy cái physics engine như box2d port lên js giờ chạy hơi bị kinh đấy :go:

LordTNT
19-05-2014, 04:46
js nhanh cỡ nào thì cũng phải chạy trong browser phải ko :-? Nếu vậy thì có lẽ còn tệ hơn cả Java phải chạy jvm nữa. Game nặng nặng tí, ví dụ chạy trên máy tính "phổ thông" được 30fps, nhưng chạy trên js thì dù có asm.js đi nữa thì cũng cỡ 10-15fps, vậy là chơi ko nổi rồi @.@

thanhtunghp92
19-05-2014, 05:05
Có thể là python, ruby trong thời gian tới.
Mình làm php, hay lượn trên Quora thấy tụi nó ghét php quá trời. php is disgusting, ugly :pudency:

Đã dùng thử mấy ngôn ngữ như python/ruby/lua chưa :) dùng rồi sẽ biết tại sao php bị chửi :)

(ps: nhân tiện thì, ruby chửi python là robot, python chửi ruby là hippie, 2 bên nhìn lua với ánh mắt ngưỡng mộ "giá mình cũng có cái jit ngon thế", lua nhìn lại mình trần truồng không quần áo (ý nói về libraries) cảm thấy khá tủi cho nên ko thấy ai khoe khoang bao giờ :()

Mà tại sao tôi lại thấy ghét mấy cái ngôn ngữ whitespace sensitive (python, coffeescript, moonscript, genie các kiểu) thế nhỉ.

Btw, reddit dùng là pylon (pyramid) chứ có phải là django đâu nhỉ :/

Ờ mà cái asm.js bạn trên nói, nhớ là project của Mozilla thôi mà, có phải là browser nào cũng support đâu. Cũng đếch tương thích với nodejs.

pps: bây giờ thì ko biết thế nào chứ mình nghĩ tương lai sẽ có chỗ cho Rust (http://www.rust-lang.org/) :">

LordTNT
19-05-2014, 07:38
Go của Google còn lên ko nổi, Rust của Mozilla tuổi gì :look_down:

cái kia nhìn lại là redditgifts... dù sao thì reddit vẫn xài python chủ yếu :">

RPG29
19-05-2014, 08:18
Go hiện đã có một số dịch vụ dùng cho môi trường production rồi, điển hình như Disqus. Ở VN dùng Go trong môi trường production thì có FPT Online, ngoài ra còn nơi nào dùng Go nữa ko thì mình ko biết :shame:
Cá nhân thì ko thích Go lắm do cú pháp nó cứ lai lai khó chịu :shame:

thanhtunghp92
19-05-2014, 08:49
Go hiện đã có một số dịch vụ dùng cho môi trường production rồi, điển hình như Disqus. Ở VN dùng Go trong môi trường production thì có FPT Online, ngoài ra còn nơi nào dùng Go nữa ko thì mình ko biết :shame:
Cá nhân thì ko thích Go lắm do cú pháp nó cứ lai lai khó chịu :shame:

Giờ có trào lưu dùng go thay vì nodejs. Mà cơ bản thì go hay node dùng cho web service thì tốt chứ bảo build the whole stack thì...

Mà công nhận cái cú pháp của Go không cảm tình nổi.

Btw, cậu LordTNT nếu không chắc về cái gì đó thì nên thử tìm hiểu (aka google), đừng lên đây nói mấy câu tuyên bố cái rụp (go, rust, javascript speed) các kiểu làm cụt hứng thảo luận.

Đặc biệt là về mấy cái ngôn ngữ lập trình thì nên vào lambda-the-ultimate.org.

LordTNT
19-05-2014, 09:09
hề hề cái asm.js hồi trước, chắc hơn 1 năm trước có nghe nói là tốc độ nó thua native gấp đôi, ta nghĩ nó na ná như Java nên ko nghĩ là sẽ ko bao giờ tốc độ nó nhanh bằng được.

với lại nói sai thì trong này chỉnh luôn, gu gồ chi cho mất công :">

thanhtunghp92
19-05-2014, 10:11
cái chính là cậu làm người ta lười chỉnh cậu. ví dụ như cậu so sánh asm.js với java trong.... game.

Cái này thì cậu muốn so sánh cái gì? java hay asm nếu dùng opengl thì load nặng đều do gpu tải hết, chủ yếu so sánh với nhau xem thằng nào ít overload hơn, gc tốt hơn, event loop tốt hơn mà thôi... mà nói cái này, nói thật thằng nào khen java tôi cười vào mặt. Tất nhiên đấy chỉ là nói về game thôi, còn thực tế tốc độ của javascript (đúng hơn là của mấy cái dynamic typed language) có optimize đến đâu cũng khó sánh dc với mấy cái static typed, lý do đơn giản là mấy cái static nó đã biết trước kiểu của dữ liệu cho nên có nhiều cách optimize cho từng kiểu dữ liệu riêng... (hay như lua tuy dynamic, nhưng dữ liệu chỉ có 4 kiểu number, string (intern), table với userdata, cho nên viết jit + optimize cũng dễ, cho nên tốc độ của luajit2 nó mới nổi bật so với anh em cùng lớp như thế)

RPG29
19-05-2014, 10:19
Giờ có trào lưu dùng go thay vì nodejs. Mà cơ bản thì go hay node dùng cho web service thì tốt chứ bảo build the whole stack thì...

Mà công nhận cái cú pháp của Go không cảm tình nổi.


Đồng quan điểm, bắt tay :sexy:
Go hay Nodejs chỉ phù hợp để build các service, là một trong các thành phần trong toàn hệ thống hơn là gượng ép nó thành full-stack solution :D

LordTNT
19-05-2014, 10:52
hồi trước ta biết tới asm.js là do cái bài nó bảo compile toàn bộ code C/C++ của Unreal engine 2 hay 3 qua js và WebGL, nhưng chạy thử demo thì chắc 5-6fps ( máy cùi =) ) Đại khái như cái tin này http://www.extremetech.com/gaming/154994-epic-mozilla-release-unreal-engine-3-html5-demo-to-the-public-and-its-awesome nên mới bàn về game mà :-"

Nhớ lại cái này thì ko hiểu tại sao Java lại ko có 1 cái 3d physics engine nào xịn được? Ta ko rành Java nên mới ko dám bash nó =))

foreveralone
19-05-2014, 14:42
Ờ mà cái asm.js bạn trên nói, nhớ là project của Mozilla thôi mà, có phải là browser nào cũng support đâu. Cũng đếch tương thích với nodejs.


Chrome + Opera support luôn rồi nhé.

@LordTNT: cái Epic Citadel của engine mình chạy 55+ fps nhé bạn (thường là 59-60), nhìn nó chạy hoành tráng trên browser mà cảm động chảy nước mắt :sosad:

cobain
19-05-2014, 16:52
Đồng quan điểm, bắt tay :sexy:
Go hay Nodejs chỉ phù hợp để build các service, là một trong các thành phần trong toàn hệ thống hơn là gượng ép nó thành full-stack solution :D

Dạo này phong trào bỏ php chuyển sang node.js khá cao ở các nơi outsource đặc biệt là ở các job build APIs/Services.

thanhtunghp92
19-05-2014, 18:07
Nhớ lại cái này thì ko hiểu tại sao Java lại ko có 1 cái 3d physics engine nào xịn được? Ta ko rành Java nên mới ko dám bash nó =))

cũng đếch quan tâm tới java (game), nhưng nhớ là minecraft huyền thoại chạy hoàn toàn trên java :))

bribnt
19-05-2014, 18:39
cái chính là cậu làm người ta lười chỉnh cậu. ví dụ như cậu so sánh asm.js với java trong.... game.

Cái này thì cậu muốn so sánh cái gì? java hay asm nếu dùng opengl thì load nặng đều do gpu tải hết, chủ yếu so sánh với nhau xem thằng nào ít overload hơn, gc tốt hơn, event loop tốt hơn mà thôi... mà nói cái này, nói thật thằng nào khen java tôi cười vào mặt. Tất nhiên đấy chỉ là nói về game thôi, còn thực tế tốc độ của javascript (đúng hơn là của mấy cái dynamic typed language) có optimize đến đâu cũng khó sánh dc với mấy cái static typed, lý do đơn giản là mấy cái static nó đã biết trước kiểu của dữ liệu cho nên có nhiều cách optimize cho từng kiểu dữ liệu riêng... (hay như lua tuy dynamic, nhưng dữ liệu chỉ có 4 kiểu number, string (intern), table với userdata, cho nên viết jit + optimize cũng dễ, cho nên tốc độ của luajit2 nó mới nổi bật so với anh em cùng lớp như thế)

Luajit công nhận nhanh.
Hôm nọ thử chạy cái benchmark đơn giản liên quan đến thao tác xâu + hash map mà luajit nó nhanh hơn C++ đã -O3 -march=native khoảng 3-4 lần. Một phần cũng có thể là do std::string của C++ perf kém.

thanhtunghp92
19-05-2014, 19:22
Luajit công nhận nhanh.
Hôm nọ thử chạy cái benchmark đơn giản liên quan đến thao tác xâu + hash map mà luajit nó nhanh hơn C++ đã -O3 -march=native khoảng 3-4 lần. Một phần cũng có thể là do std::string của C++ perf kém.

cái này liên quan tới việc lua intern string (http://en.wikipedia.org/wiki/String_interning) thôi chứ cũng ko phải là sức mạnh của jit. Nhưng mà việc intern tuy tiết kiệm bộ nhớ + cực nhanh khi so sánh string + lookup, bù lại có overhead mỗi khi gọi một string mới (cần hash xem xâu đã tồn tại hay chưa) cho nên nếu dùng lua (hay java, hay javascript, mấy ngôn ngữ có dùng string intern) xử lý trên string cực kì chậm + tốn bộ nhớ (vì mỗi sửa một ký tự đều sẽ tạo ra một xâu mới)

btw, ruby có trò khá hay là string dưới 23 ký tự thì dc intern (ruby có một kiểu dữ liệu dạng symbol riêng) còn lại thì giữ nguyên, mutable. Cái này học theo perl thì phải.

nho430
19-05-2014, 19:46
C# nhé :byebye::byebye:

LordTNT
19-05-2014, 20:34
do string của C++ mỗi lần hash phải hash lại từ đầu nên sẽ chậm hơn khi tìm kiếm key trong hash map so với mấy ngôn ngữ mà string là immutable, đã được lưu sẵn hash code khi khởi tạo.

vd định nghĩa 1 kiểu mới là HashString lưu sẵn hash code, mỗi lần look up ko phải tính hash lại: http://ideone.com/QCxidQ (0.24s), so với xài string thông thường: http://ideone.com/Gljc3k (1.3s). Đương nhiên đây là extreme case thôi nhưng cũng cho thấy là C++ nó phải hash string lại mỗi lần tìm kiếm (xài std::hash) nên luôn chậm hơn.

bù lại mấy thằng xài immutable string ko có vụ s[i] = 'a' được, chỉnh sửa có 1 2 ký tự mà cũng phải tạo 1 chuỗi hoàn toàn mới. C++ thì định nghĩa 1 kiểu "chuỗi" mới như mấy ngôn ngữ này để tăng tốc độ tìm kiếm trong hash map cũng được mà :-"

bribnt
19-05-2014, 21:03
cái này liên quan tới việc lua intern string (http://en.wikipedia.org/wiki/String_interning) thôi chứ cũng ko phải là sức mạnh của jit. Nhưng mà việc intern tuy tiết kiệm bộ nhớ + cực nhanh khi so sánh string + lookup, bù lại có overhead mỗi khi gọi một string mới (cần hash xem xâu đã tồn tại hay chưa) cho nên nếu dùng lua (hay java, hay javascript, mấy ngôn ngữ có dùng string intern) xử lý trên string cực kì chậm + tốn bộ nhớ (vì mỗi sửa một ký tự đều sẽ tạo ra một xâu mới)

btw, ruby có trò khá hay là string dưới 23 ký tự thì dc intern (ruby có một kiểu dữ liệu dạng symbol riêng) còn lại thì giữ nguyên, mutable. Cái này học theo perl thì phải.

Benchmark theo cái này:
https://gist.github.com/spion/3049314

Trên máy mình thì c++ chạy hết 1s, luajit chạy hết cỡ 0.25.
Thử chuyển từ std::string sang boost::flyweight (cũng theo cơ chế string intern, lấy địa chỉ của string làm giá trị hash cho nó luôn) thì nhanh hơn (trung bình 4s) nhưng vẫn chậm hơn luajit.


#include
#include
#include
#include
#include
#include
#include

using namespace std;

//typedef boost::flyweight string2;
typedef boost::flyweight string2;

struct CustomHash {
size_t operator() (const string2& s) const {
return reinterpret_cast(s.get().data());
}
};

int main() {

vector _text = {"The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog", "at", "a", "restaurant", "near", "the", "lake", "of", "a", "new", "era"};
vector text(_text.begin(), _text.end());
// unordered_map cnt;
unordered_map cnt;
int times = 1000000;
while (times--)
for (auto it = text.begin(); it != text.end(); ++it)
cnt += 1;

for (auto it = cnt.begin(); it != cnt.end(); ++it) {
cout << it->first << " " << it->second << endl;
}
}

Bác có cách nào tối ưu hơn không ?

hallage
20-05-2014, 14:16
Benchmark theo cái này:
https://gist.github.com/spion/3049314

Bác có cách nào tối ưu hơn không ?

Chả có nhẽ C++ lại chậm thế :sosad:

edited: phán bừa xong build hỏng

asianpacific
24-05-2014, 15:08
101101100111
101101111000
100100011000
100000000001

Đọc chả hiểu gì :sosad: nhưng bù lại chạy nhanh nhất :pudency:

tao_la_giang
27-05-2014, 08:35
Ngôn ngữ cũng có điểm quan trọng của nó chứ!
Nhiều người dùng thì có gì thắc mắc cũng khỏe.
Mình dùng Delphi (hàng hiếm ở Việt Nam hiện tại :badsmell:)

.NET và JRE là FRAME WORK, ko phải là ngôn ngữ lập trình...

Delphi em nhớ có thầy Lê Minh Hoàng (từng dạy ở ĐHSP, giờ hình như đang ở Nhật, tác giả của FFSJ và quyển sách DSAP Textbook cho học sinh và sinh viên) cũng chuyên hẳn về ngôn ngữ này

Paccino
30-05-2014, 15:11
Các bác cho em hỏi một chút, theo em biết thì Java vừa biên dịch vừa thông dịch (có thêm JIT Compiler) và người ta gọi là Virtual Machine (JVM). Còn Perl, PHP, Python, Ruby... cũng có thông dịch sao người ta chỉ gọi là interpreter?
Muốn được gọi là VM phải đạt tiêu chuẩn gì hay đơn thuần chỉ là cái tên mà người tạo ra ngôn ngữ đó gọi?

Vd như Python cũng có biên dịch thông dịch sao người ta ko gọi là Python VM?

tao_la_giang
30-05-2014, 15:27
Các bác cho em hỏi một chút, theo em biết thì Java vừa biên dịch vừa thông dịch (có thêm JIT Compiler) và người ta gọi là Virtual Machine (JVM). Còn Perl, PHP, Python, Ruby... cũng có thông dịch sao người ta chỉ gọi là interpreter?
Muốn được gọi là VM phải đạt tiêu chuẩn gì hay đơn thuần chỉ là cái tên mà người tạo ra ngôn ngữ đó gọi?

Vd như Python cũng có biên dịch thông dịch sao người ta ko gọi là Python VM?

Câu hỏi hay, hóng luôn đáp án.

vietkatz
30-05-2014, 16:12
Câu hỏi hay, hóng luôn đáp án.

Cái này mình nói theo cách hiểu của mình nhé:

1. Về phần Java, code sẽ được thông dịch với JIT Compiler, thành mã máy đặc biệt, dùng để chạy trên Java Virtual Machine.
2. Còn về Intepreter, code sẽ không được thông dich, mà intepreter sẽ đọc qua code, sau đó tạo ra hành động tương ứng với code.

thanhtunghp92
30-05-2014, 18:12
Các bác cho em hỏi một chút, theo em biết thì Java vừa biên dịch vừa thông dịch (có thêm JIT Compiler) và người ta gọi là Virtual Machine (JVM). Còn Perl, PHP, Python, Ruby... cũng có thông dịch sao người ta chỉ gọi là interpreter?
Muốn được gọi là VM phải đạt tiêu chuẩn gì hay đơn thuần chỉ là cái tên mà người tạo ra ngôn ngữ đó gọi?

Vd như Python cũng có biên dịch thông dịch sao người ta ko gọi là Python VM?

cái chuyện thông dịch và biên dịch (compiler/interpreter) nó nằm ở phạm trù "implement" chứ ko phải là phạm trù của ngôn ngữ.

Ví như C cũng có thể interpret bình thường (eg: https://www.softintegration.com/) hay compiler cho ruby/python (ruby thì hiếm hơn, python có vài cái dùng tàm tạm)...
mà nói đến phạm trù này, lại nhảy ra một chuyện là compile ra cái gì? Một compiler target không chỉ là ngôn ngữ máy (mà nói đến ngôn ngữ máy lại phải nói đến x64, x86, arm... các kiểu), cũng có thể là câu lệnh của virtual machine (điển hình nhất là jvm, rồi thì llvm, luajit, dotnet, ruby có yavm, python có pypy...), cũng có thể là ngôn ngữ lập trình khác (phổ biến nhất bây giờ là series các ngôn ngữ được dịch sang javascript, như coffeescript, typescript, dart, livescript, opal các kiểu....)....

tl:dr: về lý thuyết thì bất cứ ngôn ngữ nào cũng có thể compile dc hay interpret được. Vấn đề ở đây là ai sẽ là người làm mấy cái interpreter hay compiler đó mà thôi.

Quay trở lại với mấy ngôn ngữ ở trên, ruby/python các kiểu vì có những chức năng như là dynamic typing, garbage collection, class monkey patching, metaprograming, functional programing... nói chung rất nhiều cấu trúc phức tạp... cho nên ban đầu những người implements ngôn ngữ đầu tiên (những bản CRuby CPython ban đầu) chọn viết interpreter cho nó dễ mà thôi.


Cho nên khi nói một ngôn ngữ là phiên dịch hay thông dịch thì phải nói về cái implement nào của nó. Mấy cái thằng gọi một ngôn ngữ là thông dịch hay biên dịch thì hoặc là thiếu hiểu biết, hoặc là mặc định nói đến cái implements phổ biến nhất của nó. Tất nhiên cái câu hỏi của cậu biến thành câu hỏi "ruby python cũng có jit, cũng có vm tại sao vẫn gọi là interpreter" là vì lúc người ta biết ruby và python, họ chỉ biết được cái interpreter implement viết bằng C của mấy ngôn ngữ đó thôi.

Ruby đến bản 1.9 mới có virtual machine, 1.8 vẫn dùng MRI (C implement của Matz), python thì hình như lên 3.0 mới có.

Nếu bảo ruby là interpreter, vậy rubinius, jruby, macruby, ironruby là cái vẹo gì?

ps: viết dưới sự mặc định là cậu hiểu thế nào là interpreter, thế nào là compiler. Nếu phần đó chưa hiểu rõ lắm thì mình có thể giải thích thêm.

Paccino
01-06-2014, 20:55
Thực ra thì em hiểu ngôn ngữ là chỉ spec của nó bao gồm syntax và các tính năng này nọ, implement dạng compiler hay interpreter hay quái gì đó là tùy :byebye:
Chỉ là em thắc mắc tại sao "môi trường để chạy" Java Bytecode đc gọi là VM còn Python Bytecode lại ko gọi là VM. CPython từ hồi v2 đã thấy compile ra pyc rồi đc interpreter thông dịch như Java :D

thanhtunghp92
01-06-2014, 21:33
http://programmers.stackexchange.com/questions/136942/why-doesnt-python-need-a-compiler
http://programmers.stackexchange.com/questions/24558/is-python-interpreted-or-compiled

tóm lại một câu thì câu hỏi này khá là vô nghĩa, cậu thấy có vấn đề (như java dc gọi là vm còn python thì không) chẳng qua là do người ta kiến thức chưa đủ, hoặc là nói đại khái mà thôi.

Thuong ve xom tro
01-06-2014, 23:13
cái chuyện thông dịch và biên dịch (compiler/interpreter) nó nằm ở phạm trù "implement" chứ ko phải là phạm trù của ngôn ngữ.

Ví như C cũng có thể interpret bình thường (eg: https://www.softintegration.com/) hay compiler cho ruby/python (ruby thì hiếm hơn, python có vài cái dùng tàm tạm)...
mà nói đến phạm trù này, lại nhảy ra một chuyện là compile ra cái gì? Một compiler target không chỉ là ngôn ngữ máy (mà nói đến ngôn ngữ máy lại phải nói đến x64, x86, arm... các kiểu), cũng có thể là câu lệnh của virtual machine (điển hình nhất là jvm, rồi thì llvm, luajit, dotnet, ruby có yavm, python có pypy...), cũng có thể là ngôn ngữ lập trình khác (phổ biến nhất bây giờ là series các ngôn ngữ được dịch sang javascript, như coffeescript, typescript, dart, livescript, opal các kiểu....)....

tl:dr: về lý thuyết thì bất cứ ngôn ngữ nào cũng có thể compile dc hay interpret được. Vấn đề ở đây là ai sẽ là người làm mấy cái interpreter hay compiler đó mà thôi.

Quay trở lại với mấy ngôn ngữ ở trên, ruby/python các kiểu vì có những chức năng như là dynamic typing, garbage collection, class monkey patching, metaprograming, functional programing... nói chung rất nhiều cấu trúc phức tạp... cho nên ban đầu những người implements ngôn ngữ đầu tiên (những bản CRuby CPython ban đầu) chọn viết interpreter cho nó dễ mà thôi.


Cho nên khi nói một ngôn ngữ là phiên dịch hay thông dịch thì phải nói về cái implement nào của nó. Mấy cái thằng gọi một ngôn ngữ là thông dịch hay biên dịch thì hoặc là thiếu hiểu biết, hoặc là mặc định nói đến cái implements phổ biến nhất của nó. Tất nhiên cái câu hỏi của cậu biến thành câu hỏi "ruby python cũng có jit, cũng có vm tại sao vẫn gọi là interpreter" là vì lúc người ta biết ruby và python, họ chỉ biết được cái interpreter implement viết bằng C của mấy ngôn ngữ đó thôi.

Ruby đến bản 1.9 mới có virtual machine, 1.8 vẫn dùng MRI (C implement của Matz), python thì hình như lên 3.0 mới có.

Nếu bảo ruby là interpreter, vậy rubinius, jruby, macruby, ironruby là cái vẹo gì?

ps: viết dưới sự mặc định là cậu hiểu thế nào là interpreter, thế nào là compiler. Nếu phần đó chưa hiểu rõ lắm thì mình có thể giải thích thêm.
giải thích tiếp đi bác :byebye::byebye:

Endity
05-06-2014, 20:42
Hôm rồi có nói chuyện với một ông senior....ông hỏi mình thấy thế nào về các ngôn ngữ lập trình...mình bảo ngôn ngữ lập trình chỉ là phụ, quan trọng là tư duy thuật toán cũng như logic...thế rồi ông gạt phăng, bảo là em sai lầm nặng rồi, lập trình viên cần đào sâu làm việc với 1 ngôn ngữ, code thật nhiều, thật thuần thục 1 ngôn ngữ đó...
Các bác thấy mình đúng hay ổng đúng :pudency:

_sharp_
05-06-2014, 20:51
lập trình viên cần đào sâu làm việc với 1 ngôn ngữ, code thật nhiều, thật thuần thục 1 ngôn ngữ đó...:

Chắc ý của bác đấy là chỉ cần thuần thục 1 ngôn ngữ và chiến được hết web/win/services/mobile/...và framework nào build trên ngôn ngữ đấy cũng ôm được hết!

baodng
05-06-2014, 21:05
Trong tương lai gần thì web vẫn chiếm đại đa số thị phần, và di động bắt đầu lên ngôi.
Về web thì khó nói nhưng tựu chung có 3 thằng vẫn đầu bảng là ASP.Net, Java, PHP.
Về di động thấy có vẻ Windows Phone đang phất lên, nhưng chắc trong 5 nữa chưa thể đạp nổi Android xuống, còn iOS thì còn tùy chất lượng và giá cả có giảm ko mới có nhìu người dùng hơn, nên mảng di động đề cử: C#, Java, Object-C.

foreveralone
05-06-2014, 21:05
Hôm rồi có nói chuyện với một ông senior....ông hỏi mình thấy thế nào về các ngôn ngữ lập trình...mình bảo ngôn ngữ lập trình chỉ là phụ, quan trọng là tư duy thuật toán cũng như logic...thế rồi ông gạt phăng, bảo là em sai lầm nặng rồi, lập trình viên cần đào sâu làm việc với 1 ngôn ngữ, code thật nhiều, thật thuần thục 1 ngôn ngữ đó...
Các bác thấy mình đúng hay ổng đúng :pudency:

Đương nhiên là ổng đúng :nosebleed:, nếu bạn không phải là 1 computer scientist suốt ngày nghiên cứu các thuật toán (mà ở đây bàn luận về lập trình viên) thì cái bạn nói nó chỉ là 1 yếu tố trong công việc mà thôi. Và nó quan trọng nhất là ở khi mình học, chứ không phải là ở lúc mình làm. Làm cái nghề lập trình này nó còn nhiều yếu tố lắm.

rongthienglua
06-06-2014, 01:48
C/C++, Objective-C và Python sẽ thọ dài .....

bribnt
06-06-2014, 13:48
Hôm rồi có nói chuyện với một ông senior....ông hỏi mình thấy thế nào về các ngôn ngữ lập trình...mình bảo ngôn ngữ lập trình chỉ là phụ, quan trọng là tư duy thuật toán cũng như logic...thế rồi ông gạt phăng, bảo là em sai lầm nặng rồi, lập trình viên cần đào sâu làm việc với 1 ngôn ngữ, code thật nhiều, thật thuần thục 1 ngôn ngữ đó...
Các bác thấy mình đúng hay ổng đúng :pudency:

Tùy từng đối tượng, từng hoàn cảnh khác nhau mà cái này quan trọng cái này không. Ở mức độ tư duy thuật toán thì thấy ngôn ngữ nào cũng thế cả , mã giả là đủ rồi, nhưng đến khi cài đặt thuật toán cho từng ngôn ngữ cụ thể rồi mới thấy cả đống vấn đề nảy sinh.
Mà không phải ai chuyên về thuật toán cũng nghĩ vậy đâu, Donand Knuth trong cuốn TAOCP sử dụng Assembly cho các ví dụ thuật toán chứ không phải mã giả hay một ngôn ngữ nào khác. Tại vì chỉ có Assembly mới thể hiện đúng được độ phức tạp tính toán của thuật toán, trong khi với mã giả thì nhiều khi chỉ là một câu lệnh thôi nhưng thực chất nó chứa đến hàm mũ các câu lệnh hợp ngữ.

Nói ngôn ngữ chỉ là phụ, ... quan trọng là tư duy cũng không đúng. Giờ giả sử bạn chỉ quen học mấy ngôn ngữ imperative như C,C++, Java, ... mà đột nhiên chuyển sang học ngôn ngữ declarative như Haskell xem có đơn giản không ? Ngôn ngữ nó cũng có ảnh hưởng ngược lại đến tư duy nữa đấy.

buihoanghai10
06-06-2014, 18:21
Đang làm javascript với Angular. 1 vote cho em nó.

scorpion2013
06-06-2014, 18:31
em theo python nhìn cái bảng mà có niềm tin hơn rùi, keke

Endity
07-06-2014, 12:53
Tùy từng đối tượng, từng hoàn cảnh khác nhau mà cái này quan trọng cái này không. Ở mức độ tư duy thuật toán thì thấy ngôn ngữ nào cũng thế cả , mã giả là đủ rồi, nhưng đến khi cài đặt thuật toán cho từng ngôn ngữ cụ thể rồi mới thấy cả đống vấn đề nảy sinh.
Mà không phải ai chuyên về thuật toán cũng nghĩ vậy đâu, Donand Knuth trong cuốn TAOCP sử dụng Assembly cho các ví dụ thuật toán chứ không phải mã giả hay một ngôn ngữ nào khác. Tại vì chỉ có Assembly mới thể hiện đúng được độ phức tạp tính toán của thuật toán, trong khi với mã giả thì nhiều khi chỉ là một câu lệnh thôi nhưng thực chất nó chứa đến hàm mũ các câu lệnh hợp ngữ.

Nói ngôn ngữ chỉ là phụ, ... quan trọng là tư duy cũng không đúng. Giờ giả sử bạn chỉ quen học mấy ngôn ngữ imperative như C,C++, Java, ... mà đột nhiên chuyển sang học ngôn ngữ declarative như Haskell xem có đơn giản không ? Ngôn ngữ nó cũng có ảnh hưởng ngược lại đến tư duy nữa đấy.
Em biết là ngôn ngữ lập trình nhiều và phức tạp....có lẽ là do hơi misunderstand với ông senior đó....em nghĩ là NGÔN NGỮ thì nó là công cụ để giao tiếp với máy...kiểu như ngoại ngữ...có thằng có khả năng hùng biện nhưng chưa biết sâu một ngoại ngữ nào thì học xong nó vẫn có khả năng chém gió tốt, còn thằng tinh thông tiếng mẹ đẻ, slang, phrase nắm rõ như bàn tay nhưng ko biết chém gió thì e nghĩ nó vẫn không tốt :pudency:
Tất nhiên không phải e phủ nhận việc tinh thông 1 ngôn ngữ lập trình, nhưng đầu óc tư duy nhanh nhạy, giải quyết các bài toán theo các cách optimize nhất thì vẫn là ưu tiên hơn chứ ạ?

LordTNT
07-06-2014, 20:10
biết thuật toán / cấu trúc dữ liệu tối ưu là 1, áp dụng nó viết code cho máy tính chạy là 2. Tốt nhất là biết cả 2. Biết 1 mà ko biết 2 là biết cách giải quyết vấn đề tối ưu nhưng ko biết cách trình bày cho máy tính hiểu/hoặc trình bày quá lủng củng thì cũng vô dụng.

Vd thuật toán tìm phần tử lớn nhất và lớn thứ 2 trong mảng n phần tử, về lý thuyết tốn ít nhất là n + logn - 2 so sánh, thay vì 2n - 3. Nhưng trình bày thế nào cho máy tính giải quyết tối ưu nhất thì là vấn đề khác... Trình bày dở thì tuy là n + logn - 2 nhưng chạy còn tệ hơn 2n - 3.

vozEight
09-06-2014, 20:18
Có thím nào code iOS không, sau này không phải học Obj-C mà học luôn Swift đc ko :adore:

Sent from my ↖(^▽^)↗ using vozForums (https://play.google.com/store/apps/details?id=com.nna88.voz.main)

Joindate_2014
23-06-2014, 04:20
Java với C++ :sexy:

rfcclub2011
23-06-2014, 13:51
Có thím nào code iOS không, sau này không phải học Obj-C mà học luôn Swift đc ko :adore:

Sent from my ↖(^▽^)↗ using vozForums (https://play.google.com/store/apps/details?id=com.nna88.voz.main)

Thực chất là được. Syntax của Swift trông dị như Rust, Scala và đương nhiên cũng có 1 phần giống Objective-C.

jvinhit
23-06-2014, 22:53
vẫn sẽ là Java, PHP, Python, C#, HTML5 , CSS3 ...:go:

daivuong3
23-06-2014, 23:28
Tôi tin rằng ngôn ngữ C++ sẽ lên ngôi, không thì phải đóng tiền học lại :D

chandoituky2014
24-06-2014, 02:10
Mình thấy mấy bạn nhảm quá, tốt nhất không nên hỏi ngôn ngữ nào mà là xu hướng nào lên ngôi, bạn định đi theo hướng nào. Ví dụ nhé, bây giờ nếu xu hướng là web thì học js,css,php,mysql, còn realtime web thì cứ node.js, nosql, mobile thì java + swift, desktop app thì cứ .NET,C# mà phanh, làm bên mấy thứ low-level thì c++, còn general hoặc mới học lập trình thì c++, python. Chứ nghe theo kiểu ngôn ngữ này ngon hơn ngôn ngữ kia thì học biết chừng nào mà hết :go:

huesaudoi122
28-06-2014, 18:42
PHP Jquery Ajax + 1CMS + 1 Framework khỏi lo thất nghiệp :look_down:

VozerDichThuc
28-06-2014, 20:31
Giống như hỏi xem giữa nói tiếng Hoa với tiếng Nhật cái nào hot hơn vậy?
Ngôn ngữ lập trình là cách giao tiếp giữa con người và máy thôi. Chủ yếu là con người biết được mình sẽ ra lệnh cho máy điều gì, còn nói bằng tiếng gì thì tùy mình chứ.

aquafina90
29-06-2014, 11:33
Ngôn ngữ lập trình cuối cùng cũng chỉ là công cụ thôi, cái quan trọng là giải quyết vấn đề như thế/bằng cách nào

aquafina90
29-06-2014, 11:35
Có thím nào code iOS không, sau này không phải học Obj-C mà học luôn Swift đc ko :adore:

Sent from my ↖(^▽^)↗ using vozForums (https://play.google.com/store/apps/details?id=com.nna88.voz.main)

Không học Objective-C thì khó làm iOS lắm bạn, kể cả sau này Swift có lên ngôi đi chăng nữa (mà theo mình nghĩ chuyện này là ko thể).

foreveralone
29-06-2014, 12:11
Không học Objective-C thì khó làm iOS lắm bạn, kể cả sau này Swift có lên ngôi đi chăng nữa (mà theo mình nghĩ chuyện này là ko thể).

Sao không bạn, swift được apple định hướng dùng để lập trình cho iOS trong tương lai cơ mà :surrender:, nó ra 1 ngôn ngữ mới đâu phải để trưng :nosebleed:.

Cái mà luôn luôn bắt buộc phải học khi học iOS là cái cocoa framework thôi. Nắm rõ đc cái framework đó thì dùng ruby cũng viết đc iOS chứ chả cần tới swift.

P/S: các bác đem so sánh ngôn ngữ lập trình với ngôn ngữ con người thật là hài hước :gach:. Bản thân ngôn ngữ lập trình nó không chỉ là cách để giao tiếp với máy, mà nó đc đẻ ra để giải quyết những vấn đề khác nhau. Vì nếu ngôn ngữ nào cũng như ngôn ngữ nào thì thế giới này chỉ quy về 2-3 ngôn ngữ là hết.

Ngôn ngữ lập trình nó là những công cụ giải quyết vấn đề. Các ngôn ngữ khác nhau phù hợp với việc giải quyết những vấn đề khác nhau. Phải hiểu rõ điều này để chọn những tool phù hợp với mình. Chứ không phải "tôi muốn lập trình web, nhưng tôi giỏi C xưa giờ, tôi ếu cần ngôn ngữ khác" :go:

Ruby Blood
29-06-2014, 15:00
Thời gian sẽ qua đi, ngôn ngữ sẽ là nhất thời, thuật toán sẽ là mãi mãi.

shanks02
14-11-2014, 18:11
Mộ ơi là mộ