10 Ngôn ngữ lập trình thuộc dạng... "khó ở" nhất

@superthin Cái này mình chưa nghe bao giờ, mình chỉ biết cái engine để chạy javascript là V8 trên Chrome và SpiderMonkey trên Firefox được tạo ra bằng C và C++ thôi.

Thứ hai, bạn hình như chưa biết về lịch sử các bản ECMAScript thì phải. Về việc Javascript “học hỏi” từ C# là hoàn toàn có căn cứ. Hồi xưa Javascript làm chi có LINQ, arrow function, async/await? Phải đến bản ES6 phát hành năm 2015 thì mới có mấy cái đó, trong khi C# đã có từ lâu rồi, nếu thử đối chiếu giữa hai bên thì bạn sẽ thấy LINQ, arrow function, async/await bên Javascript khá giống C#

1 Like

Mình thì không rõ về ngôn ngữ lập trình theo cái kiểu có thể phân tích sâu để xem về cú pháp, các khái niệm, paragigm, imperative,… nhưng nói về việc thằng ra đời sau lại đi học thằng ra đời trước thường là cách nói cần được diễn giải, chỉ ra vài điểm cụ thể để giúp người khác học thêm được gì đó mới mẻ. Tránh trường hợp gây rối loạn suy nghĩ kiểu ông cha hưởng DNA từ ông con thì đa phần không theo cách nghĩ bình thường trong XH.
Theo trên Wikipedia thì JavaScript là ngôn ngữ:
Selection_033

C# chưa thấy xuất hiện trong danh sách các ngôn ngữ ảnh hưởng đến JavaScript. Vì thế, nếu bạn Duong_Act chỉ ra được, nên giúp edit lại bài Wikipedia để cho nó được cập nhật, và chất hơn.

Thông thường, ít ai lý luận như vậy trừ vài trường hợp đặc biệt. Ví dụ như các môn võ là qua thời gian học hỏi nhau rất nhiều nhưng không thể nói rằng môn võ có trước lại chịu ảnh hưởng của môn võ đi sau thì… không mấy người dễ nghe lọt tai, khi không lọt tai => không tiếp nhận được gì hay.

2 Likes

@Shane_Benjamin_Benne Nani!? Thế bạn giải thích đoạn code phía dưới cho mình xem:

let data = {
    isJShasOOP: true,
    youngbuffalo: true
}
let jsoop = data.isJShasOOP ? "Có" : "Không";
let tretrau = data.youngbuffalo ? "Phải": "Không phải"
console.log(`Javascript có OOP không? ${jsoop}`)
console.log(`Bạn có phải là trẻ trâu không? ${tretrau}`)

Khó bảo trì? Ai bảo thế? Khó debug? DevsTool của Chrome có debugger mà?

TypeScript thực chất là tập cha của Javascript đấy bạn ơi. Ngoài ra tên của nó là V8 Engine chứ không phải Javascript Engine.

2 Likes

Mình và bạn @Duong_Act bảo Javascript “học hỏi” ý tưởng của C# chứ đâu có bảo C# có ảnh hưởng đến Javascript? Việc Javascript “học hỏi” ý tưởng của C# thực chất vẫn chưa được bên ECMA công nhận chính thức. Việc các NNLT học hỏi ý tưởng lẫn nhau đã là chuyện bình thường rồi.

Prototype-based vẫn là hướng đối tượng nhé :smiley: không phải có class mới là hướng đối tượng.

4 Likes

Bố-con, anh-em, thầy-trò học hỏi nhau là bình thường có gì mà nghe không lọt hả bạn ?

5 Likes

Nhờ bạn giải thích chữ “học hỏi”, ví dụ mình là một thằng Tây nói tiếng Anh làm chung team với bạn.

Lắm lúc chúng ta tranh luận vớ vẩn bởi vì từ “học hỏi” này mình không hiểu ý bạn là sao cả. Mình là dân văn nhưng làm về IT nên có nhiều lúc cách tiếp cận 1 vấn đề rất khác các bạn gốc IT. Ví dụ cụ thể luôn: cách mình tiếp cận vấn đề về cuộn chuột thì nó phải như này, lăn chuột xuống, chữ chạy xuống. Mấy ông làm phần mềm cứ cuộn ngược, khó chịu chết đi được.

