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

Hệ thống xếp hạng này là do quan điểm cá nhân và thu thập ý kiến.

10.Perl

Perl là một ngôn ngữ lập trình do Larry Wall thiết kế để xử lý các danh sách và báo cáo, được sử dụng để xử lý chuỗi kí tự và quản lý dữ liệu nhưng dần, Perl còn được dùng làm vũ khí cho các tay an ninh mạng nhưng việc sử dụng nhiều các kí hiệu, kiểu vô hướng và biểu thức chính quy kiến cho việc Debug và xem lại code cũng gây không ít khó khăn.

@alex = ( fred => 44, 'joe' => 2983, mike => -94 );
%heather = ('This', 'will', 'actually', 'work');
print "A: \@alex = (@alex)\n";
print "B: $heather{'This'} $heather{'actually'}\n";

%heather = @alex;
print "C: [$heather{'fred'}] [$heather{'joe'}] [$heather{'mike'}] ",
    "[$heather{'This'}]\n";
$heather{'dingbat'} = 8822;
$heather{'giggles'} = 33;
@alex = %heather;
print "D: @alex\n";

# Extras are empty string.
%heather = ('a', 'b', 'c');
print "E: [$heather{'a'}] [$heather{'c'}]\n";

# Duplicate keys get the last value.
%heather = ( 'brillig' => 74, 'snark' => 34, 
             'slithy' => 18, 'snark' => 99,
             'beamish' => 48, 'brillig' => 1 );
print "E: [$heather{'brillig'}] [$heather{'snark'}] ",
    "[$heather{'slithy'}] [$heather{'beamish'}]\n";

9.Objective-C

Là ngôn ngữ “truyền thống” của Apple để lập trình hệ điều hành Mac OS, iOS và các ứng dụng chạy “Nền táo” (Apple’s Platform). Ngôn ngữ này vay mượn phần lớn cú pháp của C khiến cho việc học nó trở nên dễ dàng trừ một điểm là hệ thống cú pháp “thô” và khiến lập trình viên dùng nhiều dòng code hơn. Nó lại là một ngôn ngữ lập trình hướng đối tượng nền C khiến cho lập trình viên không thể sử dụng hay khai thác tối đa sức mạnh của Lập trình hướng đối tượng. (Mình chẳng biết tại sao Steve Job ưa hoàn hảo mà lại chọn ngôn ngữ này?)

#import "Photo.h"
@implementation Photo
- (NSString*) caption {
 return caption; 
}
- (NSString*) photographer {
 return photographer; 
}
- (void) setCaption: (NSString*)input {
 [caption autorelease]; 
 [input retain]; 
 caption = input;
}
- (void) setPhotographer: (NSString*)input {
 [photographer autorelease]; 
 [input retain]; 
 photographer = input;
}
@end

8.JavaScript

Đây là một ngôn ngữ “không giống họ cũng giống tên” với Java được sử dụng để tạo nội dung hành vi (Behavior) cho trang web. Cú pháp vay mượn khá nhiều Java nên khá dễ học nhưng nó lại khá kì dị vì nó sử dụng OOP-Prototype, sử dụng các hàm thay thế các lớp, sử dụng biểu thức chính quy và cả… Kiểu vô hướng, (mình thấy nó giống Perl đội lốt Java sống ở Web). Khiến cho việc viết code gặp khá nhiều lỗi nhưng… lại khó phát hiện. Vì đây là ngôn ngữ thông dịch nền web.

7,5.PHP

Điệp khúc này chắc hẳn các bạn đã nghe nhiều lần rồi nhưng nếu không đưa nó vào list thì chắc chắn là sự thiếu sót. PHP là cái ngôn ngữ “Justin”, một cái búa với hai mấu nhổ đinh. Vô cùng xấu xí với kiểu vô hướng và hình như đó là đứa con lai của Perl và Basic - một tổ hợp với vô vàn từ khóa. và lại là sản phẩm của một kẻ… vừa bỏ bú ngôn ngữ Basic. Nhưng rồi thì sao? Nó như một loại nước sốt rẻ tiền mà ai cũng dùng. Thậm chí các tên miền có hỗ trợ PHP lại có giá cao hơn khoảng gấp rưỡi so với tên miền không dùng. Không biết là daynhauhoc có dùng PHP không nhỉ? anh @ltd