Cho nên bạn hoặc thử viết tường minh theo kiểu chứng minh toán học (bạn chỉ ra chỗ cụ thể nào đó mà bạn cho rằng JavaScript đã học hỏi C# mà điểm đó bạn dám chắc chắc không phải là C# và JavaScript cùng chịu ảnh hưởng của C/C++, Java) hoặc viết theo kiểu của dân văn viết bài thể loại nghị luận.

Còn nếu viết (tức diễn tả trên topic này) theo kiểu “suy luận ngoài văn cảnh” thì mình không thể hiểu được, và chắc rằng không phải chỉ vì riêng mình dốt không thôi mà nhiều người tham gia topic cũng không hiểu.

Nếu cứ cố nói thì chẳng khác nào phát biểu một chuyện hiển nhiên kiểu “đeo khẩu trang có ích cho việc phòng ngừa Covid-19”. Bọn Tây vẫn phải nghiên cứu đấy thôi, dù chúng ta nghe hơi mắc cười. Mình đang hiểu JavaScript “học hỏi” từ C là như ví dụ: “JavaScript influenced by C”. Còn “học hỏi” theo ý bạn là như thế nào, hãy tìm giúp một từ tiếng Anh.

Diễn đàn này mà là một diễn đàn theo phong cách VOZForums mình sẽ không tranh luận như đang làm đây. Nhưng vì đây là về IT, mà về IT chúng ta thường phải tìm cách làm cho máy tính hiểu mình, vì thế cho nên sẽ phải có diễn tả cái logic sao cho máy có thể hiểu được, bởi hiện nay rất ít người viết code sử dụng fuzzy logic trong lập trình.

1 Like

Học hỏi trong trường hợp này ở Tiếng Anh là “Learning about the mechanism, syntax”, hoặc đầy đủ thành một câu là “ECMA International, the organization has developed Javascript, has learned about the mechanism, syntax of C# to develop Javascript”, câu này có thể có lỗi ngữ pháp hay cái gì đó, bạn cứ tìm nếu muốn vì mình không giỏi Tiếng Anh. Javascript mà bạn @Duong_Act và mình đang nói đến là chỉ đội ngũ phát triển Javascript, ECMA International, mà có lẽ là nãy giờ do dùng từ “Javascript” mà thiếu mất chữ “đội ngũ phát triển” nên bạn không hiểu, có lẽ là lỗi của tụi mình thật.

Rất tiếc, mình không phải là học sinh giỏi Văn hay Toán. Còn chỗ mà đội ngũ phát triển Javascript đã học hỏi C# như mình đã nói, đó là LINQ và async/await. Liệu C/C++ có LINQ và async/await không? Liệu các ngôn ngữ lập trình khác có hai có đó trừ C# và TypeScript, Nodejs,…hay không?

Về bạn Gà CoderHR16 thì chúng ta :beers: chứ chả có gì phải… Clash of Clans

Mình hơi có vẻ khó tính, đến mức mấy ông bên ddth chấm com & vài diễn đàn/ group FB khác quy là “gàn dở”…, chỉ là muốn nếu đề tài không thuộc chuyên mục như fun, f17 thì cần phải bớt phát biểu cảm tính. Mong rằng bạn Lão Hạc không vì thế mà ghét mình. Cũng phải bỏ mất 2 tiếng để xem thử Lão Hạc có lý không thì mình điểm qua vài thứ:

  • Lão Hạc dường như nói về ECMAScript hơn là JavaScript. Có thể với Lão Hạc hai cái này là một. Còn mình đề cập JavaScript mình lại chẳng buồn tham khảo gì đến ECMAScript dù lịch sử JavaScript đoạn tiền ECMAScript là khá ngắn ngủi. Cũng một phần mình tìm hiểu về JavaScript trên trang của Mozilla Firefox nên biết đến JavaScript có cái ra khỏi ECMAScript.

  • Vậy thì ECMAScript và JavaScript bà con gì với nhau? Mình phải lục ngồi đọc bài để xem manh mối, tránh trường hợp lại cảm tính rồi lại hồ đồ với Lão Hạc thì mất hay. Do đó, lúc này Lão Hạc có lý bởi ECMAScript có Microsoft tham gia thì không lẽ gì ECMAScript lại không có cái gì đó thú vị từ C#.

Tất nhiên là JavaScript nói chung chung thì cũng chả biết có bà con gì với ECMAScript rồi còn engine ở các trình duyệt thế nào nữa. Trong cái mớ lùng bùng này mình hiểu rằng JavaScript là một phương ngữ của ECMAScript.

Khép lại vấn đề: trong quá trình phát triển của JavaScript thì nó bổ sung thêm nhiều thứ, và JavaScript ngày nay có rút tỉa một số thứ từ C#. Nhưng cần phải hiểu, rằng cảm hứng để làm nên JavaScript của mấy ông tạo ra ngôn ngữ này không có bóng dáng C#. Và mình tranh luận với Lão Hạc bởi mình đang nói về JavaScript như một tác phẩm được sáng tác vào lúc có cảm hứng của ông Brendan Eich là hoàn toàn ổng chả biết gì về C# cả. Do đó, ở đây không có đúng - sai, mà mình và Lão Hạc đều cung cấp chút ít thông tìn/ được học hỏi thêm gì đó từ chuyện này.

5 Likes

chuyển từ java sang javascript và cảm thấy ác mộng, từ 1 cái an toàn, strongly-type sang 1 bên … chả biết diễn tả sao luôn

Java có Reflection đấy, “strong” gì đâu😈. Cái gì không thể truy xuất (private, protected), mình toàn dùng java.reflect. Tự viết 1 lớp hỗ trợ lấy giá trị, gọi phương thức, kể cả tạo mới theo hàm dựng không công khai luôn. :upside_down_face:

3 Likes

Objective C mà kêu khó? cực kỳ núi tiếc khi nó dần lép vế so với Swift. Mình thấy nó còn dễ học hơn Java rất nhiều.

5 Likes

Cái ngôn ngữ nào càng xa rời ngôn ngữ tự nhiên càng khó học.
Cái ngôn ngữ nào gồm nhiều kí tự lạ như =>, $, etc
Thì càng khó học khó nhớ.
Theo tiến hoá con người muốn giao tiếp với máy như ngôn ngữ tự nhiên.

@Shane_Benjamin_Benne Thế các ngôn ngữ lập trình hiện tại có nhất thiết phải gần ngôn ngữ tự nhiên không? Tiếng Việt làm gì có etc? Nhắc nhẹ cho bạn là C# cũng có => đó, ở LINQ, còn $ thì C#, PHP, DOS,…cũng có đấy. Đã không thích Javascript rồi thì đừng có comment lung tung, lời nói của bạn đang thể hiện bạn là một thanh niên toxic, một đứa trẻ trâu chính hiệu thuộc ban Tổ lái, phái Đua xe.

2 Likes

con người muốn giao tiếp với máy như ngôn ngữ tự nhiên. thay vì phải code ra thuật toán thì chỉ cần nói ý tưởng thuật toán trong ngôn ngữ tự nhiên để máy tính hiểu, tôi cmt lung tung ở đâu thế ông?
hay ông chỉ đi phán xét người khác là giỏi.

Như kiểu: “Này, máy tính! Làm cho tôi cái trang web như Google”? Thế là bạn ngay lập tức có vài tỷ dòng mã như của Google?
Hay:

nếu điểm nhỏ hơn 5 in ra "lưu ban", ngược lại in ra "lên lớp".

Được! Đó là trí tuệ nhân tạo (AI) phải không nhỉ? Mà AI từ đâu ra? Từ cái nhị phân khó ưa > ASM > C/C++ > Java/C#/Python > Javascript > …

Hay bạn tự làm cái trình biên dịch (compiler) để biên dịch cho máy hiểu đoạn mã ngôn ngữ tự nhiên phía trên của mình. Nhớ rằng: máy chỉ hiểu tín hiệu tắt/bật (0/1) thôi.

3 Likes

Có thể comment này off topic, nhưng tớ nghĩ tại sao chúng ta không dừng lại ở đây? :smiley:
Tớ nghĩ sẽ tốt hơn nếu như chúng ta dành thời gian cho topic khác, hơn là tranh cãi nhau ở đây, vì:

  • Nó không giúp ai hiểu ra thêm vấn đề (người ta chỉ nghe thứ người ta muốn nghe thôi) :smiley:
  • Nó không thêm giá trị gì
  • Tớ nghĩ không ai cần phải chứng minh bản thân nữa :wink:

Bạn @Shane_Benjamin_Benne có quan điểm và kiến thức của bạn ấy, nó không ảnh hưởng tới ai cho tới khi bạn ấy vận dụng những kiến thức và quan điểm đó vào công việc. Lúc đó, sếp bạn ấy có thể sẽ có trách nhiệm giúp bạn ấy :smiley:
Tớ nghĩ tốt nhất là chúng ta có thể tôn trọng bạn ấy và không cần giải thích gì thêm.

5 Likes

Định tranh luận lại với @Shane_Benjamin_Benne nhưng sau khi thấy bình luận của @library@SITUVN.gcd thì hết muốn tranh luận lại luôn :rofl:. Bình luận của hai bạn rất hợp lí, logic và rất thuyết phục, coi như đây là lời khen dành cho hai bạn. Cuối cùng thì mong bạn @Shane_Benjamin_Benne bớt trẩu lại và đừng xúc phạm người khác(có bình luận nhưng đã xoá). Nếu mod muốn thì cứ xóa mấy bình luận trên với lí do Off-topic.

CUỘC TRANH LUẬN XIN KẾT THÚC TẠI ĐÂY.

3 Likes

Chà, mấy hôm nay bạn đào mộ kha khá đấy.

5 Likes

@noname00 Chưa kể còn có bình luận xúc phạm đến “danh dự” của các devs trên topic Cảm thấy đau đầu khi code, ngay trên Dạy nhau học - diễn đàn dành cho các devs :angry:.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?