$user = "root";
$pass = "";
$db = "mydatabase";
$link = @mysql_connect( "localhost", $user, $pass );
if ( ! $link ) {
  die( "Couldn't connect to MySQL: ".mysql_error() );
}
print "<h2>Successfully connected to server</h2>\n\n";
@mysql_select_db( $db )
  or die ( "Couldn't open $db: ".mysql_error() );
print "Successfully selected database \"$db\"<br />\n";
mysql_close( $link );

7.C++

Là ngôn ngữ sử dụng nhiều nhất nhì thế giới và vai “Ông bà” của các ngôn ngữ lập trình của sau này (trong đó có Java), và sở hữu cái sức mạnh mà-ai-cũng biết. Được dùng chủ yếu để viết các chương trình đồ họa, mạnh mẽ và nhanh nhẹn, lập trình nhúng, game… nhưng đây là một cơn ác mộng của những người “chân ướt chân ráo” trong giới lập trình vì nó chính xác là một… Món Xà Bần. Nó là tổ hợp của Lập Trình OOP, Lập Trình Tuyến Tính (thừa kế C), và “…”. Hệ thống lập trình OOP không trong sáng và không thừa kế được hết các đặc tính của OOP khiến cho việc học nó như một PL (Programming Language) Tuyến Tính đã khó, như một OOP còn khó hơn.

#include <iostream>
using namespace std;
int main(){
   cout << "Hi Daynhauhoc" << endl;
}

6.Scala

Scala là ngôn ngữ lập trình do Martin Odersky thiết kế. Nó là tổng của Lập Trình hướng đối tượng và Lập Trình hướng hàm. Và nó đúng là một kẻ “dựa hơi Java” từ cú pháp và chạy cả trên nền Java (đùa à?!). Mặc dù dựa hơi Java nhưng nó vẫn khá xấu xí trong cú pháp riêng. (lại còn dùng lazy, làm ơn đi!)

5.Prolog

Prolog đã quá nổi tiếng về sự linh hoạt trong việc hỗ trợ lập trình hướng Logic và được dùng khá rộng rãi để lập trình “artificial intelligence” (trí khôn nhân tạo -hay còn gọi là AI). nhưng hệ thống mã nguồn thì khó hiểu và không quen thuộc với hầu hết các lập trình viên

intersect([],X,[]):- !.
intersect([X|R],Y,[X|T]):- member(X,Y),intersect(R,Y,T),!.
intersect([X|R],Y,L):- intersect(R,Y,L).

4.Lisp

Đây là ngôn ngữ lập trình thuần hướng hàm. Nhưng nó quá xấu xí và lại mang phong cách lập trình hàm - thứ hack não còn hơn cả Con trỏ.

3.Haskell

giống như Matlab, đây là “thứ” (mình cũng chưa biết nên gọi nó bằng gì) chủ yếu chỉ dùng để tính toán phức tạp. Nhưng lại khoác áo Lập Trình Hàm và có các hàm “rất” trừu tượng số hóa như Monad, Forall,… khá khó hiểu nhưng được cái là khá mạnh. Và được nhiều người gọi là “Công nghệ của Người Ngoài Hành Tinh”

2.Assembly Language

Đây là thứ “khiến tôi mất ngủ” khi gặp nó. Nó là một ngôn ngữ anh em “cùng mẹ khác anh rể” với Hexa và Ngôn ngữ máy. Nó ám ảnh mình hơn cả C++. Đây là một ngôn ngữ vô cùng chua chát đối với các sinh viên thuộc ngành Khoa Học Máy Tính và những người newbie vì hệ thống rất phức tạp về câu lệnh và nếu code không khéo thì máy tính của bạn sẽ “vào Nghĩa Trang”. nhưng đây là “God’s PL”, nó có thể làm được mọi thứ, rất nhanh và nguy hiểm và nó sẽ dạy cho bạn biết “từ góc đến ngọn” của cấu trúc máy tính và ngôn ngữ lập trình, các cách thức hoạt động,… nó được dùng chủ yếu trong thiết kế vi mạch, ngôn ngữ lập trình và giúp bạn học các ngôn ngữ lập trình khác dễ như ăn kẹo. Nhưng trước hết, bạn cần mua máy tính mới :slight_smile: .

section	.text
    global _start   ;must be declared for linker (ld)
_start:	            ;tells linker entry point
    mov	edx,len     ;message length
    mov	ecx,msg     ;message to write
    mov	ebx,1       ;file descriptor (stdout)
    mov	eax,4       ;system call number (sys_write)
    int	0x80        ;call kernel
	
    mov	eax,1       ;system call number (sys_exit)
    int	0x80        ;call kernel

section	.data
msg db 'Hello, world!', 0xa  ;our dear string
len equ $ - msg     ;length of our dear string

1.APL

Đây là ngôn ngữ lập trình của một “ông”, và “ông” ấy rất rảnh. Nó được xếp vào hàng “ngôn ngữ kì dị” (ông bạn của nó là BrainFuck,…). Với hệ thống cú pháp phần lớn là kí hiệu phức tạp (chả hiểu ông ta nghĩ cái **o gì nữa.). Và vì sự phức tạp của nó, giờ nó đã nằm trong viện bảo tảng và yên nghĩ cùng với người cha của nó - Kenneth E. Iverson.

  L←(Lι':')↓L←,L       ⍝ drop To:
    L←LJUST VTOM',',L    ⍝ mat with one entry per row
 [8]    S←¯1++/∧\L≠'('       ⍝ length of address
 [9]    X←0⌈⌈/S
 [10]   L←S⌽(−(⍴L)+0,X)↑L    ⍝ align the (names)
 [11]   A←((1↑⍴L),X)↑L       ⍝ address
 [12]   N←0 1↓DLTB(0,X)↓L    ⍝ names)
 [13]   N←,'⍺',N
 [14]   N[(N='_')/ι⍴N]←' '   ⍝ change _ to blank
 [15]   N←0 ¯1↓RJUST VTOM N  ⍝ names
 [16]   S←+/∧\' '≠⌽N         ⍝ length of last word in name
18 Likes

Cá nhân thì thấy nên để Lisp thành hạng 2 thay vì Assembly :penguin:
Syntax của Lisp mình có xem qua và thấy… kinh khủng :))

6 Likes

Cảm thấy sợ hãi khi nhìn thấy APL :smiley:
Tôi đang đọc cái quái gì vậy :tired_face: haha

3 Likes

moi nguoi taon bao javascrip de ma ban

1 Like

nhưng việc sử dụng var -> kiểu vô hướng, biểu thức chính quy, prototype,… của JavaScript khiến nó khá khó để code đấy bạn.

1 Like

nhưng JavaScript quan trọng đối với lập trình web, mình thấy bạn nói khó thế này thì thấy lo quá đấy :(((((.

2 Likes

Nhìn cái Apl đúng ko biết cha đẻ nó nghỉ cái đ gì nhỉ

1 Like

daynhauhoc dùng ngôn ngữ Ruby
Link tham khảo


6 Likes

Chắc tại học Pascal đầu tiên hay sao mà em thấy Pascal là dễ nhất đấy ạ. :joy:

2 Likes

Phần 8, nói về JavaScript ở đâu chọt thằng PHP vô, làm mình tưởng số 7 là PHP. Nhưng kéo xuống thì xuất hiện số 7 nói về một ngôn ngữ khác. Phần 4, 3, 2 thì bác tách dòng để tiện coi.

1 Like

Dạ anh, nhưng em chỉnh nhiều lần rồi nhưng vẫn bị. Mong anh thông cảm. Còn PHP, nó ngôn ngữ bị “thù” nhất, nếu không có nó thì lại thiếu anh ạ. ^^

mình yêu PHP lắm chứ, có thù nó đâu ta @…@

1 Like

Đa số thù nó là do thiết kế xấu thôi bạn

Mình thì không đồng ý cho Scala vào list này. Những gì @conan4582 nói về Scala đều là thế mạnh của nó cả. Nhất là lập trình hàm, patten matching, làm cho code ngắn đi rất nhiều.
Trở ngại duy nhất khi học về Scala đó là tư tưởng của lập trình hàm :smiley:

1 Like

PHP thì thù nó ở chỗ OOP của nó không rõ ràng gì cả :frowning:

1 Like

C++ and VB too :smile:

Ý là C++, VB ko có OOP rõ ràng?

1 Like

nó có interface, abstract, trait. static thì ::, object thì ->. tớ thấy nó cũng khá ok rồi chứ bộ :smiley:

1 Like

Mình thấy nó cũng ra dc OOP, nhưng mà không thích syntax của nó cho lắm.

1 Like

Cái APL đọc k hiểu gì cả

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